From: "Guardado por Windows Internet Explorer 8"
Subject: =?Windows-1252?Q?Cat=E1logo_-_Oficina_de_Publicaciones_-_Universidad_de_L?=
	=?Windows-1252?Q?a_Sabana?=
Date: Thu, 22 Apr 2010 09:56:24 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CAE202.117BD2E0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.18005

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/WFPublicacion.aspx?Entrada=200

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD =
id=3DHead1><TITLE>Cat=C3=A1logo - Oficina de Publicaciones - Universidad =
de La Sabana</TITLE>
<META content=3D"text/html; charset=3Dutf-8" =
http-equiv=3DContent-Type><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://jabbah.unisabana.edu.co/Publicaciones/estilos/estilos.css"=
>
<SCRIPT language=3DJavascript type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/Popup.js"></SCRIPT>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://jabbah.unisabana.edu.co/Publicaciones/WebResource.axd?d=3D=
Tf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNquloXMV_uN6GUYufvkGGHGJLYmMxwG8g=
H_uWIIH6vfseA2&amp;t=3D633899266740000000">
<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18904"></HEAD>
<BODY onunload=3Djavascript:closePopWin();>
<FORM id=3Dform1 method=3Dpost name=3Dform1 =
action=3DWFPublicacion.aspx?Entrada=3D200>
<DIV><INPUT id=3DTabContainerPublicacion_ClientState=20
value=3D'{"ActiveTabIndex":0,"TabState":[true,true,true]}' type=3Dhidden =

name=3DTabContainerPublicacion_ClientState> <INPUT id=3D__EVENTTARGET =
type=3Dhidden=20
name=3D__EVENTTARGET> <INPUT id=3D__EVENTARGUMENT type=3Dhidden =
name=3D__EVENTARGUMENT>=20
<INPUT id=3D__VIEWSTATE=20
value=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
Fw/E=20
type=3Dhidden name=3D__VIEWSTATE> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var theForm =3D document.forms['form1'];
if (!theForm) {
    theForm =3D document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {
        theForm.__EVENTTARGET.value =3D eventTarget;
        theForm.__EVENTARGUMENT.value =3D eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/WebResource.axd?d=3Dy=
Tzj-fyLhuJ34tvr31Ja3g2&amp;t=3D633936755624778223"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var __cultureInfo =3D =
'{"name":"es-ES","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim=
alSeparator":",","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupS=
izes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":".","CurrencyS=
ymbol":"=E2=82=AC","NaNSymbol":"NeuN","CurrencyNegativePattern":8,"Number=
NegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,=
"NegativeInfinitySymbol":"-Infinito","NegativeSign":"-","NumberDecimalDig=
its":2,"NumberDecimalSeparator":",","NumberGroupSeparator":".","CurrencyP=
ositivePattern":3,"PositiveInfinitySymbol":"Infinito","PositiveSign":"+",=
"PercentDecimalDigits":2,"PercentDecimalSeparator":",","PercentGroupSepar=
ator":".","PercentSymbol":"%","PerMilleSymbol":"=E2=80=B0","NativeDigits"=
:["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTi=
meFormat":{"AMDesignator":"","Calendar":{"MinSupportedDateTime":"\/Date(-=
62135578800000)\/","MaxSupportedDateTime":"\/Date(253402300799999)\/","Al=
gorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsRead=
Only":true},"DateSeparator":"/","FirstDayOfWeek":1,"CalendarWeekRule":0,"=
FullDateTimePattern":"dddd, dd\u0027 de \u0027MMMM\u0027 de \u0027yyyy =
H:mm:ss","LongDatePattern":"dddd, dd\u0027 de \u0027MMMM\u0027 de =
\u0027yyyy","LongTimePattern":"H:mm:ss","MonthDayPattern":"dd =
MMMM","PMDesignator":"","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\u0027:\u0027mm\u0027:\u0027ss =
\u0027GMT\u0027","ShortDatePattern":"dd/MM/yyyy","ShortTimePattern":"H:mm=
","SortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0=
027HH\u0027:\u0027mm\u0027:\u0027ss","TimeSeparator":":","UniversalSortab=
leDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd =
HH\u0027:\u0027mm\u0027:\u0027ss\u0027Z\u0027","YearMonthPattern":"MMMM\u=
0027 de =
\u0027yyyy","AbbreviatedDayNames":["dom","lun","mar","mi=C3=A9","jue","vi=
e","s=C3=A1b"],"ShortestDayNames":["do","lu","ma","mi","ju","vi","s=C3=A1=
"],"DayNames":["domingo","lunes","martes","mi=C3=A9rcoles","jueves","vier=
nes","s=C3=A1bado"],"AbbreviatedMonthNames":["ene","feb","mar","abr","may=
","jun","jul","ago","sep","oct","nov","dic",""],"MonthNames":["enero","fe=
brero","marzo","abril","mayo","junio","julio","agosto","septiembre","octu=
bre","noviembre","diciembre",""],"IsReadOnly":true,"NativeCalendarName":"=
calendario =
gregoriano","AbbreviatedMonthGenitiveNames":["ene","feb","mar","abr","may=
","jun","jul","ago","sep","oct","nov","dic",""],"MonthGenitiveNames":["en=
ero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembr=
e","octubre","noviembre","diciembre",""]}}';//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=3D=
rrhzkQBArEzJ0ufIeMGymujSm0OQchsRojrfGev9XGmucQLbWWsJKupvRuRxeCgVhD927pnvQ=
w-rTRc_jvftJhpQ_mDW9deWq3I9nQ1CKoo1&amp;t=3D349f4c5"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
if (typeof(Sys) =3D=3D=3D 'undefined') throw new Error('Error al cargar =
el marco de trabajo de cliente ASP.NET Ajax.');
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=3D=
rrhzkQBArEzJ0ufIeMGymujSm0OQchsRojrfGev9XGmucQLbWWsJKupvRuRxeCgV1wXPTx5ZW=
3bS6kptcI7nUFDkOYNG9Qav58vfI_S08YJX7fu2yh99OZpKhi7VCjLY0&amp;t=3D349f4c5"=
></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=3D=
UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRh1kzWt64I05PnaJ-kGovFMmvz5EKJmB=
mzkP0_rZkH9qw2&amp;t=3D41a5b0a3"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=3D=
UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRjJFPOKjnIFcuTj0FNMkiisLtM_hnqT-=
hWtu72nAc3G0vMKSpFAzLMMsEvcifEx5Bo1&amp;t=3D41a5b0a3"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=3D=
UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRgtBNl8CFK1lTmWdbLHI6fo_dCafdeIB=
SgJGR6H4pCmng2&amp;t=3D41a5b0a3"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=3D=
UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRj6Y0InYUaqgMhNPnVdsP-_pQOdS7-9O=
nSH66w4uQ5GK7ygS5sDQSvnp2Iq3zf6QirDwqa7x_dAM615CrApZ2lk0&amp;t=3D41a5b0a3=
"></SCRIPT>

<DIV><INPUT id=3D__VIEWSTATEENCRYPTED type=3Dhidden =
name=3D__VIEWSTATEENCRYPTED>=20
</DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('OlisScriptManager', =
document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], =
[], 90);
//]]>
</SCRIPT>

<TABLE border=3D0 cellSpacing=3D0 borderColor=3D#001a44 cellPadding=3D3 =
width=3D400=20
align=3Dcenter height=3D250>
  <TBODY>
  <TR>
    <TD vAlign=3Dcenter>
      <TABLE style=3D"BACKGROUND-COLOR: white; BORDER-COLLAPSE: =
collapse"=20
      id=3DFormViewDetalle border=3D0 cellSpacing=3D0 cellPadding=3D0>
        <TBODY>
        <TR style=3D"BACKGROUND-COLOR: white; COLOR: white">
          <TD colSpan=3D2>
            <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D4 =
width=3D500=20
              align=3Dcenter><TBODY>
              <TR>
                <TD vAlign=3Dtop width=3D160><IMG=20
                  style=3D"BORDER-RIGHT-WIDTH: 0px; WIDTH: 150px; =
BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 240px; =
BORDER-LEFT-WIDTH: 0px"=20
                  id=3DFormViewDetalle_ImagenLibro=20
                  =
src=3D"http://jabbah.unisabana.edu.co/olis/ModPublicaciones/Imagenes/Imag=
en_200.jpg">=20
                </TD>
                <TD vAlign=3Dtop width=3D280>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D250=20
                  align=3Dcenter>
                    <TBODY>
                    <TR>
                      <TD colSpan=3D2><SPAN=20
                        class=3Dverdana_8_pixeles><STRONG><STRONG=20
                        class=3Dtexto><SPAN=20
                        id=3DFormViewDetalle_lblNombre>PREGUNTANDO POR =
EL=20
                        =
CORAZ=C3=93N</SPAN></STRONG></STRONG></SPAN><BR><BR></TD></TR>
                    <TR>
                      <TD class=3Dtexto colSpan=3D2><SPAN=20
                        id=3DFormViewDetalle_lblAutores><A=20
                        =
href=3D"javascript:openPopWin('./WFAutor.aspx?Entrada=3D99', 500, 600, =
'status, scrollbars, winLeft, winTop')"><FONT=20
                        color=3D#00702e>Jes=C3=BAs =C3=81lvaro Sierra=20
                        =
Londo=C3=B1o</FONT></A><BR></SPAN><BR><BR></TD></TR>
                    <TR>
                      <TD class=3Dtexto width=3D150><STRONG><SPAN=20
                        id=3DFormViewDetalle_Label2>ISBN</SPAN></STRONG> =
</TD>
                      <TD class=3Dtexto width=3D150><SPAN=20
                        =
id=3DFormViewDetalle_lblISBN>978-607-432-009-9</SPAN>=20
                    </TD></TR>
                    <TR>
                      <TD class=3Dtexto width=3D150><STRONG>A=C3=B1o =
edici=C3=B3n</STRONG>=20
                      </TD>
                      <TD class=3Dtexto width=3D150><SPAN =
class=3Dtexto><SPAN=20
                        id=3DFormViewDetalle_lblAnno>2009</SPAN> =
</SPAN></TD></TR>
                    <TR>
                      <TD class=3Dtexto><STRONG>P=C3=A1ginas</STRONG> =
</TD>
                      <TD class=3Dtexto><SPAN=20
                        id=3DFormViewDetalle_lblPaginas>256</SPAN> =
</TD></TR>
                    <TR>
                      <TD class=3Dtexto><STRONG>Tama=C3=B1o</STRONG> =
</TD>
                      <TD class=3Dtexto><SPAN =
id=3DFormViewDetalle_Label3>16 X=20
                        22</SPAN> </TD></TR>
                    <TR>
                      <TD =
class=3Dtexto><STRONG>Encuadernaci=C3=B3n</STRONG> </TD>
                      <TD class=3Dtexto><SPAN=20
                        id=3DFormViewDetalle_Label4>R=C3=BAstica</SPAN> =
</TD></TR>
                    <TR>
                      <TD class=3Dtexto =
width=3D100><STRONG>Precio</STRONG> </TD>
                      <TD class=3Dtexto width=3D100>$<SPAN =
class=3Dtexto><SPAN=20
                        id=3DFormViewDetalle_lbPrecio>46.000</SPAN> =
</SPAN></TD></TR>
                    <TR>
                      <TD class=3Dtexto =
width=3D100><STRONG>&nbsp;</STRONG> </TD>
                      <TD class=3Dtexto width=3D100>USD <SPAN =
class=3Dtexto><SPAN=20
                        id=3DFormViewDetalle_Label1>20,00</SPAN>=20
                    </SPAN></TD></TR></TBODY></TABLE></TD></TR>
              <TR>
                <TD vAlign=3Dtop colSpan=3D2>&nbsp;=20
        </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
      <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D4 width=3D500 =
align=3Dcenter>
        <TBODY>
        <TR>
          <TD vAlign=3Dtop colSpan=3D2>
            <DIV style=3D"VISIBILITY: hidden; COLOR: black"=20
            id=3DTabContainerPublicacion class=3Dajax__tab_xp>
            <DIV id=3DTabContainerPublicacion_header><SPAN=20
            id=3DTabContainerPublicacion_tpSinopsis_tab><SPAN=20
            class=3Dajax__tab_outer><SPAN class=3Dajax__tab_inner><SPAN=20
            id=3D__tab_TabContainerPublicacion_tpSinopsis=20
            =
class=3Dajax__tab_tab>Sinopsis</SPAN></SPAN></SPAN></SPAN><SPAN=20
            id=3DTabContainerPublicacion_tbContenido_tab><SPAN=20
            class=3Dajax__tab_outer><SPAN class=3Dajax__tab_inner><SPAN=20
            id=3D__tab_TabContainerPublicacion_tbContenido=20
            class=3Dajax__tab_tab>Tabla de=20
            contenido</SPAN></SPAN></SPAN></SPAN><SPAN=20
            id=3DTabContainerPublicacion_tbAutores_tab><SPAN=20
            class=3Dajax__tab_outer><SPAN class=3Dajax__tab_inner><SPAN=20
            id=3D__tab_TabContainerPublicacion_tbAutores=20
            class=3Dajax__tab_tab>Autor(es)</SPAN></SPAN></SPAN></SPAN> =
</DIV>
            <DIV id=3DTabContainerPublicacion_body>
            <DIV id=3DTabContainerPublicacion_tpSinopsis =
class=3Dajax__tab_panel>
            <P class=3Dtitulo1>Sinopsis</P>
            <TABLE style=3D"BACKGROUND-COLOR: white; BORDER-COLLAPSE: =
collapse"=20
            id=3DTabContainerPublicacion_tpSinopsis_FormViewSinopsis =
border=3D0=20
            cellSpacing=3D0 cellPadding=3D0>
              <TBODY>
              <TR style=3D"BACKGROUND-COLOR: white; COLOR: white">
                <TD colSpan=3D2>
                  <P style=3D"TEXT-ALIGN: justify" class=3Dtexto><SPAN=20
                  style=3D"COLOR: black"=20
                  =
id=3DTabContainerPublicacion_tpSinopsis_FormViewSinopsis_lblSinopsis><LIN=
K=20
                  rel=3DFile-List=20
                  =
href=3D"file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CCONFIG%7E1%5CTemp%5Cmsohtm=
l1%5C01%5Cclip_filelist.xml"><O:SMARTTAGTYPE=20
                  name=3D"PersonName"=20
                  =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"></O:SMARTTAGT=
YPE><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]>
                  <OBJECT id=3Dieooui=20
                  =
classid=3Dclsid:38481807-CA0E-42D2-BF39-B33AF135CC4D></OBJECT>
                  <STYLE></STYLE>
<![endif]-->
                  <STYLE>P.MsoNormal {
	MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
LI.MsoNormal {
	MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
DIV.MsoNormal {
	MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
DIV.Section1 {
	page: Section1
}
</STYLE>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Tabla normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]-->
                  <P class=3DMsoNormal><FONT class=3DApple-style-span=20
                  face=3DArial><SPAN style=3D"FONT-SIZE: small"=20
                  class=3DApple-style-span></SPAN></FONT></P><FONT=20
                  class=3DApple-style-span face=3DArial>
                  <P style=3D"TEXT-ALIGN: justify" =
class=3DMsoNormal><SPAN=20
                  lang=3DES-CO><FONT class=3DApple-style-span =
face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" class=3DApple-style-span>El =
libro, es=20
                  un estudio sobre el conocimiento del ser humano desde=20
                  diferentes corrientes filos=C3=B3ficas, sit=C3=BAa a =
la afectividad en=20
                  el n=C3=BAcleo mismo de la persona =E2=80=94el =
coraz=C3=B3n=E2=80=94 fuente de vida,=20
                  calor y humanismo dentro de una concepci=C3=B3n =
antropol=C3=B3gica=20
                  integral.</SPAN></FONT><FONT class=3DApple-style-span=20
                  face=3DVerdana><SPAN style=3D"FONT-SIZE: small"=20
                  =
class=3DApple-style-span><O:P></O:P></SPAN></FONT></SPAN></P>
                  <P style=3D"TEXT-ALIGN: justify" =
class=3DMsoNormal><SPAN=20
                  lang=3DES-CO><FONT class=3DApple-style-span =
face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" class=3DApple-style-span>Es =
novedosa=20
                  esta aproximaci=C3=B3n al mundo del coraz=C3=B3n y la =
investigaci=C3=B3n de=20
                  =C3=81lvaro Sierra, quien nos revela el papel de la =
afectividad en=20
                  t=C3=A9rminos filos=C3=B3ficos: es una parte de la =
realidad personal=20
                  directamente conectada con la parte f=C3=ADsica pero =
tambi=C3=A9n en=20
                  profunda relaci=C3=B3n con la parte inmaterial del ser =
humano. Es=20
                  una realidad integradora entre lo material y lo=20
                  espiritual.</SPAN></FONT><FONT =
class=3DApple-style-span=20
                  face=3DVerdana><SPAN style=3D"FONT-SIZE: small"=20
                  =
class=3DApple-style-span><O:P></O:P></SPAN></FONT></SPAN></P><SPAN=20
                  lang=3DES-CO>
                  <DIV style=3D"TEXT-ALIGN: justify"><FONT =
class=3DApple-style-span=20
                  face=3DVerdana><SPAN style=3D"FONT-SIZE: small"=20
                  class=3DApple-style-span>La publicaci=C3=B3n incluye =
una completa=20
                  bibliograf=C3=ADa y un cap=C3=ADtulo final donde =
describe los t=C3=A9rminos=20
                  utilizados.&nbsp;</SPAN></FONT></DIV></SPAN></FONT>
                  <P></P></SPAN>
                  <P></P></TD></TR></TBODY></TABLE></DIV>
            <DIV style=3D"DISPLAY: none; VISIBILITY: hidden"=20
            id=3DTabContainerPublicacion_tbContenido =
class=3Dajax__tab_panel>
            <P class=3Dtitulo1>Tabla de contenido</P>
            <TABLE style=3D"BACKGROUND-COLOR: white; BORDER-COLLAPSE: =
collapse"=20
            id=3DTabContainerPublicacion_tbContenido_FormViewContenido =
border=3D0=20
            cellSpacing=3D0 cellPadding=3D0>
              <TBODY>
              <TR style=3D"BACKGROUND-COLOR: white; COLOR: white">
                <TD colSpan=3D2>
                  <P style=3D"TEXT-ALIGN: justify" class=3Dtexto><SPAN=20
                  style=3D"COLOR: black"=20
                  =
id=3DTabContainerPublicacion_tbContenido_FormViewContenido_lblContenido><=
LINK=20
                  rel=3DFile-List=20
                  =
href=3D"file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CCONFIG%7E1%5CTemp%5Cmsohtm=
l1%5C01%5Cclip_filelist.xml"><O:SMARTTAGTYPE=20
                  name=3D"PersonName"=20
                  =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"></O:SMARTTAGT=
YPE><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]>
                  <OBJECT id=3Dieooui=20
                  =
classid=3Dclsid:38481807-CA0E-42D2-BF39-B33AF135CC4D></OBJECT>
                  <STYLE></STYLE>
<![endif]-->
                  <STYLE>P.MsoNormal {
	MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
LI.MsoNormal {
	MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
DIV.MsoNormal {
	MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
DIV.Section1 {
	page: Section1
}
</STYLE>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Tabla normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]-->
                  <P class=3DMsoNormal><FONT class=3DApple-style-span=20
                  face=3DArial><SPAN style=3D"FONT-SIZE: small"=20
                  class=3DApple-style-span></SPAN></FONT></P><FONT=20
                  class=3DApple-style-span face=3DArial>
                  <P style=3D"MARGIN-BOTTOM: 6pt" class=3DMsoNormal></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small"=20
                  =
class=3DApple-style-span>Pr=C3=B3logo</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small"=20
                  =
class=3DApple-style-span>Introducci=C3=B3n</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" =
class=3DApple-style-span><B>Cap=C3=ADtulo=20
                  1</B> - Los estoicos<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Justificaci=C3=B3n<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  persona en la filosof=C3=ADa estoica<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La =C3=A9tica=20
                  estoica<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El acto=20
                  moral en la filosof=C3=ADa estoica<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>De los=20
                  diferentes actos morales<FONT class=3DApple-style-span =

                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>De la=20
                  pasi=C3=B3n y el juicio<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La virtud=20
                  en la doctrina estoica<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El fin de=20
                  la virtud en los estoicos<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>=C2=BFEs el=20
                  actuar virtuoso una elecci=C3=B3n?<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Los=20
                  preafectos y la unidad del alma<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El aporte=20
                  de la doctrina estoica a un estatuto =
ontol=C3=B3gico&nbsp;de la=20
                  afectividad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La pasi=C3=B3n=20
                  est=C3=A1 directamente relacionada&nbsp;con los =
sentidos<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Los=20
                  preafectos son una primera valoraci=C3=B3n de la =
realidad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  virtud&nbsp;como fuerza que orienta las pasiones<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La unidad=20
                  del ser humano en su operaci=C3=B3n<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  Daimon&nbsp;como pauta de&nbsp;comportamiento en cada=20
                  persona<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>A modo=20
                  de&nbsp;conclusi=C3=B3n</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" =
class=3DApple-style-span><B>Cap=C3=ADtulo=20
                  2</B> - La afectividad en un cl=C3=A1sico: Tom=C3=A1s =
de Aquino<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El porqu=C3=A9=20
                  de una elecci=C3=B3n<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El aporte=20
                  de santo Tom=C3=A1s al tema de la afectividad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  estamento afectivo en Tom=C3=A1s de Aquino<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Capacidad=20
                  para ser afectado&nbsp;como paso previo a la =
pasi=C3=B3n<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad&nbsp;como capacidad de ser afectado es una =

                  potencia pasiva<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El bien=20
                  es el desencadenante o causa del amor<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El bien=20
                  "amado" debe ser&nbsp;connatural o apropiado al =
sujeto<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El mal no=20
                  se ama por s=C3=AD mismo<FONT class=3DApple-style-span =

                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  belleza es igualmente un bien digno de ser amado<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Las=20
                  pasiones en relaci=C3=B3n&nbsp;con la inteligencia y =
la=20
                  voluntad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Pasiones=20
                  antecedentes<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>Pasiones&nbsp;consecuentes<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  asiento de las pasiones<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Clasificaci=C3=B3n de =
las pasiones<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Orden de=20
                  las pasiones<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>La&nbsp;concupiscencia&nbsp;como=20
                  impulso dinamizador<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  delectaci=C3=B3n y el gozo<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Moralidad=20
                  de la delectaci=C3=B3n<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Dolor y=20
                  tristeza<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>De la=20
                  delectaci=C3=B3n y el gozo al dolor y la tristeza<FONT =

                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Diferencia entre dolor y =

                  tristeza<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El mayor=20
                  dolor<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Tipos de=20
                  tristeza<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  verdadera causa del dolor<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>Dolor&nbsp;como&nbsp;consecuencia=20
                  de la ruptura o p=C3=A9rdida de unidad<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Consecuencias del =
dolor<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Remedios&nbsp;contra la=20
                  tristeza<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Cuando el=20
                  dolor y la tristeza son buenos<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Las=20
                  pasiones del apetito irascible<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  esperanza<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El temor=20
                  y la audacia<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Causas=20
                  del temor<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Respecto=20
                  a la audacia<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  ira<FONT class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Causas<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Efectos=20
                  de la ira<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El aporte=20
                  de Tom=C3=A1s de Aquino a un abordaje =
ontol=C3=B3gico&nbsp;de la=20
                  afectividad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Clara=20
                  diferenciaci=C3=B3n de la afectividad humana =
respect=C3=B3 a=20
                  manifestaciones equiparables en el reino animal<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Concepto=20
                  unitario de la persona humana<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  directa relaci=C3=B3n de la esfera afectiva&nbsp;con =
la=20
                  responsabilidad moral<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Clara=20
                  delimitaci=C3=B3n de los t=C3=A9rminos afectividad=20
                  y&nbsp;coraz=C3=B3n</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" =
class=3DApple-style-span><B>Cap=C3=ADtulo=20
                  3</B> - La afectividad en un personalista: Dietrich =
von=20
                  Hildebrand<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Introducci=C3=B3n<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Denuncia=20
                  de una abstracci=C3=B3n ins=C3=B3lita<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Razones=20
                  que explican el desprestigio de lo afectivo<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El empe=C3=B1o=20
                  generalizador y la excesiva simplificaci=C3=B3n en el =
seno mismo de=20
                  la filosof=C3=ADa<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  abstraer del an=C3=A1lisis de la manifestaci=C3=B3n =
afectiva el objeto=20
                  que la motiva<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Desplazar=20
                  al =C3=A1mbito afectivo algo que no le pertenece<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Desnaturalizaci=C3=B3n =
del sentimiento=20
                  por falta de autenticidad<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Interpretaci=C3=B3n de =
la sensibilidad=20
                  del&nbsp;coraz=C3=B3n&nbsp;como sentimentalismo<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  "funcionalismo"&nbsp;como reacci=C3=B3n a la =
"afectividad=20
                  tierna"<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Las=20
                  lagunas de Von Hildebrand<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La esfera=20
                  afectiva. Niveles de afectividad en la persona<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad =
f=C3=ADsica<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad =
ps=C3=ADquica<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Sentimientos =
po=C3=A9ticos<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Sentimientos =
espirituales<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  pasi=C3=B3n&nbsp;como sentimiento degradado<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>El&nbsp;coraz=C3=B3n y =
su papel en la=20
                  esfera afectiva<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  atrofia afectiva<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La falta=20
                  de&nbsp;coraz=C3=B3n<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  tiran=C3=ADa del&nbsp;coraz=C3=B3n<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Algunas=20
                  modalidades de tiran=C3=ADa del&nbsp;coraz=C3=B3n<FONT =

                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>El&nbsp;coraz=C3=B3n&nbsp;como n=C3=BAcleo =

                  de la persona<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El amor=20
                  va por todo cuando desea que el&nbsp;coraz=C3=B3n se =
le rinda<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Lo que va=20
                  del saberse feliz al sentirse feliz<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Cuando=20
                  rendimos el&nbsp;coraz=C3=B3n<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>El&nbsp;coraz=C3=B3n y =
la libertad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>El&nbsp;concepto del =
amor en=20
                  Hildebrand<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  amor&nbsp;como respuesta al valor<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El amor=20
                  no es apetito<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  amor&nbsp;como respuesta afectiva<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Caracter=C3=ADsticas =
esenciales del=20
                  amor<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Amor y=20
                  moralidad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El gran=20
                  aporte de Hildebrand a una ontolog=C3=ADa de la =
afectividad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>El&nbsp;coraz=C3=B3n&nbsp;como n=C3=BAcleo =

                  de la persona<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>El&nbsp;coraz=C3=B3n&nbsp;como factor=20
                  perfeccionante de la libertad<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  moralidad de la esfera afectiva<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>La&nbsp;concepci=C3=B3n =
del=20
                  amor</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" =
class=3DApple-style-span><B>Cap=C3=ADtulo=20
                  4</B> - La afectividad en Leonardo Polo<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Antecedentes<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Polo: El=20
                  rescate de una afectividad desasistida<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>De=20
                  Arist=C3=B3teles al Postmodernismo. C=C3=B3mo =
lleg=C3=B3 a ser la afectividad=20
                  un timonel incompetente<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad de la mano de Polo<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Un acceso=20
                  diferente a la persona<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El ser=20
                  humano&nbsp;como&nbsp;coexistencia<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Tipos=20
                  de&nbsp;coexistencia en la persona<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Una=20
                  libertad signada por la afectividad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  sentimiento&nbsp;como h=C3=A1bito<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad y el amor<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Querer,=20
                  tender, amar<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El amor y=20
                  el amar<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El aporte=20
                  de Polo a la ontolog=C3=ADa de la afectividad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad no es aut=C3=B3noma<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad&nbsp;como fundamento primero de un =
recibir<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad no es s=C3=B3lo =
pasividad</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" =
class=3DApple-style-span><B>Cap=C3=ADtulo=20
                  5</B> - Conclusiones<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad en la filosof=C3=ADa antigua<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad en la filosof=C3=ADa cl=C3=A1sica =
medieval<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad en la filosof=C3=ADa moderna<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad en la =
filosof=C3=ADa&nbsp;contempor=C3=A1nea<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>=C2=BFQu=C3=A9 es=20
                  entonces la afectividad humana?<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Un=20
                  =C3=A1nimo&nbsp;compartimentador<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Un =C3=A1nimo=20
                  hipervalorativo de la afectividad<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El riesgo=20
                  de infravalorar lo afectivo<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  naturaleza de los sentimientos<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Sensibilidad, =
sentimiento y=20
                  subjetividad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  sensibilidad&nbsp;como percepci=C3=B3n subjetiva<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Los=20
                  sentimientos&nbsp;como&nbsp;contenidos de memoria<FONT =

                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>=C2=BFQu=C3=A9=20
                  seria entonces lo objetivo?<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Un sentir=20
                  inteligente<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Del&nbsp;conocimiento al =

                  h=C3=A1bito<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>La&nbsp;conciencia en =
Zubiri<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>El=20
                  sentimiento&nbsp;como valoraci=C3=B3n de la =
realidad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad es tambi=C3=A9n objetiva<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  afectividad&nbsp;como&nbsp;conocimiento de la propia=20
                  realidad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Las=20
                  manifestaciones afectivas no son experiencias =
mentales<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>La=20
                  atenci=C3=B3n es&nbsp;competencia de la =
afectividad<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Funciones=20
                  de la afectividad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad&nbsp;como =
camino de=20
                  acceso a s=C3=AD mismo<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad&nbsp;como=20
                  actualizaci=C3=B3n de las facultades<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad&nbsp;como =
marcador de=20
                  memoria<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad&nbsp;como=20
                  amortiguaci=C3=B3n de sensaciones<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Afectividad, obrar =
humano y=20
                  moralidad<FONT class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Raz=C3=B3n de=20
                  ser de una moralidad en la esfera afectiva<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Car=C3=A1cter=20
                  motivacional de la afectividad<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  class=3DApple-tab-span></SPAN>Colof=C3=B3n<FONT=20
                  class=3DApple-style-span face=3D"'Times New =
Roman'"><SPAN=20
                  style=3D"FONT-SIZE: medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre" =
class=3DApple-tab-span></SPAN>Din=C3=A1mica=20
                  tendencial de la afectividad<FONT =
class=3DApple-style-span=20
                  face=3D"'Times New Roman'"><SPAN style=3D"FONT-SIZE: =
medium"=20
                  class=3DApple-style-span><BR></SPAN></FONT><SPAN=20
                  style=3D"WHITE-SPACE: pre"=20
                  =
class=3DApple-tab-span></SPAN>Finalmente</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small"=20
                  =
class=3DApple-style-span>Bibliograf=C3=ADa</SPAN></FONT></P>
                  <P style=3D"MARGIN-BOTTOM: 6pt" =
class=3DMsoNormal><FONT=20
                  class=3DApple-style-span face=3DVerdana><SPAN=20
                  style=3D"FONT-SIZE: small" =
class=3DApple-style-span>Descripci=C3=B3n de=20
                  t=C3=A9rminos</SPAN></FONT></P>
                  <P></P></FONT>
                  <P></P></SPAN>
                  <P></P></TD></TR></TBODY></TABLE></DIV>
            <DIV style=3D"DISPLAY: none; VISIBILITY: hidden"=20
            id=3DTabContainerPublicacion_tbAutores =
class=3Dajax__tab_panel>
            <P class=3Dtitulo1>Autor(es)</P>
            <DIV>
            <TABLE=20
            style=3D"BORDER-RIGHT-WIDTH: 0px; WIDTH: 100%; =
BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" =

            id=3DTabContainerPublicacion_tbAutores_GridViewAutor =
border=3D0=20
            rules=3Dall cellSpacing=3D1 cellPadding=3D1 align=3Dcenter>
              <TBODY>
              <TR style=3D"BACKGROUND-COLOR: white">
                <TD>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
                  align=3Dcenter>
                    <TBODY>
                    <TR>
                      <TD vAlign=3Dtop>
                        <DIV align=3Dcenter><IMG=20
                        style=3D"BORDER-RIGHT-WIDTH: 0px; WIDTH: 100px; =
BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 100px; =
BORDER-LEFT-WIDTH: 0px"=20
                        =
id=3DTabContainerPublicacion_tbAutores_GridViewAutor_ctl02_imgFoto=20
                        =
src=3D"http://jabbah.unisabana.edu.co/olis/ModPublicaciones/Imagenes/Auto=
r_99.jpg">=20
                        <BR></DIV></TD></TR>
                    <TR>
                      <TD class=3Dtexto vAlign=3Dtop =
align=3Dmiddle><STRONG><SPAN=20
                        =
id=3DTabContainerPublicacion_tbAutores_GridViewAutor_ctl02_lblAutor>Jes=C3=
=BAs=20
                        =C3=81lvaro Sierra Londo=C3=B1o</SPAN></STRONG> =
</TD></TR>
                    <TR>
                      <TD vAlign=3Dtop colSpan=3D3 align=3Dmiddle><SPAN=20
                        class=3Dtexto><SPAN=20
                        =
id=3DTabContainerPublicacion_tbAutores_GridViewAutor_ctl02_Label2></SPAN>=
<BR><A=20
                        =
id=3DTabContainerPublicacion_tbAutores_GridViewAutor_ctl02_linkEmail=20
                        =
href=3D"mailto:jesus.sierra@unisabana.edu.co">jesus.sierra@unisabana.edu.=
co</A></SPAN>=20
                      </TD></TR></TBODY></TABLE>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D5 =
align=3Dcenter>
                    <TBODY>
                    <TR>
                      <TD vAlign=3Dtop>
                        <DIV class=3Dtexto align=3Dleft><SPAN id=3DSpan1 =

                        class=3Dtexto><SPAN=20
                        =
id=3DTabContainerPublicacion_tbAutores_GridViewAutor_ctl02_Label1>
                        <P align=3Djustify></P>
                        <P align=3Djustify><FONT =
class=3DApple-style-span=20
                        face=3DVerdana><SPAN style=3D"FONT-SIZE: small"=20
                        class=3DApple-style-span>Jes=C3=BAs =C3=81lvaro =
Sierra Londo=C3=B1o es=20
                        M=C3=A9dico Cirujano egresado de la Universidad =
de Antioquia,=20
                        Medell=C3=ADn, Colombia; M=C3=A9dico Pediatra =
egresado del C.E.S.=20
                        (Centro de Estudios de Salud) de Medell=C3=ADn, =
Colombia;=20
                        Orientador Familiar egresado de la Universidad =
de=20
                        Navarra, Espa=C3=B1a; Especialista en =
Educaci=C3=B3n y Asesor=C3=ADa=20
                        Familiar de la Universidad de La Sabana, =
Ch=C3=ADa, Colombia,=20
                        Mag=C3=ADster en Filosof=C3=ADa de la =
Universidad de Navarra, y=20
                        aspirante al T=C3=ADtulo de Doctorado en =
Filosof=C3=ADa,=20
                        Universidad de Navarra.&nbsp;Es Profesor =
Investigador=20
                        del Instituto de la Familia de la Universidad de =
La=20
                        Sabana, tutor del Curso B=C3=A1sico de =
Orientaci=C3=B3n Familiar;=20
                        docente de Semiolog=C3=ADa de la Universidad =
Pontificia=20
                        Bolivariana, Medell=C3=ADn, Colombia; docente de =
Pediatr=C3=ADa=20
                        del Centro de Estudios de la Salud, Santander,=20
                        Colombia.&nbsp;Entre sus publicaciones se =
encuentran:=20
                        Preguntado por el Coraz=C3=B3n (Minos - =
Universidad de La=20
                        Sabana, 2009), La Afectividad. Eslab=C3=B3n =
perdido de la=20
                        educaci=C3=B3n (EUNSA - Universidad de La =
Sabana, 2008),=20
                        Colecci=C3=B3n La Aventura de Educar, tomos =
Adolescencia,=20
                        Preescolar y Pubertad (1997 y 1998), =
Educaci=C3=B3n de la=20
                        Afectividad (Universidad de La Sabana, =
1998).&nbsp;Ha=20
                        dictado conferencias en los siguientes =
pa=C3=ADses de=20
                        Am=C3=A9rica: Uruguay, M=C3=A9xico, Ecuador, =
Brasil, Colombia,=20
                        Argentina, Panam=C3=A1 y =
Per=C3=BA.</SPAN></FONT></P>
                        =
<P></P></SPAN></SPAN></DIV></TD></TR></TBODY></TABLE>
                  <P align=3Dcenter><IMG=20
                  =
src=3D"http://jabbah.unisabana.edu.co/Publicaciones/imagenes/barra_catalo=
go.gif"=20
                  width=3D"100%" height=3D5>=20
            =
</P></TD></TR></TBODY></TABLE></DIV></DIV></DIV></DIV></TD></TR></TBODY><=
/TABLE></TD></TR></TBODY></TABLE>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.Application.initialize();
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.TabPanel, =
{"headerTab":$get("__tab_TabContainerPublicacion_tpSinopsis"),"ownerID":"=
TabContainerPublicacion"}, null, {"owner":"TabContainerPublicacion"}, =
$get("TabContainerPublicacion_tpSinopsis"));
});
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.TabPanel, =
{"headerTab":$get("__tab_TabContainerPublicacion_tbContenido"),"ownerID":=
"TabContainerPublicacion"}, null, {"owner":"TabContainerPublicacion"}, =
$get("TabContainerPublicacion_tbContenido"));
});
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.TabPanel, =
{"headerTab":$get("__tab_TabContainerPublicacion_tbAutores"),"ownerID":"T=
abContainerPublicacion"}, null, {"owner":"TabContainerPublicacion"}, =
$get("TabContainerPublicacion_tbAutores"));
});
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.TabContainer, =
{"activeTabIndex":0,"clientStateField":$get("TabContainerPublicacion_Clie=
ntState")}, null, null, $get("TabContainerPublicacion"));
});
//]]>
</SCRIPT>
</FORM></BODY></HTML>

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://jabbah.unisabana.edu.co/olis/ModPublicaciones/Imagenes/Imagen_200.jpg

/9j/4AAQSkZJRgABAgEBLAEsAAD/4RSARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAbAAAAcgEyAAIAAAAUAAAAjYdp
AAQAAAABAAAApAAAANAAAAEsAAAAAQAAASwAAAABQWRvYmUgUGhvdG9zaG9wIENTIFdpbmRvd3MA
MjAwOTowNzoxMSAyMTo1NjowNwAAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAlqADAAQAAAAB
AAAA8AAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABNKAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAQBIAEgAAP/tAAxBZG9iZV9DTQAC/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAoABkAwEiAAIRAQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9NEbm/EL5pcTud/Wd/1RX0u3Rw+IXzQ76Tv6zv8AqiklsY2f
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
/wA9+kZbVT632b9B63+G9Aa31ZABXTb/AJ3Zq39T6P0zpfVGO6W1r8N9OJ1PDa5pa6q0Nqw8n1j7
r8W2m3/Q/a/U9T1Kt/vVvBzG4GQ7ptPSPsGRlWvGFSLAW5DKK62uzb7q22/ZPTq9Cmzf613qf6b9
IsrrvS+oZOD9YM9mPc5/UrcGnCxW1k2mrEsrc/IfUzc6v1v09jG2+m9lNdfqfpLPTW51zM6lXf08
YmNkZHT8m13277KIvA2/qrIsdS6im20/rNv6PYyvYlZ8U8MdNBrfX+qv03rOd1LGxrqMANdc/Iry
W2XQyl+O/wCzlrbmU2faPWt/m/0dfsVej62MtwnZn2UubbmfYOmtrs3jLtk1+pVYa6/RxG2Mt35D
/wDBU2/8W/Kp/bWP9XLui4+BlYmVdmX45ym176q6Mi2zIuzKDRussZTiP9Op+yv9Ys/RK7mYj93T
K+k4V32b6vWU2tY+t1Zsqc2zFvpxftAq9fJx6P1qz/Sv/R/zqGquEduvduYubX0qy/prsaMt1NvU
GOY8EZbgf1x/rWso2ZbbSz2P/Reh6Po/oWenULH+teRaek3XdOfRgdZ2Mqyja1xbfaw3V0nHDN7q
X7djcj2f8UnzsTIz+rt6gKrG4fTMLIrpc5jm2XX5Ia1zKsZzfW9Oimv6e333W/ov5uxUTiZo+r31
So+zXethZWI/LrFTy6ptNdtV77W7fbsfY3+v/g0tVUDuNTu9dKSUapJzEtrPkknSSU//1vUBwkkO
EklOT1jI6pVaG4Xq7Dj2u/RV7/0wLfs7Z9G1v7+7dZV/1xPk5/U6sq0V4nqY7HgNc1tpcWw1zrBs
Gx233fQWpqmMpJcKzqfWyxu3Ce1z3Mc0MY+fa5psx7DaNtf2lm/9Y/m6P+M9JSy+o9YYzHfThvc4
73WBrHlrwPVpZvG112Oz+YzfRd+tWfzFX0LFtJtUlW5hzOoVdQspNFlmO6XNeGOLWbaWWba7Bs9X
fkttr9OzY/1LP53/AAar0dT625zn24T2seGmDXYRX/NVv2VBvq27X2W5Fnu32Vfo6P6NattKUlOO
3N696ZnGNjxG4hprMtLd9dbXB7f0jX+y39LX+jus+gg/tLrZrfW3Gv3OeSy/0XNLQ6xxbX6bp3M9
HZT6n+B/nLd/010EppSVfgo8mOJ0SSTJIVokmnWEklP/1/UBokkoW2101vuteK6q2l73uMBrWjc5
7nfmta1JTIpioMvote+uuxr31xva0glshr27o/kWVv8A+uKZBSUsmTpklNXNozbnUnFyRjem4usD
mbw8EQ1sS36KB9k62amg59QuB3bm0kMiHNLHV7/e3d6bvpLQKx/+eP1aHUz0k5zft7bTQaNlsiwa
Or3+l6f/AE0lNv7L1mDGdUTPtJpiAQd25jXNbZ7tnpqLMPrbbA5/Ua3MDwXMFEAt9rSz6ft+ju/4
x6JT1npVzG2MyqtrtBudsOoLhLbdj27ms+k5Fd1Hp7ecmn4eo0nnb9Frt30vakpsHySgqu3qWA5r
HNyaiLLPRrIePdZL6/RZr9PfVb/22jzKSlo93ySSSSU//9D1BByqvVp9IyG2ODHbedp0d4/9L2Jx
kUf6RmvHub/epevT++3/ADh/ekpw8j6tGHNx3NLG7fSba524e0VPd6rW722VsY37LZu/Qo/Sel3Y
7r35LBWbdkCt5AJAdvc5lbg1v0/zVqG+n/SM/wA4f3qJyKf9Iz/Ob/ekm9KoLtaGtDW8DiST+Lvc
nUPXp/0jP85v96Xr0f6Vn+c3+9JDIhecf80frN/z4dntxGnA/aLs5uUbWBhZBcytzZde17v5p36D
/wAD969E+0Uf6Vkd/e3/AMkmGTjz/O1z/Xb/AOSSNftSCRdddHlcfoHUTQ05nSqHPaa6nMrtk2Y7
mXDIrsF97qa9j31VV/pLrvT/AMIh2dA6jtxbW9CxJIdZl4rbtm242WMLqMj1fbW7Fse/0mfo/wBL
+kXYfaKP9Iz/ADm/3pfaKP8ASM/zm/3o8SHj8XonVcXIZkt6FQ7JoFZZe3KcNxZ6m39E7J2VbXmt
/p/pav5xdbiOyH4tL8qoUZD62m+kODgywj9JW2xste1j/wA9S+043+mr/wA9v/kkjlYw5ur/AM9v
/kkCVJI1SQPtuHz9oqiYn1Gc/u/SSSU//9n/7RlQUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAA
AAAAAAAAAAAAAAAAAAAAOEJJTQPtAAAAAAAQASwAAAABAAIBLAAAAAEAAjhCSU0EJgAAAAAADgAA
AAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkA
AAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABI
AC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUA
AAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA
/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/
////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklN
BB4AAAAAAAQAAAAAOEJJTQQaAAAAAANvAAAABgAAAAAAAAAAAAAA8AAAAJYAAAAdAHAAcgBlAGcA
dQBuAHQAYQBuAGQAbwAgAHAAbwByACAAZQBsACAAYwBvAHIAYQB6AG8AbgAxADIAMQAAAAEAAAAA
AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAlgAAAPAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0
MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAPAAAAAA
UmdodGxvbmcAAACWAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAH
c2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGlj
ZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1n
IAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0
bG9uZwAAAAAAAAAAQnRvbWxvbmcAAADwAAAAAFJnaHRsb25nAAAAlgAAAAN1cmxURVhUAAAAAQAA
AAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAA
AAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWdu
ZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VT
bGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0Nv
bG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAA
AAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAA
AAAADAAAAAE/8AAAAAAAADhCSU0EEQAAAAAAAQEAOEJJTQQUAAAAAAAEAAAAAThCSU0EDAAAAAAT
ZgAAAAEAAABkAAAAoAAAASwAALuAAAATSgAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/tAAxBZG9i
ZV9DTQAC/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEM
DAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQR
DAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAoABkAwEiAAIR
AQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAA
AAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIj
JBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU
5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITES
BEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi
8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMR
AD8A9NEbm/EL5pcTud/Wd/1RX0u3Rw+IXzQ76Tv6zv8AqiklsY2fk0QwWuFQ7A8T4K47PzCQPVdP
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
1ZABXTb/AJ3Zq39T6P0zpfVGO6W1r8N9OJ1PDa5pa6q0Nqw8n1j7r8W2m3/Q/a/U9T1Kt/vVvBzG
4GQ7ptPSPsGRlWvGFSLAW5DKK62uzb7q22/ZPTq9Cmzf613qf6b9IsrrvS+oZOD9YM9mPc5/UrcG
nCxW1k2mrEsrc/IfUzc6v1v09jG2+m9lNdfqfpLPTW51zM6lXf08YmNkZHT8m13277KIvA2/qrIs
dS6im20/rNv6PYyvYlZ8U8MdNBrfX+qv03rOd1LGxrqMANdc/IryW2XQyl+O/wCzlrbmU2faPWt/
m/0dfsVej62MtwnZn2UubbmfYOmtrs3jLtk1+pVYa6/RxG2Mt35D/wDBU2/8W/Kp/bWP9XLui4+B
lYmVdmX45ym176q6Mi2zIuzKDRussZTiP9Op+yv9Ys/RK7mYj93TK+k4V32b6vWU2tY+t1Zsqc2z
FvpxftAq9fJx6P1qz/Sv/R/zqGquEduvduYubX0qy/prsaMt1NvUGOY8EZbgf1x/rWso2ZbbSz2P
/Reh6Po/oWenULH+teRaek3XdOfRgdZ2Mqyja1xbfaw3V0nHDN7qX7djcj2f8UnzsTIz+rt6gKrG
4fTMLIrpc5jm2XX5Ia1zKsZzfW9Oimv6e333W/ov5uxUTiZo+r31So+zXethZWI/LrFTy6ptNdtV
77W7fbsfY3+v/g0tVUDuNTu9dKSUapJzEtrPkknSSU//1vUBwkkOEklOT1jI6pVaG4Xq7Dj2u/RV
7/0wLfs7Z9G1v7+7dZV/1xPk5/U6sq0V4nqY7HgNc1tpcWw1zrBsGx233fQWpqmMpJcKzqfWyxu3
Ce1z3Mc0MY+fa5psx7DaNtf2lm/9Y/m6P+M9JSy+o9YYzHfThvc473WBrHlrwPVpZvG112Oz+Yzf
Rd+tWfzFX0LFtJtUlW5hzOoVdQspNFlmO6XNeGOLWbaWWba7Bs9Xfkttr9OzY/1LP53/AAar0dT6
25zn24T2seGmDXYRX/NVv2VBvq27X2W5Fnu32Vfo6P6NattKUlOO3N696ZnGNjxG4hprMtLd9dbX
B7f0jX+y39LX+jus+gg/tLrZrfW3Gv3OeSy/0XNLQ6xxbX6bp3M9HZT6n+B/nLd/010EppSVfgo8
mOJ0SSTJIVokmnWEklP/1/UBokkoW2101vuteK6q2l73uMBrWjc57nfmta1JTIpioMvote+uuxr3
1xva0glshr27o/kWVv8A+uKZBSUsmTpklNXNozbnUnFyRjem4usDmbw8EQ1sS36KB9k62amg59Qu
B3bm0kMiHNLHV7/e3d6bvpLQKx/+eP1aHUz0k5zft7bTQaNlsiwaOr3+l6f/AE0lNv7L1mDGdUTP
tJpiAQd25jXNbZ7tnpqLMPrbbA5/Ua3MDwXMFEAt9rSz6ft+ju/4x6JT1npVzG2MyqtrtBudsOoL
hLbdj27ms+k5Fd1Hp7ecmn4eo0nnb9Frt30vakpsHySgqu3qWA5rHNyaiLLPRrIePdZL6/RZr9Pf
Vb/22jzKSlo93ySSSSU//9D1BByqvVp9IyG2ODHbedp0d4/9L2JxkUf6RmvHub/epevT++3/ADh/
ekpw8j6tGHNx3NLG7fSba524e0VPd6rW722VsY37LZu/Qo/Sel3Y7r35LBWbdkCt5AJAdvc5lbg1
v0/zVqG+n/SM/wA4f3qJyKf9Iz/Ob/ekm9KoLtaGtDW8DiST+LvcnUPXp/0jP85v96Xr0f6Vn+c3
+9JDIhecf80frN/z4dntxGnA/aLs5uUbWBhZBcytzZde17v5p36D/wAD969E+0Uf6Vkd/e3/AMkm
GTjz/O1z/Xb/AOSSNftSCRdddHlcfoHUTQ05nSqHPaa6nMrtk2Y7mXDIrsF97qa9j31VV/pLrvT/
AMIh2dA6jtxbW9CxJIdZl4rbtm242WMLqMj1fbW7Fse/0mfo/wBL+kXYfaKP9Iz/ADm/3pfaKP8A
SM/zm/3o8SHj8XonVcXIZkt6FQ7JoFZZe3KcNxZ6m39E7J2VbXmt/p/pav5xdbiOyH4tL8qoUZD6
2m+kODgywj9JW2xste1j/wA9S+043+mr/wA9v/kkjlYw5ur/AM9v/kkCVJI1SQPtuHz9oqiYn1Gc
/u/SSSU//9k4QklNBCEAAAAAAFMAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABv
AHAAAAASAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTAAAAAQA4QklNBAYAAAAA
AAcACAAAAAEBAP/hGT9odHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdp
bj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEgeG1sbnM6
eD0nYWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J1hNUCB0b29sa2l0IDMuMC0yOCwgZnJhbWV3b3Jr
IDEuNic+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIycgeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9iZS5jb20vaVgvMS4wLyc+Cgog
PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6YTA3MTIxMTItNmU4ZC0xMWRlLTkxZjMt
Y2FlYmQ1ODkxNmU0JwogIHhtbG5zOmV4aWY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAv
Jz4KICA8ZXhpZjpDb2xvclNwYWNlPjQyOTQ5NjcyOTU8L2V4aWY6Q29sb3JTcGFjZT4KICA8ZXhp
ZjpQaXhlbFhEaW1lbnNpb24+MTUwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICA8ZXhpZjpQaXhl
bFlEaW1lbnNpb24+MjQwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KIDwvcmRmOkRlc2NyaXB0aW9u
PgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmEwNzEyMTEyLTZlOGQtMTFkZS05
MWYzLWNhZWJkNTg5MTZlNCcKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEu
My8nPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1
aWQ6YTA3MTIxMTItNmU4ZC0xMWRlLTkxZjMtY2FlYmQ1ODkxNmU0JwogIHhtbG5zOnBob3Rvc2hv
cD0naHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyc+CiAgPHBob3Rvc2hvcDpIaXN0
b3J5PjwvcGhvdG9zaG9wOkhpc3Rvcnk+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2Ny
aXB0aW9uIHJkZjphYm91dD0ndXVpZDphMDcxMjExMi02ZThkLTExZGUtOTFmMy1jYWViZDU4OTE2
ZTQnCiAgeG1sbnM6dGlmZj0naHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8nPgogIDx0aWZm
OlhSZXNvbHV0aW9uPjMwMC8xPC90aWZmOlhSZXNvbHV0aW9uPgogIDx0aWZmOllSZXNvbHV0aW9u
PjMwMC8xPC90aWZmOllSZXNvbHV0aW9uPgogIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6
UmVzb2x1dGlvblVuaXQ+CiAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4K
IDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmEw
NzEyMTEyLTZlOGQtMTFkZS05MWYzLWNhZWJkNTg5MTZlNCcKICB4bWxuczp4YXA9J2h0dHA6Ly9u
cy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4YXA6Q3JlYXRlRGF0ZT4yMDA5LTA3LTExVDIxOjU2
OjA3LTA1OjAwPC94YXA6Q3JlYXRlRGF0ZT4KICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wNy0xMVQy
MTo1NjowNy0wNTowMDwveGFwOk1vZGlmeURhdGU+CiAgPHhhcDpNZXRhZGF0YURhdGU+MjAwOS0w
Ny0xMVQyMTo1NjowNy0wNTowMDwveGFwOk1ldGFkYXRhRGF0ZT4KICA8eGFwOkNyZWF0b3JUb29s
PkFkb2JlIFBob3Rvc2hvcCBDUyBXaW5kb3dzPC94YXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNj
cmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDphMDcxMjExMi02ZThk
LTExZGUtOTFmMy1jYWViZDU4OTE2ZTQnCiAgeG1sbnM6c3RSZWY9J2h0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMnCiAgeG1sbnM6eGFwTU09J2h0dHA6Ly9ucy5h
ZG9iZS5jb20veGFwLzEuMC9tbS8nPgogIDx4YXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBl
PSdSZXNvdXJjZSc+CiAgIDxzdFJlZjppbnN0YW5jZUlEPnV1aWQ6YTA3MTIxMGUtNmU4ZC0xMWRl
LTkxZjMtY2FlYmQ1ODkxNmU0PC9zdFJlZjppbnN0YW5jZUlEPgogICA8c3RSZWY6ZG9jdW1lbnRJ
RD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YTA3MTIxMGQtNmU4ZC0xMWRlLTkxZjMtY2FlYmQ1ODkx
NmU0PC9zdFJlZjpkb2N1bWVudElEPgogIDwveGFwTU06RGVyaXZlZEZyb20+CiAgPHhhcE1NOkRv
Y3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEwNzEyMTExLTZlOGQtMTFkZS05MWYzLWNh
ZWJkNTg5MTZlNDwveGFwTU06RG9jdW1lbnRJRD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6
RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmEwNzEyMTEyLTZlOGQtMTFkZS05MWYzLWNhZWJk
NTg5MTZlNCcKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nPgog
IDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogPC9yZGY6RGVzY3JpcHRpb24+Cgo8
L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0ndyc/Pv/uAA5BZG9iZQBkQAAAAAH/2wCEAAEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMD
AwMDAwMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDA//AABEIAPAAlgMBEQACEQEDEQH/3QAEABP/xAGiAAAABgIDAQAAAAAAAAAA
AAAHCAYFBAkDCgIBAAsBAAAGAwEBAQAAAAAAAAAAAAYFBAMHAggBCQAKCxAAAgEDBAEDAwIDAwMC
Bgl1AQIDBBEFEgYhBxMiAAgxFEEyIxUJUUIWYSQzF1JxgRhikSVDobHwJjRyChnB0TUn4VM2gvGS
okRUc0VGN0djKFVWVxqywtLi8mSDdJOEZaOzw9PjKThm83UqOTpISUpYWVpnaGlqdnd4eXqFhoeI
iYqUlZaXmJmapKWmp6ipqrS1tre4ubrExcbHyMnK1NXW19jZ2uTl5ufo6er09fb3+Pn6EQACAQMC
BAQDBQQEBAYGBW0BAgMRBCESBTEGACITQVEHMmEUcQhCgSORFVKhYhYzCbEkwdFDcvAX4YI0JZJT
GGNE8aKyJjUZVDZFZCcKc4OTRnTC0uLyVWV1VjeEhaOzw9Pj8ykalKS0xNTk9JWltcXV5fUoR1dm
OHaGlqa2xtbm9md3h5ent8fX5/dIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra
6vr/2gAMAwEAAhEDEQA/AN5Oop4TGnCljqYt9TfQfpb6k39+DGvXgueHWlR/wsXXw9V/BArYX7Q7
xUn6f8wdsU8gc2/r7fiLVJFenkFFNDTuH+XrRNNUfo1vT+VJF7G34/r/AMR7dGqgAY6j6/Z1oACp
p0L/AFz3vv7raAYvAZYwYSSvfITUL08c3jnmjSKoen8voTzLEpZf0lhfgk3KNw2a03JvFkFJwKBv
8/7ehLy9zRd7FWKNUksy+oqwBp5Er6V/nTo5mH+TPYL4igr6fPYusgqkJWofERmoTRGYpIZhG0YD
00ZCMDyB+fz7ANxtgS4lt5I2DL5dtM8CCeNep2sd2sbvbbe+jjgkhlBzpYMpHEEKcFcAjptr/kp2
PNUwVNBmMYFF9Ui4gNDZSwfXFVTTRBvVa9hcW+vu6bZEtBNBRqf0Qf5dJ5dwiMgNmkGgk1IVqY8s
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
6+qt6kCUV634M2D4Z6//2Q==

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://jabbah.unisabana.edu.co/olis/ModPublicaciones/Imagenes/Autor_99.jpg

/9j/4AAQSkZJRgABAQEAYABgAAD/4RIuRXhpZgAASUkqAAgAAAAFAA8BAgAGAAAASgAAABABAgAO
AAAAUAAAADIBAgAUAAAAXgAAABMCAwABAAAAAgAk+mmHBAABAAAAcgAAAAAAAABDYW5vbgBDYW5v
biBFT1MgMzBEADIwMDg6MDE6MjkgMjI6NDg6NTMAGwCaggUAAQAAALwBAACdggUAAQAAAMQBAAAi
iAMAAQAAAAIAAAAniAMAAQAAAGQAAAAAkAcABAAAADAyMjEDkAIAFAAAAMwBAAAEkAIAFAAAAOAB
AAABkQcABAAAAAECAwABkgoAAQAAAPQBAAACkgUAAQAAAPwBAAAEkgoAAQAAAAQCAAAHkgMAAQAA
AAUAAAAJkgMAAQAAAAkAAAAKkgUAAQAAAAwCAAB8kgcA+g4AABQCAACGkgcACAEAAA4RAAAAoAcA
BAAAADAxMDABoAMAAQAAAAEAAAACoAMAAQAAACAJAAADoAMAAQAAALANAAAOogUAAQAAABYSAAAP
ogUAAQAAAB4SAAAQogMAAQAAAAIAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAEA
AAAGpAMAAQAAAAAAAAAAAAAAAQAAADwAAAA4AAAACgAAADIwMDg6MDE6MjkgMjI6NDg6NTMAMjAw
ODowMToyOSAyMjo0ODo1MwAq6AUAAAABAIr4BAAAAAEAAAAAAAMAAAA3AAAAAQAAAB0AAQADAC4A
AADUAwAAAgADAAQAAAAwBAAAAwADAAQAAAA4BAAABAADACIAAABABAAABgACACAAAACEBAAABwAC
ACAAAACkBAAACQACACAAAADEBAAADAAEAAEAAAA8JdU8DQAHAAAEAADkBAAADwADABQAAAAcCQAA
EAAEAAEAAAA0AgCAEgADABwAAADkCAAAEwADAAQAAABECQAAFQAEAAEAAAAAAACgGQADAAEAAAAB
AAAAgwAEAAEAAAAAAAAAkwADABAAAABMCQAAlQACAEAAAABsCQAAlgACABAAAACsCQAAoAADAA4A
AAC8CQAAqgADAAUAAADYCQAAtAADAAEAAAABAAAA0AAEAAEAAAAAAAAA4AADABEAAADiCQAAAUAD
ABwDAAAECgAACEADAAMAAAA8EAAACUADAAMAAABCEAAAEEACACAAAABIEAAAEUAHAPwAAABoEAAA
AAAAAFwAAgAAAAIAAgAAAAAAAAAAAAEAAAABAAAAAAAAAAIA/38DAAIAAAABAP////83ABIAAQCf
AEABjAAIQAAAAAAAAP////8AAAAAAAAAAP//AAD/fwAA/3//////AgA3AIsDXQIAAGQAAAAAAEQA
AACgADQAoADAAAAABQADAAAACAAIAJoA//8AAAAAAAAAAAEAAAAAAKAAwABlAAAAAAD8AAMA//8A
AAAAAAAAAAAAQ2Fub24gRU9TIDMwRAAAAAAAAAAAAAAAAAAAAAAAAABGaXJtd2FyZSAxLjAuNAAA
AAAAAAAAAAAAAAAAAAAAAHVua25vd24AAQAAAA0AAAABAAAADwAAAAEAAAAUAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQCwDSAJsA0g
CU4ATgAIANX9OwJd/AgAswPV/TsCCAD4AQ4BDgEEAAQABAD6/vr+EP43AP//KAAAAQACAAMABAAF
AAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAAnwAHAHAAIABelqAAAAAAAAAA/////wAAAAAA
AAAAAAAAAAAAAABFRi1TMTgtNTVtbSBmLzMuNS01LjYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAARjAyNjIyOTEAAAAAAAAAABwAAAACAAAAAAAAAAAAAAAFgFAUggAA
AAAAAAAKAHUDAAQABNoBIgAMDjgJAQABAFQAEwADDjIJAAAAAAAAAAAAAAAAAAAAAAEAWAMABAAE
ZwFHAgAEAAQTAo0BAAQABAYD/wAsASwBZwC9AEgBRwGkAIUAUwFSAfkAAgABAI8AjQCRAAAA2wHl
A+MDRAL1AD8APwAGANMBKgMrA3kAHwDNAMsAgQHSAfMD7QNzAt8ANQA2AAQAwwEjAyMDfgAVAMgA
xwCWAaAIAAQABEsFshhyCAAEAAR+BUkXcAgBBP4DfAVJF+AHAAQABBEGUBQVCQAEAAT/BFgbfwgA
BAAEfAVwF8cFOwQ7BCkKgAz/BhEEEQQ0CagO4AcABAAEEQZQFKAIAAQABEsFshj/HwUEBQQAAkoP
/x8FBAUEAAJKD/8fBQQFBAACSg/gBwAEAAQRBlAUn/6KAdoDlCqy/pIBvgMQJ+L+pgF6A2wgHP/D
ATQDWBta/+IB6wJwF3n/9AHKAuAVnv8IAqMCUBTU/ykCbgJcEhQAVQI2AmgQUwCIAgYC2A6LALYC
2wGsDc4A7gKqAYAM/gAeA40BuAszAVgDbAHwCq0B8gMzAWAJ9AESCCQIgAB/AIAAfwAAAAAAAAAd
AAAAJgA8ADUAJQAxADcAQwBFADgALwAoAAAAAAAVACQAMQAwADIAMgA0ADcANwAyAC8ALgAoAB8A
AAAAABUAPwA7ADQAOAA6ADcAKwAhACIAHQAeABsAJACEAHIASgBGAEIARABFAD0ALQA5ADYAHAAe
AB8AIgAfAAAAAAAAAC4AAAA4AFQAUwA2AEIASQBWAFcARQA2ACoAAAAAACkARwBaAFcAXABaAFYA
VABQAEUAPgA7ADEAJAAAAAAALgB8AHIAZABpAGoAYABIADYANAAuACwAIgArAEwBFAGuAI0AgQCA
AIIAcgBRAF8AWgAuAC0AMQAvACkAAAAAAAAAMgAAADoAXABTADcARABKAFYAVwBFADYAJwAAAAAA
KgBHAFoAVgBZAFcAVQBUAE8ARAA+ADoAMAAfAAAAAAAvAHwAcQBiAGgAaABeAEYAMwAxACkAKgAh
ACcAVQEdAbAAjgCCAIEAggBxAFAAXwBZACsALAAvAC0AJAAAAAAAAAAmAAAAKQA6ADgAIQAnACkA
LgAtACMAGgASAAAAAAAkADIAPQA6ADsAOAAzADAALAAkAB8AHAAWAA8AAAAAACYAVQBLAEAAQQBA
ADgAKAAdABoAFgAVAA4ADwAbAeUAiABfAFIATwBPAEMALgAwACwAFQATABQAEAANAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAABAAAAAIAAQADACMAHgBpAHsBSQFjAdwFBAAAAAAABABuAF4AVQBqAF4AXgHt
AFoBxAEPAR0BywQGAAAAAAACALEBEAFeAV4BCQGgAVAANwAaAAYAAQATAAEADwAUAEIAOArBAicH
6gs1BBkEcwHqAE4AEAAPAD4ABADAAKkADxhzAgAAXgQABAAEtAqWD/caAQCNEDoAFgGzEHsPy///
/lgPqA9iEAAPFADo/zwADxA9ENYPEwD9/83/oQ8RERcAwP/EDysQAwAzAAAAEQC8rAAAAACz/yg+
AAAAAAAAlgCg/6xxAABdAQAAeQEAAAAAAAAAAAAAAAEAAGB3AAAoiAAAu4YAALY+AAQABAUAAAQA
AAEAAAAAAP///x8AAv8fAAIABAAE4gK2AQACswKjAXkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQCBAIEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJ
SSoAcgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/imagenes/barra_catalogo.gif

R0lGODlhkAEFAIAAAP///7h1fiH5BAAHAP8ALAAAAACQAQUAAAJEhI+py+0Po5y02ouz3rz7D4bi
SJbmiabqigXuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqnQJb1is1qt9wuogAAOw==

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/estilos/estilos.css

BODY {
	MARGIN-TOP: 0px; MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px
}
.trebuchet_8_puntos_blanco {
	FONT-FAMILY: "Trebuchet MS"; COLOR: #ffffff; FONT-SIZE: 8pt
}
.borde_total_azul {
	BORDER-BOTTOM: #001a44 1px solid; BORDER-LEFT: #001a44 1px solid; =
BORDER-TOP: #001a44 1px solid; BORDER-RIGHT: #001a44 1px solid
}
.trebuchet_9_puntos {
	FONT-FAMILY: "Trebuchet MS"; COLOR: #000000; FONT-SIZE: 8pt
}
.verdana_9_pixeles {
	FONT-FAMILY: "Verdana"; COLOR: #000000; FONT-SIZE: 10px
}
.verdana_8_pixeles {
	FONT-FAMILY: "Verdana"; COLOR: #000000; FONT-SIZE: 10px
}
.trebuchet_14_puntos {
	FONT-FAMILY: "Trebuchet MS"; COLOR: #001a44; FONT-SIZE: 14pt; =
FONT-WEIGHT: normal
}
.texto {
	LINE-HEIGHT: 15pt; FONT-FAMILY: "Verdana"; COLOR: #000000; FONT-SIZE: =
9pt
}
.titulo1 {
	FONT-FAMILY: "Verdana"; COLOR: #990000; FONT-SIZE: 11pt; FONT-WEIGHT: =
bold
}
.verdana_8_pixeles_rojo {
	FONT-FAMILY: "Verdana"; COLOR: #990000; FONT-SIZE: 10px; FONT-WEIGHT: =
bold
}
.verdana_8_pixeles_link {
	FONT-FAMILY: "Verdana"; COLOR: #990000; FONT-SIZE: 10px; =
TEXT-DECORATION: none
}
A:link {
	COLOR: #990000; TEXT-DECORATION: none
}
A:visited {
	COLOR: #990000; TEXT-DECORATION: none
}
A:hover {
	TEXT-DECORATION: underline
}
A:active {
	TEXT-DECORATION: none
}
.style1 {
	COLOR: #001a44
}
.style2 {
	COLOR: #990000
}
.style3 {
	COLOR: #ffffff
}
.style5 {
	FONT-FAMILY: "Verdana"
}

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/WebResource.axd?d=Tf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNquloXMV_uN6GUYufvkGGHGJLYmMxwG8gH_uWIIH6vfseA2&t=633899266740000000

.ajax__tab_default .ajax__tab_header {
	WHITE-SPACE: normal !important
}
.ajax__tab_default .ajax__tab_outer {
	DISPLAY: inline-block
}
.ajax__tab_default .ajax__tab_inner {
	DISPLAY: inline-block
}
.ajax__tab_default .ajax__tab_tab {
	TEXT-ALIGN: center; DISPLAY: inline-block; OVERFLOW: hidden
}
.ajax__tab_xp .ajax__tab_header {
	FONT-FAMILY: verdana, tahoma, helvetica; BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVEoWFINRpSsyTahYKKZG6Wg2&t=3D633899266740000000) repeat-x =
50% bottom; FONT-SIZE: 11px
}
.ajax__tab_xp .ajax__tab_outer {
	PADDING-RIGHT: 4px; BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVp541DdONPdDmKOOtmC4Clg2&t=3D633899266740000000) no-repeat =
right 50%; HEIGHT: 21px
}
.ajax__tab_xp .ajax__tab_inner {
	PADDING-LEFT: 3px; BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVkEIS1YdxVLHqndA4QDNT0w2&t=3D633899266740000000) no-repeat
}
.ajax__tab_xp .ajax__tab_tab {
	PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-LEFT: 4px; PADDING-RIGHT: =
4px; BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqvtjCl67=
grkkVrZfIbBX_CMlp3eqy12DkKBxBSg0GrwWg2&t=3D633899266740000000) repeat-x; =
HEIGHT: 13px; PADDING-TOP: 4px
}
.ajax__tab_xp .ajax__tab_hover .ajax__tab_outer {
	BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVzVj-5WYeDP7Gqb6wm9xOgQ2&t=3D633899266740000000) no-repeat =
right 50%; CURSOR: pointer
}
.ajax__tab_xp .ajax__tab_hover .ajax__tab_inner {
	BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVDpNLdPvP8wiiI6waGAVehg2&t=3D633899266740000000) =
no-repeat; CURSOR: pointer
}
.ajax__tab_xp .ajax__tab_hover .ajax__tab_tab {
	BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVvw24Eaw446Vb2qatdXOMlg2&t=3D633899266740000000) repeat-x; =
CURSOR: pointer
}
.ajax__tab_xp .ajax__tab_active .ajax__tab_outer {
	BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudV1ADxDJtP28jLCMuf9ZnT1255K9KFjEmExMqDXdMHM8E1&t=3D633899266=
740000000) no-repeat right 50%
}
.ajax__tab_xp .ajax__tab_active .ajax__tab_inner {
	BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudVEcPOPtiYy6J-R6GjOVT9Hw2&t=3D633899266740000000) no-repeat
}
.ajax__tab_xp .ajax__tab_active .ajax__tab_tab {
	BACKGROUND: =
url(WebResource.axd?d=3DTf01oG7-UHDiO1CryYmgGku9txMjMDBPWseONFslNqt9O2qvs=
MAspN0Xhxf3wudV1gRiFLBlm3iNsJjoGPtTgQ2&t=3D633899266740000000) repeat-x
}
.ajax__tab_xp .ajax__tab_disabled {
	COLOR: #a0a0a0
}
.ajax__tab_xp .ajax__tab_body {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; FONT-FAMILY: verdana, tahoma, helvetica; FONT-SIZE: =
10pt; BORDER-TOP: 0px; BORDER-RIGHT: #999999 1px solid; PADDING-TOP: 8px
}
.ajax__scroll_horiz {
	OVERFLOW-X: scroll
}
.ajax__scroll_vert {
	OVERFLOW-Y: scroll
}
.ajax__scroll_both {
	OVERFLOW: scroll
}
.ajax__scroll_auto {
	OVERFLOW: auto
}
.ajax__tab_plain .ajax__tab_outer {
	BORDER-BOTTOM: #999999 2px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#999999 2px solid; VERTICAL-ALIGN: middle; BORDER-TOP: #999999 2px =
solid; BORDER-RIGHT: #999999 2px solid
}
.ajax__tab_plain .ajax__tab_inner {
	TEXT-ALIGN: center; VERTICAL-ALIGN: middle
}
.ajax__tab_plain .ajax__tab_body {
	TEXT-ALIGN: center; VERTICAL-ALIGN: middle
}
.ajax__tab_plain .ajax__tab_header {
	TEXT-ALIGN: center; VERTICAL-ALIGN: middle
}
.ajax__tab_plain .ajax__tab_active .ajax__tab_outer {
	BACKGROUND: #ffffe1
}

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/Popup.js

=EF=BB=BF/* Pop-up Window function */

var popWin =3D null    // use this when referring to pop-up window
var winCount =3D 0
var winName =3D "popWin"
function openPopWin(winURL, winWidth, winHeight, winFeatures, winLeft, =
winTop){
  var d_winLeft =3D 20  // default, pixels from screen left to window =
left
  var d_winTop =3D 20   // default, pixels from screen top to window top
  winName =3D "popWin" + winCount++ //unique name for each pop-up window
  closePopWin()           // close any previously opened pop-up window
  if (openPopWin.arguments.length >=3D 4)  // any additional features?=20
    winFeatures =3D "," + winFeatures
  else=20
    winFeatures =3D ""=20
  if (openPopWin.arguments.length =3D=3D 6)  // location specified
    winFeatures +=3D getLocation(winWidth, winHeight, winLeft, winTop)
  else
    winFeatures +=3D getLocation(winWidth, winHeight, d_winLeft, =
d_winTop)
  popWin =3D window.open(winURL, winName, "width=3D" + winWidth=20
           + ",height=3D" + winHeight + winFeatures)
  }
function closePopWin(){    // close pop-up window if it is open=20
  if (navigator.appName !=3D "Microsoft Internet Explorer"=20
      || parseInt(navigator.appVersion) >=3D4) //do not close if early =
IE
    if(popWin !=3D null) if(!popWin.closed) popWin.close()=20
  }
function getLocation(winWidth, winHeight, winLeft, winTop){
  return ""
  }


function getLocation(winWidth, winHeight, winLeft, winTop){
  var winLocation =3D ""
  if (winLeft < 0)
    winLeft =3D screen.width - winWidth + winLeft
  if (winTop < 0)
    winTop =3D screen.height - winHeight + winTop
  if (winTop =3D=3D "cen")
    winTop =3D (screen.height - winHeight)/2 - 20
  if (winLeft =3D=3D "cen")
    winLeft =3D (screen.width - winWidth)/2
  if (winLeft>0 & winTop>0)
    winLocation =3D  ",screenX=3D" + winLeft + ",left=3D" + winLeft=09
                + ",screenY=3D" + winTop + ",top=3D" + winTop
  else
    winLocation =3D ""
  return winLocation
  }


/*------- AJAX 1 ---------*/
function cargaXML(element, url)
{
    var request =3D false;
    if(url!=3D'')
    {
	if (window.XMLHttpRequest)
        {
            request =3D new XMLHttpRequest();
	}
        else if (window.ActiveXObject)
        {
            request =3D new ActiveXObject("Microsoft.XMLHTTP");
	}
	=09
	if (request)
        {
            request.open("GET", url, true);
            request.onreadystatechange =3D function()
                {
                    var result =3D =
top.mainFrame.document.getElementById(element);       =20
                    if(request.readyState =3D=3D 4) //request =3D 200?
                    {
                        ocultarMensaje();
                        result.innerHTML =3D request.responseText;
                    }
                    else
                    {
                        result.innerHTML =3D 'Comprobando . . .';
                    }
		}
            request.send(null);
        }
    }
   =20
  =20
}

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/WebResource.axd?d=yTzj-fyLhuJ34tvr31Ja3g2&t=633936755624778223

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, =
validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget =3D eventTarget;
    this.eventArgument =3D eventArgument;
    this.validation =3D validation;
    this.validationGroup =3D validationGroup;
    this.actionUrl =3D actionUrl;
    this.trackFocus =3D trackFocus;
    this.clientSubmit =3D clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult =3D true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) =3D=3D 'function') {
            validationResult =3D =
Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) !=3D "undefined") && =
(options.actionUrl !=3D null) && (options.actionUrl.length > 0)) {
            theForm.action =3D options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus =3D theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D =
null)) {
                if (typeof(document.activeElement) =3D=3D "undefined") {
                    lastFocus.value =3D options.eventTarget;
                }
                else {
                    var active =3D document.activeElement;
                    if ((typeof(active) !=3D "undefined") && (active =
!=3D null)) {
                        if ((typeof(active.id) !=3D "undefined") && =
(active.id !=3D null) && (active.id.length > 0)) {
                            lastFocus.value =3D active.id;
                        }
                        else if (typeof(active.name) !=3D "undefined") {
                            lastFocus.value =3D active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks =3D new Array();
var __synchronousCallBackIndex =3D -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, =
context, errorCallback, useAsync) {
    var postData =3D __theFormPostData +
                "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) =
+
                "&__CALLBACKPARAM=3D" + =
WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData +=3D "&__EVENTVALIDATION=3D" + =
WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest =3D new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists =3D true;
    try {
        setRequestHeaderMethodExists =3D (xmlRequest && =
xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback =3D new Object();
    callback.eventCallback =3D eventCallback;
    callback.context =3D context;
    callback.errorCallback =3D errorCallback;
    callback.async =3D useAsync;
    var callbackIndex =3D =
WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex !=3D -1) {
            __pendingCallbacks[__synchronousCallBackIndex] =3D null;
        }
        __synchronousCallBackIndex =3D callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange =3D WebForm_CallbackComplete;
        callback.xmlRequest =3D xmlRequest;
        xmlRequest.open("POST", theForm.action, true);
        xmlRequest.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded; charset=3Dutf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest =3D new Object();
    var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame =3D document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame =3D document.createElement("IFRAME");
        xmlRequestFrame.width =3D "1";
        xmlRequestFrame.height =3D "1";
        xmlRequestFrame.frameBorder =3D "0";
        xmlRequestFrame.id =3D callbackFrameID;
        xmlRequestFrame.name =3D callbackFrameID;
        xmlRequestFrame.style.position =3D "absolute";
        xmlRequestFrame.style.top =3D "-100px"
        xmlRequestFrame.style.left =3D "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src =3D callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval =3D window.setInterval(function() {
        xmlRequestFrame =3D document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form =
method=3D"post"><input type=3D"hidden" name=3D"__CALLBACKLOADSCRIPT" =
value=3D"t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action =3D theForm.action;
            var count =3D __theFormPostCollection.length;
            var element;
            for (var i =3D 0; i < count; i++) {
                element =3D __theFormPostCollection[i];
                if (element) {
                    var fieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type =3D "hidden";
                    fieldElement.name =3D element.name;
                    fieldElement.value =3D element.value;
                    =
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type =3D "hidden";
            callbackIdFieldElement.name =3D "__CALLBACKID";
            callbackIdFieldElement.value =3D eventTarget;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type =3D "hidden";
            callbackParamFieldElement.name =3D "__CALLBACKPARAM";
            callbackParamFieldElement.value =3D eventArgument;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);=

            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type =3D "hidden";
                callbackValidationFieldElement.name =3D =
"__EVENTVALIDATION";
                callbackValidationFieldElement.value =3D =
theForm["__EVENTVALIDATION"].value;
                =
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem=
ent);
            }
            var callbackIndexFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type =3D "hidden";
            callbackIndexFieldElement.name =3D "__CALLBACKINDEX";
            callbackIndexFieldElement.value =3D callbackIndex;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);=

            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}
function WebForm_CallbackComplete() {
    for (var i =3D 0; i < __pendingCallbacks.length; i++) {
        callbackObject =3D __pendingCallbacks[i];
        if (callbackObject && callbackObject.xmlRequest && =
(callbackObject.xmlRequest.readyState =3D=3D 4)) {
            WebForm_ExecuteCallback(callbackObject);
            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);
            }
        }
    }
}
function WebForm_ExecuteCallback(callbackObject) {
    var response =3D callbackObject.xmlRequest.responseText;
    if (response.charAt(0) =3D=3D "s") {
        if ((typeof(callbackObject.eventCallback) !=3D "undefined") && =
(callbackObject.eventCallback !=3D null)) {
            callbackObject.eventCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else if (response.charAt(0) =3D=3D "e") {
        if ((typeof(callbackObject.errorCallback) !=3D "undefined") && =
(callbackObject.errorCallback !=3D null)) {
            callbackObject.errorCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else {
        var separatorIndex =3D response.indexOf("|");
        if (separatorIndex !=3D -1) {
            var validationFieldLength =3D parseInt(response.substring(0, =
separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField =3D =
response.substring(separatorIndex + 1, separatorIndex + =
validationFieldLength + 1);
                if (validationField !=3D "") {
                    var validationFieldElement =3D =
theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement =3D =
document.createElement("INPUT");
                        validationFieldElement.type =3D "hidden";
                        validationFieldElement.name =3D =
"__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value =3D validationField;
                }
                if ((typeof(callbackObject.eventCallback) !=3D =
"undefined") && (callbackObject.eventCallback !=3D null)) {
                    =
callbackObject.eventCallback(response.substring(separatorIndex + =
validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
function WebForm_FillFirstAvailableSlot(array, element) {
    var i;
    for (i =3D 0; i < array.length; i++) {
        if (!array[i]) break;
    }
    array[i] =3D element;
    return i;
}
var __nonMSDOMBrowser =3D =
(window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1);
var __theFormPostData =3D "";
var __theFormPostCollection =3D new Array();
function WebForm_InitCallback() {
    var count =3D theForm.elements.length;
    var element;
    for (var i =3D 0; i < count; i++) {
        element =3D theForm.elements[i];
        var tagName =3D element.tagName.toLowerCase();
        if (tagName =3D=3D "input") {
            var type =3D element.type;
            if ((type =3D=3D "text" || type =3D=3D "hidden" || type =
=3D=3D "password" ||
                ((type =3D=3D "checkbox" || type =3D=3D "radio") && =
element.checked)) &&
                (element.id !=3D "__EVENTVALIDATION")) {
                WebForm_InitCallbackAddField(element.name, =
element.value);
            }
        }
        else if (tagName =3D=3D "select") {
            var selectCount =3D element.options.length;
            for (var j =3D 0; j < selectCount; j++) {
                var selectChild =3D element.options[j];
                if (selectChild.selected =3D=3D true) {
                    WebForm_InitCallbackAddField(element.name, =
element.value);
                }
            }
        }
        else if (tagName =3D=3D "textarea") {
            WebForm_InitCallbackAddField(element.name, element.value);
        }
    }
}
function WebForm_InitCallbackAddField(name, value) {
    var nameValue =3D new Object();
    nameValue.name =3D name;
    nameValue.value =3D value;
    __theFormPostCollection[__theFormPostCollection.length] =3D =
nameValue;
    __theFormPostData +=3D WebForm_EncodeCallback(name) + "=3D" + =
WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
    if (encodeURIComponent) {
        return encodeURIComponent(parameter);
    }
    else {
        return escape(parameter);
    }
}
var __disabledControlArray =3D new Array();
function WebForm_ReEnableControls() {
    if (typeof(__enabledControlArray) =3D=3D 'undefined') {
        return false;
    }
    var disabledIndex =3D 0;
    for (var i =3D 0; i < __enabledControlArray.length; i++) {
        var c;
        if (__nonMSDOMBrowser) {
            c =3D document.getElementById(__enabledControlArray[i]);
        }
        else {
            c =3D document.all[__enabledControlArray[i]];
        }
        if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled =
=3D=3D true)) {
            c.disabled =3D false;
            __disabledControlArray[disabledIndex++] =3D c;
        }
    }
    setTimeout("WebForm_ReDisableControls()", 0);
    return true;
}
function WebForm_ReDisableControls() {
    for (var i =3D 0; i < __disabledControlArray.length; i++) {
        __disabledControlArray[i].disabled =3D true;
    }
}
function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode =3D=3D 13) {
        var src =3D event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() !=3D "textarea")) {
            var defaultButton;
            if (__nonMSDOMBrowser) {
               defaultButton =3D document.getElementById(target);
            }
            else {
                defaultButton =3D document.all[target];
            }
            if (defaultButton && typeof(defaultButton.click) !=3D =
"undefined") {
                defaultButton.click();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_GetScrollX() {
    if (__nonMSDOMBrowser) {
        return window.pageXOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollLeft) {
            return document.documentElement.scrollLeft;
        }
        else if (document.body) {
            return document.body.scrollLeft;
        }
    }
    return 0;
}
function WebForm_GetScrollY() {
    if (__nonMSDOMBrowser) {
        return window.pageYOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollTop) {
            return document.documentElement.scrollTop;
        }
        else if (document.body) {
            return document.body.scrollTop;
        }
    }
    return 0;
}
function WebForm_SaveScrollPositionSubmit() {
    if (__nonMSDOMBrowser) {
        theForm.elements['__SCROLLPOSITIONY'].value =3D =
window.pageYOffset;
        theForm.elements['__SCROLLPOSITIONX'].value =3D =
window.pageXOffset;
    }
    else {
        theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
        theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    }
    if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit =
!=3D null)) {
        return this.oldSubmit();
    }
    return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
    theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
    theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit =
!=3D null)) {
        return this.oldOnSubmit();
    }
    return true;
}
function WebForm_RestoreScrollPosition() {
    if (__nonMSDOMBrowser) {
        window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, =
theForm.elements['__SCROLLPOSITIONY'].value);
    }
    else {
        window.scrollTo(theForm.__SCROLLPOSITIONX.value, =
theForm.__SCROLLPOSITIONY.value);
    }
    if ((typeof(theForm.oldOnLoad) !=3D "undefined") && =
(theForm.oldOnLoad !=3D null)) {
        return theForm.oldOnLoad();
    }
    return true;
}
function WebForm_TextBoxKeyHandler(event) {
    if (event.keyCode =3D=3D 13) {
        var target;
        if (__nonMSDOMBrowser) {
            target =3D event.target;
        }
        else {
            target =3D event.srcElement;
        }
        if ((typeof(target) !=3D "undefined") && (target !=3D null)) {
            if (typeof(target.onchange) !=3D "undefined") {
                target.onchange();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_TrimString(value) {
    return value.replace(/^\s+|\s+$/g, '')
}
function WebForm_AppendToClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index =3D=3D=3D -1) {
        element.className =3D (element.className =3D=3D=3D '') ? =
className : element.className + ' ' + className;
    }
}
function WebForm_RemoveClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D =
WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length));
    }
}
function WebForm_GetElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    }
    else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
    var elements =3D WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}
function WebForm_GetElementDir(element) {
    if (element) {
        if (element.dir) {
            return element.dir;
        }
        return WebForm_GetElementDir(element.parentNode);
    }
    return "ltr";
}
function WebForm_GetElementPosition(element) {
    var result =3D new Object();
    result.x =3D 0;
    result.y =3D 0;
    result.width =3D 0;
    result.height =3D 0;
    if (element.offsetParent) {
        result.x =3D element.offsetLeft;
        result.y =3D element.offsetTop;
        var parent =3D element.offsetParent;
        while (parent) {
            result.x +=3D parent.offsetLeft;
            result.y +=3D parent.offsetTop;
            var parentTagName =3D parent.tagName.toLowerCase();
            if (parentTagName !=3D "table" &&
                parentTagName !=3D "body" &&=20
                parentTagName !=3D "html" &&=20
                parentTagName !=3D "div" &&=20
                parent.clientTop &&=20
                parent.clientLeft) {
                result.x +=3D parent.clientLeft;
                result.y +=3D parent.clientTop;
            }
            parent =3D parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x =3D element.left;
        result.y =3D element.top;
    }
    else {
        if (element.x) {
            result.x =3D element.x;
        }
        if (element.y) {
            result.y =3D element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width =3D element.offsetWidth;
        result.height =3D element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && =
element.style.pixelHeight) {
        result.width =3D element.style.pixelWidth;
        result.height =3D element.style.pixelHeight;
    }
    return result;
}
function WebForm_GetParentByTagName(element, tagName) {
    var parent =3D element.parentNode;
    var upperTagName =3D tagName.toUpperCase();
    while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) {
        parent =3D parent.parentNode ? parent.parentNode : =
parent.parentElement;
    }
    return parent;
}
function WebForm_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height =3D height + "px";
    }
}
function WebForm_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width =3D width + "px";
    }
}
function WebForm_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left =3D x + "px";
    }
}
function WebForm_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top =3D y + "px";
    }
}

------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=rrhzkQBArEzJ0ufIeMGymujSm0OQchsRojrfGev9XGmucQLbWWsJKupvRuRxeCgVhD927pnvQw-rTRc_jvftJhpQ_mDW9deWq3I9nQ1CKoo1&t=349f4c5

// Name:        MicrosoftAjax.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.196
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjax.js
// Microsoft AJAX Framework.
=20
Function.__typeName =3D 'Function';
Function.__class =3D true;
Function.createCallback =3D function Function$createCallback(method, =
context) {
    /// <summary locid=3D"M:J#Function.createCallback" />
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"context" mayBeNull=3D"true"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "method", type: Function},
        {name: "context", mayBeNull: true}
    ]);
    if (e) throw e;
    return function() {
        var l =3D arguments.length;
        if (l > 0) {
            var args =3D [];
            for (var i =3D 0; i < l; i++) {
                args[i] =3D arguments[i];
            }
            args[l] =3D context;
            return method.apply(this, args);
        }
        return method.call(this, context);
    }
}
Function.createDelegate =3D function Function$createDelegate(instance, =
method) {
    /// <summary locid=3D"M:J#Function.createDelegate" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true},
        {name: "method", type: Function}
    ]);
    if (e) throw e;
    return function() {
        return method.apply(instance, arguments);
    }
}
Function.emptyFunction =3D Function.emptyMethod =3D function =
Function$emptyMethod() {
    /// <summary locid=3D"M:J#Function.emptyMethod" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Function._validateParams =3D function Function$_validateParams(params, =
expectedParams) {
    var e;
    e =3D Function._validateParameterCount(params, expectedParams);
    if (e) {
        e.popStackFrame();
        return e;
    }
    for (var i=3D0; i < params.length; i++) {
        var expectedParam =3D expectedParams[Math.min(i, =
expectedParams.length - 1)];
        var paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            paramName +=3D "[" + (i - expectedParams.length + 1) + "]";
        }
        e =3D Function._validateParameter(params[i], expectedParam, =
paramName);
        if (e) {
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
Function._validateParameterCount =3D function =
Function$_validateParameterCount(params, expectedParams) {
    var maxParams =3D expectedParams.length;
    var minParams =3D 0;
    for (var i=3D0; i < expectedParams.length; i++) {
        if (expectedParams[i].parameterArray) {
            maxParams =3D Number.MAX_VALUE;
        }
        else if (!expectedParams[i].optional) {
            minParams++;
        }
    }
    if (params.length < minParams || params.length > maxParams) {
        var e =3D Error.parameterCount();
        e.popStackFrame();
        return e;
    }
    return null;
}
Function._validateParameter =3D function =
Function$_validateParameter(param, expectedParam, paramName) {
    var e;
    var expectedType =3D expectedParam.type;
    var expectedInteger =3D !!expectedParam.integer;
    var expectedDomElement =3D !!expectedParam.domElement;
    var mayBeNull =3D !!expectedParam.mayBeNull;
    e =3D Function._validateParameterType(param, expectedType, =
expectedInteger, expectedDomElement, mayBeNull, paramName);
    if (e) {
        e.popStackFrame();
        return e;
    }
    var expectedElementType =3D expectedParam.elementType;
    var elementMayBeNull =3D !!expectedParam.elementMayBeNull;
    if (expectedType =3D=3D=3D Array && typeof(param) !=3D=3D =
"undefined" && param !=3D=3D null &&
        (expectedElementType || !elementMayBeNull)) {
        var expectedElementInteger =3D !!expectedParam.elementInteger;
        var expectedElementDomElement =3D =
!!expectedParam.elementDomElement;
        for (var i=3D0; i < param.length; i++) {
            var elem =3D param[i];
            e =3D Function._validateParameterType(elem, =
expectedElementType,
                expectedElementInteger, expectedElementDomElement, =
elementMayBeNull,
                paramName + "[" + i + "]");
            if (e) {
                e.popStackFrame();
                return e;
            }
        }
    }
    return null;
}
Function._validateParameterType =3D function =
Function$_validateParameterType(param, expectedType, expectedInteger, =
expectedDomElement, mayBeNull, paramName) {
    var e;
    if (typeof(param) =3D=3D=3D "undefined") {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentUndefined(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (param =3D=3D=3D null) {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentNull(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && expectedType.__enum) {
        if (typeof(param) !=3D=3D 'number') {
            e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
            e.popStackFrame();
            return e;
        }
        if ((param % 1) =3D=3D=3D 0) {
            var values =3D expectedType.prototype;
            if (!expectedType.__flags || (param =3D=3D=3D 0)) {
                for (var i in values) {
                    if (values[i] =3D=3D=3D param) return null;
                }
            }
            else {
                var v =3D param;
                for (var i in values) {
                    var vali =3D values[i];
                    if (vali =3D=3D=3D 0) continue;
                    if ((vali & param) =3D=3D=3D vali) {
                        v -=3D vali;
                    }
                    if (v =3D=3D=3D 0) return null;
                }
            }
        }
        e =3D Error.argumentOutOfRange(paramName, param, =
String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
        e.popStackFrame();
        return e;
    }
    if (expectedDomElement) {
        var val;
        if (typeof(param.nodeType) !=3D=3D 'number') {
            var doc =3D param.ownerDocument || param.document || param;
            if (doc !=3D param) {
                var w =3D doc.defaultView || doc.parentWindow;
                val =3D (w !=3D param) && !(w.document && param.document =
&& (w.document =3D=3D=3D param.document));
            }
            else {
                val =3D (typeof(doc.body) =3D=3D=3D 'undefined');
            }
        }
        else {
            val =3D (param.nodeType =3D=3D=3D 3);
        }
        if (val) {
            e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && !expectedType.isInstanceOfType(param)) {
        e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
        e.popStackFrame();
        return e;
    }
    if (expectedType =3D=3D=3D Number && expectedInteger) {
        if ((param % 1) !=3D=3D 0) {
            e =3D Error.argumentOutOfRange(paramName, param, =
Sys.Res.argumentInteger);
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
=20
Error.__typeName =3D 'Error';
Error.__class =3D true;
Error.create =3D function Error$create(message, errorInfo) {
    /// <summary locid=3D"M:J#Error.create" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"errorInfo" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Error"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: =
true},
        {name: "errorInfo", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var e =3D new Error(message);
    e.message =3D message;
    if (errorInfo) {
        for (var v in errorInfo) {
            e[v] =3D errorInfo[v];
        }
    }
    e.popStackFrame();
    return e;
}
Error.argument =3D function Error$argument(paramName, message) {
    /// <summary locid=3D"M:J#Error.argument" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentException: " + (message ? =
message : Sys.Res.argument);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentNull =3D function Error$argumentNull(paramName, message) {
    /// <summary locid=3D"M:J#Error.argumentNull" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentNullException: " + (message ? =
message : Sys.Res.argumentNull);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentNullException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentOutOfRange =3D function =
Error$argumentOutOfRange(paramName, actualValue, message) {
    /// <summary locid=3D"M:J#Error.argumentOutOfRange" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualValue" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualValue", mayBeNull: true, optional: true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentOutOfRangeException: " + =
(message ? message : Sys.Res.argumentOutOfRange);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    if (typeof(actualValue) !=3D=3D "undefined" && actualValue !=3D=3D =
null) {
        displayMessage +=3D "\n" + String.format(Sys.Res.actualValue, =
actualValue);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentOutOfRangeException",
        paramName: paramName,
        actualValue: actualValue
    });
    e.popStackFrame();
    return e;
}
Error.argumentType =3D function Error$argumentType(paramName, =
actualType, expectedType, message) {
    /// <summary locid=3D"M:J#Error.argumentType" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"expectedType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualType", type: Type, mayBeNull: true, optional: =
true},
        {name: "expectedType", type: Type, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentTypeException: ";
    if (message) {
        displayMessage +=3D message;
    }
    else if (actualType && expectedType) {
        displayMessage +=3D
            String.format(Sys.Res.argumentTypeWithTypes, =
actualType.getName(), expectedType.getName());
    }
    else {
        displayMessage +=3D Sys.Res.argumentType;
    }
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentTypeException",
        paramName: paramName,
        actualType: actualType,
        expectedType: expectedType
    });
    e.popStackFrame();
    return e;
}
Error.argumentUndefined =3D function Error$argumentUndefined(paramName, =
message) {
    /// <summary locid=3D"M:J#Error.argumentUndefined" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentUndefinedException: " + (message =
? message : Sys.Res.argumentUndefined);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentUndefinedException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.format =3D function Error$format(message) {
    /// <summary locid=3D"M:J#Error.format" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.FormatException: " + (message ? message =
: Sys.Res.format);
    var e =3D Error.create(displayMessage, {name: =
'Sys.FormatException'});
    e.popStackFrame();
    return e;
}
Error.invalidOperation =3D function Error$invalidOperation(message) {
    /// <summary locid=3D"M:J#Error.invalidOperation" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.InvalidOperationException: " + (message =
? message : Sys.Res.invalidOperation);
    var e =3D Error.create(displayMessage, {name: =
'Sys.InvalidOperationException'});
    e.popStackFrame();
    return e;
}
Error.notImplemented =3D function Error$notImplemented(message) {
    /// <summary locid=3D"M:J#Error.notImplemented" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.NotImplementedException: " + (message ? =
message : Sys.Res.notImplemented);
    var e =3D Error.create(displayMessage, {name: =
'Sys.NotImplementedException'});
    e.popStackFrame();
    return e;
}
Error.parameterCount =3D function Error$parameterCount(message) {
    /// <summary locid=3D"M:J#Error.parameterCount" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ParameterCountException: " + (message ? =
message : Sys.Res.parameterCount);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ParameterCountException'});
    e.popStackFrame();
    return e;
}
Error.prototype.popStackFrame =3D function Error$popStackFrame() {
    /// <summary locid=3D"M:J#checkParam" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (typeof(this.stack) =3D=3D=3D "undefined" || this.stack =3D=3D=3D =
null ||
        typeof(this.fileName) =3D=3D=3D "undefined" || this.fileName =
=3D=3D=3D null ||
        typeof(this.lineNumber) =3D=3D=3D "undefined" || this.lineNumber =
=3D=3D=3D null) {
        return;
    }
    var stackFrames =3D this.stack.split("\n");
    var currentFrame =3D stackFrames[0];
    var pattern =3D this.fileName + ":" + this.lineNumber;
    while(typeof(currentFrame) !=3D=3D "undefined" &&
          currentFrame !=3D=3D null &&
          currentFrame.indexOf(pattern) =3D=3D=3D -1) {
        stackFrames.shift();
        currentFrame =3D stackFrames[0];
    }
    var nextFrame =3D stackFrames[1];
    if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame =3D=3D=3D =
null) {
        return;
    }
    var nextFrameParts =3D nextFrame.match(/@(.*):(\d+)$/);
    if (typeof(nextFrameParts) =3D=3D=3D "undefined" || nextFrameParts =
=3D=3D=3D null) {
        return;
    }
    this.fileName =3D nextFrameParts[1];
    this.lineNumber =3D parseInt(nextFrameParts[2]);
    stackFrames.shift();
    this.stack =3D stackFrames.join("\n");
}
=20
Object.__typeName =3D 'Object';
Object.__class =3D true;
Object.getType =3D function Object$getType(instance) {
    /// <summary locid=3D"M:J#Object.getType" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    var ctor =3D instance.constructor;
    if (!ctor || (typeof(ctor) !=3D=3D "function") || !ctor.__typeName =
|| (ctor.__typeName =3D=3D=3D 'Object')) {
        return Object;
    }
    return ctor;
}
Object.getTypeName =3D function Object$getTypeName(instance) {
    /// <summary locid=3D"M:J#Object.getTypeName" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    return Object.getType(instance).getName();
}
=20
String.__typeName =3D 'String';
String.__class =3D true;
String.prototype.endsWith =3D function String$endsWith(suffix) {
    /// <summary locid=3D"M:J#String.endsWith" />
    /// <param name=3D"suffix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "suffix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(this.length - suffix.length) =3D=3D=3D suffix);
}
String.prototype.startsWith =3D function String$startsWith(prefix) {
    /// <summary locid=3D"M:J#String.startsWith" />
    /// <param name=3D"prefix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "prefix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(0, prefix.length) =3D=3D=3D prefix);
}
String.prototype.trim =3D function String$trim() {
    /// <summary locid=3D"M:J#String.trim" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.trimEnd =3D function String$trimEnd() {
    /// <summary locid=3D"M:J#String.trimEnd" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/\s+$/, '');
}
String.prototype.trimStart =3D function String$trimStart() {
    /// <summary locid=3D"M:J#String.trimStart" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+/, '');
}
String.format =3D function String$format(format, args) {
    /// <summary locid=3D"M:J#String.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(false, arguments);
}
String.localeFormat =3D function String$localeFormat(format, args) {
    /// <summary locid=3D"M:J#String.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(true, arguments);
}
String._toFormattedString =3D function =
String$_toFormattedString(useLocale, args) {
    var result =3D '';
    var format =3D args[0];
    for (var i=3D0;;) {
        var open =3D format.indexOf('{', i);
        var close =3D format.indexOf('}', i);
        if ((open < 0) && (close < 0)) {
            result +=3D format.slice(i);
            break;
        }
        if ((close > 0) && ((close < open) || (open < 0))) {
            if (format.charAt(close + 1) !=3D=3D '}') {
                throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
            }
            result +=3D format.slice(i, close + 1);
            i =3D close + 2;
            continue;
        }
        result +=3D format.slice(i, open);
        i =3D open + 1;
        if (format.charAt(i) =3D=3D=3D '{') {
            result +=3D '{';
            i++;
            continue;
        }
        if (close < 0) throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
        var brace =3D format.substring(i, close);
        var colonIndex =3D brace.indexOf(':');
        var argNumber =3D parseInt((colonIndex < 0)? brace : =
brace.substring(0, colonIndex), 10) + 1;
        if (isNaN(argNumber)) throw Error.argument('format', =
Sys.Res.stringFormatInvalid);
        var argFormat =3D (colonIndex < 0)? '' : =
brace.substring(colonIndex + 1);
        var arg =3D args[argNumber];
        if (typeof(arg) =3D=3D=3D "undefined" || arg =3D=3D=3D null) {
            arg =3D '';
        }
        if (arg.toFormattedString) {
            result +=3D arg.toFormattedString(argFormat);
        }
        else if (useLocale && arg.localeFormat) {
            result +=3D arg.localeFormat(argFormat);
        }
        else if (arg.format) {
            result +=3D arg.format(argFormat);
        }
        else
            result +=3D arg.toString();
        i =3D close + 1;
    }
    return result;
}
=20
Boolean.__typeName =3D 'Boolean';
Boolean.__class =3D true;
Boolean.parse =3D function Boolean$parse(value) {
    /// <summary locid=3D"M:J#Boolean.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    var v =3D value.trim().toLowerCase();
    if (v =3D=3D=3D 'false') return false;
    if (v =3D=3D=3D 'true') return true;
    throw Error.argumentOutOfRange('value', value, =
Sys.Res.boolTrueOrFalse);
}
=20
Date.__typeName =3D 'Date';
Date.__class =3D true;
Date._appendPreOrPostMatch =3D function =
Date$_appendPreOrPostMatch(preMatch, strBuilder) {
    var quoteCount =3D 0;
    var escaped =3D false;
    for (var i =3D 0, il =3D preMatch.length; i < il; i++) {
        var c =3D preMatch.charAt(i);
        switch (c) {
        case '\'':
            if (escaped) strBuilder.append("'");
            else quoteCount++;
            escaped =3D false;
            break;
        case '\\':
            if (escaped) strBuilder.append("\\");
            escaped =3D !escaped;
            break;
        default:
            strBuilder.append(c);
            escaped =3D false;
            break;
        }
    }
    return quoteCount;
}
Date._expandFormat =3D function Date$_expandFormat(dtf, format) {
    if (!format) {
        format =3D "F";
    }
    if (format.length =3D=3D=3D 1) {
        switch (format) {
        case "d":
            return dtf.ShortDatePattern;
        case "D":
            return dtf.LongDatePattern;
        case "t":
            return dtf.ShortTimePattern;
        case "T":
            return dtf.LongTimePattern;
        case "F":
            return dtf.FullDateTimePattern;
        case "M": case "m":
            return dtf.MonthDayPattern;
        case "s":
            return dtf.SortableDateTimePattern;
        case "Y": case "y":
            return dtf.YearMonthPattern;
        default:
            throw Error.format(Sys.Res.formatInvalidString);
        }
    }
    return format;
}
Date._expandYear =3D function Date$_expandYear(dtf, year) {
    if (year < 100) {
        var curr =3D new Date().getFullYear();
        year +=3D curr - (curr % 100);
        if (year > dtf.Calendar.TwoDigitYearMax) {
            return year - 100;
        }
    }
    return year;
}
Date._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) {
    if (!dtf._parseRegExp) {
        dtf._parseRegExp =3D {};
    }
    else if (dtf._parseRegExp[format]) {
        return dtf._parseRegExp[format];
    }
    var expFormat =3D Date._expandFormat(dtf, format);
    expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, =
"\\\\$1");
    var regexp =3D new Sys.StringBuilder("^");
    var groups =3D [];
    var index =3D 0;
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    var match;
    while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) {
        var preMatch =3D expFormat.slice(index, match.index);
        index =3D tokenRegExp.lastIndex;
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, regexp);
        if ((quoteCount%2) =3D=3D=3D 1) {
            regexp.append(match[0]);
            continue;
        }
        switch (match[0]) {
            case 'dddd': case 'ddd':
            case 'MMMM': case 'MMM':
                regexp.append("(\\D+)");
                break;
            case 'tt': case 't':
                regexp.append("(\\D*)");
                break;
            case 'yyyy':
                regexp.append("(\\d{4})");
                break;
            case 'fff':
                regexp.append("(\\d{3})");
                break;
            case 'ff':
                regexp.append("(\\d{2})");
                break;
            case 'f':
                regexp.append("(\\d)");
                break;
            case 'dd': case 'd':
            case 'MM': case 'M':
            case 'yy': case 'y':
            case 'HH': case 'H':
            case 'hh': case 'h':
            case 'mm': case 'm':
            case 'ss': case 's':
                regexp.append("(\\d\\d?)");
                break;
            case 'zzz':
                regexp.append("([+-]?\\d\\d?:\\d{2})");
                break;
            case 'zz': case 'z':
                regexp.append("([+-]?\\d\\d?)");
                break;
        }
        Array.add(groups, match[0]);
    }
    Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
    regexp.append("$");
    var regexpStr =3D regexp.toString().replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    dtf._parseRegExp[format] =3D parseRegExp;
    return parseRegExp;
}
Date._getTokenRegExp =3D function Date$_getTokenRegExp() {
    return =
/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|=
zzz|zz|z/g;
}
Date.parseLocale =3D function Date$parseLocale(value, formats) {
    /// <summary locid=3D"M:J#Date.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.CurrentCulture, =
arguments);
}
Date.parseInvariant =3D function Date$parseInvariant(value, formats) {
    /// <summary locid=3D"M:J#Date.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.InvariantCulture, =
arguments);
}
Date._parse =3D function Date$_parse(value, cultureInfo, args) {
    var custom =3D false;
    for (var i =3D 1, il =3D args.length; i < il; i++) {
        var format =3D args[i];
        if (format) {
            custom =3D true;
            var date =3D Date._parseExact(value, format, cultureInfo);
            if (date) return date;
        }
    }
    if (! custom) {
        var formats =3D cultureInfo._getDateTimeFormats();
        for (var i =3D 0, il =3D formats.length; i < il; i++) {
            var date =3D Date._parseExact(value, formats[i], =
cultureInfo);
            if (date) return date;
        }
    }
    return null;
}
Date._parseExact =3D function Date$_parseExact(value, format, =
cultureInfo) {
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat;
    var parseInfo =3D Date._getParseRegExp(dtf, format);
    var match =3D new RegExp(parseInfo.regExp).exec(value);
    if (match =3D=3D=3D null) return null;
   =20
    var groups =3D parseInfo.groups;
    var year =3D null, month =3D null, date =3D null, weekDay =3D null;
    var hour =3D 0, min =3D 0, sec =3D 0, msec =3D 0, tzMinOffset =3D =
null;
    var pmHour =3D false;
    for (var j =3D 0, jl =3D groups.length; j < jl; j++) {
        var matchGroup =3D match[j+1];
        if (matchGroup) {
            switch (groups[j]) {
                case 'dd': case 'd':
                    date =3D parseInt(matchGroup, 10);
                    if ((date < 1) || (date > 31)) return null;
                    break;
                case 'MMMM':
                    month =3D cultureInfo._getMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'MMM':
                    month =3D =
cultureInfo._getAbbrMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'M': case 'MM':
                    var month =3D parseInt(matchGroup, 10) - 1;
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'y': case 'yy':
                    year =3D Date._expandYear(dtf,parseInt(matchGroup, =
10));
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'yyyy':
                    year =3D parseInt(matchGroup, 10);
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'h': case 'hh':
                    hour =3D parseInt(matchGroup, 10);
                    if (hour =3D=3D=3D 12) hour =3D 0;
                    if ((hour < 0) || (hour > 11)) return null;
                    break;
                case 'H': case 'HH':
                    hour =3D parseInt(matchGroup, 10);
                    if ((hour < 0) || (hour > 23)) return null;
                    break;
                case 'm': case 'mm':
                    min =3D parseInt(matchGroup, 10);
                    if ((min < 0) || (min > 59)) return null;
                    break;
                case 's': case 'ss':
                    sec =3D parseInt(matchGroup, 10);
                    if ((sec < 0) || (sec > 59)) return null;
                    break;
                case 'tt': case 't':
                    var upperToken =3D matchGroup.toUpperCase();
                    pmHour =3D (upperToken =3D=3D=3D =
dtf.PMDesignator.toUpperCase());
                    if (!pmHour && (upperToken !=3D=3D =
dtf.AMDesignator.toUpperCase())) return null;
                    break;
                case 'f':
                    msec =3D parseInt(matchGroup, 10) * 100;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'ff':
                    msec =3D parseInt(matchGroup, 10) * 10;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'fff':
                    msec =3D parseInt(matchGroup, 10);
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'dddd':
                    weekDay =3D cultureInfo._getDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'ddd':
                    weekDay =3D =
cultureInfo._getAbbrDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'zzz':
                    var offsets =3D matchGroup.split(/:/);
                    if (offsets.length !=3D=3D 2) return null;
                    var hourOffset =3D parseInt(offsets[0], 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    var minOffset =3D parseInt(offsets[1], 10);
                    if ((minOffset < 0) || (minOffset > 59)) return =
null;
                    tzMinOffset =3D (hourOffset * 60) + =
(matchGroup.startsWith('-')? -minOffset : minOffset);
                    break;
                case 'z': case 'zz':
                    var hourOffset =3D parseInt(matchGroup, 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    tzMinOffset =3D hourOffset * 60;
                    break;
            }
        }
    }
    var result =3D new Date();
    if (year =3D=3D=3D null) {
        year =3D result.getFullYear();
    }
    if (month =3D=3D=3D null) {
        month =3D result.getMonth();
    }
    if (date =3D=3D=3D null) {
        date =3D result.getDate();
    }
    result.setFullYear(year, month, date);
    if (result.getDate() !=3D=3D date) return null;
    if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D weekDay)) {
        return null;
    }
    if (pmHour && (hour < 12)) {
        hour +=3D 12;
    }
    result.setHours(hour, min, sec, msec);
    if (tzMinOffset !=3D=3D null) {
        var adjustedMin =3D result.getMinutes() - (tzMinOffset + =
result.getTimezoneOffset());
        result.setHours(result.getHours() + parseInt(adjustedMin/60, =
10), adjustedMin%60);
    }
    return result;
}
Date.prototype.format =3D function Date$format(format) {
    /// <summary locid=3D"M:J#Date.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Date.prototype.localeFormat =3D function Date$localeFormat(format) {
    /// <summary locid=3D"M:J#Date.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Date.prototype._toFormattedString =3D function =
Date$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
    var dtf =3D cultureInfo.dateTimeFormat;
    format =3D Date._expandFormat(dtf, format);
    var ret =3D new Sys.StringBuilder();
    var hour;
    function addLeadingZero(num) {
        if (num < 10) {
            return '0' + num;
        }
        return num.toString();
    }
    function addLeadingZeros(num) {
        if (num < 10) {
            return '00' + num;
        }
        if (num < 100) {
            return '0' + num;
        }
        return num.toString();
    }
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    for (;;) {
        var index =3D tokenRegExp.lastIndex;
        var ar =3D tokenRegExp.exec(format);
        var preMatch =3D format.slice(index, ar ? ar.index : =
format.length);
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, ret);
        if (!ar) break;
        if ((quoteCount%2) =3D=3D=3D 1) {
            ret.append(ar[0]);
            continue;
        }
        switch (ar[0]) {
        case "dddd":
            ret.append(dtf.DayNames[this.getDay()]);
            break;
        case "ddd":
            ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
            break;
        case "dd":
            ret.append(addLeadingZero(this.getDate()));
            break;
        case "d":
            ret.append(this.getDate());
            break;
        case "MMMM":
            ret.append(dtf.MonthNames[this.getMonth()]);
            break;
        case "MMM":
            ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
            break;
        case "MM":
            ret.append(addLeadingZero(this.getMonth() + 1));
            break;
        case "M":
            ret.append(this.getMonth() + 1);
            break;
        case "yyyy":
            ret.append(this.getFullYear());
            break;
        case "yy":
            ret.append(addLeadingZero(this.getFullYear() % 100));
            break;
        case "y":
            ret.append(this.getFullYear() % 100);
            break;
        case "hh":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(addLeadingZero(hour));
            break;
        case "h":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(hour);
            break;
        case "HH":
            ret.append(addLeadingZero(this.getHours()));
            break;
        case "H":
            ret.append(this.getHours());
            break;
        case "mm":
            ret.append(addLeadingZero(this.getMinutes()));
            break;
        case "m":
            ret.append(this.getMinutes());
            break;
        case "ss":
            ret.append(addLeadingZero(this.getSeconds()));
            break;
        case "s":
            ret.append(this.getSeconds());
            break;
        case "tt":
            ret.append((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator);
            break;
        case "t":
            ret.append(((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator).charAt(0));
            break;
        case "f":
            =
ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
            break;
        case "ff":
            ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, =
2));
            break;
        case "fff":
            ret.append(addLeadingZeros(this.getMilliseconds()));
            break;
        case "z":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
Math.floor(Math.abs(hour)));
            break;
        case "zz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))));
            break;
        case "zzz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))) +
                dtf.TimeSeparator + =
addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
            break;
        }
    }
    return ret.toString();
}
=20
Number.__typeName =3D 'Number';
Number.__class =3D true;
Number.parseLocale =3D function Number$parseLocale(value) {
    /// <summary locid=3D"M:J#Number.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
Number.parseInvariant =3D function Number$parseInvariant(value) {
    /// <summary locid=3D"M:J#Number.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
Number._parse =3D function Number$_parse(value, cultureInfo) {
    value =3D value.trim();
   =20
    if (value.match(/^[+-]?infinity$/i)) {
        return parseFloat(value);
    }
    if (value.match(/^0x[a-f0-9]+$/i)) {
        return parseInt(value);
    }
    var numFormat =3D cultureInfo.numberFormat;
    var signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, numFormat.NumberNegativePattern);
    var sign =3D signInfo[0];
    var num =3D signInfo[1];
   =20
    if ((sign =3D=3D=3D '') && (numFormat.NumberNegativePattern !=3D=3D =
1)) {
        signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, 1);
        sign =3D signInfo[0];
        num =3D signInfo[1];
    }
    if (sign =3D=3D=3D '') sign =3D '+';
   =20
    var exponent;
    var intAndFraction;
    var exponentPos =3D num.indexOf('e');
    if (exponentPos < 0) exponentPos =3D num.indexOf('E');
    if (exponentPos < 0) {
        intAndFraction =3D num;
        exponent =3D null;
    }
    else {
        intAndFraction =3D num.substr(0, exponentPos);
        exponent =3D num.substr(exponentPos + 1);
    }
   =20
    var integer;
    var fraction;
    var decimalPos =3D =
intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
    if (decimalPos < 0) {
        integer =3D intAndFraction;
        fraction =3D null;
    }
    else {
        integer =3D intAndFraction.substr(0, decimalPos);
        fraction =3D intAndFraction.substr(decimalPos + =
numFormat.NumberDecimalSeparator.length);
    }
   =20
    integer =3D integer.split(numFormat.NumberGroupSeparator).join('');
    var altNumGroupSeparator =3D =
numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
    if (numFormat.NumberGroupSeparator !=3D=3D altNumGroupSeparator) {
        integer =3D integer.split(altNumGroupSeparator).join('');
    }
   =20
    var p =3D sign + integer;
    if (fraction !=3D=3D null) {
        p +=3D '.' + fraction;
    }
    if (exponent !=3D=3D null) {
        var expSignInfo =3D Number._parseNumberNegativePattern(exponent, =
numFormat, 1);
        if (expSignInfo[0] =3D=3D=3D '') {
            expSignInfo[0] =3D '+';
        }
        p +=3D 'e' + expSignInfo[0] + expSignInfo[1];
    }
    if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
        return parseFloat(p);
    }
    return Number.NaN;
}
Number._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4:=20
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3:=20
            if (value.endsWith(neg)) {
                return ['-', value.substr(0, value.length - =
neg.length)];
            }
            else if (value.endsWith(pos)) {
                return ['+', value.substr(0, value.length - =
pos.length)];
            }
            break;
        case 2:=20
            neg +=3D ' ';
            pos +=3D ' ';
        case 1:=20
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0:=20
            if (value.startsWith('(') && value.endsWith(')')) {
                return ['-', value.substr(1, value.length - 2)];
            }
            break;
    }
    return ['', value];
}
Number.prototype.format =3D function Number$format(format) {
    /// <summary locid=3D"M:J#Number.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Number.prototype.localeFormat =3D function Number$localeFormat(format) {
    /// <summary locid=3D"M:J#Number.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Number.prototype._toFormattedString =3D function =
Number$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
   =20
    var _percentPositivePattern =3D ["n %", "n%", "%n" ];
    var _percentNegativePattern =3D ["-n %", "-n%", "-%n"];
    var _numberNegativePattern =3D ["(n)","-n","- n","n-","n -"];
    var _currencyPositivePattern =3D ["$n","n$","$ n","n $"];
    var _currencyNegativePattern =3D =
["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n =
$-","$ n-","$ -n","n- $","($ n)","(n $)"];
    function zeroPad(str, count, left) {
        for (var l=3Dstr.length; l < count; l++) {
            str =3D (left ? ('0' + str) : (str + '0'));
        }
        return str;
    }
   =20
    function expandNumber(number, precision, groupSizes, sep, =
decimalChar) {
       =20
        var curSize =3D groupSizes[0];
        var curGroupIndex =3D 1;
        var factor =3D Math.pow(10, precision);
        var rounded =3D (Math.round(number * factor) / factor);
        if (!isFinite(rounded)) {
            rounded =3D number;
        }
        number =3D rounded;
       =20
        var numberString =3D number.toString();
        var right =3D "";
        var exponent;
       =20
       =20
        var split =3D numberString.split(/e/i);
        numberString =3D split[0];
        exponent =3D (split.length > 1 ? parseInt(split[1]) : 0);
        split =3D numberString.split('.');
        numberString =3D split[0];
        right =3D split.length > 1 ? split[1] : "";
       =20
        var l;
        if (exponent > 0) {
            right =3D zeroPad(right, exponent, false);
            numberString +=3D right.slice(0, exponent);
            right =3D right.substr(exponent);
        }
        else if (exponent < 0) {
            exponent =3D -exponent;
            numberString =3D zeroPad(numberString, exponent+1, true);
            right =3D numberString.slice(-exponent, numberString.length) =
+ right;
            numberString =3D numberString.slice(0, -exponent);
        }
        if (precision > 0) {
            if (right.length > precision) {
                right =3D right.slice(0, precision);
            }
            else {
                right =3D zeroPad(right, precision, false);
            }
            right =3D decimalChar + right;
        }
        else {=20
            right =3D "";
        }
        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {
            if (curSize =3D=3D=3D 0 || curSize > stringIndex) {
                if (ret.length > 0)
                    return numberString.slice(0, stringIndex + 1) + sep =
+ ret + right;
                else
                    return numberString.slice(0, stringIndex + 1) + =
right;
            }
            if (ret.length > 0)
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1) + sep + ret;
            else
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1);
            stringIndex -=3D curSize;
            if (curGroupIndex < groupSizes.length) {
                curSize =3D groupSizes[curGroupIndex];
                curGroupIndex++;
            }
        }
        return numberString.slice(0, stringIndex + 1) + sep + ret + =
right;
    }
    var nf =3D cultureInfo.numberFormat;
    var number =3D Math.abs(this);
    if (!format)
        format =3D "D";
    var precision =3D -1;
    if (format.length > 1) precision =3D parseInt(format.slice(1), 10);
    var pattern;
    switch (format.charAt(0)) {
    case "d":
    case "D":
        pattern =3D 'n';
        if (precision !=3D=3D -1) {
            number =3D zeroPad(""+number, precision, true);
        }
        if (this < 0) number =3D -number;
        break;
    case "c":
    case "C":
        if (this < 0) pattern =3D =
_currencyNegativePattern[nf.CurrencyNegativePattern];
        else pattern =3D =
_currencyPositivePattern[nf.CurrencyPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.CurrencyDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, =
nf.CurrencyDecimalSeparator);
        break;
    case "n":
    case "N":
        if (this < 0) pattern =3D =
_numberNegativePattern[nf.NumberNegativePattern];
        else pattern =3D 'n';
        if (precision =3D=3D=3D -1) precision =3D =
nf.NumberDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.NumberGroupSizes, nf.NumberGroupSeparator, =
nf.NumberDecimalSeparator);
        break;
    case "p":
    case "P":
        if (this < 0) pattern =3D =
_percentNegativePattern[nf.PercentNegativePattern];
        else pattern =3D =
_percentPositivePattern[nf.PercentPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.PercentDecimalDigits;
        number =3D expandNumber(Math.abs(this) * 100, precision, =
nf.PercentGroupSizes, nf.PercentGroupSeparator, =
nf.PercentDecimalSeparator);
        break;
    default:
        throw Error.format(Sys.Res.formatBadFormatSpecifier);
    }
    var regex =3D /n|\$|-|%/g;
    var ret =3D "";
    for (;;) {
        var index =3D regex.lastIndex;
        var ar =3D regex.exec(pattern);
        ret +=3D pattern.slice(index, ar ? ar.index : pattern.length);
        if (!ar)
            break;
        switch (ar[0]) {
        case "n":
            ret +=3D number;
            break;
        case "$":
            ret +=3D nf.CurrencySymbol;
            break;
        case "-":
            ret +=3D nf.NegativeSign;
            break;
        case "%":
            ret +=3D nf.PercentSymbol;
            break;
        }
    }
    return ret;
}
=20
RegExp.__typeName =3D 'RegExp';
RegExp.__class =3D true;
=20
Array.__typeName =3D 'Array';
Array.__class =3D true;
Array.add =3D Array.enqueue =3D function Array$enqueue(array, item) {
    /// <summary locid=3D"M:J#Array.enqueue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array[array.length] =3D item;
}
Array.addRange =3D function Array$addRange(array, items) {
    /// <summary locid=3D"M:J#Array.addRange" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.push.apply(array, items);
}
Array.clear =3D function Array$clear(array) {
    /// <summary locid=3D"M:J#Array.clear" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.length =3D 0;
}
Array.clone =3D function Array$clone(array) {
    /// <summary locid=3D"M:J#Array.clone" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (array.length =3D=3D=3D 1) {
        return [array[0]];
    }
    else {
        return Array.apply(null, array);
    }
}
Array.contains =3D function Array$contains(array, item) {
    /// <summary locid=3D"M:J#Array.contains" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    return (Array.indexOf(array, item) >=3D 0);
}
Array.dequeue =3D function Array$dequeue(array) {
    /// <summary locid=3D"M:J#Array.dequeue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.shift();
}
Array.forEach =3D function Array$forEach(array, method, instance) {
    /// <summary locid=3D"M:J#Array.forEach" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"instance" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "method", type: Function},
        {name: "instance", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    for (var i =3D 0, l =3D array.length; i < l; i++) {
        var elt =3D array[i];
        if (typeof(elt) !=3D=3D 'undefined') method.call(instance, elt, =
i, array);
    }
}
Array.indexOf =3D function Array$indexOf(array, item, start) {
    /// <summary locid=3D"M:J#Array.indexOf" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"start" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true, optional: true},
        {name: "start", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (typeof(item) =3D=3D=3D "undefined") return -1;
    var length =3D array.length;
    if (length !=3D=3D 0) {
        start =3D start - 0;
        if (isNaN(start)) {
            start =3D 0;
        }
        else {
            if (isFinite(start)) {
                start =3D start - (start % 1);
            }
            if (start < 0) {
                start =3D Math.max(0, length + start);
            }
        }
        for (var i =3D start; i < length; i++) {
            if ((typeof(array[i]) !=3D=3D "undefined") && (array[i] =
=3D=3D=3D item)) {
                return i;
            }
        }
    }
    return -1;
}
Array.insert =3D function Array$insert(array, index, item) {
    /// <summary locid=3D"M:J#Array.insert" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 0, item);
}
Array.parse =3D function Array$parse(value) {
    /// <summary locid=3D"M:J#Array.parse" />
    /// <param name=3D"value" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    if (!value) return [];
    var v =3D eval(value);
    if (!Array.isInstanceOfType(v)) throw Error.argument('value', =
Sys.Res.arrayParseBadFormat);
    return v;
}
Array.remove =3D function Array$remove(array, item) {
    /// <summary locid=3D"M:J#Array.remove" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D Array.indexOf(array, item);
    if (index >=3D 0) {
        array.splice(index, 1);
    }
    return (index >=3D 0);
}
Array.removeAt =3D function Array$removeAt(array, index) {
    /// <summary locid=3D"M:J#Array.removeAt" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 1);
}
=20
if (!window) this.window =3D this;
window.Type =3D Function;
Type.__fullyQualifiedIdentifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
Type.__identifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
Type.prototype.callBaseMethod =3D function Type$callBaseMethod(instance, =
name, baseArguments) {
    /// <summary locid=3D"M:J#Type.callBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var baseMethod =3D this.getBaseMethod(instance, name);
    if (!baseMethod) throw =
Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
    if (!baseArguments) {
        return baseMethod.apply(instance);
    }
    else {
        return baseMethod.apply(instance, baseArguments);
    }
}
Type.prototype.getBaseMethod =3D function Type$getBaseMethod(instance, =
name) {
    /// <summary locid=3D"M:J#Type.getBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Function" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    var baseType =3D this.getBaseType();
    if (baseType) {
        var baseMethod =3D baseType.prototype[name];
        return (baseMethod instanceof Function) ? baseMethod : null;
    }
    return null;
}
Type.prototype.getBaseType =3D function Type$getBaseType() {
    /// <summary locid=3D"M:J#Type.getBaseType" />
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : =
this.__baseType;
}
Type.prototype.getInterfaces =3D function Type$getInterfaces() {
    /// <summary locid=3D"M:J#Type.getInterfaces" />
    /// <returns type=3D"Array" elementType=3D"Type" mayBeNull=3D"false" =
elementMayBeNull=3D"false"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var result =3D [];
    var type =3D this;
    while(type) {
        var interfaces =3D type.__interfaces;
        if (interfaces) {
            for (var i =3D 0, l =3D interfaces.length; i < l; i++) {
                var interfaceType =3D interfaces[i];
                if (!Array.contains(result, interfaceType)) {
                    result[result.length] =3D interfaceType;
                }
            }
        }
        type =3D type.__baseType;
    }
    return result;
}
Type.prototype.getName =3D function Type$getName() {
    /// <summary locid=3D"M:J#Type.getName" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : =
this.__typeName;
}
Type.prototype.implementsInterface =3D function =
Type$implementsInterface(interfaceType) {
    /// <summary locid=3D"M:J#Type.implementsInterface" />
    /// <param name=3D"interfaceType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "interfaceType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var interfaceName =3D interfaceType.getName();
    var cache =3D this.__interfaceCache;
    if (cache) {
        var cacheEntry =3D cache[interfaceName];
        if (typeof(cacheEntry) !=3D=3D 'undefined') return cacheEntry;
    }
    else {
        cache =3D this.__interfaceCache =3D {};
    }
    var baseType =3D this;
    while (baseType) {
        var interfaces =3D baseType.__interfaces;
        if (interfaces) {
            if (Array.indexOf(interfaces, interfaceType) !=3D=3D -1) {
                return cache[interfaceName] =3D true;
            }
        }
        baseType =3D baseType.__baseType;
    }
    return cache[interfaceName] =3D false;
}
Type.prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) {
    /// <summary locid=3D"M:J#Type.inheritsFrom" />
    /// <param name=3D"parentType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parentType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var baseType =3D this.__baseType;
    while (baseType) {
        if (baseType =3D=3D=3D parentType) {
            return true;
        }
        baseType =3D baseType.__baseType;
    }
    return false;
}
Type.prototype.initializeBase =3D function Type$initializeBase(instance, =
baseArguments) {
    /// <summary locid=3D"M:J#Type.initializeBase" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    this.resolveInheritance();
    if (this.__baseType) {
        if (!baseArguments) {
            this.__baseType.apply(instance);
        }
        else {
            this.__baseType.apply(instance, baseArguments);
        }
    }
    return instance;
}
Type.prototype.isImplementedBy =3D function =
Type$isImplementedBy(instance) {
    /// <summary locid=3D"M:J#Type.isImplementedBy" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.isInstanceOfType =3D function =
Type$isInstanceOfType(instance) {
    /// <summary locid=3D"M:J#Type.isInstanceOfType" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    if (instance instanceof this) return true;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType =3D=3D=3D this) ||
           (instanceType.inheritsFrom && =
instanceType.inheritsFrom(this)) ||
           (instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.registerClass =3D function Type$registerClass(typeName, =
baseType, interfaceTypes) {
    /// <summary locid=3D"M:J#Type.registerClass" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <param name=3D"baseType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"interfaceTypes" parameterArray=3D"true" =
type=3D"Type"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String},
        {name: "baseType", type: Type, mayBeNull: true, optional: true},
        {name: "interfaceTypes", type: Type, parameterArray: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    if ((arguments.length > 1) && (typeof(baseType) =3D=3D=3D =
'undefined')) throw Error.argumentUndefined('baseType');
    if (baseType && !baseType.__class) throw Error.argument('baseType', =
Sys.Res.baseNotAClass);
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__class =3D true;
    if (baseType) {
        this.__baseType =3D baseType;
        this.__basePrototypePending =3D true;
    }
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    if (interfaceTypes) {
        this.__interfaces =3D [];
        this.resolveInheritance();
        for (var i =3D 2, l =3D arguments.length; i < l; i++) {
            var interfaceType =3D arguments[i];
            if (!interfaceType.__interface) throw =
Error.argument('interfaceTypes[' + (i - 2) + ']', =
Sys.Res.notAnInterface);
            for (var methodName in interfaceType.prototype) {
                var method =3D interfaceType.prototype[methodName];
                if (!this.prototype[methodName]) {
                    this.prototype[methodName] =3D method;
                }
            }
            this.__interfaces.push(interfaceType);
        }
    }
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.registerInterface =3D function =
Type$registerInterface(typeName) {
    /// <summary locid=3D"M:J#Type.registerInterface" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__interface =3D true;
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.resolveInheritance =3D function Type$resolveInheritance() =
{
    /// <summary locid=3D"M:J#Type.resolveInheritance" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (this.__basePrototypePending) {
        var baseType =3D this.__baseType;
        baseType.resolveInheritance();
        for (var memberName in baseType.prototype) {
            var memberValue =3D baseType.prototype[memberName];
            if (!this.prototype[memberName]) {
                this.prototype[memberName] =3D memberValue;
            }
        }
        delete this.__basePrototypePending;
    }
}
Type.getRootNamespaces =3D function Type$getRootNamespaces() {
    /// <summary locid=3D"M:J#Type.getRootNamespaces" />
    /// <returns type=3D"Array"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return Array.clone(Sys.__rootNamespaces);
}
Type.isClass =3D function Type$isClass(type) {
    /// <summary locid=3D"M:J#Type.isClass" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__class;
}
Type.isInterface =3D function Type$isInterface(type) {
    /// <summary locid=3D"M:J#Type.isInterface" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__interface;
}
Type.isNamespace =3D function Type$isNamespace(object) {
    /// <summary locid=3D"M:J#Type.isNamespace" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(object) =3D=3D=3D 'undefined') || (object =3D=3D=3D =
null)) return false;
    return !!object.__namespace;
}
Type.parse =3D function Type$parse(typeName, ns) {
    /// <summary locid=3D"M:J#Type.parse" />
    /// <param name=3D"typeName" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"ns" optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String, mayBeNull: true},
        {name: "ns", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var fn;
    if (ns) {
        fn =3D Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + =
typeName.toUpperCase()];
        return fn || null;
    }
    if (!typeName) return null;
    if (!Type.__htClasses) {
        Type.__htClasses =3D {};
    }
    fn =3D Type.__htClasses[typeName];
    if (!fn) {
        fn =3D eval(typeName);
        if (typeof(fn) !=3D=3D 'function') throw =
Error.argument('typeName', Sys.Res.notATypeName);
        Type.__htClasses[typeName] =3D fn;
    }
    return fn;
}
Type.registerNamespace =3D function =
Type$registerNamespace(namespacePath) {
    /// <summary locid=3D"M:J#Type.registerNamespace" />
    /// <param name=3D"namespacePath" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "namespacePath", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) =
throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
    var rootObject =3D window;
    var namespaceParts =3D namespacePath.split('.');
    for (var i =3D 0; i < namespaceParts.length; i++) {
        var currentPart =3D namespaceParts[i];
        var ns =3D rootObject[currentPart];
        if (ns && !ns.__namespace) {
            throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, =
namespaceParts.splice(0, i + 1).join('.')));
        }
        if (!ns) {
            ns =3D rootObject[currentPart] =3D {
                __namespace: true,
                __typeName: namespaceParts.slice(0, i + 1).join('.')
            };
            if (i =3D=3D=3D 0) {
                Sys.__rootNamespaces[Sys.__rootNamespaces.length] =3D =
ns;
            }
            var parsedName;
            try {
                parsedName =3D eval(ns.__typeName);
            }
            catch(e) {
                parsedName =3D null;
            }
            if (parsedName !=3D=3D ns) {
                delete rootObject[currentPart];
                throw Error.argument('namespacePath', =
Sys.Res.invalidNameSpace);
            }
            ns.getName =3D function ns$getName() {return =
this.__typeName;}
        }
        rootObject =3D ns;
    }
}
window.Sys =3D {
    __namespace: true,
    __typeName: "Sys",
    getName: function() {return "Sys";},
    __upperCaseTypes: {}
};
Sys.__rootNamespaces =3D [Sys];
Sys.__registeredTypes =3D {};
=20
Sys.IDisposable =3D function Sys$IDisposable() {
    throw Error.notImplemented();
}
    function Sys$IDisposable$dispose() {
        throw Error.notImplemented();
    }
Sys.IDisposable.prototype =3D {
    dispose: Sys$IDisposable$dispose
}
Sys.IDisposable.registerInterface('Sys.IDisposable');
=20
Sys.StringBuilder =3D function Sys$StringBuilder(initialText) {
    /// <summary locid=3D"M:J#Sys.StringBuilder.#ctor" />
    /// <param name=3D"initialText" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "initialText", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    this._parts =3D (typeof(initialText) !=3D=3D 'undefined' && =
initialText !=3D=3D null && initialText !=3D=3D '') ?
        [initialText.toString()] : [];
    this._value =3D {};
    this._len =3D 0;
}
    function Sys$StringBuilder$append(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.append" />
        /// <param name=3D"text" mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D text;
    }
    function Sys$StringBuilder$appendLine(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.appendLine" />
        /// <param name=3D"text" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D
            ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D =
null) || (text =3D=3D=3D '')) ?
            '\r\n' : text + '\r\n';
    }
    function Sys$StringBuilder$clear() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.clear" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._parts =3D [];
        this._value =3D {};
        this._len =3D 0;
    }
    function Sys$StringBuilder$isEmpty() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.isEmpty" />
        /// <returns type=3D"Boolean"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parts.length =3D=3D=3D 0) return true;
        return this.toString() =3D=3D=3D '';
    }
    function Sys$StringBuilder$toString(separator) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.toString" />
        /// <param name=3D"separator" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "separator", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        separator =3D separator || '';
        var parts =3D this._parts;
        if (this._len !=3D=3D parts.length) {
            this._value =3D {};
            this._len =3D parts.length;
        }
        var val =3D this._value;
        if (typeof(val[separator]) =3D=3D=3D 'undefined') {
            if (separator !=3D=3D '') {
                for (var i =3D 0; i < parts.length;) {
                    if ((typeof(parts[i]) =3D=3D=3D 'undefined') || =
(parts[i] =3D=3D=3D '') || (parts[i] =3D=3D=3D null)) {
                        parts.splice(i, 1);
                    }
                    else {
                        i++;
                    }
                }
            }
            val[separator] =3D this._parts.join(separator);
        }
        return val[separator];
    }
Sys.StringBuilder.prototype =3D {
    append: Sys$StringBuilder$append,
    appendLine: Sys$StringBuilder$appendLine,
    clear: Sys$StringBuilder$clear,
    isEmpty: Sys$StringBuilder$isEmpty,
    toString: Sys$StringBuilder$toString
}
Sys.StringBuilder.registerClass('Sys.StringBuilder');
=20
if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        var progIDs =3D [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                return new ActiveXObject(progIDs[i]);
            }
            catch (ex) {
            }
        }
        return null;
    }
}
=20
Sys.Browser =3D {};
Sys.Browser.InternetExplorer =3D {};
Sys.Browser.Firefox =3D {};
Sys.Browser.Safari =3D {};
Sys.Browser.Opera =3D {};
Sys.Browser.agent =3D null;
Sys.Browser.hasDebuggerStatement =3D false;
Sys.Browser.name =3D navigator.appName;
Sys.Browser.version =3D parseFloat(navigator.appVersion);
Sys.Browser.documentMode =3D 0;
if (navigator.userAgent.indexOf(' MSIE ') > -1) {
    Sys.Browser.agent =3D Sys.Browser.InternetExplorer;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/MSIE =
(\d+\.\d+)/)[1]);
    if (Sys.Browser.version >=3D 8) {
        if (document.documentMode >=3D 7) {
            Sys.Browser.documentMode =3D document.documentMode;   =20
        }
    }
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Firefox;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
Firefox\/(\d+\.\d+)/)[1]);
    Sys.Browser.name =3D 'Firefox';
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Safari;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
AppleWebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name =3D 'Safari';
}
else if (navigator.userAgent.indexOf('Opera/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Opera;
}
Type.registerNamespace('Sys.UI');
=20
Sys._Debug =3D function Sys$_Debug() {
    /// <summary locid=3D"M:J#Sys.Debug.#ctor" />
    /// <field name=3D"isDebug" type=3D"Boolean" =
locid=3D"F:J#Sys.Debug.isDebug"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
    function Sys$_Debug$_appendConsole(text) {
        if ((typeof(Debug) !=3D=3D 'undefined') && Debug.writeln) {
            Debug.writeln(text);
        }
        if (window.console && window.console.log) {
            window.console.log(text);
        }
        if (window.opera) {
            window.opera.postError(text);
        }
        if (window.debugService) {
            window.debugService.trace(text);
        }
    }
    function Sys$_Debug$_appendTrace(text) {
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value +=3D text + '\n';
        }
    }
    function Sys$_Debug$assert(condition, message, displayCaller) {
        /// <summary locid=3D"M:J#Sys.Debug.assert" />
        /// <param name=3D"condition" type=3D"Boolean"></param>
        /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"displayCaller" type=3D"Boolean" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "condition", type: Boolean},
            {name: "message", type: String, mayBeNull: true, optional: =
true},
            {name: "displayCaller", type: Boolean, optional: true}
        ]);
        if (e) throw e;
        if (!condition) {
            message =3D (displayCaller && this.assert.caller) ?
                String.format(Sys.Res.assertFailedCaller, message, =
this.assert.caller) :
                String.format(Sys.Res.assertFailed, message);
            if (confirm(String.format(Sys.Res.breakIntoDebugger, =
message))) {
                this.fail(message);
            }
        }
    }
    function Sys$_Debug$clearTrace() {
        /// <summary locid=3D"M:J#Sys.Debug.clearTrace" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value =3D '';
        }
    }
    function Sys$_Debug$fail(message) {
        /// <summary locid=3D"M:J#Sys.Debug.fail" />
        /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "message", type: String, mayBeNull: true}
        ]);
        if (e) throw e;
        this._appendConsole(message);
        if (Sys.Browser.hasDebuggerStatement) {
            eval('debugger');
        }
    }
    function Sys$_Debug$trace(text) {
        /// <summary locid=3D"M:J#Sys.Debug.trace" />
        /// <param name=3D"text"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text"}
        ]);
        if (e) throw e;
        this._appendConsole(text);
        this._appendTrace(text);
    }
    function Sys$_Debug$traceDump(object, name) {
        /// <summary locid=3D"M:J#Sys.Debug.traceDump" />
        /// <param name=3D"object" mayBeNull=3D"true"></param>
        /// <param name=3D"name" type=3D"String" mayBeNull=3D"true" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", mayBeNull: true},
            {name: "name", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        var text =3D this._traceDump(object, name, true);
    }
    function Sys$_Debug$_traceDump(object, name, recursive, =
indentationPadding, loopArray) {
        name =3D name? name : 'traceDump';
        indentationPadding =3D indentationPadding? indentationPadding : =
'';
        if (object =3D=3D=3D null) {
            this.trace(indentationPadding + name + ': null');
            return;
        }
        switch(typeof(object)) {
            case 'undefined':
                this.trace(indentationPadding + name + ': Undefined');
                break;
            case 'number': case 'string': case 'boolean':
                this.trace(indentationPadding + name + ': ' + object);
                break;
            default:
                if (Date.isInstanceOfType(object) || =
RegExp.isInstanceOfType(object)) {
                    this.trace(indentationPadding + name + ': ' + =
object.toString());
                    break;
                }
                if (!loopArray) {
                    loopArray =3D [];
                }
                else if (Array.contains(loopArray, object)) {
                    this.trace(indentationPadding + name + ': ...');
                    return;
                }
                Array.add(loopArray, object);
                if ((object =3D=3D window) || (object =3D=3D=3D =
document) ||
                    (window.HTMLElement && (object instanceof =
HTMLElement)) ||
                    (typeof(object.nodeName) =3D=3D=3D 'string')) {
                    var tag =3D object.tagName? object.tagName : =
'DomElement';
                    if (object.id) {
                        tag +=3D ' - ' + object.id;
                    }
                    this.trace(indentationPadding + name + ' {' +  tag + =
'}');
                }
                else {
                    var typeName =3D Object.getTypeName(object);
                    this.trace(indentationPadding + name + =
(typeof(typeName) =3D=3D=3D 'string' ? ' {' + typeName + '}' : ''));
                    if ((indentationPadding =3D=3D=3D '') || recursive) =
{
                        indentationPadding +=3D "    ";
                        var i, length, properties, p, v;
                        if (Array.isInstanceOfType(object)) {
                            length =3D object.length;
                            for (i =3D 0; i < length; i++) {
                                this._traceDump(object[i], '[' + i + =
']', recursive, indentationPadding, loopArray);
                            }
                        }
                        else {
                            for (p in object) {
                                v =3D object[p];
                                if (!Function.isInstanceOfType(v)) {
                                    this._traceDump(v, p, recursive, =
indentationPadding, loopArray);
                                }
                            }
                        }
                    }
                }
                Array.remove(loopArray, object);
        }
    }
Sys._Debug.prototype =3D {
    _appendConsole: Sys$_Debug$_appendConsole,
    _appendTrace: Sys$_Debug$_appendTrace,
    assert: Sys$_Debug$assert,
    clearTrace: Sys$_Debug$clearTrace,
    fail: Sys$_Debug$fail,
    trace: Sys$_Debug$trace,
    traceDump: Sys$_Debug$traceDump,
    _traceDump: Sys$_Debug$_traceDump
}
Sys._Debug.registerClass('Sys._Debug');
Sys.Debug =3D new Sys._Debug();
    Sys.Debug.isDebug =3D true;
=20
function Sys$Enum$parse(value, ignoreCase) {
    /// <summary locid=3D"M:J#Sys.Enum.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"ignoreCase" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "ignoreCase", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    var values, parsed, val;
    if (ignoreCase) {
        values =3D this.__lowerCaseValues;
        if (!values) {
            this.__lowerCaseValues =3D values =3D {};
            var prototype =3D this.prototype;
            for (var name in prototype) {
                values[name.toLowerCase()] =3D prototype[name];
            }
        }
    }
    else {
        values =3D this.prototype;
    }
    if (!this.__flags) {
        val =3D (ignoreCase ? value.toLowerCase() : value);
        parsed =3D values[val.trim()];
        if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, =
this.__typeName));
        return parsed;
    }
    else {
        var parts =3D (ignoreCase ? value.toLowerCase() : =
value).split(',');
        var v =3D 0;
        for (var i =3D parts.length - 1; i >=3D 0; i--) {
            var part =3D parts[i].trim();
            parsed =3D values[part];
            if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, =
value.split(',')[i].trim(), this.__typeName));
            v |=3D parsed;
        }
        return v;
    }
}
function Sys$Enum$toString(value) {
    /// <summary locid=3D"M:J#Sys.Enum.toString" />
    /// <param name=3D"value" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if ((typeof(value) =3D=3D=3D 'undefined') || (value =3D=3D=3D null)) =
return this.__string;
    if ((typeof(value) !=3D 'number') || ((value % 1) !=3D=3D 0)) throw =
Error.argumentType('value', Object.getType(value), this);
    var values =3D this.prototype;
    var i;
    if (!this.__flags || (value =3D=3D=3D 0)) {
        for (i in values) {
            if (values[i] =3D=3D=3D value) {
                return i;
            }
        }
    }
    else {
        var sorted =3D this.__sortedValues;
        if (!sorted) {
            sorted =3D [];
            for (i in values) {
                sorted[sorted.length] =3D {key: i, value: values[i]};
            }
            sorted.sort(function(a, b) {
                return a.value - b.value;
            });
            this.__sortedValues =3D sorted;
        }
        var parts =3D [];
        var v =3D value;
        for (i =3D sorted.length - 1; i >=3D 0; i--) {
            var kvp =3D sorted[i];
            var vali =3D kvp.value;
            if (vali =3D=3D=3D 0) continue;
            if ((vali & value) =3D=3D=3D vali) {
                parts[parts.length] =3D kvp.key;
                v -=3D vali;
                if (v =3D=3D=3D 0) break;
            }
        }
        if (parts.length && v =3D=3D=3D 0) return =
parts.reverse().join(', ');
    }
    throw Error.argumentOutOfRange('value', value, =
String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
}
Type.prototype.registerEnum =3D function Type$registerEnum(name, flags) =
{
    /// <summary locid=3D"M:J#Sys.UI.LineType.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"flags" type=3D"Boolean" =
optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "flags", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw =
Error.argument('name', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(name);
    }
    catch(e) {
        throw Error.argument('name', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('name', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[name]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
name));
    for (var i in this.prototype) {
        var val =3D this.prototype[i];
        if (!Type.__identifierRegExp.test(i)) throw =
Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
        if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw =
Error.invalidOperation(Sys.Res.enumValueNotInteger);
        if (typeof(this[i]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
    }
    Sys.__upperCaseTypes[name.toUpperCase()] =3D this;
    for (var i in this.prototype) {
        this[i] =3D this.prototype[i];
    }
    this.__typeName =3D name;
    this.parse =3D Sys$Enum$parse;
    this.__string =3D this.toString();
    this.toString =3D Sys$Enum$toString;
    this.__flags =3D flags;
    this.__enum =3D true;
    Sys.__registeredTypes[name] =3D true;
}
Type.isEnum =3D function Type$isEnum(type) {
    /// <summary locid=3D"M:J#Type.isEnum" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__enum;
}
Type.isFlags =3D function Type$isFlags(type) {
    /// <summary locid=3D"M:J#Type.isFlags" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__flags;
}
=20
Sys.EventHandlerList =3D function Sys$EventHandlerList() {
    /// <summary locid=3D"M:J#Sys.EventHandlerList.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._list =3D {};
}
    function Sys$EventHandlerList$addHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.addHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Array.add(this._getEvent(id, true), handler);
    }
    function Sys$EventHandlerList$removeHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.removeHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt) return;
        Array.remove(evt, handler);
    }
    function Sys$EventHandlerList$getHandler(id) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.getHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Function"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt || (evt.length =3D=3D=3D 0)) return null;
        evt =3D Array.clone(evt);
        return function(source, args) {
            for (var i =3D 0, l =3D evt.length; i < l; i++) {
                evt[i](source, args);
            }
        };
    }
    function Sys$EventHandlerList$_getEvent(id, create) {
        if (!this._list[id]) {
            if (!create) return null;
            this._list[id] =3D [];
        }
        return this._list[id];
    }
Sys.EventHandlerList.prototype =3D {
    addHandler: Sys$EventHandlerList$addHandler,
    removeHandler: Sys$EventHandlerList$removeHandler,
    getHandler: Sys$EventHandlerList$getHandler,
    _getEvent: Sys$EventHandlerList$_getEvent
}
Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
=20
Sys.EventArgs =3D function Sys$EventArgs() {
    /// <summary locid=3D"M:J#Sys.EventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.EventArgs.registerClass('Sys.EventArgs');
Sys.EventArgs.Empty =3D new Sys.EventArgs();
=20
Sys.CancelEventArgs =3D function Sys$CancelEventArgs() {
    /// <summary locid=3D"M:J#Sys.CancelEventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.CancelEventArgs.initializeBase(this);
    this._cancel =3D false;
}
    function Sys$CancelEventArgs$get_cancel() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.CancelEventArgs.cancel"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._cancel;
    }
    function Sys$CancelEventArgs$set_cancel(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._cancel =3D value;
    }
Sys.CancelEventArgs.prototype =3D {
    get_cancel: Sys$CancelEventArgs$get_cancel,
    set_cancel: Sys$CancelEventArgs$set_cancel
}
Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
=20
Sys.INotifyPropertyChange =3D function Sys$INotifyPropertyChange() {
    /// <summary locid=3D"M:J#Sys.INotifyPropertyChange.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyPropertyChange.propertyChanged" =
/>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyPropertyChange.prototype =3D {
    add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
    remove_propertyChanged: =
Sys$INotifyPropertyChange$remove_propertyChanged
}
Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');=

=20
Sys.PropertyChangedEventArgs =3D function =
Sys$PropertyChangedEventArgs(propertyName) {
    /// <summary locid=3D"M:J#Sys.PropertyChangedEventArgs.#ctor" />
    /// <param name=3D"propertyName" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "propertyName", type: String}
    ]);
    if (e) throw e;
    Sys.PropertyChangedEventArgs.initializeBase(this);
    this._propertyName =3D propertyName;
}
=20
    function Sys$PropertyChangedEventArgs$get_propertyName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.PropertyChangedEventArgs.propertyName"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._propertyName;
    }
Sys.PropertyChangedEventArgs.prototype =3D {
    get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
}
Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs'=
, Sys.EventArgs);
=20
Sys.INotifyDisposing =3D function Sys$INotifyDisposing() {
    /// <summary locid=3D"M:J#Sys.INotifyDisposing.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyDisposing$add_disposing(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyDisposing.disposing" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyDisposing$remove_disposing(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyDisposing.prototype =3D {
    add_disposing: Sys$INotifyDisposing$add_disposing,
    remove_disposing: Sys$INotifyDisposing$remove_disposing
}
Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
=20
Sys.Component =3D function Sys$Component() {
    /// <summary locid=3D"M:J#Sys.Component.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (Sys.Application) Sys.Application.registerDisposableObject(this);
}
    function Sys$Component$get_events() {
        /// <value type=3D"Sys.EventHandlerList" =
locid=3D"P:J#Sys.Component.events"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Component$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Component.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._id;
    }
    function Sys$Component$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (this._idSet) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
        this._idSet =3D true;
        var oldId =3D this.get_id();
        if (oldId && Sys.Application.findComponent(oldId)) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
        this._id =3D value;
    }
    function Sys$Component$get_isInitialized() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isInitialized"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._initialized;
    }
    function Sys$Component$get_isUpdating() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updating;
    }
    function Sys$Component$add_disposing(handler) {
        /// <summary locid=3D"E:J#Sys.Component.disposing" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("disposing", handler);
    }
    function Sys$Component$remove_disposing(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("disposing", handler);
    }
    function Sys$Component$add_propertyChanged(handler) {
        /// <summary locid=3D"E:J#Sys.Component.propertyChanged" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("propertyChanged", handler);
    }
    function Sys$Component$remove_propertyChanged(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("propertyChanged", handler);
    }
    function Sys$Component$beginUpdate() {
        this._updating =3D true;
    }
    function Sys$Component$dispose() {
        if (this._events) {
            var handler =3D this._events.getHandler("disposing");
            if (handler) {
                handler(this, Sys.EventArgs.Empty);
            }
        }
        delete this._events;
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    }
    function Sys$Component$endUpdate() {
        this._updating =3D false;
        if (!this._initialized) this.initialize();
        this.updated();
    }
    function Sys$Component$initialize() {
        this._initialized =3D true;
    }
    function Sys$Component$raisePropertyChanged(propertyName) {
        /// <summary locid=3D"M:J#Sys.Component.raisePropertyChanged" />
        /// <param name=3D"propertyName" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyName", type: String}
        ]);
        if (e) throw e;
        if (!this._events) return;
        var handler =3D this._events.getHandler("propertyChanged");
        if (handler) {
            handler(this, new =
Sys.PropertyChangedEventArgs(propertyName));
        }
    }
    function Sys$Component$updated() {
    }
Sys.Component.prototype =3D {
    _id: null,
    _idSet: false,
    _initialized: false,
    _updating: false,
    get_events: Sys$Component$get_events,
    get_id: Sys$Component$get_id,
    set_id: Sys$Component$set_id,
    get_isInitialized: Sys$Component$get_isInitialized,
    get_isUpdating: Sys$Component$get_isUpdating,
    add_disposing: Sys$Component$add_disposing,
    remove_disposing: Sys$Component$remove_disposing,
    add_propertyChanged: Sys$Component$add_propertyChanged,
    remove_propertyChanged: Sys$Component$remove_propertyChanged,
    beginUpdate: Sys$Component$beginUpdate,
    dispose: Sys$Component$dispose,
    endUpdate: Sys$Component$endUpdate,
    initialize: Sys$Component$initialize,
    raisePropertyChanged: Sys$Component$raisePropertyChanged,
    updated: Sys$Component$updated
}
Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, =
Sys.INotifyPropertyChange, Sys.INotifyDisposing);
function Sys$Component$_setProperties(target, properties) {
    /// <summary locid=3D"M:J#Sys.Component._setProperties" />
    /// <param name=3D"target"></param>
    /// <param name=3D"properties"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "properties"}
    ]);
    if (e) throw e;
    var current;
    var targetType =3D Object.getType(target);
    var isObject =3D (targetType =3D=3D=3D Object) || (targetType =
=3D=3D=3D Sys.UI.DomElement);
    var isComponent =3D Sys.Component.isInstanceOfType(target) && =
!target.get_isUpdating();
    if (isComponent) target.beginUpdate();
    for (var name in properties) {
        var val =3D properties[name];
        var getter =3D isObject ? null : target["get_" + name];
        if (isObject || typeof(getter) !=3D=3D 'function') {
            var targetVal =3D target[name];
            if (!isObject && typeof(targetVal) =3D=3D=3D 'undefined') =
throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, =
name));
            if (!val || (typeof(val) !=3D=3D 'object') || (isObject && =
!targetVal)) {
                target[name] =3D val;
            }
            else {
                Sys$Component$_setProperties(targetVal, val);
            }
        }
        else {
            var setter =3D target["set_" + name];
            if (typeof(setter) =3D=3D=3D 'function') {
                setter.apply(target, [val]);
            }
            else if (val instanceof Array) {
                current =3D getter.apply(target);
                if (!(current instanceof Array)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
                for (var i =3D 0, j =3D current.length, l=3D val.length; =
i < l; i++, j++) {
                    current[j] =3D val[i];
                }
            }
            else if ((typeof(val) =3D=3D=3D 'object') && =
(Object.getType(val) =3D=3D=3D Object)) {
                current =3D getter.apply(target);
                if ((typeof(current) =3D=3D=3D 'undefined') || (current =
=3D=3D=3D null)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, =
name));
                Sys$Component$_setProperties(current, val);
            }
            else {
                throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
            }
        }
    }
    if (isComponent) target.endUpdate();
}
function Sys$Component$_setReferences(component, references) {
    for (var name in references) {
        var setter =3D component["set_" + name];
        var reference =3D $find(references[name]);
        if (typeof(setter) !=3D=3D 'function') throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
        if (!reference) throw =
Error.invalidOperation(String.format(Sys.Res.referenceNotFound, =
references[name]));
        setter.apply(component, [reference]);
    }
}
var $create =3D Sys.Component.create =3D function =
Sys$Component$create(type, properties, events, references, element) {
    /// <summary locid=3D"M:J#Sys.Component.create" />
    /// <param name=3D"type" type=3D"Type"></param>
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"events" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"references" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Sys.UI.Component"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Type},
        {name: "properties", mayBeNull: true, optional: true},
        {name: "events", mayBeNull: true, optional: true},
        {name: "references", mayBeNull: true, optional: true},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!type.inheritsFrom(Sys.Component)) {
        throw Error.argument('type', =
String.format(Sys.Res.createNotComponent, type.getName()));
    }
    if (type.inheritsFrom(Sys.UI.Behavior) || =
type.inheritsFrom(Sys.UI.Control)) {
        if (!element) throw Error.argument('element', =
Sys.Res.createNoDom);
    }
    else if (element) throw Error.argument('element', =
Sys.Res.createComponentOnDom);
    var component =3D (element ? new type(element): new type());
    var app =3D Sys.Application;
    var creatingComponents =3D app.get_isCreatingComponents();
    component.beginUpdate();
    if (properties) {
        Sys$Component$_setProperties(component, properties);
    }
    if (events) {
        for (var name in events) {
            if (!(component["add_" + name] instanceof Function)) throw =
new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
            if (!(events[name] instanceof Function)) throw new =
Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
            component["add_" + name](events[name]);
        }
    }
    if (component.get_id()) {
        app.addComponent(component);
    }
    if (creatingComponents) {
        app._createdComponents[app._createdComponents.length] =3D =
component;
        if (references) {
            app._addComponentToSecondPass(component, references);
        }
        else {
            component.endUpdate();
        }
    }
    else {
        if (references) {
            Sys$Component$_setReferences(component, references);
        }
        component.endUpdate();
    }
    return component;
}
=20
Sys.UI.MouseButton =3D function Sys$UI$MouseButton() {
    /// <summary locid=3D"M:J#Sys.UI.MouseButton.#ctor" />
    /// <field name=3D"leftButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.leftButton"></field>
    /// <field name=3D"middleButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.middleButton"></field>
    /// <field name=3D"rightButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.rightButton"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.MouseButton.prototype =3D {
    leftButton: 0,
    middleButton: 1,
    rightButton: 2
}
Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
=20
Sys.UI.Key =3D function Sys$UI$Key() {
    /// <summary locid=3D"M:J#Sys.UI.Key.#ctor" />
    /// <field name=3D"backspace" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.backspace"></field>
    /// <field name=3D"tab" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.tab"></field>
    /// <field name=3D"enter" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.enter"></field>
    /// <field name=3D"esc" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.esc"></field>
    /// <field name=3D"space" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.space"></field>
    /// <field name=3D"pageUp" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageUp"></field>
    /// <field name=3D"pageDown" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageDown"></field>
    /// <field name=3D"end" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.end"></field>
    /// <field name=3D"home" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.home"></field>
    /// <field name=3D"left" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.left"></field>
    /// <field name=3D"up" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.up"></field>
    /// <field name=3D"right" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.right"></field>
    /// <field name=3D"down" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.down"></field>
    /// <field name=3D"del" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.del"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.Key.prototype =3D {
    backspace: 8,
    tab: 9,
    enter: 13,
    esc: 27,
    space: 32,
    pageUp: 33,
    pageDown: 34,
    end: 35,
    home: 36,
    left: 37,
    up: 38,
    right: 39,
    down: 40,
    del: 127
}
Sys.UI.Key.registerEnum("Sys.UI.Key");
=20
Sys.UI.Point =3D function Sys$UI$Point(x, y) {
    /// <summary locid=3D"M:J#Sys.UI.Point.#ctor" />
    /// <param name=3D"x" type=3D"Number" 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;
}
Sys.UI.Point.registerClass('Sys.UI.Point');
=20
Sys.UI.Bounds =3D function Sys$UI$Bounds(x, y, width, height) {
    /// <summary locid=3D"M:J#Sys.UI.Bounds.#ctor" />
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"height" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"width" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.y"></field>
    /// <field name=3D"height" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.height"></field>
    /// <field name=3D"width" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.width"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true},
        {name: "height", type: Number, integer: true},
        {name: "width", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
    this.height =3D height;
    this.width =3D width;
}
Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
=20
Sys.UI.DomEvent =3D function Sys$UI$DomEvent(eventObject) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.#ctor" />
    /// <param name=3D"eventObject"></param>
    /// <field name=3D"altKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.altKey"></field>
    /// <field name=3D"button" type=3D"Sys.UI.MouseButton" =
locid=3D"F:J#Sys.UI.DomEvent.button"></field>
    /// <field name=3D"charCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.charCode"></field>
    /// <field name=3D"clientX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientX"></field>
    /// <field name=3D"clientY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientY"></field>
    /// <field name=3D"ctrlKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.ctrlKey"></field>
    /// <field name=3D"keyCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.keyCode"></field>
    /// <field name=3D"offsetX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetX"></field>
    /// <field name=3D"offsetY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetY"></field>
    /// <field name=3D"screenX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenX"></field>
    /// <field name=3D"screenY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenY"></field>
    /// <field name=3D"shiftKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.shiftKey"></field>
    /// <field name=3D"target" =
locid=3D"F:J#Sys.UI.DomEvent.target"></field>
    /// <field name=3D"type" type=3D"String" =
locid=3D"F:J#Sys.UI.DomEvent.type"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "eventObject"}
    ]);
    if (e) throw e;
    var e =3D eventObject;
    var etype =3D this.type =3D e.type.toLowerCase();
    this.rawEvent =3D e;
    this.altKey =3D e.altKey;
    if (typeof(e.button) !=3D=3D 'undefined') {
        this.button =3D (typeof(e.which) !=3D=3D 'undefined') ? e.button =
:
            (e.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton :
            (e.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton :
            Sys.UI.MouseButton.leftButton;
    }
    if (etype =3D=3D=3D 'keypress') {
        this.charCode =3D e.charCode || e.keyCode;
    }
    else if (e.keyCode && (e.keyCode =3D=3D=3D 46)) {
        this.keyCode =3D 127;
    }
    else {
        this.keyCode =3D e.keyCode;
    }
    this.clientX =3D e.clientX;
    this.clientY =3D e.clientY;
    this.ctrlKey =3D e.ctrlKey;
    this.target =3D e.target ? e.target : e.srcElement;
    if (!etype.startsWith('key')) {
        if ((typeof(e.offsetX) !=3D=3D 'undefined') && =
(typeof(e.offsetY) !=3D=3D 'undefined')) {
            this.offsetX =3D e.offsetX;
            this.offsetY =3D e.offsetY;
        }
        else if (this.target && (this.target.nodeType !=3D=3D 3) && =
(typeof(e.clientX) =3D=3D=3D 'number')) {
            var loc =3D Sys.UI.DomElement.getLocation(this.target);
            var w =3D Sys.UI.DomElement._getWindow(this.target);
            this.offsetX =3D (w.pageXOffset || 0) + e.clientX - loc.x;
            this.offsetY =3D (w.pageYOffset || 0) + e.clientY - loc.y;
        }
    }
    this.screenX =3D e.screenX;
    this.screenY =3D e.screenY;
    this.shiftKey =3D e.shiftKey;
}
    function Sys$UI$DomEvent$preventDefault() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.preventDefault" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.preventDefault) {
            this.rawEvent.preventDefault();
        }
        else if (window.event) {
            this.rawEvent.returnValue =3D false;
        }
    }
    function Sys$UI$DomEvent$stopPropagation() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.stopPropagation" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.stopPropagation) {
            this.rawEvent.stopPropagation();
        }
        else if (window.event) {
            this.rawEvent.cancelBubble =3D true;
        }
    }
Sys.UI.DomEvent.prototype =3D {
    preventDefault: Sys$UI$DomEvent$preventDefault,
    stopPropagation: Sys$UI$DomEvent$stopPropagation
}
Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
var $addHandler =3D Sys.UI.DomEvent.addHandler =3D function =
Sys$UI$DomEvent$addHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (eventName =3D=3D=3D "error") throw =
Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
    if (!element._events) {
        element._events =3D {};
    }
    var eventCache =3D element._events[eventName];
    if (!eventCache) {
        element._events[eventName] =3D eventCache =3D [];
    }
    var browserHandler;
    if (element.addEventListener) {
        browserHandler =3D function(e) {
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.addEventListener(eventName, browserHandler, false);
    }
    else if (element.attachEvent) {
        browserHandler =3D function() {
            var e =3D {};
            try {e =3D Sys.UI.DomElement._getWindow(element).event} =
catch(ex) {}
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.attachEvent('on' + eventName, browserHandler);
    }
    eventCache[eventCache.length] =3D {handler: handler, browserHandler: =
browserHandler};
}
var $addHandlers =3D Sys.UI.DomEvent.addHandlers =3D function =
Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandlers" />
    /// <param name=3D"element"></param>
    /// <param name=3D"events" type=3D"Object"></param>
    /// <param name=3D"handlerOwner" optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "events", type: Object},
        {name: "handlerOwner", optional: true}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    for (var name in events) {
        var handler =3D events[name];
        if (typeof(handler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
        if (handlerOwner) {
            handler =3D Function.createDelegate(handlerOwner, handler);
        }
        $addHandler(element, name, handler);
    }
}
var $clearHandlers =3D Sys.UI.DomEvent.clearHandlers =3D function =
Sys$UI$DomEvent$clearHandlers(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.clearHandlers" />
    /// <param name=3D"element"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (element._events) {
        var cache =3D element._events;
        for (var name in cache) {
            var handlers =3D cache[name];
            for (var i =3D handlers.length - 1; i >=3D 0; i--) {
                $removeHandler(element, name, handlers[i].handler);
            }
        }
        element._events =3D null;
    }
}
var $removeHandler =3D Sys.UI.DomEvent.removeHandler =3D function =
Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.removeHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    var browserHandler =3D null;
    if ((typeof(element._events) !=3D=3D 'object') || (element._events =
=3D=3D null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    var cache =3D element._events[eventName];
    if (!(cache instanceof Array)) throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    for (var i =3D 0, l =3D cache.length; i < l; i++) {
        if (cache[i].handler =3D=3D=3D handler) {
            browserHandler =3D cache[i].browserHandler;
            break;
        }
    }
    if (typeof(browserHandler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    if (element.removeEventListener) {
        element.removeEventListener(eventName, browserHandler, false);
    }
    else if (element.detachEvent) {
        element.detachEvent('on' + eventName, browserHandler);
    }
    cache.splice(i, 1);
}
Sys.UI.DomEvent._ensureDomNode =3D function =
Sys$UI$DomEvent$_ensureDomNode(element) {
    if (element.tagName && (element.tagName.toUpperCase() =3D=3D=3D =
"SCRIPT")) return;
   =20
    var doc =3D element.ownerDocument || element.document || element;
    if ((typeof(element.document) !=3D=3D 'object') && (element !=3D =
doc) && (typeof(element.nodeType) !=3D=3D 'number')) {
        throw Error.argument("element", Sys.Res.argumentDomNode);
    }
}
=20
Sys.UI.DomElement =3D function Sys$UI$DomElement() {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
Sys.UI.DomElement.addCssClass =3D function =
Sys$UI$DomElement$addCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.addCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (!Sys.UI.DomElement.containsCssClass(element, className)) {
        if (element.className =3D=3D=3D '') {
            element.className =3D className;
        }
        else {
            element.className +=3D ' ' + className;
        }
    }
}
Sys.UI.DomElement.containsCssClass =3D function =
Sys$UI$DomElement$containsCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.containsCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    return Array.contains(element.className.split(' '), className);
}
Sys.UI.DomElement.getBounds =3D function =
Sys$UI$DomElement$getBounds(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getBounds" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.Bounds"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var offset =3D Sys.UI.DomElement.getLocation(element);
    return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || =
0, element.offsetHeight || 0);
}
var $get =3D Sys.UI.DomElement.getElementById =3D function =
Sys$UI$DomElement$getElementById(id, element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getElementById" />
    /// <param name=3D"id" type=3D"String"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!element) return document.getElementById(id);
    if (element.getElementById) return element.getElementById(id);
    var nodeQueue =3D [];
    var childNodes =3D element.childNodes;
    for (var i =3D 0; i < childNodes.length; i++) {
        var node =3D childNodes[i];
        if (node.nodeType =3D=3D 1) {
            nodeQueue[nodeQueue.length] =3D node;
        }
    }
    while (nodeQueue.length) {
        node =3D nodeQueue.shift();
        if (node.id =3D=3D id) {
            return node;
        }
        childNodes =3D node.childNodes;
        for (i =3D 0; i < childNodes.length; i++) {
            node =3D childNodes[i];
            if (node.nodeType =3D=3D 1) {
                nodeQueue[nodeQueue.length] =3D node;
            }
        }
    }
    return null;
}
switch(Sys.Browser.agent) {
    case Sys.Browser.InternetExplorer:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if (element.self || element.nodeType =3D=3D=3D 9) return new =
Sys.UI.Point(0,0);
            var clientRect =3D element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0,0);
            }
            var documentElement =3D =
element.ownerDocument.documentElement;
            var offsetX =3D clientRect.left - 2 + =
documentElement.scrollLeft,
                offsetY =3D clientRect.top - 2 + =
documentElement.scrollTop;
           =20
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    var offset =3D (f.frameBorder =3D=3D=3D "0" || =
f.frameBorder =3D=3D=3D "no") ? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }   =20
           =20
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Safari:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((parent.offsetLeft || parent.offsetTop) &&
                    ((tagName !=3D=3D "BODY") || (!previousStyle || =
previousStyle.position !=3D=3D "absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                    }
                    currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                    var parentPosition =3D currentStyle ? =
currentStyle.position : null;
                    if (parentPosition && (parentPosition =3D=3D=3D =
"absolute")) break;
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Opera:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName;
                offsetX +=3D parent.offsetLeft || 0;
                offsetY +=3D parent.offsetTop || 0;
            }
            var elementPosition =3D element.style.position;
            var elementPositioned =3D elementPosition && =
(elementPosition !=3D=3D "static");
            for (var parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") =
&& (parent.scrollLeft || parent.scrollTop) &&
                    ((elementPositioned &&
                    ((parent.style.overflow =3D=3D=3D "scroll") || =
(parent.style.overflow =3D=3D=3D "auto"))))) {
                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);
                }
                var parentPosition =3D (parent && parent.style) ? =
parent.style.position : null;
                elementPositioned =3D elementPositioned || =
(parentPosition && (parentPosition !=3D=3D "static"));
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    default:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                if ((parent.offsetLeft || parent.offsetTop) &&
                    !((tagName =3D=3D=3D "BODY") &&
                    (!previousStyle || previousStyle.position !=3D=3D =
"absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
                if (previous !=3D=3D null && currentStyle) {
                    if ((tagName !=3D=3D "TABLE") && (tagName !=3D=3D =
"TD") && (tagName !=3D=3D "HTML")) {
                        offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                        offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                    }
                    if (tagName =3D=3D=3D "TABLE" &&
                        (currentStyle.position =3D=3D=3D "relative" || =
currentStyle.position =3D=3D=3D "absolute")) {
                        offsetX +=3D parseInt(currentStyle.marginLeft) =
|| 0;
                        offsetY +=3D parseInt(currentStyle.marginTop) || =
0;
                    }
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                        currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                        if (currentStyle) {
                            offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                            offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                        }
                    }
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
}
Sys.UI.DomElement.removeCssClass =3D function =
Sys$UI$DomElement$removeCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.removeCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    var currentClassName =3D ' ' + element.className + ' ';
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D (currentClassName.substr(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length)).trim();
    }
}
Sys.UI.DomElement.setLocation =3D function =
Sys$UI$DomElement$setLocation(element, x, y) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setLocation" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    var style =3D element.style;
    style.position =3D 'absolute';
    style.left =3D x + "px";
    style.top =3D y + "px";
}
Sys.UI.DomElement.toggleCssClass =3D function =
Sys$UI$DomElement$toggleCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.toggleCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (Sys.UI.DomElement.containsCssClass(element, className)) {
        Sys.UI.DomElement.removeCssClass(element, className);
    }
    else {
        Sys.UI.DomElement.addCssClass(element, className);
    }
}
Sys.UI.DomElement.getVisibilityMode =3D function =
Sys$UI$DomElement$getVisibilityMode(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.VisibilityMode"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    return (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ?
        Sys.UI.VisibilityMode.hide :
        Sys.UI.VisibilityMode.collapse;
}
Sys.UI.DomElement.setVisibilityMode =3D function =
Sys$UI$DomElement$setVisibilityMode(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Sys.UI.VisibilityMode"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Sys.UI.VisibilityMode}
    ]);
    if (e) throw e;
    Sys.UI.DomElement._ensureOldDisplayMode(element);
    if (element._visibilityMode !=3D=3D value) {
        element._visibilityMode =3D value;
        if (Sys.UI.DomElement.getVisible(element) =3D=3D=3D false) {
            if (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) {
                element.style.display =3D element._oldDisplayMode;
            }
            else {
                element.style.display =3D 'none';
            }
        }
        element._visibilityMode =3D value;
    }
}
Sys.UI.DomElement.getVisible =3D function =
Sys$UI$DomElement$getVisible(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
    if (!style) return true;
    return (style.visibility !=3D=3D 'hidden') && (style.display !=3D=3D =
'none');
}
Sys.UI.DomElement.setVisible =3D function =
Sys$UI$DomElement$setVisible(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Boolean}
    ]);
    if (e) throw e;
    if (value !=3D=3D Sys.UI.DomElement.getVisible(element)) {
        Sys.UI.DomElement._ensureOldDisplayMode(element);
        element.style.visibility =3D value ? 'visible' : 'hidden';
        if (value || (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide)) {
            element.style.display =3D element._oldDisplayMode;
        }
        else {
            element.style.display =3D 'none';
        }
    }
}
Sys.UI.DomElement._ensureOldDisplayMode =3D function =
Sys$UI$DomElement$_ensureOldDisplayMode(element) {
    if (!element._oldDisplayMode) {
        var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
        element._oldDisplayMode =3D style ? style.display : null;
        if (!element._oldDisplayMode || element._oldDisplayMode =
=3D=3D=3D 'none') {
            switch(element.tagName.toUpperCase()) {
                case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': =
case 'BODY': case 'COL':
                case 'COLGROUP': case 'DD': case 'DL': case 'DT': case =
'FIELDSET': case 'FORM':
                case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': =
case 'H6': case 'HR':
                case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': =
case 'TABLE': case 'TD':
                case 'TH': case 'TR': case 'UL':
                    element._oldDisplayMode =3D 'block';
                    break;
                case 'LI':
                    element._oldDisplayMode =3D 'list-item';
                    break;
                default:
                    element._oldDisplayMode =3D 'inline';
            }
        }
    }
}
Sys.UI.DomElement._getWindow =3D function =
Sys$UI$DomElement$_getWindow(element) {
    var doc =3D element.ownerDocument || element.document || element;
    return doc.defaultView || doc.parentWindow;
}
Sys.UI.DomElement._getCurrentStyle =3D function =
Sys$UI$DomElement$_getCurrentStyle(element) {
    if (element.nodeType =3D=3D=3D 3) return null;
    var w =3D Sys.UI.DomElement._getWindow(element);
    if (element.documentElement) element =3D element.documentElement;
    var computedStyle =3D (w && (element !=3D=3D w) && =
w.getComputedStyle) ?
        w.getComputedStyle(element, null) :
        element.currentStyle || element.style;
    if (!computedStyle && (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) && element.style) {
        var oldDisplay =3D element.style.display;
        var oldPosition =3D element.style.position;
        element.style.position =3D 'absolute';
        element.style.display =3D 'block';
        var style =3D w.getComputedStyle(element, null);
        element.style.display =3D oldDisplay;
        element.style.position =3D oldPosition;
        computedStyle =3D {};
        for (var n in style) {
            computedStyle[n] =3D style[n];
        }
        computedStyle.display =3D 'none';
    }
    return computedStyle;
}
=20
Sys.IContainer =3D function Sys$IContainer() {
    throw Error.notImplemented();
}
    function Sys$IContainer$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$findComponent(id) {
        /// <summary locid=3D"M:J#Sys.IContainer.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Sys.Component"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$getComponents() {
        /// <summary locid=3D"M:J#Sys.IContainer.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.IContainer.prototype =3D {
    addComponent: Sys$IContainer$addComponent,
    removeComponent: Sys$IContainer$removeComponent,
    findComponent: Sys$IContainer$findComponent,
    getComponents: Sys$IContainer$getComponents
}
Sys.IContainer.registerInterface("Sys.IContainer");
=20
Sys._ScriptLoader =3D function Sys$_ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._sessions =3D [];
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}
    function Sys$_ScriptLoader$dispose() {
        this._stopSession();
        this._loading =3D false;
        if(this._events) {
            delete this._events;
        }
        this._sessions =3D null;
        this._currentSession =3D null;
        this._scriptLoadedDelegate =3D null;       =20
    }
    function Sys$_ScriptLoader$loadScripts(scriptTimeout, =
allScriptsLoadedCallback, scriptLoadFailedCallback, =
scriptLoadTimeoutCallback) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.loadScripts" />
        /// <param name=3D"scriptTimeout" type=3D"Number" =
integer=3D"true"></param>
        /// <param name=3D"allScriptsLoadedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadFailedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadTimeoutCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptTimeout", type: Number, integer: true},
            {name: "allScriptsLoadedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadFailedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadTimeoutCallback", type: Function, =
mayBeNull: true}
        ]);
        if (e) throw e;
        var session =3D {
            allScriptsLoadedCallback: allScriptsLoadedCallback,
            scriptLoadFailedCallback: scriptLoadFailedCallback,
            scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
            scriptsToLoad: this._scriptsToLoad,
            scriptTimeout: scriptTimeout };
        this._scriptsToLoad =3D null;
        this._sessions[this._sessions.length] =3D session;
       =20
        if (!this._loading) {
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.notifyScriptLoaded" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
       =20
        if(!this._loading) {
            return;
        }
        this._currentTask._notified++;
       =20
        if(Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) {          =20
            if(this._currentTask._notified =3D=3D=3D 1) {
                window.setTimeout(Function.createDelegate(this, =
function() {
                    =
this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
                }), 0);
            }
        }
    }
    function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueCustomScriptTag" />
        /// <param name=3D"scriptAttributes" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptAttributes"}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, scriptAttributes);
    }
    function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.queueScriptBlock" />
        /// <param name=3D"scriptContent" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptContent", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {text: scriptContent});
    }
    function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptReference" />
        /// <param name=3D"scriptUrl" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptUrl", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {src: scriptUrl});
    }
    function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
        var scriptElement =3D document.createElement('script');
        scriptElement.type =3D 'text/javascript';
        for (var attr in queuedScript) {
            scriptElement[attr] =3D queuedScript[attr];
        }
       =20
        return scriptElement;
    }
    function Sys$_ScriptLoader$_loadScriptsInternal() {
        var session =3D this._currentSession;
        if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
            var nextScript =3D Array.dequeue(session.scriptsToLoad);
            var scriptElement =3D this._createScriptElement(nextScript);
           =20
            if (scriptElement.text && Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) {
                scriptElement.innerHTML =3D scriptElement.text;
                delete scriptElement.text;
            }           =20
            if (typeof(nextScript.src) =3D=3D=3D "string") {
                this._currentTask =3D new =
Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
                this._currentTask.execute();
            }
            else {
                var headElements =3D =
document.getElementsByTagName('head');
                if (headElements.length =3D=3D=3D 0) {
                     throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
                }
                else {
                     headElements[0].appendChild(scriptElement);
                }
               =20
               =20
                Sys._ScriptLoader._clearScript(scriptElement);
                this._loadScriptsInternal();
            }
        }
        else {
            this._stopSession();
            var callback =3D session.allScriptsLoadedCallback;
            if(callback) {
                callback(this);
            }
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$_nextSession() {
        if (this._sessions.length =3D=3D=3D 0) {
            this._loading =3D false;
            this._currentSession =3D null;
            return;
        }
        this._loading =3D true;
       =20
        var session =3D Array.dequeue(this._sessions);
        this._currentSession =3D session;
        this._loadScriptsInternal();
    }
    function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
        var callback =3D this._currentSession.scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopSession();
       =20
        if(callback) {
            callback(this, scriptElement, multipleCallbacks);
            this._nextSession();
        }
        else {
            this._loading =3D false;
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, =
multipleCallbacks);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, =
loaded) {
        if(loaded && this._currentTask._notified) {
            if(this._currentTask._notified > 1) {
                this._raiseError(true);
            }
            else {
                Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
                this._currentTask.dispose();
                this._currentTask =3D null;
                this._loadScriptsInternal();
            }
        }
        else {
            this._raiseError(false);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
        var callback =3D this._currentSession.scriptLoadTimeoutCallback;
        this._stopSession();
        if(callback) {
            callback(this);
        }
        this._nextSession();
    }
    function Sys$_ScriptLoader$_stopSession() {
        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }
    }
Sys._ScriptLoader.prototype =3D {
    dispose: Sys$_ScriptLoader$dispose,
    loadScripts: Sys$_ScriptLoader$loadScripts,
    notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
    queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
    queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
    queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
    _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
    _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
    _nextSession: Sys$_ScriptLoader$_nextSession,
    _raiseError: Sys$_ScriptLoader$_raiseError,
    _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
    _scriptLoadTimeoutHandler: =
Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
    _stopSession: Sys$_ScriptLoader$_stopSession   =20
}
Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, =
Sys.IDisposable);
Sys._ScriptLoader.getInstance =3D function =
Sys$_ScriptLoader$getInstance() {
    var sl =3D Sys._ScriptLoader._activeInstance;
    if(!sl) {
        sl =3D Sys._ScriptLoader._activeInstance =3D new =
Sys._ScriptLoader();
    }
    return sl;
}
Sys._ScriptLoader.isScriptLoaded =3D function =
Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
    var dummyScript =3D document.createElement('script');
    dummyScript.src =3D scriptSrc;
    return Array.contains(Sys._ScriptLoader._getLoadedScripts(), =
dummyScript.src);
}
Sys._ScriptLoader.readLoadedScripts =3D function =
Sys$_ScriptLoader$readLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        var referencedScripts =3D Sys._ScriptLoader._referencedScripts =
=3D [];
        var existingScripts =3D document.getElementsByTagName('script');
        for (i =3D existingScripts.length - 1; i >=3D 0; i--) {
            var scriptNode =3D existingScripts[i];
            var scriptSrc =3D scriptNode.src;
            if (scriptSrc.length) {
                if (!Array.contains(referencedScripts, scriptSrc)) {
                    Array.add(referencedScripts, scriptSrc);
                }
            }
        }
    }
}
Sys._ScriptLoader._clearScript =3D function =
Sys$_ScriptLoader$_clearScript(scriptElement) {
    if (!Sys.Debug.isDebug) {
        scriptElement.parentNode.removeChild(scriptElement);
    }
}
Sys._ScriptLoader._errorScriptLoadFailed =3D function =
Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
    var errorMessage;
    if(multipleCallbacks) {
        errorMessage =3D Sys.Res.scriptLoadMultipleCallbacks;
    }
    else {
        errorMessage =3D Sys.Res.scriptLoadFailedDebug;
    }
    var displayMessage =3D "Sys.ScriptLoadFailedException: " + =
String.format(errorMessage, scriptUrl);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
    e.popStackFrame();
    return e;
}
Sys._ScriptLoader._getLoadedScripts =3D function =
Sys$_ScriptLoader$_getLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        Sys._ScriptLoader._referencedScripts =3D [];
        Sys._ScriptLoader.readLoadedScripts();
    }
    return Sys._ScriptLoader._referencedScripts;
}
=20
Sys._ScriptLoaderTask =3D function Sys$_ScriptLoaderTask(scriptElement, =
completedCallback) {
    /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.#ctor" />
    /// <param name=3D"scriptElement" domElement=3D"true"></param>
    /// <param name=3D"completedCallback" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "scriptElement", domElement: true},
        {name: "completedCallback", type: Function}
    ]);
    if (e) throw e;
    this._scriptElement =3D scriptElement;
    this._completedCallback =3D completedCallback;
    this._notified =3D 0;
}
    function Sys$_ScriptLoaderTask$get_scriptElement() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys._ScriptLoaderTask.scriptElement"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._scriptElement;
    }
    function Sys$_ScriptLoaderTask$dispose() {
        if(this._disposed) {
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        Sys._ScriptLoader._clearScript(this._scriptElement);
        this._scriptElement =3D null;
    }
    function Sys$_ScriptLoaderTask$execute() {
        /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.execute" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._addScriptElementHandlers();
        var headElements =3D document.getElementsByTagName('head');
        if (headElements.length =3D=3D=3D 0) {
             throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
        }
        else {
             headElements[0].appendChild(this._scriptElement);
        }
    }
    function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
        this._scriptLoadDelegate =3D Function.createDelegate(this, =
this._scriptLoadHandler);
       =20
        if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) {
            this._scriptElement.readyState =3D 'loaded';
            $addHandler(this._scriptElement, 'load', =
this._scriptLoadDelegate);
        }
        else {
            $addHandler(this._scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
        }   =20
        if (this._scriptElement.addEventListener) {
            this._scriptErrorDelegate =3D Function.createDelegate(this, =
this._scriptErrorHandler);
            this._scriptElement.addEventListener('error', =
this._scriptErrorDelegate, false);
        }
    }
    function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
        if(this._scriptLoadDelegate) {
            var scriptElement =3D this.get_scriptElement();
            if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) =
{
                $removeHandler(scriptElement, 'load', =
this._scriptLoadDelegate);
            }
            else {
                $removeHandler(scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
            }
            if (this._scriptErrorDelegate) {
                this._scriptElement.removeEventListener('error', =
this._scriptErrorDelegate, false);
                this._scriptErrorDelegate =3D null;
            }
            this._scriptLoadDelegate =3D null;
        }
    }
    function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
        if(this._disposed) {
            return;
        }
       =20
        this._completedCallback(this.get_scriptElement(), false);
    }
    function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
        if(this._disposed) {
            return;
        }
        var scriptElement =3D this.get_scriptElement();
        if ((scriptElement.readyState !=3D=3D 'loaded') &&
            (scriptElement.readyState !=3D=3D 'complete')) {
            return;
        }
       =20
        var _this =3D this;
        window.setTimeout(function() {
            _this._completedCallback(scriptElement, true);
        }, 0);
    }
Sys._ScriptLoaderTask.prototype =3D {
    get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
    dispose: Sys$_ScriptLoaderTask$dispose,
    execute: Sys$_ScriptLoaderTask$execute,
    _addScriptElementHandlers: =
Sys$_ScriptLoaderTask$_addScriptElementHandlers,   =20
    _removeScriptElementHandlers: =
Sys$_ScriptLoaderTask$_removeScriptElementHandlers,   =20
    _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
    _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler =20
}
Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, =
Sys.IDisposable);
=20
Sys.ApplicationLoadEventArgs =3D function =
Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
    /// <summary locid=3D"M:J#Sys.ApplicationLoadEventArgs.#ctor" />
    /// <param name=3D"components" type=3D"Array" =
elementType=3D"Sys.Component"></param>
    /// <param name=3D"isPartialLoad" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "components", type: Array, elementType: Sys.Component},
        {name: "isPartialLoad", type: Boolean}
    ]);
    if (e) throw e;
    Sys.ApplicationLoadEventArgs.initializeBase(this);
    this._components =3D components;
    this._isPartialLoad =3D isPartialLoad;
}
=20
    function Sys$ApplicationLoadEventArgs$get_components() {
        /// <value type=3D"Array" elementType=3D"Sys.Component" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.components"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._components;
    }
    function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.isPartialLoad"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._isPartialLoad;
    }
Sys.ApplicationLoadEventArgs.prototype =3D {
    get_components: Sys$ApplicationLoadEventArgs$get_components,
    get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
}
Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs'=
, Sys.EventArgs);
Sys.HistoryEventArgs =3D function Sys$HistoryEventArgs(state) {
    /// <summary locid=3D"M:J#Sys.HistoryEventArgs.#ctor" />
    /// <param name=3D"state" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "state", type: Object}
    ]);
    if (e) throw e;
    Sys.HistoryEventArgs.initializeBase(this);
    this._state =3D state;
}
    function Sys$HistoryEventArgs$get_state() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.HistoryEventArgs.state"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._state;
    }
Sys.HistoryEventArgs.prototype =3D {
    get_state: Sys$HistoryEventArgs$get_state
}
Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', =
Sys.EventArgs);
=20
Sys._Application =3D function Sys$_Application() {
    /// <summary locid=3D"M:J#Sys.Application.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys._Application.initializeBase(this);
    this._disposableObjects =3D [];
    this._components =3D {};
    this._createdComponents =3D [];
    this._secondPassComponents =3D [];
    this._appLoadHandler =3D null;
    this._beginRequestHandler =3D null;
    this._clientId =3D null;
    this._currentEntry =3D '';
    this._endRequestHandler =3D null;
    this._history =3D null;
    this._enableHistory =3D false;
    this._historyEnabledInScriptManager =3D false;
    this._historyFrame =3D null;
    this._historyInitialized =3D false;
    this._historyInitialLength =3D 0;
    this._historyLength =3D 0;
    this._historyPointIsNew =3D false;
    this._ignoreTimer =3D false;
    this._initialState =3D null;
    this._state =3D {};
    this._timerCookie =3D 0;
    this._timerHandler =3D null;
    this._uniqueId =3D null;
    this._unloadHandlerDelegate =3D Function.createDelegate(this, =
this._unloadHandler);
    this._loadHandlerDelegate =3D Function.createDelegate(this, =
this._loadHandler);
    Sys.UI.DomEvent.addHandler(window, "unload", =
this._unloadHandlerDelegate);
    Sys.UI.DomEvent.addHandler(window, "load", =
this._loadHandlerDelegate);
}
    function Sys$_Application$get_isCreatingComponents() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isCreatingComponents"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._creatingComponents;
    }
    function Sys$_Application$get_stateString() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Application.stateString"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var hash =3D window.location.hash;
        if (this._isSafari2()) {
            var history =3D this._getHistory();
            if (history) {
                hash =3D history[window.history.length - =
this._historyInitialLength];
            }
        }
        if ((hash.length > 0) && (hash.charAt(0) =3D=3D=3D '#')) {
            hash =3D hash.substring(1);
        }
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Firefox) {
            hash =3D this._serializeState(this._deserializeState(hash, =
true));
        }
        return hash;
    }
    function Sys$_Application$get_enableHistory() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.enableHistory"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._enableHistory;
    }
    function Sys$_Application$set_enableHistory(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (this._initialized && !this._initializing) {
            throw =
Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
        }
        else if (this._historyEnabledInScriptManager && !value) {
            throw =
Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
        }
        this._enableHistory =3D value;
    }
    function Sys$_Application$add_init(handler) {
        /// <summary locid=3D"E:J#Sys.Application.init" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        if (this._initialized) {
            handler(this, Sys.EventArgs.Empty);
        }
        else {
            this.get_events().addHandler("init", handler);
        }
    }
    function Sys$_Application$remove_init(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("init", handler);
    }
    function Sys$_Application$add_load(handler) {
        /// <summary locid=3D"E:J#Sys.Application.load" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("load", handler);
    }
    function Sys$_Application$remove_load(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("load", handler);
    }
    function Sys$_Application$add_navigate(handler) {
        /// <summary locid=3D"E:J#Sys.Application.navigate" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("navigate", handler);
    }
    function Sys$_Application$remove_navigate(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("navigate", handler);
    }
    function Sys$_Application$add_unload(handler) {
        /// <summary locid=3D"E:J#Sys.Application.unload" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("unload", handler);
    }
    function Sys$_Application$remove_unload(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("unload", handler);
    }
    function Sys$_Application$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
        if (typeof(this._components[id]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, =
id));
        this._components[id] =3D component;
    }
    function Sys$_Application$addHistoryPoint(state, title) {
        /// <summary locid=3D"M:J#Sys.Application.addHistoryPoint" />
        /// <param name=3D"state" type=3D"Object"></param>
        /// <param name=3D"title" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "state", type: Object},
            {name: "title", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        if (!this._enableHistory) throw =
Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDis=
abled);
        for (var n in state) {
            var v =3D state[n];
            var t =3D typeof(v);
            if ((v !=3D=3D null) && ((t =3D=3D=3D 'object') || (t =
=3D=3D=3D 'function') || (t =3D=3D=3D 'undefined'))) {
                throw Error.argument('state', =
Sys.Res.stateMustBeStringDictionary);
            }
        }
        this._ensureHistory();
        var initialState =3D this._state;
        for (var key in state) {
            var value =3D state[key];
            if (value =3D=3D=3D null) {
                if (typeof(initialState[key]) !=3D=3D 'undefined') {
                    delete initialState[key];
                }
            }
            else {
                initialState[key] =3D value;
            }
        }
        var entry =3D this._serializeState(initialState);
        this._historyPointIsNew =3D true;
        this._setState(entry, title);
        this._raiseNavigate();
    }
    function Sys$_Application$beginCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.beginCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._creatingComponents =3D true;
    }
    function Sys$_Application$dispose() {
        /// <summary locid=3D"M:J#Sys.Application.dispose" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._disposing) {
            this._disposing =3D true;
            if (this._timerCookie) {
                window.clearTimeout(this._timerCookie);
                delete this._timerCookie;
            }
            if (this._endRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._end=
RequestHandler);
                delete this._endRequestHandler;
            }
            if (this._beginRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._b=
eginRequestHandler);
                delete this._beginRequestHandler;
            }
            if (window.pageUnload) {
                window.pageUnload(this, Sys.EventArgs.Empty);
            }
            var unloadHandler =3D =
this.get_events().getHandler("unload");
            if (unloadHandler) {
                unloadHandler(this, Sys.EventArgs.Empty);
            }
            var disposableObjects =3D =
Array.clone(this._disposableObjects);
            for (var i =3D 0, l =3D disposableObjects.length; i < l; =
i++) {
                disposableObjects[i].dispose();
            }
            Array.clear(this._disposableObjects);
            Sys.UI.DomEvent.removeHandler(window, "unload", =
this._unloadHandlerDelegate);
            if(this._loadHandlerDelegate) {
                Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
                this._loadHandlerDelegate =3D null;
            }
            var sl =3D Sys._ScriptLoader.getInstance();
            if(sl) {
                sl.dispose();
            }
            Sys._Application.callBaseMethod(this, 'dispose');
        }
    }
    function Sys$_Application$endCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.endCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var components =3D this._secondPassComponents;
        for (var i =3D 0, l =3D components.length; i < l; i++) {
            var component =3D components[i].component;
            Sys$Component$_setReferences(component, =
components[i].references);
            component.endUpdate();
        }
        this._secondPassComponents =3D [];
        this._creatingComponents =3D false;
    }
    function Sys$_Application$findComponent(id, parent) {
        /// <summary locid=3D"M:J#Sys.Application.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"parent" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"Sys.Component" =
mayBeNull=3D"true"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "parent", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return (parent ?
            ((Sys.IContainer.isInstanceOfType(parent)) ?
                parent.findComponent(id) :
                parent[id] || null) :
            Sys.Application._components[id] || null);
    }
    function Sys$_Application$getComponents() {
        /// <summary locid=3D"M:J#Sys.Application.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var res =3D [];
        var components =3D this._components;
        for (var name in components) {
            res[res.length] =3D components[name];
        }
        return res;
    }
    function Sys$_Application$initialize() {
        /// <summary locid=3D"M:J#Sys.Application.initialize" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if(!this._initialized && !this._initializing) {
            this._initializing =3D true;
            window.setTimeout(Function.createDelegate(this, =
this._doInitialize), 0);
        }
    }
    function Sys$_Application$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys.Application.notifyScriptLoaded" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var sl =3D Sys._ScriptLoader.getInstance();
        if(sl) {
            sl.notifyScriptLoaded();
        }
    }
    function Sys$_Application$registerDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.registerDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            this._disposableObjects[this._disposableObjects.length] =3D =
object;
        }
    }
    function Sys$_Application$raiseLoad() {
        /// <summary locid=3D"M:J#Sys.Application.raiseLoad" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var h =3D this.get_events().getHandler("load");
        var args =3D new =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), =
!this._initializing);
        if (h) {
            h(this, args);
        }
        if (window.pageLoad) {
            window.pageLoad(this, args);
        }
        this._createdComponents =3D [];
    }
    function Sys$_Application$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (id) delete this._components[id];
    }
    function Sys$_Application$setServerId(clientId, uniqueId) {
        /// <summary locid=3D"M:J#Sys.Application.setServerId" />
        /// <param name=3D"clientId" type=3D"String"></param>
        /// <param name=3D"uniqueId" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "clientId", type: String},
            {name: "uniqueId", type: String}
        ]);
        if (e) throw e;
        this._clientId =3D clientId;
        this._uniqueId =3D uniqueId;
    }
    function Sys$_Application$setServerState(value) {
        /// <summary locid=3D"M:J#Sys.Application.setServerState" />
        /// <param name=3D"value" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "value", type: String}
        ]);
        if (e) throw e;
        this._ensureHistory();
        this._state.__s =3D value;
        this._updateHiddenField(value);
    }
    function Sys$_Application$unregisterDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.unregisterDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            Array.remove(this._disposableObjects, object);
        }
    }
    function Sys$_Application$_addComponentToSecondPass(component, =
references) {
        this._secondPassComponents[this._secondPassComponents.length] =
=3D {component: component, references: references};
    }
    function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
        var result =3D {};
        entry =3D entry || '';
        var serverSeparator =3D entry.indexOf('&&');
        if ((serverSeparator !=3D=3D -1) && (serverSeparator + 2 < =
entry.length)) {
            result.__s =3D entry.substr(serverSeparator + 2);
            entry =3D entry.substr(0, serverSeparator);
        }
        var tokens =3D entry.split('&');
        for (var i =3D 0, l =3D tokens.length; i < l; i++) {
            var token =3D tokens[i];
            var equal =3D token.indexOf('=3D');
            if ((equal !=3D=3D -1) && (equal + 1 < token.length)) {
                var name =3D token.substr(0, equal);
                var value =3D token.substr(equal + 1);
                result[name] =3D skipDecodeUri ? value : =
decodeURIComponent(value);
            }
        }
        return result;
    }
    function Sys$_Application$_doInitialize() {
        Sys._Application.callBaseMethod(this, 'initialize');
       =20
        var handler =3D this.get_events().getHandler("init");
        if (handler) {
            this.beginCreateComponents();
            handler(this, Sys.EventArgs.Empty);
            this.endCreateComponents();
        }
        if (Sys.WebForms) {
            this._beginRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerBeginRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._begi=
nRequestHandler);
            this._endRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerEndRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endReq=
uestHandler);
        }
       =20
        var loadedEntry =3D this.get_stateString();
        if (loadedEntry !=3D=3D this._currentEntry) {
            this._navigate(loadedEntry);
        }
=20
        this.raiseLoad();
        this._initializing =3D false;
    }
    function Sys$_Application$_enableHistoryInScriptManager() {
        this._enableHistory =3D true;
        this._historyEnabledInScriptManager =3D true;
    }
    function Sys$_Application$_ensureHistory() {
        if (!this._historyInitialized && this._enableHistory) {
            if ((Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
                this._historyFrame =3D =
document.getElementById('__historyFrame');
                if (!this._historyFrame) throw =
Error.invalidOperation(Sys.Res.historyMissingFrame);
                this._ignoreIFrame =3D true;
            }
            if (this._isSafari2()) {
                var historyElement =3D =
document.getElementById('__history');
                if (!historyElement) throw =
Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
                this._setHistory([window.location.hash]);
                this._historyInitialLength =3D window.history.length;
            }
           =20
            this._timerHandler =3D Function.createDelegate(this, =
this._onIdle);
            this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
           =20
            try {
                this._initialState =3D =
this._deserializeState(this.get_stateString());
            } catch(e) {}
           =20
            this._historyInitialized =3D true;
        }
    }
    function Sys$_Application$_getHistory() {
        var historyElement =3D document.getElementById('__history');
        if (!historyElement) return '';
        var v =3D historyElement.value;
        return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, =
true) : '';
    }
    function Sys$_Application$_isSafari2() {
        return (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) &&
            (Sys.Browser.version <=3D 419.3);
    }
    function Sys$_Application$_loadHandler() {
        if(this._loadHandlerDelegate) {
            Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
            this._loadHandlerDelegate =3D null;
        }
        this.initialize();
    }
    function Sys$_Application$_navigate(entry) {
        this._ensureHistory();
        var state =3D this._deserializeState(entry);
       =20
        if (this._uniqueId) {
            var oldServerEntry =3D this._state.__s || '';
            var newServerEntry =3D state.__s || '';
            if (newServerEntry !=3D=3D oldServerEntry) {
                this._updateHiddenField(newServerEntry);
                __doPostBack(this._uniqueId, newServerEntry);
                this._state =3D state;
                return;
            }
        }
        this._setState(entry);
        this._state =3D state;
        this._raiseNavigate();
    }
    function Sys$_Application$_onIdle() {
        delete this._timerCookie;
       =20
        var entry =3D this.get_stateString();
        if (entry !=3D=3D this._currentEntry) {
            if (!this._ignoreTimer) {
                this._historyPointIsNew =3D false;
                this._navigate(entry);
                this._historyLength =3D window.history.length;
            }
        }
        else {
            this._ignoreTimer =3D false;
        }
        this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
    }
    function Sys$_Application$_onIFrameLoad(entry) {
        this._ensureHistory();
        if (!this._ignoreIFrame) {
            this._historyPointIsNew =3D false;
            this._navigate(entry);
        }
        this._ignoreIFrame =3D false;
    }
    function Sys$_Application$_onPageRequestManagerBeginRequest(sender, =
args) {
        this._ignoreTimer =3D true;
    }
    function Sys$_Application$_onPageRequestManagerEndRequest(sender, =
args) {
        var dataItem =3D args.get_dataItems()[this._clientId];
        var eventTarget =3D document.getElementById("__EVENTTARGET");
        if (eventTarget && eventTarget.value =3D=3D=3D this._uniqueId) {
            eventTarget.value =3D '';
        }
        if (typeof(dataItem) !=3D=3D 'undefined') {
            this.setServerState(dataItem);
            this._historyPointIsNew =3D true;
        }
        else {
            this._ignoreTimer =3D false;
        }
        var entry =3D this._serializeState(this._state);
        if (entry !=3D=3D this._currentEntry) {
            this._ignoreTimer =3D true;
            this._setState(entry);
            this._raiseNavigate();
        }
    }
    function Sys$_Application$_raiseNavigate() {
        var h =3D this.get_events().getHandler("navigate");
        var stateClone =3D {};
        for (var key in this._state) {
            if (key !=3D=3D '__s') {
                stateClone[key] =3D this._state[key];
            }
        }
        var args =3D new Sys.HistoryEventArgs(stateClone);
        if (h) {
            h(this, args);
        }
    }
    function Sys$_Application$_serializeState(state) {
        var serialized =3D [];
        for (var key in state) {
            var value =3D state[key];
            if (key =3D=3D=3D '__s') {
                var serverState =3D value;
            }
            else {
                if (key.indexOf('=3D') !=3D=3D -1) throw =
Error.argument('state', Sys.Res.stateFieldNameInvalid);
                serialized[serialized.length] =3D key + '=3D' + =
encodeURIComponent(value);
            }
        }
        return serialized.join('&') + (serverState ? '&&' + serverState =
: '');
    }
    function Sys$_Application$_setHistory(historyArray) {
        var historyElement =3D document.getElementById('__history');
        if (historyElement) {
            historyElement.value =3D =
Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
        }
    }
    function Sys$_Application$_setState(entry, title) {
        entry =3D entry || '';
        if (entry !=3D=3D this._currentEntry) {
            if (window.theForm) {
                var action =3D window.theForm.action;
                var hashIndex =3D action.indexOf('#');
                window.theForm.action =3D ((hashIndex !=3D=3D -1) ? =
action.substring(0, hashIndex) : action) + '#' + entry;
            }
           =20
            if (this._historyFrame && this._historyPointIsNew) {
                this._ignoreIFrame =3D true;
                this._historyPointIsNew =3D false;
                var frameDoc =3D =
this._historyFrame.contentWindow.document;
                frameDoc.open("javascript:'<html></html>'");
                frameDoc.write("<html><head><title>" + (title || =
document.title) +
                    "</title><scri" + "pt =
type=3D\"text/javascript\">parent.Sys.Application._onIFrameLoad('" +=20
                    entry + "');</scri" + =
"pt></head><body></body></html>");
                frameDoc.close();
            }
            this._ignoreTimer =3D false;
            var currentHash =3D this.get_stateString();
            this._currentEntry =3D entry;
            if (entry !=3D=3D currentHash) {
                var loc =3D document.location;
                if (loc.href.length - loc.hash.length + entry.length > =
1024) {
                    throw =
Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
                }
                if (this._isSafari2()) {
                    var history =3D this._getHistory();
                    history[window.history.length - =
this._historyInitialLength + 1] =3D entry;
                    this._setHistory(history);
                    this._historyLength =3D window.history.length + 1;
                    var form =3D document.createElement('form');
                    form.method =3D 'get';
                    form.action =3D '#' + entry;
                    document.appendChild(form);
                    form.submit();
                    document.removeChild(form);
                }
                else {
                    window.location.hash =3D entry;
                }
                if ((typeof(title) !=3D=3D 'undefined') && (title =
!=3D=3D null)) {
                    document.title =3D title;
                }
            }
        }
    }
    function Sys$_Application$_unloadHandler(event) {
        this.dispose();
    }
    function Sys$_Application$_updateHiddenField(value) {
        if (this._clientId) {
            var serverStateField =3D =
document.getElementById(this._clientId);
            if (serverStateField) {
                serverStateField.value =3D value;
            }
        }
    }
Sys._Application.prototype =3D {
    _creatingComponents: false,
    _disposing: false,
    get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
    get_stateString: Sys$_Application$get_stateString,
    get_enableHistory: Sys$_Application$get_enableHistory,
    set_enableHistory: Sys$_Application$set_enableHistory,
    add_init: Sys$_Application$add_init,
    remove_init: Sys$_Application$remove_init,
    add_load: Sys$_Application$add_load,
    remove_load: Sys$_Application$remove_load,
    add_navigate: Sys$_Application$add_navigate,
    remove_navigate: Sys$_Application$remove_navigate,
    add_unload: Sys$_Application$add_unload,
    remove_unload: Sys$_Application$remove_unload,
    addComponent: Sys$_Application$addComponent,
    addHistoryPoint: Sys$_Application$addHistoryPoint,
    beginCreateComponents: Sys$_Application$beginCreateComponents,
    dispose: Sys$_Application$dispose,
    endCreateComponents: Sys$_Application$endCreateComponents,
    findComponent: Sys$_Application$findComponent,
    getComponents: Sys$_Application$getComponents,
    initialize: Sys$_Application$initialize,
    notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
    registerDisposableObject: Sys$_Application$registerDisposableObject,
    raiseLoad: Sys$_Application$raiseLoad,
    removeComponent: Sys$_Application$removeComponent,
    setServerId: Sys$_Application$setServerId,
    setServerState: Sys$_Application$setServerState,
    unregisterDisposableObject: =
Sys$_Application$unregisterDisposableObject,
    _addComponentToSecondPass: =
Sys$_Application$_addComponentToSecondPass,
    _deserializeState: Sys$_Application$_deserializeState,
    _doInitialize: Sys$_Application$_doInitialize,
    _enableHistoryInScriptManager: =
Sys$_Application$_enableHistoryInScriptManager,   =20
    _ensureHistory: Sys$_Application$_ensureHistory,
    _getHistory: Sys$_Application$_getHistory,
    _isSafari2: Sys$_Application$_isSafari2,
    _loadHandler: Sys$_Application$_loadHandler,
    _navigate: Sys$_Application$_navigate,
    _onIdle: Sys$_Application$_onIdle,
    _onIFrameLoad: Sys$_Application$_onIFrameLoad,
    _onPageRequestManagerBeginRequest: =
Sys$_Application$_onPageRequestManagerBeginRequest,
    _onPageRequestManagerEndRequest: =
Sys$_Application$_onPageRequestManagerEndRequest,
    _raiseNavigate: Sys$_Application$_raiseNavigate,
    _serializeState: Sys$_Application$_serializeState,
    _setHistory: Sys$_Application$_setHistory,
    _setState: Sys$_Application$_setState,
    _unloadHandler: Sys$_Application$_unloadHandler,
    _updateHiddenField: Sys$_Application$_updateHiddenField
}
Sys._Application.registerClass('Sys._Application', Sys.Component, =
Sys.IContainer);
Sys.Application =3D new Sys._Application();
var $find =3D Sys.Application.findComponent;
Type.registerNamespace('Sys.Net');
=20
Sys.Net.WebRequestExecutor =3D function Sys$Net$WebRequestExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._webRequest =3D null;
    this._resultObject =3D null;
}
    function Sys$Net$WebRequestExecutor$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
    function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
        if (this.get_started()) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'set_webRequest'));
        }
        this._webRequest =3D value;
    }
    function Sys$Net$WebRequestExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_object() {
        /// <value =
locid=3D"P:J#Sys.Net.WebRequestExecutor.object"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._resultObject) {
            this._resultObject =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(=
));
        }
        return this._resultObject;
    }
    function Sys$Net$WebRequestExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.Net.WebRequestExecutor.prototype =3D {
    get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
    _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
    get_started: Sys$Net$WebRequestExecutor$get_started,
    get_responseAvailable: =
Sys$Net$WebRequestExecutor$get_responseAvailable,
    get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
    get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
    get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
    get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
    get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
    get_xml: Sys$Net$WebRequestExecutor$get_xml,
    get_object: Sys$Net$WebRequestExecutor$get_object,
    executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
    abort: Sys$Net$WebRequestExecutor$abort,
    getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$WebRequestExecutor$getAllResponseHeaders
}
Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
=20
Sys.Net.XMLDOM =3D function Sys$Net$XMLDOM(markup) {
    /// <summary locid=3D"M:J#Sys.Net.XMLDOM.#ctor" />
    /// <param name=3D"markup" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "markup", type: String}
    ]);
    if (e) throw e;
    if (!window.DOMParser) {
        var progIDs =3D [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' =
];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                var xmlDOM =3D new ActiveXObject(progIDs[i]);
                xmlDOM.async =3D false;
                xmlDOM.loadXML(markup);
                xmlDOM.setProperty('SelectionLanguage', 'XPath');
                return xmlDOM;
            }
            catch (ex) {
            }
        }
    }
    else {
        try {
            var domParser =3D new window.DOMParser();
            return domParser.parseFromString(markup, 'text/xml');
        }
        catch (ex) {
        }
    }
    return null;
}
Sys.Net.XMLHttpExecutor =3D function Sys$Net$XMLHttpExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Net.XMLHttpExecutor.initializeBase(this);
    var _this =3D this;
    this._xmlHttpRequest =3D null;
    this._webRequest =3D null;
    this._responseAvailable =3D false;
    this._timedOut =3D false;
    this._timer =3D null;
    this._aborted =3D false;
    this._started =3D false;
    this._onReadyStateChange =3D (function () {
       =20
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 ) {
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    return;
                }
            }
            catch(ex) {
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
            try {
                _this._webRequest.completed(Sys.EventArgs.Empty);
            }
            finally {
                if (_this._xmlHttpRequest !=3D null) {
                    _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                    _this._xmlHttpRequest =3D null;
                }
            }
        }
    });
    this._clearTimer =3D (function() {
        if (_this._timer !=3D null) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    });
    this._onTimeout =3D (function() {
        if (!_this._responseAvailable) {
            _this._clearTimer();
            _this._timedOut =3D true;
            _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            _this._xmlHttpRequest.abort();
            _this._webRequest.completed(Sys.EventArgs.Empty);
            _this._xmlHttpRequest =3D null;
        }
    });
}
    function Sys$Net$XMLHttpExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$XMLHttpExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._started;
    }
    function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._responseAvailable;
    }
    function Sys$Net$XMLHttpExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._aborted;
    }
    function Sys$Net$XMLHttpExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._webRequest =3D this.get_webRequest();
        if (this._started) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'executeRequest'));
        }
        if (this._webRequest =3D=3D=3D null) {
            throw Error.invalidOperation(Sys.Res.nullWebRequest);
        }
        var body =3D this._webRequest.get_body();
        var headers =3D this._webRequest.get_headers();
        this._xmlHttpRequest =3D new XMLHttpRequest();
        this._xmlHttpRequest.onreadystatechange =3D =
this._onReadyStateChange;
        var verb =3D this._webRequest.get_httpVerb();
        this._xmlHttpRequest.open(verb, =
this._webRequest.getResolvedUrl(), true );
        if (headers) {
            for (var header in headers) {
                var val =3D headers[header];
                if (typeof(val) !=3D=3D "function")
                    this._xmlHttpRequest.setRequestHeader(header, val);
            }
        }
        if (verb.toLowerCase() =3D=3D=3D "post") {
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                this._xmlHttpRequest.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }
            if (!body) {
                body =3D "";
            }
        }
        var timeout =3D this._webRequest.get_timeout();
        if (timeout > 0) {
            this._timer =3D =
window.setTimeout(Function.createDelegate(this, this._onTimeout), =
timeout);
        }
        this._xmlHttpRequest.send(body);
        this._started =3D true;
    }
    function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getResponseHeader'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getResponseHeader'));
        }
        var result;
        try {
            result =3D this._xmlHttpRequest.getResponseHeader(header);
        } catch (e) {
        }
        if (!result) result =3D "";
        return result;
    }
    function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getAllResponseHeaders'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getAllResponseHeaders'));
        }
        return this._xmlHttpRequest.getAllResponseHeaders();
    }
    function Sys$Net$XMLHttpExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_responseData'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_responseData'));
        }
        return this._xmlHttpRequest.responseText;
    }
    function Sys$Net$XMLHttpExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusCode'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusCode'));
        }
        var result =3D 0;
        try {
            result =3D this._xmlHttpRequest.status;
        }
        catch(ex) {
        }
        return result;
    }
    function Sys$Net$XMLHttpExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusText'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusText'));
        }
        return this._xmlHttpRequest.statusText;
    }
    function Sys$Net$XMLHttpExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.XMLHttpExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_xml'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_xml'));
        }
        var xml =3D this._xmlHttpRequest.responseXML;
        if (!xml || !xml.documentElement) {
            xml =3D Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
            if (!xml || !xml.documentElement)
                return null;
        }
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) {
            xml.setProperty('SelectionLanguage', 'XPath');
        }
        if (xml.documentElement.namespaceURI =3D=3D=3D =
"http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
            xml.documentElement.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        if (xml.documentElement.firstChild && =
xml.documentElement.firstChild.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        return xml;
    }
    function Sys$Net$XMLHttpExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._started) {
            throw =
Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
        }
        if (this._aborted || this._responseAvailable || this._timedOut)
            return;
        this._aborted =3D true;
        this._clearTimer();
        if (this._xmlHttpRequest && !this._responseAvailable) {
            this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            this._xmlHttpRequest.abort();
           =20
            this._xmlHttpRequest =3D null;           =20
            this._webRequest.completed(Sys.EventArgs.Empty);
        }
    }
Sys.Net.XMLHttpExecutor.prototype =3D {
    get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
    get_started: Sys$Net$XMLHttpExecutor$get_started,
    get_responseAvailable: =
Sys$Net$XMLHttpExecutor$get_responseAvailable,
    get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
    executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
    getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
    get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
    get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
    get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
    get_xml: Sys$Net$XMLHttpExecutor$get_xml,
    abort: Sys$Net$XMLHttpExecutor$abort
}
Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', =
Sys.Net.WebRequestExecutor);
=20
Sys.Net._WebRequestManager =3D function Sys$Net$_WebRequestManager() {
    /// <summary locid=3D"P:J#Sys.Net.WebRequestManager.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._defaultTimeout =3D 0;
    this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor";
}
    function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.invokingRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.completedRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_completedRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$_WebRequestManager$get_defaultTimeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultTimeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultTimeout;
    }
    function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._defaultTimeout =3D value;
    }
    function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultExecutorType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultExecutorType;
    }
    function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._defaultExecutorType =3D value;
    }
    function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestManager.executeRequest" />
        /// <param name=3D"webRequest" =
type=3D"Sys.Net.WebRequest"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "webRequest", type: Sys.Net.WebRequest}
        ]);
        if (e) throw e;
        var executor =3D webRequest.get_executor();
        if (!executor) {
            var failed =3D false;
            try {
                var executorType =3D eval(this._defaultExecutorType);
                executor =3D new executorType();
            } catch (e) {
                failed =3D true;
            }
            if (failed  || =
!Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
                throw Error.argument("defaultExecutorType", =
String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
            }
            webRequest.set_executor(executor);
        }
        if (executor.get_aborted()) {
            return;
        }
        var evArgs =3D new Sys.Net.NetworkRequestEventArgs(webRequest);
        var handler =3D =
this._get_eventHandlerList().getHandler("invokingRequest");
        if (handler) {
            handler(this, evArgs);
        }
        if (!evArgs.get_cancel()) {
            executor.executeRequest();
        }
    }
Sys.Net._WebRequestManager.prototype =3D {
    add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
    remove_invokingRequest: =
Sys$Net$_WebRequestManager$remove_invokingRequest,
    add_completedRequest: =
Sys$Net$_WebRequestManager$add_completedRequest,
    remove_completedRequest: =
Sys$Net$_WebRequestManager$remove_completedRequest,
    _get_eventHandlerList: =
Sys$Net$_WebRequestManager$_get_eventHandlerList,
    get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
    set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
    get_defaultExecutorType: =
Sys$Net$_WebRequestManager$get_defaultExecutorType,
    set_defaultExecutorType: =
Sys$Net$_WebRequestManager$set_defaultExecutorType,
    executeRequest: Sys$Net$_WebRequestManager$executeRequest
}
Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager();
=20
Sys.Net.NetworkRequestEventArgs =3D function =
Sys$Net$NetworkRequestEventArgs(webRequest) {
    /// <summary locid=3D"M:J#Sys.Net.NetworkRequestEventArgs.#ctor" />
    /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "webRequest", type: Sys.Net.WebRequest}
    ]);
    if (e) throw e;
    Sys.Net.NetworkRequestEventArgs.initializeBase(this);
    this._webRequest =3D webRequest;
}
    function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.NetworkRequestEventArgs.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
Sys.Net.NetworkRequestEventArgs.prototype =3D {
    get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
}
Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEven=
tArgs', Sys.CancelEventArgs);
=20
Sys.Net.WebRequest =3D function Sys$Net$WebRequest() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequest.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._url =3D "";
    this._headers =3D { };
    this._body =3D null;
    this._userContext =3D null;
    this._httpVerb =3D null;
    this._executor =3D null;
    this._invokeCalled =3D false;
    this._timeout =3D 0;
}
    function Sys$Net$WebRequest$add_completed(handler) {
    /// <summary locid=3D"E:J#Sys.Net.WebRequest.completed" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().addHandler("completed", handler);
    }
    function Sys$Net$WebRequest$remove_completed(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().removeHandler("completed", =
handler);
    }
    function Sys$Net$WebRequest$completed(eventArgs) {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.completed" />
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventArgs", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var handler =3D =
Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRe=
quest");
        if (handler) {
            handler(this._executor, eventArgs);
        }
        handler =3D =
this._get_eventHandlerList().getHandler("completed");
        if (handler) {
            handler(this._executor, eventArgs);
        }
    }
    function Sys$Net$WebRequest$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$WebRequest$get_url() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.url"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._url;
    }
    function Sys$Net$WebRequest$set_url(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._url =3D value;
    }
    function Sys$Net$WebRequest$get_headers() {
        /// <value locid=3D"P:J#Sys.Net.WebRequest.headers"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._headers;
    }
    function Sys$Net$WebRequest$get_httpVerb() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.httpVerb"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._httpVerb =3D=3D=3D null) {
            if (this._body =3D=3D=3D null) {
                return "GET";
            }
            return "POST";
        }
        return this._httpVerb;
    }
    function Sys$Net$WebRequest$set_httpVerb(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (value.length =3D=3D=3D 0) {
            throw Error.argument('value', Sys.Res.invalidHttpVerb);
        }
        this._httpVerb =3D value;
    }
    function Sys$Net$WebRequest$get_body() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.body"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._body;
    }
    function Sys$Net$WebRequest$set_body(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._body =3D value;
    }
    function Sys$Net$WebRequest$get_userContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.userContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebRequest$set_userContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebRequest$get_executor() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.Net.WebRequest.executor"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._executor;
    }
    function Sys$Net$WebRequest$set_executor(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.Net.WebRequestExecutor}]);
        if (e) throw e;
        if (this._executor !=3D=3D null && this._executor.get_started()) =
{
            throw =
Error.invalidOperation(Sys.Res.setExecutorAfterActive);
        }
        this._executor =3D value;
        this._executor._set_webRequest(this);
    }
    function Sys$Net$WebRequest$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequest.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._timeout =3D=3D=3D 0) {
            return Sys.Net.WebRequestManager.get_defaultTimeout();
        }
        return this._timeout;
    }
    function Sys$Net$WebRequest$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._timeout =3D value;
    }
    function Sys$Net$WebRequest$getResolvedUrl() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.getResolvedUrl" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Net.WebRequest._resolveUrl(this._url);
    }
    function Sys$Net$WebRequest$invoke() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.invoke" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._invokeCalled) {
            throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
        }
        Sys.Net.WebRequestManager.executeRequest(this);
        this._invokeCalled =3D true;
    }
Sys.Net.WebRequest.prototype =3D {
    add_completed: Sys$Net$WebRequest$add_completed,
    remove_completed: Sys$Net$WebRequest$remove_completed,
    completed: Sys$Net$WebRequest$completed,
    _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
    get_url: Sys$Net$WebRequest$get_url,
    set_url: Sys$Net$WebRequest$set_url,
    get_headers: Sys$Net$WebRequest$get_headers,
    get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
    set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
    get_body: Sys$Net$WebRequest$get_body,
    set_body: Sys$Net$WebRequest$set_body,
    get_userContext: Sys$Net$WebRequest$get_userContext,
    set_userContext: Sys$Net$WebRequest$set_userContext,
    get_executor: Sys$Net$WebRequest$get_executor,
    set_executor: Sys$Net$WebRequest$set_executor,
    get_timeout: Sys$Net$WebRequest$get_timeout,
    set_timeout: Sys$Net$WebRequest$set_timeout,
    getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
    invoke: Sys$Net$WebRequest$invoke
}
Sys.Net.WebRequest._resolveUrl =3D function =
Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
    if (url && url.indexOf('://') !=3D=3D -1) {
        return url;
    }
    if (!baseUrl || baseUrl.length =3D=3D=3D 0) {
        var baseElement =3D document.getElementsByTagName('base')[0];
        if (baseElement && baseElement.href && baseElement.href.length > =
0) {
            baseUrl =3D baseElement.href;
        }
        else {
            baseUrl =3D document.URL;
        }
    }
    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    qsStart =3D baseUrl.indexOf('#');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
    if (!url || url.length =3D=3D=3D 0) {
        return baseUrl;
    }
    if (url.charAt(0) =3D=3D=3D '/') {
        var slashslash =3D baseUrl.indexOf('://');
        if (slashslash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
        }
        var nextSlash =3D baseUrl.indexOf('/', slashslash + 3);
        if (nextSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
        }
        return baseUrl.substr(0, nextSlash) + url;
    }
    else {
        var lastSlash =3D baseUrl.lastIndexOf('/');
        if (lastSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
        }
        return baseUrl.substr(0, lastSlash+1) + url;
    }
}
Sys.Net.WebRequest._createQueryString =3D function =
Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
    if (!encodeMethod)
        encodeMethod =3D encodeURIComponent;
    var sb =3D new Sys.StringBuilder();
    var i =3D 0;
    for (var arg in queryString) {
        var obj =3D queryString[arg];
        if (typeof(obj) =3D=3D=3D "function") continue;
        var val =3D =
Sys.Serialization.JavaScriptSerializer.serialize(obj);
        if (i !=3D=3D 0) {
            sb.append('&');
        }
        sb.append(arg);
        sb.append('=3D');
        sb.append(encodeMethod(val));
        i++;
    }
    return sb.toString();
}
Sys.Net.WebRequest._createUrl =3D function =
Sys$Net$WebRequest$_createUrl(url, queryString) {
    if (!queryString) {
        return url;
    }
    var qs =3D Sys.Net.WebRequest._createQueryString(queryString);
    if (qs.length > 0) {
        var sep =3D '?';
        if (url && url.indexOf('?') !=3D=3D -1)
            sep =3D '&';
        return url + sep + qs;
    } else {
        return url;
    }
}
Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
=20
Sys.Net.WebServiceProxy =3D function Sys$Net$WebServiceProxy() {
}
    function Sys$Net$WebServiceProxy$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceProxy.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout;
    }
    function Sys$Net$WebServiceProxy$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) { throw Error.argumentOutOfRange('value', value, =
Sys.Res.invalidTimeout); }
        this._timeout =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultUserContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultUserContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._succeeded;
    }
    function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) =
{
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._succeeded =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultFailedCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._failed;
    }
    function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._failed =3D value;
    }
    function Sys$Net$WebServiceProxy$get_path() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path;
    }
    function Sys$Net$WebServiceProxy$set_path(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._path =3D value;
    }
    function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext) {
        /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy._invoke" />
        /// <param name=3D"servicePath" type=3D"String"></param>
        /// <param name=3D"methodName" type=3D"String"></param>
        /// <param name=3D"useGet" type=3D"Boolean"></param>
        /// <param name=3D"params"></param>
        /// <param name=3D"onSuccess" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"onFailure" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
        /// <returns type=3D"Sys.Net.WebRequest"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "servicePath", type: String},
            {name: "methodName", type: String},
            {name: "useGet", type: Boolean},
            {name: "params"},
            {name: "onSuccess", type: Function, mayBeNull: true, =
optional: true},
            {name: "onFailure", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        if (onSuccess =3D=3D=3D null || typeof onSuccess =3D=3D=3D =
'undefined') onSuccess =3D this.get_defaultSucceededCallback();
        if (onFailure =3D=3D=3D null || typeof onFailure =3D=3D=3D =
'undefined') onFailure =3D this.get_defaultFailedCallback();
        if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D =
'undefined') userContext =3D this.get_defaultUserContext();
       =20
        return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
    }
Sys.Net.WebServiceProxy.prototype =3D {
    get_timeout: Sys$Net$WebServiceProxy$get_timeout,
    set_timeout: Sys$Net$WebServiceProxy$set_timeout,
    get_defaultUserContext: =
Sys$Net$WebServiceProxy$get_defaultUserContext,
    set_defaultUserContext: =
Sys$Net$WebServiceProxy$set_defaultUserContext,
    get_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
    set_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
    get_defaultFailedCallback: =
Sys$Net$WebServiceProxy$get_defaultFailedCallback,
    set_defaultFailedCallback: =
Sys$Net$WebServiceProxy$set_defaultFailedCallback,
    get_path: Sys$Net$WebServiceProxy$get_path,
    set_path: Sys$Net$WebServiceProxy$set_path,
    _invoke: Sys$Net$WebServiceProxy$_invoke
}
Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
Sys.Net.WebServiceProxy.invoke =3D function =
Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, =
onSuccess, onFailure, userContext, timeout) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy.invoke" />
    /// <param name=3D"servicePath" type=3D"String"></param>
    /// <param name=3D"methodName" type=3D"String"></param>
    /// <param name=3D"useGet" type=3D"Boolean" =
optional=3D"true"></param>
    /// <param name=3D"params" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onSuccess" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onFailure" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"timeout" type=3D"Number" =
optional=3D"true"></param>
    /// <returns type=3D"Sys.Net.WebRequest"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "servicePath", type: String},
        {name: "methodName", type: String},
        {name: "useGet", type: Boolean, optional: true},
        {name: "params", mayBeNull: true, optional: true},
        {name: "onSuccess", type: Function, mayBeNull: true, optional: =
true},
        {name: "onFailure", type: Function, mayBeNull: true, optional: =
true},
        {name: "userContext", mayBeNull: true, optional: true},
        {name: "timeout", type: Number, optional: true}
    ]);
    if (e) throw e;
    var request =3D new Sys.Net.WebRequest();
    request.get_headers()['Content-Type'] =3D 'application/json; =
charset=3Dutf-8';
    if (!params) params =3D {};
    var urlParams =3D params;
    if (!useGet || !urlParams) urlParams =3D {};
    =
request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURICo=
mponent(methodName), urlParams));
    var body =3D null;
    if (!useGet) {
        body =3D =
Sys.Serialization.JavaScriptSerializer.serialize(params);
        if (body =3D=3D=3D "{}") body =3D "";
    }
    request.set_body(body);
    request.add_completed(onComplete);
    if (timeout && timeout > 0) request.set_timeout(timeout);
    request.invoke();
    function onComplete(response, eventArgs) {
        if (response.get_responseAvailable()) {
            var statusCode =3D response.get_statusCode();
            var result =3D null;
          =20
            try {
                var contentType =3D =
response.getResponseHeader("Content-Type");
                if (contentType.startsWith("application/json")) {
                    result =3D response.get_object();
                }
                else if (contentType.startsWith("text/xml")) {
                    result =3D response.get_xml();
                }
                else {
                    result =3D response.get_responseData();
                }
            } catch (ex) {
            }
            var error =3D response.getResponseHeader("jsonerror");
            var errorObj =3D (error =3D=3D=3D "true");
            if (errorObj) {
                if (result) {
                    result =3D new Sys.Net.WebServiceError(false, =
result.Message, result.StackTrace, result.ExceptionType);
                }
            }
            else if (contentType.startsWith("application/json")) {
                if (!result || typeof(result.d) =3D=3D=3D "undefined") {
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
                }
                result =3D result.d;
            }
            if (((statusCode < 200) || (statusCode >=3D 300)) || =
errorObj) {
                if (onFailure) {
                    if (!result || !errorObj) {
                        result =3D new Sys.Net.WebServiceError(false , =
String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    var error;
                    if (result && errorObj) {
                        error =3D result.get_exceptionType() + "-- " + =
result.get_message();
                    }
                    else {
                        error =3D response.get_responseData();
                    }
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(result, userContext, methodName);
            }
        }
        else {
            var msg;
            if (response.get_timedOut()) {
                msg =3D String.format(Sys.Res.webServiceTimedOut, =
methodName);
            }
            else {
                msg =3D String.format(Sys.Res.webServiceFailedNoMsg, =
methodName)
            }
            if (onFailure) {
                onFailure(new =
Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), =
userContext, methodName);
            }
            else {
                throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
            }
        }
    }
    return request;
}
Sys.Net.WebServiceProxy._createFailedError =3D function =
Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
    var displayMessage =3D "Sys.Net.WebServiceFailedException: " + =
errorMessage;
    var e =3D Error.create(displayMessage, { 'name': =
'Sys.Net.WebServiceFailedException', 'methodName': methodName });
    e.popStackFrame();
    return e;
}
Sys.Net.WebServiceProxy._defaultFailedCallback =3D function =
Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
    var error =3D err.get_exceptionType() + "-- " + err.get_message();
    throw Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
}
Sys.Net.WebServiceProxy._generateTypedConstructor =3D function =
Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}
=20
Sys.Net.WebServiceError =3D function Sys$Net$WebServiceError(timedOut, =
message, stackTrace, exceptionType) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceError.#ctor" />
    /// <param name=3D"timedOut" type=3D"Boolean"></param>
    /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"stackTrace" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"exceptionType" type=3D"String" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "timedOut", type: Boolean},
        {name: "message", type: String, mayBeNull: true},
        {name: "stackTrace", type: String, mayBeNull: true},
        {name: "exceptionType", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    this._timedOut =3D timedOut;
    this._message =3D message;
    this._stackTrace =3D stackTrace;
    this._exceptionType =3D exceptionType;
    this._statusCode =3D -1;
}
    function Sys$Net$WebServiceError$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceError.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$WebServiceError$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceError.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._statusCode;
    }
    function Sys$Net$WebServiceError$get_message() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.message"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._message;
    }
    function Sys$Net$WebServiceError$get_stackTrace() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.stackTrace"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._stackTrace;
    }
    function Sys$Net$WebServiceError$get_exceptionType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.exceptionType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._exceptionType;
    }
Sys.Net.WebServiceError.prototype =3D {
    get_timedOut: Sys$Net$WebServiceError$get_timedOut,
    get_statusCode: Sys$Net$WebServiceError$get_statusCode,
    get_message: Sys$Net$WebServiceError$get_message,
    get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
    get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
}
Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
Type.registerNamespace('Sys.Services');
Sys.Services._ProfileService =3D function Sys$Services$_ProfileService() =
{
    /// <summary locid=3D"M:J#Sys.Net.ProfileService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._ProfileService.initializeBase(this);
    this.properties =3D {};
}
Sys.Services._ProfileService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultLoadCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultSaveCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultSaveCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultSaveCompletedCallback =3D value;
    }
    function Sys$Services$_ProfileService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_ProfileService$load(propertyNames, =
loadCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.load" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var parameters;
        var methodName;
        if (!propertyNames) {
            methodName =3D "GetAllPropertiesForCurrentUser";
            parameters =3D { authenticatedUserOnly: false };
        }
        else {
            methodName =3D "GetPropertiesForCurrentUser";
            parameters =3D { properties: =
this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
        }
        this._invoke(this._get_path(),
                                        methodName,
                                        false,
                                        parameters,
                                        Function.createDelegate(this, =
this._onLoadComplete),
                                        Function.createDelegate(this, =
this._onLoadFailed),
                                        [loadCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_ProfileService$save(propertyNames, =
saveCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.save" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"saveCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "saveCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var flattenedProperties =3D =
this._flattenProperties(propertyNames, this.properties);
        this._invoke(this._get_path(),
                                        "SetPropertiesForCurrentUser",
                                        false,
                                        { values: =
flattenedProperties.value, authenticatedUserOnly: false },
                                        Function.createDelegate(this, =
this._onSaveComplete),
                                        Function.createDelegate(this, =
this._onSaveFailed),
                                        [saveCompletedCallback, =
failedCallback, userContext, flattenedProperties.count]);
    }
    function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
        var nodups =3D [];
        var seen =3D {};
        for (var i=3D0; i < arr.length; i++) {
            var prop =3D arr[i];
            if(!seen[prop]) { Array.add(nodups, prop); =
seen[prop]=3Dtrue; };
        }
        return nodups;
    }
    function =
Sys$Services$_ProfileService$_flattenProperties(propertyNames, =
properties, groupName) {
        var flattenedProperties =3D {};
        var val;
        var key;
        var count =3D 0;
        if (propertyNames && propertyNames.length =3D=3D=3D 0) {
            return { value: flattenedProperties, count: 0 };
        }
        for (var property in properties) {
            val =3D properties[property];
            key =3D groupName ? groupName + "." + property : property;
            if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
                var obj =3D this._flattenProperties(propertyNames, val, =
key);
                var groupProperties =3D obj.value;
                count +=3D obj.count;=20
                for(var subKey in groupProperties) {
                    var subVal =3D groupProperties[subKey];
                    flattenedProperties[subKey] =3D subVal;
                }
            }
            else {
                if(!propertyNames || Array.indexOf(propertyNames, key) =
!=3D=3D -1) {
                    flattenedProperties[key] =3D val;
                    count++;=20
                }
            }
        }
        return { value: flattenedProperties, count: count };
    }
    function Sys$Services$_ProfileService$_get_path() {
        var path =3D this.get_path();
        if (!path.length) {
            path =3D Sys.Services._ProfileService.DefaultWebServicePath;
        }
        if (!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_ProfileService$_onLoadComplete(result, =
context, methodName) {
        if (typeof(result) !=3D=3D "object") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Object"));
        }
        var unflattened =3D this._unflattenProperties(result);
        for (var name in unflattened) {
            this.properties[name] =3D unflattened[name];
        }
       =20
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(result.length, userContext, =
"Sys.Services.ProfileService.load");
        }
    }
    function Sys$Services$_ProfileService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(err, userContext, =
"Sys.Services.ProfileService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function Sys$Services$_ProfileService$_onSaveComplete(result, =
context, methodName) {
        var count =3D context[3];
        if (result !=3D=3D null) {=20
            if (result instanceof Array) {
                count -=3D result.length;
            }
            else if (typeof(result) =3D=3D=3D 'number') {
                count =3D result;
            }
            else {
                throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
            }
        }
       =20
        var callback =3D context[0] || =
this.get_defaultSaveCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(count, userContext, =
"Sys.Services.ProfileService.save");
        }
    }
    function Sys$Services$_ProfileService$_onSaveFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.ProfileService.save");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_ProfileService$_unflattenProperties(properties) {
        var unflattenedProperties =3D {};
        var dotIndex;
        var val;
        var count =3D 0;
        for (var key in properties) {
            count++;
            val =3D properties[key];
            dotIndex =3D key.indexOf('.');
            if (dotIndex !=3D=3D -1) {
                var groupName =3D key.substr(0, dotIndex);
                key =3D key.substr(dotIndex+1);
                var group =3D unflattenedProperties[groupName];
                if (!group || =
!Sys.Services.ProfileGroup.isInstanceOfType(group)) {
                    group =3D new Sys.Services.ProfileGroup();
                    unflattenedProperties[groupName] =3D group;
                }
                group[key] =3D val;
            }
            else {
                unflattenedProperties[key] =3D val;
            }
        }
        properties.length =3D count;
        return unflattenedProperties;
    }
Sys.Services._ProfileService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _defaultSaveCompletedCallback: null,
    _path: '',
    _timeout: 0,
    get_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
    get_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
    set_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
    get_path: Sys$Services$_ProfileService$get_path,
    load: Sys$Services$_ProfileService$load,
    save: Sys$Services$_ProfileService$save,
    _clonePropertyNames: =
Sys$Services$_ProfileService$_clonePropertyNames,   =20
    _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
    _get_path: Sys$Services$_ProfileService$_get_path,   =20
    _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
    _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
    _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
    _unflattenProperties: =
Sys$Services$_ProfileService$_unflattenProperties
}
Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService'=
, Sys.Net.WebServiceProxy);
Sys.Services.ProfileService =3D new Sys.Services._ProfileService();
Sys.Services.ProfileGroup =3D function =
Sys$Services$ProfileGroup(properties) {
    /// <summary locid=3D"M:J#Sys.Services.ProfileGroup.#ctor" />
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "properties", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (properties) {
        for (var property in properties) {
            this[property] =3D properties[property];
        }
    }
}
Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
Sys.Services._AuthenticationService =3D function =
Sys$Services$_AuthenticationService() {
    /// <summary locid=3D"M:J#Sys.Services.AuthenticationService.#ctor" =
/>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._AuthenticationService.initializeBase(this);
}
Sys.Services._AuthenticationService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLoginCompletedCall=
back"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoginCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(val=
ue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoginCompletedCallback =3D value;
    }
    function =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLogoutCompletedCal=
lback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLogoutCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(va=
lue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLogoutCompletedCallback =3D value;
    }
    function Sys$Services$_AuthenticationService$get_isLoggedIn() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Services.AuthenticationService.isLoggedIn"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._authenticated;
    }
    function Sys$Services$_AuthenticationService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_AuthenticationService$login(username, =
password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.login" />
        /// <param name=3D"username" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <param name=3D"password" type=3D"String" =
mayBeNull=3D"true"></param>
        /// <param name=3D"isPersistent" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"customInfo" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"loginCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "username", type: String},
            {name: "password", type: String, mayBeNull: true},
            {name: "isPersistent", type: Boolean, mayBeNull: true, =
optional: true},
            {name: "customInfo", type: String, mayBeNull: true, =
optional: true},
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "loginCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Login", false,
                                        { userName: username, password: =
password, createPersistentCookie: isPersistent },
                                        Function.createDelegate(this, =
this._onLoginComplete),
                                        Function.createDelegate(this, =
this._onLoginFailed),
                                        [username, password, =
isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$logout(redirectUrl, =
logoutCompletedCallback, failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.logout" />
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"logoutCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "logoutCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Logout", false, {},=20
                                        Function.createDelegate(this, =
this._onLogoutComplete),
                                        Function.createDelegate(this, =
this._onLogoutFailed),
                                        [redirectUrl, =
logoutCompletedCallback, failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$_get_path() {
        var path =3D this.get_path();
        if(!path.length) {
            path =3D =
Sys.Services._AuthenticationService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function =
Sys$Services$_AuthenticationService$_onLoginComplete(result, context, =
methodName) {
        if(typeof(result) !=3D=3D "boolean") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Boolean"));
        }
       =20
        var redirectUrl =3D context[4];
        var userContext =3D context[7] || this.get_defaultUserContext();
        var callback =3D context[5] || =
this.get_defaultLoginCompletedCallback() || =
this.get_defaultSucceededCallback();
       =20
        if(result) {
            this._authenticated =3D true;
            if (callback) {
                callback(true, userContext, =
"Sys.Services.AuthenticationService.login");
            }
           =20
            if (typeof(redirectUrl) !=3D=3D "undefined" && redirectUrl =
!=3D=3D null) {
                window.location.href =3D redirectUrl;
            }
        }
        else if (callback) {
            callback(false, userContext, =
"Sys.Services.AuthenticationService.login");
        }
    }
    function Sys$Services$_AuthenticationService$_onLoginFailed(err, =
context, methodName) {
        var callback =3D context[6] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[7] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.AuthenticationService.login");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, =
methodName) {
        if(result !=3D=3D null) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "null"));
        }
       =20
        var redirectUrl =3D context[0];
        var userContext =3D context[3] || this.get_defaultUserContext();
        var callback =3D context[1] || =
this.get_defaultLogoutCompletedCallback() || =
this.get_defaultSucceededCallback();
        this._authenticated =3D false;
       =20
        if (callback) {
            callback(null, userContext, =
"Sys.Services.AuthenticationService.logout");
        }
       =20
        if(!redirectUrl) {
            window.location.reload();
        }
        else {
            window.location.href =3D redirectUrl;
        }
    }
    function Sys$Services$_AuthenticationService$_onLogoutFailed(err, =
context, methodName) {
        var callback =3D context[2] || this.get_defaultFailedCallback();
        if (callback) {
            callback(err, context[3], =
"Sys.Services.AuthenticationService.logout");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
        this._authenticated =3D authenticated;
    }
Sys.Services._AuthenticationService.prototype =3D {
    _defaultLoginCompletedCallback: null,
    _defaultLogoutCompletedCallback: null,
    _path: '',
    _timeout: 0,
    _authenticated: false,
    get_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
    set_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
    get_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
    set_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
    get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
    get_path: Sys$Services$_AuthenticationService$get_path, =20
    login: Sys$Services$_AuthenticationService$login,
    logout: Sys$Services$_AuthenticationService$logout,
    _get_path: Sys$Services$_AuthenticationService$_get_path,
    _onLoginComplete: =
Sys$Services$_AuthenticationService$_onLoginComplete,
    _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
    _onLogoutComplete: =
Sys$Services$_AuthenticationService$_onLogoutComplete,
    _onLogoutFailed: =
Sys$Services$_AuthenticationService$_onLogoutFailed,
    _setAuthenticated: =
Sys$Services$_AuthenticationService$_setAuthenticated   =20
}
Sys.Services._AuthenticationService.registerClass('Sys.Services._Authenti=
cationService', Sys.Net.WebServiceProxy);
Sys.Services.AuthenticationService =3D new =
Sys.Services._AuthenticationService();
Sys.Services._RoleService =3D function Sys$Services$_RoleService() {
    /// <summary locid=3D"M:J#Sys.Services.RoleService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._RoleService.initializeBase(this);
    this._roles =3D [];
}
Sys.Services._RoleService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.defaultLoadCompletedCallback"></val=
ue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function Sys$Services$_RoleService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_RoleService$get_roles() {
        /// <value type=3D"Array" elementType=3D"String" =
mayBeNull=3D"false" =
locid=3D"P:J#Sys.Services.RoleService.roles"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Array.clone(this._roles);
    }
    function Sys$Services$_RoleService$isUserInRole(role) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.isUserInRole" =
/>
        /// <param name=3D"role" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "role", type: String}
        ]);
        if (e) throw e;
        var v =3D this._get_rolesIndex()[role.trim().toLowerCase()];
        return !!v;
    }
    function Sys$Services$_RoleService$load(loadCompletedCallback, =
failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.load" />
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        Sys.Net.WebServiceProxy.invoke(
                    this._get_path(),
                    "GetRolesForCurrentUser",
                    false,
                    {} ,
                    Function.createDelegate(this, this._onLoadComplete),
                    Function.createDelegate(this, this._onLoadFailed),
                    [loadCompletedCallback, failedCallback, =
userContext],
                    this.get_timeout());
    }
    function Sys$Services$_RoleService$_get_path() {
        var path =3D this.get_path();
        if(!path || !path.length) {
            path =3D Sys.Services._RoleService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_RoleService$_get_rolesIndex() {
        if (!this._rolesIndex) {
            var index =3D {};
            for(var i=3D0; i < this._roles.length; i++) {
                index[this._roles[i].toLowerCase()] =3D true;
            }
            this._rolesIndex =3D index;
        }
        return this._rolesIndex;
    }
    function Sys$Services$_RoleService$_onLoadComplete(result, context, =
methodName) {
        if(result && !(result instanceof Array)) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
        }
        this._roles =3D result;
        this._rolesIndex =3D null;
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            var clonedResult =3D Array.clone(result);
            callback(clonedResult, userContext, =
"Sys.Services.RoleService.load");
        }
    }
    function Sys$Services$_RoleService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, "Sys.Services.RoleService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
Sys.Services._RoleService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _rolesIndex: null,
    _timeout: 0,
    _path: '',
    get_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
    get_path: Sys$Services$_RoleService$get_path,
    get_roles: Sys$Services$_RoleService$get_roles,
    isUserInRole: Sys$Services$_RoleService$isUserInRole,
    load: Sys$Services$_RoleService$load,
    _get_path: Sys$Services$_RoleService$_get_path, =20
    _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
    _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
}
Sys.Services._RoleService.registerClass('Sys.Services._RoleService', =
Sys.Net.WebServiceProxy);
Sys.Services.RoleService =3D new Sys.Services._RoleService();
Type.registerNamespace('Sys.Serialization');
Sys.Serialization.JavaScriptSerializer =3D function =
Sys$Serialization$JavaScriptSerializer() {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.J=
avaScriptSerializer');
Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs =3D [];
Sys.Serialization.JavaScriptSerializer._charsToEscape =3D [];
Sys.Serialization.JavaScriptSerializer._dateRegEx =3D new =
RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4}=
)?\\)\\\\/\\"', 'g');
Sys.Serialization.JavaScriptSerializer._escapeChars =3D {};
Sys.Serialization.JavaScriptSerializer._escapeRegEx =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'i');
Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonRegEx =3D new =
RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonStringRegEx =3D new =
RegExp('"(\\\\.|[^"\\\\])*"', 'g');
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName =3D =
'__type';
Sys.Serialization.JavaScriptSerializer._init =3D function =
Sys$Serialization$JavaScriptSerializer$_init() {
    var replaceChars =3D =
['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\=
\u0007',
                        =
'\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\=
u0011',
                        =
'\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\=
u0019',
                        =
'\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
    Sys.Serialization.JavaScriptSerializer._charsToEscape[0] =3D '\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] =
=3D new RegExp('\\\\', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] =3D =
'\\\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscape[1] =3D '"';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] =3D =
new RegExp('"', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['"'] =3D '\\"';
    for (var i =3D 0; i < 32; i++) {
        var c =3D String.fromCharCode(i);
        Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] =3D =
c;
        Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] =
=3D new RegExp(c, 'g');
        Sys.Serialization.JavaScriptSerializer._escapeChars[c] =3D =
replaceChars[i];
    }
}
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(objec=
t, stringBuilder) {
    stringBuilder.append(object.toString());
}
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object=
, stringBuilder) {
    if (isFinite(object)) {
        stringBuilder.append(String(object));
    }
    else {
        throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
    }
}
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(string=
, stringBuilder) {
    stringBuilder.append('"');
    if =
(Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(string)) {
        if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length =
=3D=3D=3D 0) {
            Sys.Serialization.JavaScriptSerializer._init();
        }
        if (string.length < 128) {
            string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,=

                function(x) { return =
Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
        }
        else {
            for (var i =3D 0; i < 34; i++) {
                var c =3D =
Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
                if (string.indexOf(c) !=3D=3D -1) {
                    if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Opera || =
Sys.Browser.agent =3D=3D=3D Sys.Browser.FireFox) {
                        string =3D =
string.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[=
c]);
                    }
                    else {
                        string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegEx=
s[c],
                            =
Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
                    }
                }
            }
       }
    }
    stringBuilder.append(string);
    stringBuilder.append('"');
}
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, =
stringBuilder, sort, prevObjects) {
    var i;
    switch (typeof object) {
    case 'object':
        if (object) {
            if (prevObjects){
                for( var j =3D 0; j < prevObjects.length; j++) {
                    if (prevObjects[j] =3D=3D=3D object) {
                        throw =
Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
                    }
                }
            }
            else {
                prevObjects =3D new Array();
            }
            try {
                Array.add(prevObjects, object);
               =20
                if (Number.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
                }
                else if (Boolean.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
                }
                else if (String.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
                }
           =20
                else if (Array.isInstanceOfType(object)) {
                    stringBuilder.append('[');
                  =20
                    for (i =3D 0; i < object.length; ++i) {
                        if (i > 0) {
                            stringBuilder.append(',');
                        }
                        =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], =
stringBuilder,false,prevObjects);
                    }
                    stringBuilder.append(']');
                }
                else {
                    if (Date.isInstanceOfType(object)) {
                        stringBuilder.append('"\\/Date(');
                        stringBuilder.append(object.getTime());
                        stringBuilder.append(')\\/"');
                        break;
                    }
                    var properties =3D [];
                    var propertyCount =3D 0;
                    for (var name in object) {
                        if (name.startsWith('$')) {
                            continue;
                        }
                        if (name =3D=3D=3D =
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && =
propertyCount !=3D=3D 0){
                            properties[propertyCount++] =3D =
properties[0];
                            properties[0] =3D name;
                        }
                        else{
                            properties[propertyCount++] =3D name;
                        }
                    }
                    if (sort) properties.sort();
                    stringBuilder.append('{');
                    var needComma =3D false;
                    =20
                    for (i=3D0; i<propertyCount; i++) {
                        var value =3D object[properties[i]];
                        if (typeof value !=3D=3D 'undefined' && typeof =
value !=3D=3D 'function') {
                            if (needComma) {
                                stringBuilder.append(',');
                            }
                            else {
                                needComma =3D true;
                            }
                          =20
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(properties[i=
], stringBuilder, sort, prevObjects);
                            stringBuilder.append(':');
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(value, =
stringBuilder, sort, prevObjects);
                         =20
                        }
                    }
                stringBuilder.append('}');
                }
            }
            finally {
                Array.removeAt(prevObjects, prevObjects.length - 1);
            }
        }
        else {
            stringBuilder.append('null');
        }
        break;
    case 'number':
        =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
        break;
    case 'string':
        =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
        break;
    case 'boolean':
        =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
        break;
    default:
        stringBuilder.append('null');
        break;
    }
}
Sys.Serialization.JavaScriptSerializer.serialize =3D function =
Sys$Serialization$JavaScriptSerializer$serialize(object) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.serialize" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    var stringBuilder =3D new Sys.StringBuilder();
    Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, =
stringBuilder, false);
    return stringBuilder.toString();
}
Sys.Serialization.JavaScriptSerializer.deserialize =3D function =
Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.deserialize" />
    /// <param name=3D"data" type=3D"String"></param>
    /// <param name=3D"secure" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "data", type: String},
        {name: "secure", type: Boolean, optional: true}
    ]);
    if (e) throw e;
   =20
    if (data.length =3D=3D=3D 0) throw Error.argument('data', =
Sys.Res.cannotDeserializeEmptyString);
    try {   =20
        var exp =3D =
data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new =
Date($2)");
       =20
        if (secure && =
Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
             =
exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, =
''))) throw null;
        return eval('(' + exp + ')');
    }
    catch (e) {
         throw Error.argument('data', =
Sys.Res.cannotDeserializeInvalidJson);
    }
}
=20
Sys.CultureInfo =3D function Sys$CultureInfo(name, numberFormat, =
dateTimeFormat) {
    /// <summary locid=3D"M:J#Sys.CultureInfo.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"numberFormat" type=3D"Object"></param>
    /// <param name=3D"dateTimeFormat" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "numberFormat", type: Object},
        {name: "dateTimeFormat", type: Object}
    ]);
    if (e) throw e;
    this.name =3D name;
    this.numberFormat =3D numberFormat;
    this.dateTimeFormat =3D dateTimeFormat;
}
    function Sys$CultureInfo$_getDateTimeFormats() {
        if (! this._dateTimeFormats) {
            var dtf =3D this.dateTimeFormat;
            this._dateTimeFormats =3D
              [ dtf.MonthDayPattern,
                dtf.YearMonthPattern,
                dtf.ShortDatePattern,
                dtf.ShortTimePattern,
                dtf.LongDatePattern,
                dtf.LongTimePattern,
                dtf.FullDateTimePattern,
                dtf.RFC1123Pattern,
                dtf.SortableDateTimePattern,
                dtf.UniversalSortableDateTimePattern ];
        }
        return this._dateTimeFormats;
    }
    function Sys$CultureInfo$_getMonthIndex(value) {
        if (!this._upperMonths) {
            this._upperMonths =3D =
this._toUpperArray(this.dateTimeFormat.MonthNames);
        }
        return Array.indexOf(this._upperMonths, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrMonthIndex(value) {
        if (!this._upperAbbrMonths) {
            this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
        }
        return Array.indexOf(this._upperAbbrMonths, =
this._toUpper(value));
    }
    function Sys$CultureInfo$_getDayIndex(value) {
        if (!this._upperDays) {
            this._upperDays =3D =
this._toUpperArray(this.dateTimeFormat.DayNames);
        }
        return Array.indexOf(this._upperDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrDayIndex(value) {
        if (!this._upperAbbrDays) {
            this._upperAbbrDays =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
        }
        return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_toUpperArray(arr) {
        var result =3D [];
        for (var i =3D 0, il =3D arr.length; i < il; i++) {
            result[i] =3D this._toUpper(arr[i]);
        }
        return result;
    }
    function Sys$CultureInfo$_toUpper(value) {
        return value.split("\u00A0").join(' ').toUpperCase();
    }
Sys.CultureInfo.prototype =3D {
    _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
    _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
    _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
    _getDayIndex: Sys$CultureInfo$_getDayIndex,
    _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
    _toUpperArray: Sys$CultureInfo$_toUpperArray,
    _toUpper: Sys$CultureInfo$_toUpper
}
Sys.CultureInfo._parse =3D function Sys$CultureInfo$_parse(value) {
    var cultureInfo =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(value);
    return new Sys.CultureInfo(cultureInfo.name, =
cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
}
Sys.CultureInfo.registerClass('Sys.CultureInfo');
Sys.CultureInfo.InvariantCulture =3D =
Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits=
":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes"=
:[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparat=
or":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePatt=
ern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegat=
ivePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","Nu=
mberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":=
",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","Posi=
tiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","Per=
centGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","Na=
tiveDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution"=
:1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTi=
me":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","Algor=
ithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnl=
y":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"Ful=
lDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, =
dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort=
ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar=
ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd =
HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy =
MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":true,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}');
if (typeof(__cultureInfo) =3D=3D=3D 'undefined') {
    var __cultureInfo =3D =
'{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim=
alSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroup=
Sizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","Currency=
Symbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegative=
Pattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"Negativ=
eInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"=
NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositiveP=
attern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","Percent=
DecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",=
","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","=
2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{=
"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@=
","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarT=
ype":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparat=
or":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dd=
dd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, =
yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm =
tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","=
TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd=
 HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, =
yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":false,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}';
}
Sys.CultureInfo.CurrentCulture =3D =
Sys.CultureInfo._parse(__cultureInfo);
delete __cultureInfo;
=20
Sys.UI.Behavior =3D function Sys$UI$Behavior(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    Sys.UI.Behavior.initializeBase(this);
    this._element =3D element;
    var behaviors =3D element._behaviors;
    if (!behaviors) {
        element._behaviors =3D [this];
    }
    else {
        behaviors[behaviors.length] =3D this;
    }
}
    function Sys$UI$Behavior$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Behavior.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Behavior$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var baseId =3D Sys.UI.Behavior.callBaseMethod(this, 'get_id');
        if (baseId) return baseId;
        if (!this._element || !this._element.id) return '';
        return this._element.id + '$' + this.get_name();
    }
    function Sys$UI$Behavior$get_name() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.name"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._name) return this._name;
        var name =3D Object.getTypeName(this);
        var i =3D name.lastIndexOf('.');
        if (i !=3D -1) name =3D name.substr(i + 1);
        if (!this.get_isInitialized()) this._name =3D name;
        return name;
    }
    function Sys$UI$Behavior$set_name(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if ((value =3D=3D=3D '') || (value.charAt(0) =3D=3D=3D ' ') || =
(value.charAt(value.length - 1) =3D=3D=3D ' '))
            throw Error.argument('value', Sys.Res.invalidId);
        if (typeof(this._element[value]) !=3D=3D 'undefined')
            throw =
Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, =
value));
        if (this.get_isInitialized()) throw =
Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
        this._name =3D value;
    }
    function Sys$UI$Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name =3D this.get_name();
        if (name) this._element[name] =3D this;
    }
    function Sys$UI$Behavior$dispose() {
        Sys.UI.Behavior.callBaseMethod(this, 'dispose');
        if (this._element) {
            var name =3D this.get_name();
            if (name) {
                this._element[name] =3D null;
            }
            Array.remove(this._element._behaviors, this);
            delete this._element;
        }
    }
Sys.UI.Behavior.prototype =3D {
    _name: null,
    get_element: Sys$UI$Behavior$get_element,
    get_id: Sys$UI$Behavior$get_id,
    get_name: Sys$UI$Behavior$get_name,
    set_name: Sys$UI$Behavior$set_name,
    initialize: Sys$UI$Behavior$initialize,
    dispose: Sys$UI$Behavior$dispose
}
Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
Sys.UI.Behavior.getBehaviorByName =3D function =
Sys$UI$Behavior$getBehaviorByName(element, name) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorByName" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Sys.UI.Behavior" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    var b =3D element[name];
    return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
}
Sys.UI.Behavior.getBehaviors =3D function =
Sys$UI$Behavior$getBehaviors(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviors" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (!element._behaviors) return [];
    return Array.clone(element._behaviors);
}
Sys.UI.Behavior.getBehaviorsByType =3D function =
Sys$UI$Behavior$getBehaviorsByType(element, type) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorsByType" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"type" type=3D"Type"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "type", type: Type}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    var results =3D [];
    if (behaviors) {
        for (var i =3D 0, l =3D behaviors.length; i < l; i++) {
            if (type.isInstanceOfType(behaviors[i])) {
                results[results.length] =3D behaviors[i];
            }
        }
    }
    return results;
}
=20
Sys.UI.VisibilityMode =3D function Sys$UI$VisibilityMode() {
    /// <summary locid=3D"M:J#Sys.UI.VisibilityMode.#ctor" />
    /// <field name=3D"hide" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.hide"></field>
    /// <field name=3D"collapse" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.collapse"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.VisibilityMode.prototype =3D {
    hide: 0,
    collapse: 1
}
Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
=20
Sys.UI.Control =3D function Sys$UI$Control(element) {
    /// <summary locid=3D"M:J#Sys.UI.Control.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (typeof(element.control) !=3D 'undefined') throw =
Error.invalidOperation(Sys.Res.controlAlreadyDefined);
    Sys.UI.Control.initializeBase(this);
    this._element =3D element;
    element.control =3D this;
}
    function Sys$UI$Control$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Control.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Control$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) return '';
        return this._element.id;
    }
    function Sys$UI$Control$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        throw Error.invalidOperation(Sys.Res.cantSetId);
    }
    function Sys$UI$Control$get_parent() {
        /// <value type=3D"Sys.UI.Control" =
locid=3D"P:J#Sys.UI.Control.parent"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parent) return this._parent;
        if (!this._element) return null;
       =20
        var parentElement =3D this._element.parentNode;
        while (parentElement) {
            if (parentElement.control) {
                return parentElement.control;
            }
            parentElement =3D parentElement.parentNode;
        }
        return null;
    }
    function Sys$UI$Control$set_parent(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.Control}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        var parents =3D [this];
        var current =3D value;
        while (current) {
            if (Array.contains(parents, current)) throw =
Error.invalidOperation(Sys.Res.circularParentChain);
            parents[parents.length] =3D current;
            current =3D current.get_parent();
        }
        this._parent =3D value;
    }
    function Sys$UI$Control$get_visibilityMode() {
        /// <value type=3D"Sys.UI.VisibilityMode" =
locid=3D"P:J#Sys.UI.Control.visibilityMode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisibilityMode(this._element);
    }
    function Sys$UI$Control$set_visibilityMode(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.VisibilityMode}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisibilityMode(this._element, value);
    }
    function Sys$UI$Control$get_visible() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI.Control.visible"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisible(this._element);
    }
    function Sys$UI$Control$set_visible(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisible(this._element, value)
    }
    function Sys$UI$Control$addCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.addCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.addCssClass(this._element, className);
    }
    function Sys$UI$Control$dispose() {
        Sys.UI.Control.callBaseMethod(this, 'dispose');
        if (this._element) {
            this._element.control =3D undefined;
            delete this._element;
        }
        if (this._parent) delete this._parent;
    }
    function Sys$UI$Control$onBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.onBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        return false;
    }
    function Sys$UI$Control$raiseBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.raiseBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var currentTarget =3D this.get_parent();
        while (currentTarget) {
            if (currentTarget.onBubbleEvent(source, args)) {
                return;
            }
            currentTarget =3D currentTarget.get_parent();
        }
    }
    function Sys$UI$Control$removeCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.removeCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.removeCssClass(this._element, className);
    }
    function Sys$UI$Control$toggleCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.toggleCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.toggleCssClass(this._element, className);
    }
Sys.UI.Control.prototype =3D {
    _parent: null,
    _visibilityMode: Sys.UI.VisibilityMode.hide,
    get_element: Sys$UI$Control$get_element,
    get_id: Sys$UI$Control$get_id,
    set_id: Sys$UI$Control$set_id,
    get_parent: Sys$UI$Control$get_parent,
    set_parent: Sys$UI$Control$set_parent,
    get_visibilityMode: Sys$UI$Control$get_visibilityMode,
    set_visibilityMode: Sys$UI$Control$set_visibilityMode,
    get_visible: Sys$UI$Control$get_visible,
    set_visible: Sys$UI$Control$set_visible,
    addCssClass: Sys$UI$Control$addCssClass,
    dispose: Sys$UI$Control$dispose,
    onBubbleEvent: Sys$UI$Control$onBubbleEvent,
    raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
    removeCssClass: Sys$UI$Control$removeCssClass,
    toggleCssClass: Sys$UI$Control$toggleCssClass
}
Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);


Type.registerNamespace('Sys');
Sys.Res=3D{
"urlMustBeLessThan1024chars":"El estado de historial debe ser lo =
suficientemente peque=C3=B1o como para que la URL no tenga m=C3=A1s de =
1024 caracteres.",
"argumentTypeName":"El valor no es el nombre de un tipo existente.",
"methodRegisteredTwice":"Ya se ha registrado el m=C3=A9todo {0}.",
"cantSetIdAfterInit":"La propiedad id no se puede definir en este objeto =
una vez inicializado.",
"cantBeCalledAfterDispose":"No se le puede llamar una vez eliminado.",
"componentCantSetIdAfterAddedToApp":"La propiedad id de un componente no =
se puede establecer una vez que =C3=A9ste se ha agregado al objeto =
Application.",
"behaviorDuplicateName":"Ya existe un comportamiento con el nombre =
\u0027{0}\u0027 o =C3=A9ste es el nombre de una propiedad existente en =
el elemento de destino.",
"notATypeName":"El valor no es un nombre de tipo v=C3=A1lido.",
"typeShouldBeTypeOrString":"El valor no es un tipo ni un nombre de tipo =
v=C3=A1lido.",
"historyInvalidHistorySettingCombination":"No se puede establecer =
enableHistory en false cuando ScriptManager.EnableHistory es true.",
"stateMustBeStringDictionary":"El objeto de estado s=C3=B3lo puede tener =
campos nulos y de cadena.",
"boolTrueOrFalse":"El valor debe ser \u0027true\u0027 o =
\u0027false\u0027.",
"scriptLoadFailedNoHead":"ScriptLoader requiere que las p=C3=A1ginas =
contengan un elemento \u003chead\u003e.",
"stringFormatInvalid":"La cadena de formato no es v=C3=A1lida.",
"referenceNotFound":"No se encontr=C3=B3 el componente =
\u0027{0}\u0027.",
"enumReservedName":"\u0027{0}\u0027 es un nombre reservado que no se =
puede utilizar como nombre de un valor de enumeraci=C3=B3n.",
"eventHandlerNotFound":"No se encontr=C3=B3 el controlador.",
"circularParentChain":"La cadena de controles primarios del control no =
puede tener referencias circulares.",
"undefinedEvent":"\u0027{0}\u0027 no es un evento.",
"notAMethod":"{0} no es un m=C3=A9todo.",
"propertyUndefined":"\u0027{0}\u0027 no es una propiedad de un campo =
existente.",
"historyCannotEnableHistory":"No se puede establecer enableHistory =
despu=C3=A9s de la inicializaci=C3=B3n.",
"eventHandlerInvalid":"No se agreg=C3=B3 el controlador mediante el =
m=C3=A9todo Sys.UI.DomEvent.addHandler.",
"scriptLoadFailedDebug":"No se pudo cargar el script \u0027{0}\u0027. =
Compruebe lo siguiente:\r\n Una ruta de acceso inaccesible.\r\n Errores =
en el script. (IE) Habilite \u0027Mostrar una notificaci=C3=B3n sobre =
cada error de script\u0027 en configuraci=C3=B3n avanzada.\r\n Falta una =
llamada a Sys.Application.notifyScriptLoaded().",
"propertyNotWritable":"\u0027{0}\u0027 no es una propiedad grabable.",
"enumInvalidValueName":"\u0027{0}\u0027 no es un nombre v=C3=A1lido para =
un valor de enumeraci=C3=B3n.",
"controlAlreadyDefined":"Ya hay un control asociado al elemento.",
"addHandlerCantBeUsedForError":"No se puede agregar un controlador para =
el evento de error mediante este m=C3=A9todo. En lugar de ello, =
establezca la propiedad window.onerror.",
"namespaceContainsObject":"Ya existe el objeto {0} y no es un espacio de =
nombres.",
"cantAddNonFunctionhandler":"No se puede agregar un controlador que no =
sea una funci=C3=B3n.",
"invalidNameSpace":"El valor no es un identificador de espacio de =
nombres v=C3=A1lido.",
"notAnInterface":"El valor no es una interfaz v=C3=A1lida.",
"eventHandlerNotFunction":"El controlador debe ser una funci=C3=B3n.",
"propertyNotAnArray":"\u0027{0}\u0027 no es una propiedad Array.",
"typeRegisteredTwice":"Ya se ha registrado el tipo {0}. Puede que el =
tipo se haya definido varias veces o que ya se haya cargado el archivo =
de script que lo define. Una causa posible es un cambio en la =
configuraci=C3=B3n durante una actualizaci=C3=B3n parcial.",
"cantSetNameAfterInit":"La propiedad name no se puede definir en este =
objeto una vez inicializado.",
"historyMissingFrame":"Para que funcione la caracter=C3=ADstica de =
historial en Internet Explorer, la p=C3=A1gina debe tener un elemento =
iFrame con el id. \u0027__historyFrame\u0027 que se=C3=B1ale a una =
p=C3=A1gina que obtenga el t=C3=ADtulo del par=C3=A1metro de consulta =
\u0027title\u0027 y llame a Sys.Application._onIFrameLoad() en la =
ventana primaria. Esto se puede hacer estableciendo EnableHistory en =
true en ScriptManager.",
"appDuplicateComponent":"No se pueden agregar dos componentes con el =
mismo id. \u0027{0}\u0027 a la aplicaci=C3=B3n.",
"historyCannotAddHistoryPointWithHistoryDisabled":"Solo se puede agregar =
un punto del historial si enableHistory est=C3=A1 establecido en true.",
"appComponentMustBeInitialized":"Deben inicializarse los componentes =
para poder agregarlos al objeto Application.",
"baseNotAClass":"El valor no es una clase.",
"methodNotFound":"No se encontr=C3=B3 ning=C3=BAn m=C3=A9todo con el =
nombre \u0027{0}\u0027.",
"arrayParseBadFormat":"El valor debe ser una representaci=C3=B3n de =
cadena v=C3=A1lida para una matriz. Debe empezar con un \u0027[\u0027 y =
terminar con un \u0027]\u0027.",
"stateFieldNameInvalid":"Los nombres de campo de estado no deben =
contener el car=C3=A1cter \u0027=3D\u0027.",
"cantSetId":"La propiedad id no se puede definir en este objeto.",
"historyMissingHiddenInput":"Para que la caracter=C3=ADstica de =
historial funcione en Safari 2, la p=C3=A1gina debe tener un elemento de =
entrada oculto con el id. \u0027__history\u0027.",
"stringFormatBraceMismatch":"Falta una llave de apertura o de cierre en =
la cadena de formato.",
"enumValueNotInteger":"Una definici=C3=B3n de enumeraci=C3=B3n s=C3=B3lo =
puede contener valores enteros.",
"propertyNullOrUndefined":"No se pueden definir las propiedades de =
\u0027{0}\u0027 porque ha devuelto un valor nulo.",
"argumentDomNode":"El valor debe ser un nodo de texto o un elemento =
DOM.",
"componentCantSetIdTwice":"La propiedad id de un componente no se puede =
definir m=C3=A1s de una vez.",
"createComponentOnDom":"El valor debe ser nulo para los componentes que =
no son controles ni comportamientos.",
"createNotComponent":"{0} no se deriva de Sys.Component.",
"createNoDom":"El valor no debe ser nulo para los controles y =
comportamiento.",
"cantAddWithoutId":"No se puede agregar un componente que no tenga un =
id.",
"badTypeName":"El valor no es el nombre del tipo que se va a registrar =
ni el nombre es una palabra reservada.",
"argumentInteger":"El valor debe ser un entero.",
"scriptLoadMultipleCallbacks":"El script \u0027{0}\u0027 contiene varias =
llamadas a Sys.Application.notifyScriptLoaded(). S=C3=B3lo se permite =
una.",
"invokeCalledTwice":"No se puede llamar a invoke m=C3=A1s de una vez.",
"webServiceFailed":"El m=C3=A9todo de servidor \u0027{0}\u0027 produjo =
el siguiente error: {1}",
"webServiceInvalidJsonWrapper":"El m=C3=A9todo de servidor =
\u0027{0}\u0027 ha devuelto datos no v=C3=A1lidos. Falta la propiedad =
\u0027d\u0027 en el contenedor de JSON.",
"argumentType":"El objeto no se puede convertir en el tipo requerido.",
"argumentNull":"El valor no puede ser nulo.",
"controlCantSetId":"La propiedad id no se puede definir en un control.",
"formatBadFormatSpecifier":"Especificador de formato no v=C3=A1lido.",
"webServiceFailedNoMsg":"Error del m=C3=A9todo de servidor =
\u0027{0}\u0027.",
"argumentDomElement":"El valor debe ser un elemento DOM.",
"invalidExecutorType":"No se pudo crear un Sys.Net.WebRequestExecutor =
v=C3=A1lido desde: {0}.",
"cannotCallBeforeResponse":"No se puede llamar a {0} cuando =
responseAvailable es false.",
"actualValue":"Valor actual {0}.",
"enumInvalidValue":"\u0027{0}\u0027 no es un valor v=C3=A1lido para la =
enumeraci=C3=B3n {1}.",
"scriptLoadFailed":"No se pudo cargar el script \u0027{0}\u0027.",
"parameterCount":"El recuento de par=C3=A1metros no coincide.",
"cannotDeserializeEmptyString":"No se puede deserializar una cadena =
vac=C3=ADa.",
"formatInvalidString":"La cadena de entrada no tiene el formato =
correcto.",
"invalidTimeout":"El valor debe ser mayor o igual que cero.",
"cannotAbortBeforeStart":"No se puede anular si no se ha iniciado el =
elemento de ejecuci=C3=B3n.",
"argument":"El valor no est=C3=A1 dentro del intervalo esperado.",
"cannotDeserializeInvalidJson":"No se puede deserializar. Los datos no =
corresponden a un JSON v=C3=A1lido.",
"invalidHttpVerb":"httpVerb no se puede establecer en una cadena =
vac=C3=ADa o nula.",
"nullWebRequest":"No se puede llamar a executeRequest con un webRequest =
nulo.",
"eventHandlerInvalid":"No se agreg=C3=B3 el controlador mediante el =
m=C3=A9todo Sys.UI.DomEvent.addHandler.",
"cannotSerializeNonFiniteNumbers":"No se pueden serializar n=C3=BAmeros =
no finitos.",
"argumentUndefined":"El valor no puede estar sin definir.",
"webServiceInvalidReturnType":"El m=C3=A9todo de servidor =
\u0027{0}\u0027 ha devuelto un tipo no v=C3=A1lido. Se esperaba el tipo =
{1}",
"servicePathNotSet":"No se ha definido la ruta de acceso al servicio =
web.",
"argumentTypeWithTypes":"El objeto de tipo \u0027{0}\u0027 no puede =
convertirse en el tipo \u0027{1}\u0027.",
"cannotCallOnceStarted":"No se puede llamar a {0} una vez iniciado.",
"badBaseUrl1":"La direcci=C3=B3n URL base no contiene ://.",
"badBaseUrl2":"La direcci=C3=B3n URL base no contiene otra /.",
"badBaseUrl3":"No se puede encontrar la =C3=BAltima / en la =
direcci=C3=B3n URL base.",
"setExecutorAfterActive":"No se puede definir el elemento de =
ejecuci=C3=B3n una vez activo.",
"paramName":"Nombre del par=C3=A1metro: {0}",
"cannotCallOutsideHandler":"No se puede llamar a {0} fuera de un =
controlador de eventos completado.",
"cannotSerializeObjectWithCycle":"No se puede serializar un objeto con =
una referencia c=C3=ADclica en propiedades secundarias.",
"format":"Uno de los elementos identificados tiene un formato no =
v=C3=A1lido.",
"assertFailedCaller":"Error de aserci=C3=B3n: {0}\r\nen {1}",
"argumentOutOfRange":"El argumento especificado est=C3=A1 fuera del =
intervalo de valores v=C3=A1lidos.",
"webServiceTimedOut":"Se agot=C3=B3 el tiempo de espera del m=C3=A9todo =
de servidor \u0027{0}\u0027.",
"notImplemented":"El m=C3=A9todo o la operaci=C3=B3n no est=C3=A1n =
implementados.",
"assertFailed":"Error de aserci=C3=B3n: {0}",
"invalidOperation":"Operaci=C3=B3n no v=C3=A1lida a causa del estado =
actual del objeto.",
"breakIntoDebugger":"{0}\r\n\r\n=C2=BFDesea interrumpir el depurador?"
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=rrhzkQBArEzJ0ufIeMGymujSm0OQchsRojrfGev9XGmucQLbWWsJKupvRuRxeCgV1wXPTx5ZW3bS6kptcI7nUFDkOYNG9Qav58vfI_S08YJX7fu2yh99OZpKhi7VCjLY0&t=349f4c5

// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.196
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjaxWebForms.js
// Microsoft AJAX ASP.NET WebForms Framework.
Type.registerNamespace('Sys.WebForms');
Sys.WebForms.BeginRequestEventArgs =3D function =
Sys$WebForms$BeginRequestEventArgs(request, postBackElement) {
    /// <summary locid=3D"M:J#Sys.WebForms.BeginRequestEventArgs.#ctor" =
/>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.BeginRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function Sys$WebForms$BeginRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.postBackElement"></value>=

        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$BeginRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.BeginRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$BeginRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$BeginRequestEventArgs$get_request
}
Sys.WebForms.BeginRequestEventArgs.registerClass('Sys.WebForms.BeginReque=
stEventArgs', Sys.EventArgs);
=20
Sys.WebForms.EndRequestEventArgs =3D function =
Sys$WebForms$EndRequestEventArgs(error, dataItems, response) {
    /// <summary locid=3D"M:J#Sys.WebForms.EndRequestEventArgs.#ctor" />
    /// <param name=3D"error" type=3D"Error" mayBeNull=3D"true"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    /// <param name=3D"response" =
type=3D"Sys.Net.WebRequestExecutor"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "error", type: Error, mayBeNull: true},
        {name: "dataItems", type: Object, mayBeNull: true},
        {name: "response", type: Sys.Net.WebRequestExecutor}
    ]);
    if (e) throw e;
    Sys.WebForms.EndRequestEventArgs.initializeBase(this);
    this._errorHandled =3D false;
    this._error =3D error;
    this._dataItems =3D dataItems || new Object();
    this._response =3D response;
}
    function Sys$WebForms$EndRequestEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$EndRequestEventArgs$get_error() {
        /// <value type=3D"Error" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.error"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._error;
    }
    function Sys$WebForms$EndRequestEventArgs$get_errorHandled() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.errorHandled"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorHandled;
    }
    function Sys$WebForms$EndRequestEventArgs$set_errorHandled(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._errorHandled =3D value;
    }
    function Sys$WebForms$EndRequestEventArgs$get_response() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.response"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._response;
    }
Sys.WebForms.EndRequestEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$EndRequestEventArgs$get_dataItems,
    get_error: Sys$WebForms$EndRequestEventArgs$get_error,
    get_errorHandled: Sys$WebForms$EndRequestEventArgs$get_errorHandled,
    set_errorHandled: Sys$WebForms$EndRequestEventArgs$set_errorHandled,
    get_response: Sys$WebForms$EndRequestEventArgs$get_response
}
Sys.WebForms.EndRequestEventArgs.registerClass('Sys.WebForms.EndRequestEv=
entArgs', Sys.EventArgs);
Sys.WebForms.InitializeRequestEventArgs =3D function =
Sys$WebForms$InitializeRequestEventArgs(request, postBackElement) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.InitializeRequestEventArgs.#ctor" />
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.postBackElement"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$InitializeRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.InitializeRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$InitializeRequestEventArgs$get_request
}
Sys.WebForms.InitializeRequestEventArgs.registerClass('Sys.WebForms.Initi=
alizeRequestEventArgs', Sys.CancelEventArgs);
=20
Sys.WebForms.PageLoadedEventArgs =3D function =
Sys$WebForms$PageLoadedEventArgs(panelsUpdated, panelsCreated, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadedEventArgs.#ctor" />
    /// <param name=3D"panelsUpdated" type=3D"Array"></param>
    /// <param name=3D"panelsCreated" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdated", type: Array},
        {name: "panelsCreated", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadedEventArgs.initializeBase(this);
    this._panelsUpdated =3D panelsUpdated;
    this._panelsCreated =3D panelsCreated;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadedEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsCreated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsCreated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsCreated;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsUpdated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdated;
    }
Sys.WebForms.PageLoadedEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadedEventArgs$get_dataItems,
    get_panelsCreated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsCreated,
    get_panelsUpdated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated
}
Sys.WebForms.PageLoadedEventArgs.registerClass('Sys.WebForms.PageLoadedEv=
entArgs', Sys.EventArgs);
Sys.WebForms.PageLoadingEventArgs =3D function =
Sys$WebForms$PageLoadingEventArgs(panelsUpdating, panelsDeleting, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadingEventArgs.#ctor" =
/>
    /// <param name=3D"panelsUpdating" type=3D"Array"></param>
    /// <param name=3D"panelsDeleting" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdating", type: Array},
        {name: "panelsDeleting", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadingEventArgs.initializeBase(this);
    this._panelsUpdating =3D panelsUpdating;
    this._panelsDeleting =3D panelsDeleting;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadingEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsDeleting"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsDeleting;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdating;
    }
Sys.WebForms.PageLoadingEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadingEventArgs$get_dataItems,
    get_panelsDeleting: =
Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting,
    get_panelsUpdating: =
Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating
}
Sys.WebForms.PageLoadingEventArgs.registerClass('Sys.WebForms.PageLoading=
EventArgs', Sys.EventArgs);
=20
Sys.WebForms.PageRequestManager =3D function =
Sys$WebForms$PageRequestManager() {
    this._form =3D null;
    this._activeDefaultButton =3D null;
    this._activeDefaultButtonClicked =3D false;
    this._updatePanelIDs =3D null;
    this._updatePanelClientIDs =3D null;
    this._updatePanelHasChildrenAsTriggers =3D null;
    this._asyncPostBackControlIDs =3D null;
    this._asyncPostBackControlClientIDs =3D null;
    this._postBackControlIDs =3D null;
    this._postBackControlClientIDs =3D null;
    this._scriptManagerID =3D null;
    this._pageLoadedHandler =3D null;
    this._additionalInput =3D null;
    this._onsubmit =3D null;
    this._onSubmitStatements =3D [];
    this._originalDoPostBack =3D null;
    this._originalDoPostBackWithOptions =3D null;
    this._originalFireDefaultButton =3D null;
    this._originalDoCallback =3D null;
    this._isCrossPost =3D false;
    this._postBackSettings =3D null;
    this._request =3D null;
    this._onFormSubmitHandler =3D null;
    this._onFormElementClickHandler =3D null;
    this._onWindowUnloadHandler =3D null;
    this._asyncPostBackTimeout =3D null;
    this._controlIDToFocus =3D null;
    this._scrollPosition =3D null;
    this._processingRequest =3D false;
    this._scriptDisposes =3D {};
   =20
    this._transientFields =3D ["__VIEWSTATEENCRYPTED", =
"__VIEWSTATEFIELDCOUNT"];
}
    function Sys$WebForms$PageRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$WebForms$PageRequestManager$get_isInAsyncPostBack() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.PageRequestManager.isInAsyncPostBack"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request !=3D=3D null;
    }
    function Sys$WebForms$PageRequestManager$add_beginRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.beginRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("beginRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_beginRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("beginRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_endRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.endRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("endRequest", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_endRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("endRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$add_initializeRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.initializeRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("initializeRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_initializeRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("initializeRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoaded(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoaded" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoaded", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoaded(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoaded", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoading(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoading" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoading", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoading(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoading", =
handler);
    }
    function Sys$WebForms$PageRequestManager$abortPostBack() {
        if (!this._processingRequest && this._request) {
            this._request.get_executor().abort();
            this._request =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_cancelPendingCallbacks() {
        for (var i =3D 0, l =3D window.__pendingCallbacks.length; i < l; =
i++) {
            var callback =3D window.__pendingCallbacks[i];
            if (callback) {
                if (!callback.async) {
                    window.__synchronousCallBackIndex =3D -1;
                }
                window.__pendingCallbacks[i] =3D null;
                var callbackFrameID =3D "__CALLBACKFRAME" + i;
                var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
                if (xmlRequestFrame) {
                    =
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_commitControls(updatePanelData, =
asyncPostBackTimeout) {
        if (updatePanelData) {
            this._updatePanelIDs =3D updatePanelData.updatePanelIDs;
            this._updatePanelClientIDs =3D =
updatePanelData.updatePanelClientIDs;
            this._updatePanelHasChildrenAsTriggers =3D =
updatePanelData.updatePanelHasChildrenAsTriggers;
            this._asyncPostBackControlIDs =3D =
updatePanelData.asyncPostBackControlIDs;
            this._asyncPostBackControlClientIDs =3D =
updatePanelData.asyncPostBackControlClientIDs;
            this._postBackControlIDs =3D =
updatePanelData.postBackControlIDs;
            this._postBackControlClientIDs =3D =
updatePanelData.postBackControlClientIDs;
        }
        if (typeof(asyncPostBackTimeout) !=3D=3D 'undefined' && =
asyncPostBackTimeout !=3D=3D null) {
            this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000;
        }
    }
    function Sys$WebForms$PageRequestManager$_createHiddenField(id, =
value) {
        var container, field =3D document.getElementById(id);
        if (field) {
            if (!field._isContained) {
                field.parentNode.removeChild(field);
            }
            else {
                container =3D field.parentNode;
            }
        }
        if (!container) {
            container =3D document.createElement('span');
            container.style.cssText =3D "display:none !important";
            this._form.appendChild(container);
        }
        container.innerHTML =3D "<input type=3D'hidden' />";
        field =3D container.childNodes[0];
        field._isContained =3D true;
        field.id =3D field.name =3D id;
        field.value =3D value;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError() =
{
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerTimeoutException: " + =
Sys.WebForms.Res.PRM_TimeoutError;
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerTimeoutException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError(http=
StatusCode, message) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerServerErrorException: " +
            (message || String.format(Sys.WebForms.Res.PRM_ServerError, =
httpStatusCode));
        var e =3D Error.create(displayMessage, {
            name: 'Sys.WebForms.PageRequestManagerServerErrorException',
            httpStatusCode: httpStatusCode
        });
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError(pars=
erErrorMessage) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerParserErrorException: " + =
String.format(Sys.WebForms.Res.PRM_ParserError, parserErrorMessage);
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerParserErrorException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPostBackSettings(async, panelID, =
sourceElement) {
        return { async:async, panelID:panelID, =
sourceElement:sourceElement };
    }
    function Sys$WebForms$PageRequestManager$_convertToClientIDs(source, =
destinationIDs, destinationClientIDs) {
        if (source) {
            for (var i =3D 0, l =3D source.length; i < l; i++) {
                Array.add(destinationIDs, source[i]);
                Array.add(destinationClientIDs, =
this._uniqueIDToClientID(source[i]));
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_destroyTree(element) {
        if (element.nodeType =3D=3D=3D 1) {
            var childNodes =3D element.childNodes;
            for (var i =3D childNodes.length - 1; i >=3D 0; i--) {
                var node =3D childNodes[i];
                if (node.nodeType =3D=3D=3D 1) {
                    if (node.dispose && typeof(node.dispose) =3D=3D=3D =
"function") {
                        node.dispose();
                    }
                    else if (node.control && =
typeof(node.control.dispose) =3D=3D=3D "function") {
                        node.control.dispose();
                    }
                    var behaviors =3D =
Sys.UI.Behavior.getBehaviors(node);
                    for (var j =3D behaviors.length - 1; j >=3D 0; j--) =
{
                        behaviors[j].dispose();
                    }
                    this._destroyTree(node);
                }
            }
        }
    }
    function Sys$WebForms$PageRequestManager$dispose() {
        if (this._form) {
            Sys.UI.DomEvent.removeHandler(this._form, 'submit', =
this._onFormSubmitHandler);
            Sys.UI.DomEvent.removeHandler(this._form, 'click', =
this._onFormElementClickHandler);
            Sys.UI.DomEvent.removeHandler(window, 'unload', =
this._onWindowUnloadHandler);
            Sys.UI.DomEvent.removeHandler(window, 'load', =
this._pageLoadedHandler);
        }
        if (this._originalDoPostBack) {
            window.__doPostBack =3D this._originalDoPostBack;
            this._originalDoPostBack =3D null;
        }
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
this._originalDoPostBackWithOptions;
            this._originalDoPostBackWithOptions =3D null;
        }
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
this._originalFireDefaultButton;
            this._originalFireDefaultButton =3D null;
        }
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D this._originalDoCallback;
            this._originalDoCallback =3D null;
        }
        this._form =3D null;
        this._updatePanelIDs =3D null;
        this._updatePanelClientIDs =3D null;
        this._asyncPostBackControlIDs =3D null;
        this._asyncPostBackControlClientIDs =3D null;
        this._postBackControlIDs =3D null;
        this._postBackControlClientIDs =3D null;
        this._asyncPostBackTimeout =3D null;
        this._scrollPosition =3D null;
    }
    function Sys$WebForms$PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        if (!this.get_isInAsyncPostBack()) {
            this._originalDoCallback(eventTarget, eventArgument, =
eventCallback, context, errorCallback, useAsync);
        }
    }
    function Sys$WebForms$PageRequestManager$_doPostBack(eventTarget, =
eventArgument) {
        this._additionalInput =3D null;
        var form =3D this._form;
        if ((eventTarget =3D=3D=3D null) || (typeof(eventTarget) =
=3D=3D=3D "undefined") || (this._isCrossPost)) {
            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
            this._isCrossPost =3D false;
        }
        else {
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement) {
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    this._postBackSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
eventTarget, null);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                    }
                    else {
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                        }
                    }
                }
            }
            else {
                this._postBackSettings =3D =
this._getPostBackSettings(postBackElement, eventTarget);
            }
        }
        if (!this._postBackSettings.async) {
            form.onsubmit =3D this._onsubmit;
            this._originalDoPostBack(eventTarget, eventArgument);
            form.onsubmit =3D null;
            return;
        }
        form.__EVENTTARGET.value =3D eventTarget;
        form.__EVENTARGUMENT.value =3D eventArgument;
        this._onFormSubmit();
    }
    function =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions(options) {
        this._isCrossPost =3D options && options.actionUrl;
        this._originalDoPostBackWithOptions(options);
    }
    function Sys$WebForms$PageRequestManager$_elementContains(container, =
element) {
        while (element) {
            if (element =3D=3D=3D container) {
                return true;
            }
            element =3D element.parentNode;
        }
        return false;
    }
    function Sys$WebForms$PageRequestManager$_endPostBack(error, =
executor, data) {
        if (this._request =3D=3D=3D executor.get_webRequest()) {
            this._processingRequest =3D false;
            this._additionalInput =3D null;
            this._request =3D null;
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("endRequest");
        var errorHandled =3D false;
        if (handler) {
            var eventArgs =3D new =
Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, =
executor);
            handler(this, eventArgs);
            errorHandled =3D eventArgs.get_errorHandled();
        }
        if (error && !errorHandled) {
            throw error;
        }
    }
    function =
Sys$WebForms$PageRequestManager$_findNearestElement(uniqueID) {
        while (uniqueID.length > 0) {
            var clientID =3D this._uniqueIDToClientID(uniqueID);
            var element =3D document.getElementById(clientID);
            if (element) {
                return element;
            }
            var indexOfLastDollar =3D uniqueID.lastIndexOf('$');
            if (indexOfLastDollar =3D=3D=3D -1) {
                return null;
            }
            uniqueID =3D uniqueID.substring(0, indexOfLastDollar);
        }
        return null;
    }
    function Sys$WebForms$PageRequestManager$_findText(text, location) {
        var startIndex =3D Math.max(0, location - 20);
        var endIndex =3D Math.min(text.length, location + 20);
        return text.substring(startIndex, endIndex);
    }
    function Sys$WebForms$PageRequestManager$_fireDefaultButton(event, =
target) {
        if (event.keyCode =3D=3D=3D 13) {
            var src =3D event.srcElement || event.target;
            if (!src || (src.tagName.toLowerCase() !=3D=3D "textarea")) =
{
                var defaultButton =3D document.getElementById(target);
                if (defaultButton && (typeof(defaultButton.click) =
!=3D=3D "undefined")) {
                   =20
                   =20
                    this._activeDefaultButton =3D defaultButton;
                    this._activeDefaultButtonClicked =3D false;
                    try {
                        defaultButton.click();
                    }
                    finally {
                        this._activeDefaultButton =3D null;
                    }
                   =20
                   =20
                    event.cancelBubble =3D true;
                    if (typeof(event.stopPropagation) =3D=3D=3D =
"function") {
                        event.stopPropagation();
                    }
                    return false;
                }
            }
        }
        return true;
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs(initialLoad, =
data) {
        var updated =3D [];
        var created =3D [];
        var upData =3D data ? data.updatePanelData : null;
        var newIDs, childIDs, refreshedIDs;
        if (!upData) {
            newIDs =3D this._updatePanelIDs;
            childIDs =3D null;
            refreshedIDs =3D null;
        }
        else {
            newIDs =3D upData.updatePanelIDs;
            childIDs =3D upData.childUpdatePanelIDs;
            refreshedIDs =3D upData.panelsToRefreshIDs;
        }
        var i, l;
        if (refreshedIDs) {
            for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
                Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
            }
        }
        for (i =3D 0, l =3D newIDs.length; i < l; i++) {
            if (initialLoad || Array.indexOf(childIDs, newIDs[i]) =
!=3D=3D -1) {
                Array.add(created, =
document.getElementById(this._uniqueIDToClientID(newIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadedEventArgs(updated, created, =
data ? data.dataItems : {});
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs(data) {
        var updated =3D [];
        var deleted =3D [];
        var upData =3D data.updatePanelData;
        var oldIDs =3D upData.oldUpdatePanelIDs;
        var newIDs =3D upData.updatePanelIDs;
        var childIDs =3D upData.childUpdatePanelIDs;
        var refreshedIDs =3D upData.panelsToRefreshIDs;
        var i, l;
        for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
            Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
        }
        for (i =3D 0, l =3D oldIDs.length; i < l; i++) {
            if (Array.indexOf(refreshedIDs, oldIDs[i]) =3D=3D=3D -1 &&
                (Array.indexOf(newIDs, oldIDs[i]) =3D=3D=3D -1 || =
Array.indexOf(childIDs, oldIDs[i]) > -1)) {
                Array.add(deleted, =
document.getElementById(this._uniqueIDToClientID(oldIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, =
data.dataItems);
    }
    function =
Sys$WebForms$PageRequestManager$_getPostBackSettings(element, =
elementUniqueID) {
        var originalElement =3D element;
        var proposedSettings =3D null;
        while (element) {
            if (element.id) {
                if (!proposedSettings && =
Array.contains(this._asyncPostBackControlClientIDs, element.id)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        return this._createPostBackSettings(false, null, =
null);
                    }
                    else {
                        var indexOfPanel =3D =
Array.indexOf(this._updatePanelClientIDs, element.id);
                        if (indexOfPanel !=3D=3D -1) {
                            if =
(this._updatePanelHasChildrenAsTriggers[indexOfPanel]) {
                                return =
this._createPostBackSettings(true, this._updatePanelIDs[indexOfPanel] + =
'|' + elementUniqueID, originalElement);
                            }
                            else {
                                return =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                            }
                        }
                    }
                }
                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        return this._createPostBackSettings(false, null, =
null);
                    }
                }
            }
            element =3D element.parentNode;
        }
        if (!proposedSettings) {
            return this._createPostBackSettings(false, null, null);
        }
        else {
            return proposedSettings;
        }
    }
    function Sys$WebForms$PageRequestManager$_getScrollPosition() {
        var d =3D document.documentElement;
        if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
            return {
                x: d.scrollLeft,
                y: d.scrollTop
            };
        }
        else {
            d =3D document.body;
            if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
                return {
                    x: d.scrollLeft,
                    y: d.scrollTop
                };
            }
            else {
                if (this._validPosition(window.pageXOffset) || =
this._validPosition(window.pageYOffset)) {
                    return {
                        x: window.pageXOffset,
                        y: window.pageYOffset
                    };
                }
                else {
                    return {
                        x: 0,
                        y: 0
                    };
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_initializeInternal(scriptManagerID, =
formElement) {
        if (this._prmInitialized) {
            throw =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);
        }
        this._prmInitialized =3D true;
        this._scriptManagerID =3D scriptManagerID;
        this._form =3D formElement;
        this._onsubmit =3D this._form.onsubmit;
        this._form.onsubmit =3D null;
        this._onFormSubmitHandler =3D Function.createDelegate(this, =
this._onFormSubmit);
        this._onFormElementClickHandler =3D =
Function.createDelegate(this, this._onFormElementClick);
        this._onWindowUnloadHandler =3D Function.createDelegate(this, =
this._onWindowUnload);
        Sys.UI.DomEvent.addHandler(this._form, 'submit', =
this._onFormSubmitHandler);
        Sys.UI.DomEvent.addHandler(this._form, 'click', =
this._onFormElementClickHandler);
        Sys.UI.DomEvent.addHandler(window, 'unload', =
this._onWindowUnloadHandler);
        this._originalDoPostBack =3D window.__doPostBack;
        if (this._originalDoPostBack) {
            window.__doPostBack =3D Function.createDelegate(this, =
this._doPostBack);
        }
        this._originalDoPostBackWithOptions =3D =
window.WebForm_DoPostBackWithOptions;
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
Function.createDelegate(this, this._doPostBackWithOptions);
        }
        this._originalFireDefaultButton =3D =
window.WebForm_FireDefaultButton;
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
Function.createDelegate(this, this._fireDefaultButton);
        }
        this._originalDoCallback =3D window.WebForm_DoCallback;
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D Function.createDelegate(this, =
this._doCallback);
        }
        this._pageLoadedHandler =3D Function.createDelegate(this, =
this._pageLoadedInitialLoad);
        Sys.UI.DomEvent.addHandler(window, 'load', =
this._pageLoadedHandler);
    }
    function =
Sys$WebForms$PageRequestManager$_matchesParentIDInList(clientID, =
parentIDList) {
        for (var i =3D 0, l =3D parentIDList.length; i < l; i++) {
            if (clientID.startsWith(parentIDList[i] + "_")) {
                return true;
            }
        }
        return false;
    }
    function =
Sys$WebForms$PageRequestManager$_onFormElementActive(element, offsetX, =
offsetY) {
        if (element.disabled) {
            return;
        }
        this._postBackSettings =3D this._getPostBackSettings(element, =
element.name);
        if (element.name) {
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if (type =3D=3D=3D 'submit') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
                }
                else if (type =3D=3D=3D 'image') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '.x=3D' + offsetX + '&' + =
encodeURIComponent(element.name) + '.y=3D' + offsetY;
                }
            }
            else if ((tagName =3D=3D=3D 'BUTTON') && =
(element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) {
                this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_onFormElementClick(evt) {
        this._activeDefaultButtonClicked =3D (evt.target =3D=3D=3D =
this._activeDefaultButton);
        this._onFormElementActive(evt.target, evt.offsetX, evt.offsetY);
    }
    function Sys$WebForms$PageRequestManager$_onFormSubmit(evt) {
        var continueSubmit =3D true;
        var isCrossPost =3D this._isCrossPost;
        this._isCrossPost =3D false;
        var i, l;
        if (this._onsubmit) {
            continueSubmit =3D this._onsubmit();
        }
        if (continueSubmit) {
            for (i =3D 0, l =3D this._onSubmitStatements.length; i < l; =
i++) {
                if (!this._onSubmitStatements[i]()) {
                    continueSubmit =3D false;
                    break;
                }
            }
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        var form =3D this._form;
        if (isCrossPost) {
            return;
        }
        if (this._activeDefaultButton && =
!this._activeDefaultButtonClicked) {
            this._onFormElementActive(this._activeDefaultButton, 0, 0);
        }
        if (!this._postBackSettings.async) {
            return;
        }
        var formBody =3D new Sys.StringBuilder();
        formBody.append(encodeURIComponent(this._scriptManagerID) + =
'=3D' + encodeURIComponent(this._postBackSettings.panelID) + '&');
        var count =3D form.elements.length;
        for (i =3D 0; i < count; i++) {
            var element =3D form.elements[i];
            var name =3D element.name;
            if (typeof(name) =3D=3D=3D "undefined" || (name =3D=3D=3D =
null) || (name.length =3D=3D=3D 0) || (name =3D=3D=3D =
this._scriptManagerID)) {
                continue;
            }
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if ((type =3D=3D=3D 'text') ||
                    (type =3D=3D=3D 'password') ||
                    (type =3D=3D=3D 'hidden') ||
                    (((type =3D=3D=3D 'checkbox') || (type =3D=3D=3D =
'radio')) && element.checked)) {
                    formBody.append(encodeURIComponent(name));
                    formBody.append('=3D');
                    formBody.append(encodeURIComponent(element.value));
                    formBody.append('&');
                }
            }
            else if (tagName =3D=3D=3D 'SELECT') {
                var optionCount =3D element.options.length;
                for (var j =3D 0; j < optionCount; j++) {
                    var option =3D element.options[j];
                    if (option.selected) {
                        formBody.append(encodeURIComponent(name));
                        formBody.append('=3D');
                        =
formBody.append(encodeURIComponent(option.value));
                        formBody.append('&');
                    }
                }
            }
            else if (tagName =3D=3D=3D 'TEXTAREA') {
                formBody.append(encodeURIComponent(name));
                formBody.append('=3D');
                formBody.append(encodeURIComponent(element.value));
                formBody.append('&');
            }
        }
        formBody.append("__ASYNCPOST=3Dtrue&");
        if (this._additionalInput) {
            formBody.append(this._additionalInput);
            this._additionalInput =3D null;
        }
       =20
        var request =3D new Sys.Net.WebRequest();
        var action =3D form.action;
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) {
            var fragmentIndex =3D action.indexOf('#');
            if (fragmentIndex !=3D=3D -1) {
                action =3D action.substr(0, fragmentIndex);
            }
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                action =3D encodeURI(action);
            }
        }
        request.set_url(action);
        request.get_headers()['X-MicrosoftAjax'] =3D 'Delta=3Dtrue';
        request.get_headers()['Cache-Control'] =3D 'no-cache';
        request.set_timeout(this._asyncPostBackTimeout);
        request.add_completed(Function.createDelegate(this, =
this._onFormSubmitCompleted));
        request.set_body(formBody.toString());
        var eventArgs, handler =3D =
this._get_eventHandlerList().getHandler("initializeRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.InitializeRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
            continueSubmit =3D !eventArgs.get_cancel();
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        this._scrollPosition =3D this._getScrollPosition();
        this.abortPostBack();
        handler =3D =
this._get_eventHandlerList().getHandler("beginRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
        }
       =20
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }
        this._request =3D request;
        this._processingRequest =3D false;
        request.invoke();
        if (evt) {
            evt.preventDefault();
        }
    }
    function =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, =
eventArgs) {
        this._processingRequest =3D true;
        if (sender.get_timedOut()) {
            =
this._endPostBack(this._createPageRequestManagerTimeoutError(), sender, =
null);
            return;
        }
        if (sender.get_aborted()) {
            this._endPostBack(null, sender, null);
            return;
        }
        if (!this._request || (sender.get_webRequest() !=3D=3D =
this._request)) {
            return;
        }
        if (sender.get_statusCode() !=3D=3D 200) {
            =
this._endPostBack(this._createPageRequestManagerServerError(sender.get_st=
atusCode()), sender, null);
            return;
        }
        var data =3D this._parseDelta(sender);
        if (!data) return;
       =20
        var i, l;
        if (data.asyncPostBackControlIDsNode && =
data.postBackControlIDsNode &&
            data.updatePanelIDsNode && data.panelsToRefreshNode && =
data.childUpdatePanelIDsNode) {
           =20
            var oldUpdatePanelIDs =3D this._updatePanelIDs;
            var childUpdatePanelIDsString =3D =
data.childUpdatePanelIDsNode.content;
            var childUpdatePanelIDs =3D childUpdatePanelIDsString.length =
? childUpdatePanelIDsString.split(',') : [];
            var asyncPostBackControlIDsArray =3D =
this._splitNodeIntoArray(data.asyncPostBackControlIDsNode);
            var postBackControlIDsArray =3D =
this._splitNodeIntoArray(data.postBackControlIDsNode);
            var updatePanelIDsArray =3D =
this._splitNodeIntoArray(data.updatePanelIDsNode);
            var panelsToRefreshIDs =3D =
this._splitNodeIntoArray(data.panelsToRefreshNode);
            for (i =3D 0, l =3D panelsToRefreshIDs.length; i < l; i++) {
                var panelClientID =3D =
this._uniqueIDToClientID(panelsToRefreshIDs[i]);
                if (!document.getElementById(panelClientID)) {
                    =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, panelClientID)), sender, data);
                    return;
                }
            }
           =20
            var updatePanelData =3D this._processUpdatePanelArrays(
                updatePanelIDsArray,
                asyncPostBackControlIDsArray,
                postBackControlIDsArray);
            updatePanelData.oldUpdatePanelIDs =3D oldUpdatePanelIDs;
            updatePanelData.childUpdatePanelIDs =3D childUpdatePanelIDs;
            updatePanelData.panelsToRefreshIDs =3D panelsToRefreshIDs;
            data.updatePanelData =3D updatePanelData;
        }
        data.dataItems =3D {};
        var node;
        for (i =3D 0, l =3D data.dataItemNodes.length; i < l; i++) {
            node =3D data.dataItemNodes[i];
            data.dataItems[node.id] =3D node.content;
        }
        for (i =3D 0, l =3D data.dataItemJsonNodes.length; i < l; i++) {
            node =3D data.dataItemJsonNodes[i];
            data.dataItems[node.id] =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(node.content);
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoading");
        if (handler) {
            handler(this, this._getPageLoadingEventArgs(data));
        }
       =20
        Sys._ScriptLoader.readLoadedScripts();
        Sys.Application.beginCreateComponents();
        var scriptLoader =3D Sys._ScriptLoader.getInstance();
        this._queueScripts(scriptLoader, data.scriptBlockNodes, true, =
false);
       =20
        this._processingRequest =3D true;
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadComplete, data)),
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadFailed, data)),
            null);       =20
    }
    function Sys$WebForms$PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    }
    function Sys$WebForms$PageRequestManager$_pageLoaded(initialLoad, =
data) {
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoaded");
        if (handler) {
            handler(this, this._getPageLoadedEventArgs(initialLoad, =
data));
        }
        if (!initialLoad) {
            Sys.Application.raiseLoad();
        }
    }
    function Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad(evt) =
{
        this._pageLoaded(true, null);
    }
    function Sys$WebForms$PageRequestManager$_parseDelta(executor) {
        var reply =3D executor.get_responseData();
        var delimiterIndex, len, type, id, content;
        var replyIndex =3D 0;
        var parserErrorDetails =3D null;
        var delta =3D [];
        while (replyIndex < reply.length) {
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            len =3D parseInt(reply.substring(replyIndex, =
delimiterIndex), 10);
            if ((len % 1) !=3D=3D 0) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            type =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            id =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            if ((replyIndex + len) >=3D reply.length) {
                parserErrorDetails =3D this._findText(reply, =
reply.length);
                break;
            }
            content =3D reply.substr(replyIndex, len);
            replyIndex +=3D len;
            if (reply.charAt(replyIndex) !=3D=3D '|') {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex++;
            Array.add(delta, {type: type, id: id, content: content});
        }
        if (parserErrorDetails) {
            =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), =
executor, null);
            return null;
        }
        var updatePanelNodes =3D [];
        var hiddenFieldNodes =3D [];
        var arrayDeclarationNodes =3D [];
        var scriptBlockNodes =3D [];
        var scriptStartupNodes =3D [];
        var expandoNodes =3D [];
        var onSubmitNodes =3D [];
        var dataItemNodes =3D [];
        var dataItemJsonNodes =3D [];
        var scriptDisposeNodes =3D [];
        var asyncPostBackControlIDsNode, postBackControlIDsNode,
            updatePanelIDsNode, asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode, panelsToRefreshNode, =
formActionNode;
        for (var i =3D 0, l =3D delta.length; i < l; i++) {
            var deltaNode =3D delta[i];
            switch (deltaNode.type) {
                case "updatePanel":
                    Array.add(updatePanelNodes, deltaNode);
                    break;
                case "hiddenField":
                    Array.add(hiddenFieldNodes, deltaNode);
                    break;
                case "arrayDeclaration":
                    Array.add(arrayDeclarationNodes, deltaNode);
                    break;
                case "scriptBlock":
                    Array.add(scriptBlockNodes, deltaNode);
                    break;
                case "scriptStartupBlock":
                    Array.add(scriptStartupNodes, deltaNode);
                    break;
                case "expando":
                    Array.add(expandoNodes, deltaNode);
                    break;
                case "onSubmit":
                    Array.add(onSubmitNodes, deltaNode);
                    break;
                case "asyncPostBackControlIDs":
                    asyncPostBackControlIDsNode =3D deltaNode;
                    break;
                case "postBackControlIDs":
                    postBackControlIDsNode =3D deltaNode;
                    break;
                case "updatePanelIDs":
                    updatePanelIDsNode =3D deltaNode;
                    break;
                case "asyncPostBackTimeout":
                    asyncPostBackTimeoutNode =3D deltaNode;
                    break;
                case "childUpdatePanelIDs":
                    childUpdatePanelIDsNode =3D deltaNode;
                    break;
                case "panelsToRefreshIDs":
                    panelsToRefreshNode =3D deltaNode;
                    break;
                case "formAction":
                    formActionNode =3D deltaNode;
                    break;
                case "dataItem":
                    Array.add(dataItemNodes, deltaNode);
                    break;
                case "dataItemJson":
                    Array.add(dataItemJsonNodes, deltaNode);
                    break;
                case "scriptDispose":
                    Array.add(scriptDisposeNodes, deltaNode);
                    break;
                case "pageRedirect":
                    if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                        var anchor =3D document.createElement("a");
                        anchor.style.display =3D 'none';
                        anchor.attachEvent("onclick", cancelBubble);
                        anchor.href =3D deltaNode.content;
                        document.body.appendChild(anchor);
                        anchor.click();
                        anchor.detachEvent("onclick", cancelBubble);
                        document.body.removeChild(anchor);
                       =20
                        function cancelBubble(e) {
                            e.cancelBubble =3D true;
                        }
                    }
                    else {
                        window.location.href =3D deltaNode.content;
                    }
                    return;
                case "error":
                    =
this._endPostBack(this._createPageRequestManagerServerError(Number.parseI=
nvariant(deltaNode.id), deltaNode.content), executor, null);
                    return null;
                case "pageTitle":
                    document.title =3D deltaNode.content;
                    break;
                case "focus":
                    this._controlIDToFocus =3D deltaNode.content;
                    break;
                default:
                    =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), executor, null);
                    return null;
            }=20
        }=20
        return {
            executor: executor,
            updatePanelNodes: updatePanelNodes,
            hiddenFieldNodes: hiddenFieldNodes,
            arrayDeclarationNodes: arrayDeclarationNodes,
            scriptBlockNodes: scriptBlockNodes,
            scriptStartupNodes: scriptStartupNodes,
            expandoNodes: expandoNodes,
            onSubmitNodes: onSubmitNodes,
            dataItemNodes: dataItemNodes,
            dataItemJsonNodes: dataItemJsonNodes,
            scriptDisposeNodes: scriptDisposeNodes,
            asyncPostBackControlIDsNode: asyncPostBackControlIDsNode,
            postBackControlIDsNode: postBackControlIDsNode,
            updatePanelIDsNode: updatePanelIDsNode,
            asyncPostBackTimeoutNode: asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode: childUpdatePanelIDsNode,
            panelsToRefreshNode: panelsToRefreshNode,
            formActionNode: formActionNode };
    }
    function =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays(updatePanelIDs,=
 asyncPostBackControlIDs, postBackControlIDs) {
        var newUpdatePanelIDs;
        var newUpdatePanelClientIDs;
        var newUpdatePanelHasChildrenAsTriggers;
       =20
        if (updatePanelIDs) {
            var l =3D updatePanelIDs.length;
            newUpdatePanelIDs =3D new Array(l);
            newUpdatePanelClientIDs =3D new Array(l);
            newUpdatePanelHasChildrenAsTriggers =3D new Array(l);
           =20
            for (var i =3D 0; i < l; i++) {
                var realPanelID =3D updatePanelIDs[i].substr(1);
                var childrenAsTriggers =3D (updatePanelIDs[i].charAt(0) =
=3D=3D=3D 't');
                newUpdatePanelHasChildrenAsTriggers[i] =3D =
childrenAsTriggers;
                newUpdatePanelIDs[i] =3D realPanelID;
                newUpdatePanelClientIDs[i] =3D =
this._uniqueIDToClientID(realPanelID);
            }
        }
        else {
            newUpdatePanelIDs =3D [];
            newUpdatePanelClientIDs =3D [];
            newUpdatePanelHasChildrenAsTriggers =3D [];
        }
        var newAsyncPostBackControlIDs =3D [];
        var newAsyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
newAsyncPostBackControlIDs, newAsyncPostBackControlClientIDs);
        var newPostBackControlIDs =3D [];
        var newPostBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
newPostBackControlIDs, newPostBackControlClientIDs);
       =20
        return {
            updatePanelIDs: newUpdatePanelIDs,
            updatePanelClientIDs: newUpdatePanelClientIDs,
            updatePanelHasChildrenAsTriggers: =
newUpdatePanelHasChildrenAsTriggers,
            asyncPostBackControlIDs: newAsyncPostBackControlIDs,
            asyncPostBackControlClientIDs: =
newAsyncPostBackControlClientIDs,
            postBackControlIDs: newPostBackControlIDs,
            postBackControlClientIDs: newPostBackControlClientIDs
        };
    }
    function Sys$WebForms$PageRequestManager$_queueScripts(scriptLoader, =
scriptBlockNodes, queueIncludes, queueBlocks) {
       =20
        for (var i =3D 0, l =3D scriptBlockNodes.length; i < l; i++) {
            var scriptBlockType =3D scriptBlockNodes[i].id;
            switch (scriptBlockType) {
                case "ScriptContentNoTags":
                    if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);
                    break;
                case "ScriptContentWithTags":
                    var scriptTagAttributes;
                    eval("scriptTagAttributes =3D " + =
scriptBlockNodes[i].content);
                    if (scriptTagAttributes.src) {
                        if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) {
                            continue;
                        }
                    }
                    else if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueCustomScriptTag(scriptTagAttributes);
                    break;
                case "ScriptPath":
                    if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) {
                        continue;
                    }
                    =
scriptLoader.queueScriptReference(scriptBlockNodes[i].content);
                    break;
            }
        }       =20
    }
    function =
Sys$WebForms$PageRequestManager$_registerDisposeScript(panelID, =
disposeScript) {
        if (!this._scriptDisposes[panelID]) {
            this._scriptDisposes[panelID] =3D [disposeScript];
        }
        else {
            Array.add(this._scriptDisposes[panelID], disposeScript);
        }
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete(scriptLoader,=
 data) {
       =20
       =20
        if (data.executor.get_webRequest() !=3D=3D this._request) {
            return;
        }
       =20
        this._commitControls(data.updatePanelData,
            data.asyncPostBackTimeoutNode ? =
data.asyncPostBackTimeoutNode.content : null);
        if (data.formActionNode) {
            this._form.action =3D data.formActionNode.content;
        }
       =20
        var i, l, node;
        for (i =3D 0, l =3D data.updatePanelNodes.length; i < l; i++) {
            node =3D data.updatePanelNodes[i];
            var updatePanelElement =3D document.getElementById(node.id);
            if (!updatePanelElement) {
                =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, node.id)), data.executor, data);
                return;
            }
            this._updatePanel(updatePanelElement, node.content);
        }
        for (i =3D 0, l =3D data.scriptDisposeNodes.length; i < l; i++) =
{
            node =3D data.scriptDisposeNodes[i];
            this._registerDisposeScript(node.id, node.content);
        }
        for (i =3D 0, l =3D this._transientFields.length; i < l; i++) {
            var field =3D =
document.getElementById(this._transientFields[i]);
            if (field) {
                var toRemove =3D field._isContained ? field.parentNode : =
field;
                toRemove.parentNode.removeChild(toRemove);
            }
        }
        for (i =3D 0, l =3D data.hiddenFieldNodes.length; i < l; i++) {
            node =3D data.hiddenFieldNodes[i];
            this._createHiddenField(node.id, node.content);
        }
       =20
        if (data.scriptsFailed) {
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(data.scriptsFailed.src, =
data.scriptsFailed.multipleCallbacks);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptBlockNodes, false, =
true);
        var arrayScript =3D '';
        for (i =3D 0, l =3D data.arrayDeclarationNodes.length; i < l; =
i++) {
            node =3D data.arrayDeclarationNodes[i];
            arrayScript +=3D =
"Sys.WebForms.PageRequestManager._addArrayElement('" + node.id + "', " + =
node.content + ");\r\n";
        }
        var expandoScript =3D '';
        for (i =3D 0, l =3D data.expandoNodes.length; i < l; i++) {
            node =3D data.expandoNodes[i];
            expandoScript +=3D node.id + " =3D " + node.content + =
"\r\n";
        }
        if (arrayScript.length) {
            scriptLoader.queueScriptBlock(arrayScript);
        }
        if (expandoScript.length) {
            scriptLoader.queueScriptBlock(expandoScript);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptStartupNodes, true, =
true);
        var onSubmitStatementScript =3D '';
        for (i =3D 0, l =3D data.onSubmitNodes.length; i < l; i++) {
            if (i =3D=3D=3D 0) {
                onSubmitStatementScript =3D =
'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme=
nts, function() {\r\n';
            }
            onSubmitStatementScript +=3D data.onSubmitNodes[i].content + =
"\r\n";
        }
        if (onSubmitStatementScript.length) {
            onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n";
            scriptLoader.queueScriptBlock(onSubmitStatementScript);
        }
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptsLoadComplete, data)), null, null);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks, data) {
        data.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete(scriptLoader, data);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete(scriptLoader, data) =
{
       =20
       =20
        var response =3D data.executor;
        if (window.__theFormPostData) {
            window.__theFormPostData =3D "";
        }
        if (window.__theFormPostCollection) {
            window.__theFormPostCollection =3D [];
        }
        if (window.WebForm_InitCallback) {
            window.WebForm_InitCallback();
        }
        if (this._scrollPosition) {
            if (window.scrollTo) {
                window.scrollTo(this._scrollPosition.x, =
this._scrollPosition.y);
            }
            this._scrollPosition =3D null;
        }
        Sys.Application.endCreateComponents();
        this._pageLoaded(false, data);
        this._endPostBack(null, response, data);
        if (this._controlIDToFocus) {
            var focusTarget;
            var oldContentEditableSetting;
            if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                var targetControl =3D $get(this._controlIDToFocus);
                focusTarget =3D targetControl;
                if (targetControl && (!WebForm_CanFocus(targetControl))) =
{
                    focusTarget =3D =
WebForm_FindFirstFocusableChild(targetControl);
                }
                if (focusTarget && (typeof(focusTarget.contentEditable) =
!=3D=3D "undefined")) {
                    oldContentEditableSetting =3D =
focusTarget.contentEditable;
                    focusTarget.contentEditable =3D false;
                }
                else {
                    focusTarget =3D null;
                }
            }
            WebForm_AutoFocus(this._controlIDToFocus);
            if (focusTarget) {
                focusTarget.contentEditable =3D =
oldContentEditableSetting;
            }
            this._controlIDToFocus =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_splitNodeIntoArray(node) {
        var str =3D node.content;
        var arr =3D str.length ? str.split(',') : [];
        return arr;
    }
    function =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID(uniqueID) {
        return uniqueID.replace(/\$/g, '_');
    }
    function =
Sys$WebForms$PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout) {
        this._commitControls(
            this._processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs),
            asyncPostBackTimeout);
    }
    function =
Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, =
rendering) {
        for (var updatePanelID in this._scriptDisposes) {
            if (this._elementContains(updatePanelElement, =
document.getElementById(updatePanelID))) {
                var disposeScripts =3D =
this._scriptDisposes[updatePanelID];
                for (var i =3D 0, l =3D disposeScripts.length; i < l; =
i++) {
                    eval(disposeScripts[i]);
                }
                delete this._scriptDisposes[updatePanelID];
            }
        }
        this._destroyTree(updatePanelElement);
        updatePanelElement.innerHTML =3D rendering;
    }
    function Sys$WebForms$PageRequestManager$_validPosition(position) {
        return (typeof(position) !=3D=3D "undefined") && (position =
!=3D=3D null) && (position !=3D=3D 0);
    }
Sys.WebForms.PageRequestManager.prototype =3D {
    _get_eventHandlerList: =
Sys$WebForms$PageRequestManager$_get_eventHandlerList,
    get_isInAsyncPostBack: =
Sys$WebForms$PageRequestManager$get_isInAsyncPostBack,
    add_beginRequest: Sys$WebForms$PageRequestManager$add_beginRequest,
    remove_beginRequest: =
Sys$WebForms$PageRequestManager$remove_beginRequest,
    add_endRequest: Sys$WebForms$PageRequestManager$add_endRequest,
    remove_endRequest: =
Sys$WebForms$PageRequestManager$remove_endRequest,
    add_initializeRequest: =
Sys$WebForms$PageRequestManager$add_initializeRequest,
    remove_initializeRequest: =
Sys$WebForms$PageRequestManager$remove_initializeRequest,
    add_pageLoaded: Sys$WebForms$PageRequestManager$add_pageLoaded,
    remove_pageLoaded: =
Sys$WebForms$PageRequestManager$remove_pageLoaded,
    add_pageLoading: Sys$WebForms$PageRequestManager$add_pageLoading,
    remove_pageLoading: =
Sys$WebForms$PageRequestManager$remove_pageLoading,
    abortPostBack: Sys$WebForms$PageRequestManager$abortPostBack,
    _cancelPendingCallbacks: =
Sys$WebForms$PageRequestManager$_cancelPendingCallbacks,
    _commitControls: Sys$WebForms$PageRequestManager$_commitControls,
    _createHiddenField: =
Sys$WebForms$PageRequestManager$_createHiddenField,
    _createPageRequestManagerTimeoutError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError,
    _createPageRequestManagerServerError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError,
    _createPageRequestManagerParserError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError,
    _createPostBackSettings: =
Sys$WebForms$PageRequestManager$_createPostBackSettings,
    _convertToClientIDs: =
Sys$WebForms$PageRequestManager$_convertToClientIDs,
    _destroyTree: Sys$WebForms$PageRequestManager$_destroyTree,
    dispose: Sys$WebForms$PageRequestManager$dispose,
    _doCallback: Sys$WebForms$PageRequestManager$_doCallback,
    _doPostBack: Sys$WebForms$PageRequestManager$_doPostBack,
    _doPostBackWithOptions: =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions,
    _elementContains: Sys$WebForms$PageRequestManager$_elementContains,
    _endPostBack: Sys$WebForms$PageRequestManager$_endPostBack,
    _findNearestElement: =
Sys$WebForms$PageRequestManager$_findNearestElement,
    _findText: Sys$WebForms$PageRequestManager$_findText,
    _fireDefaultButton: =
Sys$WebForms$PageRequestManager$_fireDefaultButton,
    _getPageLoadedEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs,
    _getPageLoadingEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs,
    _getPostBackSettings: =
Sys$WebForms$PageRequestManager$_getPostBackSettings,
    _getScrollPosition: =
Sys$WebForms$PageRequestManager$_getScrollPosition,
    _initializeInternal: =
Sys$WebForms$PageRequestManager$_initializeInternal,
    _matchesParentIDInList: =
Sys$WebForms$PageRequestManager$_matchesParentIDInList,
    _onFormElementActive: =
Sys$WebForms$PageRequestManager$_onFormElementActive,
    _onFormElementClick: =
Sys$WebForms$PageRequestManager$_onFormElementClick,
    _onFormSubmit: Sys$WebForms$PageRequestManager$_onFormSubmit,
    _onFormSubmitCompleted: =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted,
    _onWindowUnload: Sys$WebForms$PageRequestManager$_onWindowUnload,
    _pageLoaded: Sys$WebForms$PageRequestManager$_pageLoaded,
    _pageLoadedInitialLoad: =
Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad,
    _parseDelta: Sys$WebForms$PageRequestManager$_parseDelta,
    _processUpdatePanelArrays: =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays,
    _queueScripts: Sys$WebForms$PageRequestManager$_queueScripts,
    _registerDisposeScript: =
Sys$WebForms$PageRequestManager$_registerDisposeScript,
    _scriptIncludesLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete,
    _scriptIncludesLoadFailed: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed,
    _scriptsLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete,
    _splitNodeIntoArray: =
Sys$WebForms$PageRequestManager$_splitNodeIntoArray,
    _uniqueIDToClientID: =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID,
    _updateControls: Sys$WebForms$PageRequestManager$_updateControls,
    _updatePanel: Sys$WebForms$PageRequestManager$_updatePanel,
    _validPosition: Sys$WebForms$PageRequestManager$_validPosition
}
Sys.WebForms.PageRequestManager.getInstance =3D function =
Sys$WebForms$PageRequestManager$getInstance() {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.getInstance" />
    /// <returns type=3D"Sys.WebForms.PageRequestManager"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var prm =3D Sys.WebForms.PageRequestManager._instance;
    if (!prm) {
        prm =3D Sys.WebForms.PageRequestManager._instance =3D new =
Sys.WebForms.PageRequestManager();
    }
    return prm;
}
Sys.WebForms.PageRequestManager._addArrayElement =3D function =
Sys$WebForms$PageRequestManager$_addArrayElement(arrayName) {
    if (!window[arrayName]) {
        window[arrayName] =3D new Array();
    }
    for (var i =3D 1, l =3D arguments.length; i < l; i++) {
        Array.add(window[arrayName], arguments[i]);
    }
}
Sys.WebForms.PageRequestManager._initialize =3D function =
Sys$WebForms$PageRequestManager$_initialize(scriptManagerID, =
formElement) {
    =
Sys.WebForms.PageRequestManager.getInstance()._initializeInternal(scriptM=
anagerID, formElement);
}
Sys.WebForms.PageRequestManager.registerClass('Sys.WebForms.PageRequestMa=
nager');
=20
Sys.UI._UpdateProgress =3D function Sys$UI$_UpdateProgress(element) {
    Sys.UI._UpdateProgress.initializeBase(this,[element]);
    this._displayAfter =3D 500;
    this._dynamicLayout =3D true;
    this._associatedUpdatePanelId =3D null;
    this._beginRequestHandlerDelegate =3D null;
    this._startDelegate =3D null;
    this._endRequestHandlerDelegate =3D null;
    this._pageRequestManager =3D null;
    this._timerCookie =3D null;
}
    function Sys$UI$_UpdateProgress$get_displayAfter() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.UI._UpdateProgress.displayAfter"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._displayAfter;
    }
    function Sys$UI$_UpdateProgress$set_displayAfter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        this._displayAfter =3D value;
    }
    function Sys$UI$_UpdateProgress$get_dynamicLayout() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI._UpdateProgress.dynamicLayout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dynamicLayout;
    }
    function Sys$UI$_UpdateProgress$set_dynamicLayout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._dynamicLayout =3D value;
    }
    function Sys$UI$_UpdateProgress$get_associatedUpdatePanelId() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.UI._UpdateProgress.associatedUpdatePanelId"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._associatedUpdatePanelId;
    }
    function Sys$UI$_UpdateProgress$set_associatedUpdatePanelId(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String, mayBeNull: true}]);
        if (e) throw e;
        this._associatedUpdatePanelId =3D value;
    }
    function Sys$UI$_UpdateProgress$_clearTimeout() {
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    }
    function Sys$UI$_UpdateProgress$_handleBeginRequest(sender, arg) {
        var curElem =3D arg.get_postBackElement();
        var showProgress =3D !this._associatedUpdatePanelId;=20
        while (!showProgress && curElem) {
            if (curElem.id && this._associatedUpdatePanelId =3D=3D=3D =
curElem.id) {
                showProgress =3D true;=20
            }
            curElem =3D curElem.parentNode;=20
        }=20
        if (showProgress) {
            this._timerCookie =3D window.setTimeout(this._startDelegate, =
this._displayAfter);
        }
    }
    function Sys$UI$_UpdateProgress$_startRequest() {
        if (this._pageRequestManager.get_isInAsyncPostBack()) {
            if (this._dynamicLayout) this.get_element().style.display =
=3D 'block';
            else this.get_element().style.visibility =3D 'visible';
        }
        this._timerCookie =3D null;
    }
    function Sys$UI$_UpdateProgress$_handleEndRequest(sender, arg) {
        if (this._dynamicLayout) this.get_element().style.display =3D =
'none';
        else this.get_element().style.visibility =3D 'hidden';
        this._clearTimeout();
    }
    function Sys$UI$_UpdateProgress$dispose() {
        if (this._beginRequestHandlerDelegate !=3D=3D null) {
            =
this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel=
egate);
            =
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat=
e);
            this._beginRequestHandlerDelegate =3D null;
            this._endRequestHandlerDelegate =3D null;
        }
        this._clearTimeout();
        Sys.UI._UpdateProgress.callBaseMethod(this,"dispose");
    }
    function Sys$UI$_UpdateProgress$initialize() {
        Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize');
    	this._beginRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleBeginRequest);
    	this._endRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleEndRequest);
    	this._startDelegate =3D Function.createDelegate(this, =
this._startRequest);
    	if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
           this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();
    	}
    	if (this._pageRequestManager !=3D=3D null ) {
    	    =
this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelega=
te);
    	    =
this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);=

    	}
    }
Sys.UI._UpdateProgress.prototype =3D {
    get_displayAfter: Sys$UI$_UpdateProgress$get_displayAfter,
    set_displayAfter: Sys$UI$_UpdateProgress$set_displayAfter,
    get_dynamicLayout: Sys$UI$_UpdateProgress$get_dynamicLayout,
    set_dynamicLayout: Sys$UI$_UpdateProgress$set_dynamicLayout,
    get_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$get_associatedUpdatePanelId,
    set_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$set_associatedUpdatePanelId,
    _clearTimeout: Sys$UI$_UpdateProgress$_clearTimeout,
    _handleBeginRequest: Sys$UI$_UpdateProgress$_handleBeginRequest,
    _startRequest: Sys$UI$_UpdateProgress$_startRequest,
    _handleEndRequest: Sys$UI$_UpdateProgress$_handleEndRequest,
    dispose: Sys$UI$_UpdateProgress$dispose,
    initialize: Sys$UI$_UpdateProgress$initialize
}
Sys.UI._UpdateProgress.registerClass('Sys.UI._UpdateProgress', =
Sys.UI.Control);


Type.registerNamespace('Sys.WebForms');
Sys.WebForms.Res=3D{
"PRM_MissingPanel":"No se pudo encontrar UpdatePanel con el id. =
\u0027{0}\u0027. Si se est=C3=A1 actualizando din=C3=A1micamente, debe =
estar dentro de otro UpdatePanel.",
"PRM_ServerError":"Error desconocido al procesar la solicitud en el =
servidor. El c=C3=B3digo de estado devuelto por el servidor era: {0}",
"PRM_ParserError":"No se pudo analizar el mensaje recibido del =
servidor.",
"PRM_TimeoutError":"Se agot=C3=B3 el tiempo de espera de la solicitud =
del servidor.",
"PRM_CannotRegisterTwice":"PageRequestManager no se puede inicializar =
m=C3=A1s de una vez.",
"PRM_UnknownToken":"Token desconocido: \u0027{0}\u0027.",
"PRM_MissingPanel":"No se pudo encontrar UpdatePanel con el id. =
\u0027{0}\u0027. Si se est=C3=A1 actualizando din=C3=A1micamente, debe =
estar dentro de otro UpdatePanel.",
"PRM_ServerError":"Error desconocido al procesar la solicitud en el =
servidor. El c=C3=B3digo de estado devuelto por el servidor era: {0}",
"PRM_ParserError":"No se pudo analizar el mensaje recibido del servidor. =
Este error suele producirse cuando la respuesta resulta modificada por =
llamadas a Response.Write() o cuando los filtros de respuesta, los =
HttpModules o el seguimiento de servidor est=C3=A1n =
habilitados.\r\nDetalles: {0}",
"PRM_TimeoutError":"Se agot=C3=B3 el tiempo de espera de la solicitud =
del servidor.",
"PRM_ParserErrorDetails":"Error de an=C3=A1lisis cerca de =
\u0027{0}\u0027.",
"PRM_CannotRegisterTwice":"PageRequestManager no se puede inicializar =
m=C3=A1s de una vez."
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRh1kzWt64I05PnaJ-kGovFMmvz5EKJmBmzkP0_rZkH9qw2&t=41a5b0a3

// Name:        AjaxControlToolkit.Common.Common.debug.js
// Assembly:    AjaxControlToolkit
// Version:     3.0.30930.28736
// FileVersion: 3.0.30930.0
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Public License.
// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
// All other rights reserved.


/// <reference name=3D"MicrosoftAjax.debug.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />


// Add common toolkit scripts here.  To consume the scripts on a control =
add
//=20
//      [RequiredScript(typeof(CommonToolkitScripts))]=20
//      public class SomeExtender : ...
//=20
// to the controls extender class declaration.


Type.registerNamespace('AjaxControlToolkit');


AjaxControlToolkit.BoxSide =3D function() {
    /// <summary>
    /// The BoxSide enumeration describes the sides of a DOM element
    /// </summary>
    /// <field name=3D"Top" type=3D"Number" integer=3D"true" =
static=3D"true" />
    /// <field name=3D"Right" type=3D"Number" integer=3D"true" =
static=3D"true" />
    /// <field name=3D"Bottom" type=3D"Number" integer=3D"true" =
static=3D"true" />
    /// <field name=3D"Left" type=3D"Number" integer=3D"true" =
static=3D"true" />
}
AjaxControlToolkit.BoxSide.prototype =3D {
    Top : 0,
    Right : 1,
    Bottom : 2,
    Left : 3
}
AjaxControlToolkit.BoxSide.registerEnum("AjaxControlToolkit.BoxSide", =
false);


AjaxControlToolkit._CommonToolkitScripts =3D function() {
    /// <summary>
    /// The _CommonToolkitScripts class contains functionality utilized =
across a number
    /// of controls (but not universally)
    /// </summary>
    /// <remarks>
    /// You should not create new instances of _CommonToolkitScripts.  =
Instead you should use the shared instance CommonToolkitScripts (or =
AjaxControlToolkit.CommonToolkitScripts).
    /// </remarks>
}
AjaxControlToolkit._CommonToolkitScripts.prototype =3D {
    // The order of these lookup tables is directly linked to the =
BoxSide enum defined above
    _borderStyleNames: ["borderTopStyle", "borderRightStyle", =
"borderBottomStyle", "borderLeftStyle"],
    _borderWidthNames: ["borderTopWidth", "borderRightWidth", =
"borderBottomWidth", "borderLeftWidth"],
    _paddingWidthNames: ["paddingTop", "paddingRight", "paddingBottom", =
"paddingLeft"],
    _marginWidthNames: ["marginTop", "marginRight", "marginBottom", =
"marginLeft"],

    getCurrentStyle: function(element, attribute, defaultValue) {
        /// <summary>
        /// CommonToolkitScripts.getCurrentStyle is used to compute the =
value of a style attribute on an
        /// element that is currently being displayed.  This is =
especially useful for scenarios where
        /// several CSS classes and style attributes are merged, or when =
you need information about the
        /// size of an element (such as its padding or margins) that is =
not exposed in any other fashion.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Live DOM element to check style of
        /// </param>
        /// <param name=3D"attribute" type=3D"String">
        /// The style attribute's name is expected to be in a =
camel-cased form that you would use when
        /// accessing a JavaScript property instead of the hyphenated =
form you would use in a CSS
        /// stylesheet (i.e. it should be "backgroundColor" and not =
"background-color").
        /// </param>
        /// <param name=3D"defaultValue" type=3D"Object" =
mayBeNull=3D"true" optional=3D"true">
        /// In the event of a problem (i.e. a null element or an =
attribute that cannot be found) we
        /// return this object (or null if none if not specified).
        /// </param>
        /// <returns type=3D"Object">
        /// Current style of the element's attribute
        /// </returns>

        var currentValue =3D null;
        if (element) {
            if (element.currentStyle) {
                currentValue =3D element.currentStyle[attribute];
            } else if (document.defaultView && =
document.defaultView.getComputedStyle) {
                var style =3D =
document.defaultView.getComputedStyle(element, null);
                if (style) {
                    currentValue =3D style[attribute];
                }
            }

            if (!currentValue && element.style.getPropertyValue) {
                currentValue =3D =
element.style.getPropertyValue(attribute);
            }
            else if (!currentValue && element.style.getAttribute) {
                currentValue =3D element.style.getAttribute(attribute);
            }
        }

        if ((!currentValue || currentValue =3D=3D "" || typeof =
(currentValue) =3D=3D=3D 'undefined')) {
            if (typeof (defaultValue) !=3D 'undefined') {
                currentValue =3D defaultValue;
            }
            else {
                currentValue =3D null;
            }
        }
        return currentValue;
    },

    getInheritedBackgroundColor: function(element) {
        /// <summary>
        /// CommonToolkitScripts.getInheritedBackgroundColor provides =
the ability to get the displayed
        /// background-color of an element.  In most cases calling =
CommonToolkitScripts.getCurrentStyle
        /// won't do the job because it will return "transparent" unless =
the element has been given a
        /// specific background color.  This function will walk up the =
element's parents until it finds
        /// a non-transparent color.  If we get all the way to the top =
of the document or have any other
        /// problem finding a color, we will return the default value =
'#FFFFFF'.  This function is
        /// especially important when we're using opacity in IE (because =
ClearType will make text look
        /// horrendous if you fade it with a transparent background =
color).
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Live DOM element to get the background color of
        /// </param>
        /// <returns type=3D"String">
        /// Background color of the element
        /// </returns>

        if (!element) return '#FFFFFF';
        var background =3D this.getCurrentStyle(element, =
'backgroundColor');
        try {
            while (!background || background =3D=3D '' || background =
=3D=3D 'transparent' || background =3D=3D 'rgba(0, 0, 0, 0)') {
                element =3D element.parentNode;
                if (!element) {
                    background =3D '#FFFFFF';
                } else {
                    background =3D this.getCurrentStyle(element, =
'backgroundColor');
                }
            }
        } catch (ex) {
            background =3D '#FFFFFF';
        }
        return background;
    },

    getLocation: function(element) {
        /// <summary>Gets the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <returns type=3D"Sys.UI.Point">
        ///   A Point object with two fields, x and y, which contain the =
pixel coordinates of the element.
        /// </returns>
        return Sys.UI.DomElement.getLocation(element);
    },

    setLocation: function(element, point) {
        /// <summary>
        /// Sets the current location for an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"point" type=3D"Object">
        /// Point object (of the form {x,y})
        /// </param>
        /// <remarks>
        /// This method does not attempt to set the positioning mode of =
an element.
        /// The position is relative from the elements nearest =
position:relative or
        /// position:absolute element.
        /// </remarks>
        Sys.UI.DomElement.setLocation(element, point.x, point.y);
    },

    getContentSize: function(element) {
        /// <summary>
        /// Gets the "content-box" size of an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Size of the element (in the form {width,height})
        /// </returns>
        /// <remarks>
        /// The "content-box" is the size of the content area *inside* =
of the borders and
        /// padding of an element. The "content-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var size =3D this.getSize(element);
        var borderBox =3D this.getBorderBox(element);
        var paddingBox =3D this.getPaddingBox(element);
        return {
            width: size.width - borderBox.horizontal - =
paddingBox.horizontal,
            height: size.height - borderBox.vertical - =
paddingBox.vertical
        }
    },

    getSize: function(element) {
        /// <summary>
        /// Gets the "border-box" size of an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Size of the element (in the form {width,height})
        /// </returns>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* =
of the borders and
        /// padding of an element.  The "border-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        return {
            width: element.offsetWidth,
            height: element.offsetHeight
        };
    },

    setContentSize: function(element, size) {
        /// <summary>
        /// Sets the "content-box" size of an element.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"size" type=3D"Object">
        /// Size of the element (in the form {width,height})
        /// </param>
        /// <remarks>
        /// The "content-box" is the size of the content area *inside* =
of the borders and
        /// padding of an element. The "content-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!size) {
            throw Error.argumentNull('size');
        }
        // FF respects -moz-box-sizing css extension, so adjust the box =
size for the border-box
        if (this.getCurrentStyle(element, 'MozBoxSizing') =3D=3D =
'border-box' || this.getCurrentStyle(element, 'BoxSizing') =3D=3D =
'border-box') {
            var borderBox =3D this.getBorderBox(element);
            var paddingBox =3D this.getPaddingBox(element);
            size =3D {
                width: size.width + borderBox.horizontal + =
paddingBox.horizontal,
                height: size.height + borderBox.vertical + =
paddingBox.vertical
            };
        }
        element.style.width =3D size.width.toString() + 'px';
        element.style.height =3D size.height.toString() + 'px';
    },

    setSize: function(element, size) {
        /// <summary>
        /// Sets the "border-box" size of an element.
        /// </summary>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* =
of the borders and=20
        /// padding of an element.  The "border-box" size does not =
include the margins around
        /// the element.
        /// </remarks>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">DOM =
element</param>
        /// <param name=3D"size" type=3D"Object">Size of the element (in =
the form {width,height})</param>
        /// <returns />

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!size) {
            throw Error.argumentNull('size');
        }
        var borderBox =3D this.getBorderBox(element);
        var paddingBox =3D this.getPaddingBox(element);
        var contentSize =3D {
            width: size.width - borderBox.horizontal - =
paddingBox.horizontal,
            height: size.height - borderBox.vertical - =
paddingBox.vertical
        };
        this.setContentSize(element, contentSize);
    },

    getBounds: function(element) {
        /// <summary>Gets the coordinates, width and height of an =
element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <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>
        return Sys.UI.DomElement.getBounds(element);
    },

    setBounds: function(element, bounds) {
        /// <summary>
        /// Sets the "border-box" bounds of an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"bounds" type=3D"Object">
        /// Bounds of the element (of the form {x,y,width,height})
        /// </param>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* =
of the borders and
        /// padding of an element.  The "border-box" size does not =
include the margins around
        /// the element.
        /// </remarks>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!bounds) {
            throw Error.argumentNull('bounds');
        }
        this.setSize(element, bounds);
        $common.setLocation(element, bounds);
    },

    getClientBounds: function() {
        /// <summary>
        /// Gets the width and height of the browser client window =
(excluding scrollbars)
        /// </summary>
        /// <returns type=3D"Sys.UI.Bounds">
        /// Browser's client width and height
        /// </returns>

        var clientWidth;
        var clientHeight;

        // getClientBounds must return dimensions excluding scrollbars, =
so cannot use window.innerWidth and window.innerHeight.
        if (document.compatMode =3D=3D "CSS1Compat") {
            // Standards-compliant mode
            clientWidth =3D document.documentElement.clientWidth;
            clientHeight =3D document.documentElement.clientHeight;
        }
        else {
            // Quirks mode
            clientWidth =3D document.body.clientWidth;
            clientHeight =3D document.body.clientHeight;
        }
        return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight);
    },

    getMarginBox: function(element) {
        /// <summary>
        /// Gets the entire margin box sizes.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Element's margin box sizes (of the form =
{top,left,bottom,right,horizontal,vertical})
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var box =3D {
            top: this.getMargin(element, =
AjaxControlToolkit.BoxSide.Top),
            right: this.getMargin(element, =
AjaxControlToolkit.BoxSide.Right),
            bottom: this.getMargin(element, =
AjaxControlToolkit.BoxSide.Bottom),
            left: this.getMargin(element, =
AjaxControlToolkit.BoxSide.Left)
        };
        box.horizontal =3D box.left + box.right;
        box.vertical =3D box.top + box.bottom;
        return box;
    },

    getBorderBox: function(element) {
        /// <summary>
        /// Gets the entire border box sizes.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Element's border box sizes (of the form =
{top,left,bottom,right,horizontal,vertical})
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var box =3D {
            top: this.getBorderWidth(element, =
AjaxControlToolkit.BoxSide.Top),
            right: this.getBorderWidth(element, =
AjaxControlToolkit.BoxSide.Right),
            bottom: this.getBorderWidth(element, =
AjaxControlToolkit.BoxSide.Bottom),
            left: this.getBorderWidth(element, =
AjaxControlToolkit.BoxSide.Left)
        };
        box.horizontal =3D box.left + box.right;
        box.vertical =3D box.top + box.bottom;
        return box;
    },

    getPaddingBox: function(element) {
        /// <summary>
        /// Gets the entire padding box sizes.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <returns type=3D"Object">
        /// Element's padding box sizes (of the form =
{top,left,bottom,right,horizontal,vertical})
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        var box =3D {
            top: this.getPadding(element, =
AjaxControlToolkit.BoxSide.Top),
            right: this.getPadding(element, =
AjaxControlToolkit.BoxSide.Right),
            bottom: this.getPadding(element, =
AjaxControlToolkit.BoxSide.Bottom),
            left: this.getPadding(element, =
AjaxControlToolkit.BoxSide.Left)
        };
        box.horizontal =3D box.left + box.right;
        box.vertical =3D box.top + box.bottom;
        return box;
    },

    isBorderVisible: function(element, boxSide) {
        /// <summary>
        /// Gets whether the current border style for an element on a =
specific boxSide is not 'none'.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Boolean">
        /// Whether the current border style for an element on a =
specific boxSide is not 'none'.
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        var styleName =3D this._borderStyleNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        return styleValue !=3D "none";
    },

    getMargin: function(element, boxSide) {
        /// <summary>
        /// Gets the margin thickness of an element on a specific =
boxSide.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Margin thickness on the element's specified side
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        var styleName =3D this._marginWidthNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        try { return this.parsePadding(styleValue); } catch (ex) { =
return 0; }
    },

    getBorderWidth: function(element, boxSide) {
        /// <summary>
        /// Gets the border thickness of an element on a specific =
boxSide.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Border thickness on the element's specified side
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        if (!this.isBorderVisible(element, boxSide)) {
            return 0;
        }
        var styleName =3D this._borderWidthNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        return this.parseBorderWidth(styleValue);
    },

    getPadding: function(element, boxSide) {
        /// <summary>
        /// Gets the padding thickness of an element on a specific =
boxSide.
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// DOM element
        /// </param>
        /// <param name=3D"boxSide" type=3D"AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Padding on the element's specified side
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }
        if (boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
            throw =
Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        var styleName =3D this._paddingWidthNames[boxSide];
        var styleValue =3D this.getCurrentStyle(element, styleName);
        return this.parsePadding(styleValue);
    },

    parseBorderWidth: function(borderWidth) {
        /// <summary>
        /// Parses a border-width string into a pixel size
        /// </summary>
        /// <param name=3D"borderWidth" type=3D"String" =
mayBeNull=3D"true">
        /// Type of border ('thin','medium','thick','inherit',px =
unit,null,'')
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Number of pixels in the border-width
        /// </returns>
        if (!this._borderThicknesses) {

            // Populate the borderThicknesses lookup table
            var borderThicknesses =3D {};
            var div0 =3D document.createElement('div');
            div0.style.visibility =3D 'hidden';
            div0.style.position =3D 'absolute';
            div0.style.fontSize =3D '1px';
            document.body.appendChild(div0)
            var div1 =3D document.createElement('div');
            div1.style.height =3D '0px';
            div1.style.overflow =3D 'hidden';
            div0.appendChild(div1);
            var base =3D div0.offsetHeight;
            div1.style.borderTop =3D 'solid black';
            div1.style.borderTopWidth =3D 'thin';
            borderThicknesses['thin'] =3D div0.offsetHeight - base;
            div1.style.borderTopWidth =3D 'medium';
            borderThicknesses['medium'] =3D div0.offsetHeight - base;
            div1.style.borderTopWidth =3D 'thick';
            borderThicknesses['thick'] =3D div0.offsetHeight - base;
            div0.removeChild(div1);
            document.body.removeChild(div0);
            this._borderThicknesses =3D borderThicknesses;
        }

        if (borderWidth) {
            switch (borderWidth) {
                case 'thin':
                case 'medium':
                case 'thick':
                    return this._borderThicknesses[borderWidth];
                case 'inherit':
                    return 0;
            }
            var unit =3D this.parseUnit(borderWidth);
            Sys.Debug.assert(unit.type =3D=3D 'px', =
String.format(AjaxControlToolkit.Resources.Common_InvalidBorderWidthUnit,=
 unit.type));
            return unit.size;
        }
        return 0;
    },

    parsePadding: function(padding) {
        /// <summary>
        /// Parses a padding string into a pixel size
        /// </summary>
        /// <param name=3D"padding" type=3D"String" mayBeNull=3D"true">
        /// Padding to parse ('inherit',px unit,null,'')
        /// </param>
        /// <returns type=3D"Number" integer=3D"true">
        /// Number of pixels in the padding
        /// </returns>

        if (padding) {
            if (padding =3D=3D 'inherit') {
                return 0;
            }
            var unit =3D this.parseUnit(padding);
            Sys.Debug.assert(unit.type =3D=3D 'px', =
String.format(AjaxControlToolkit.Resources.Common_InvalidPaddingUnit, =
unit.type));
            return unit.size;
        }
        return 0;
    },

    parseUnit: function(value) {
        /// <summary>
        /// Parses a unit string into a unit object
        /// </summary>
        /// <param name=3D"value" type=3D"String" mayBeNull=3D"true">
        /// Value to parse (of the form px unit,% unit,em unit,...)
        /// </param>
        /// <returns type=3D"Object">
        /// Parsed unit (of the form {size,type})
        /// </returns>

        if (!value) {
            throw Error.argumentNull('value');
        }

        value =3D value.trim().toLowerCase();
        var l =3D value.length;
        var s =3D -1;
        for (var i =3D 0; i < l; i++) {
            var ch =3D value.substr(i, 1);
            if ((ch < '0' || ch > '9') && ch !=3D '-' && ch !=3D '.' && =
ch !=3D ',') {
                break;
            }
            s =3D i;
        }
        if (s =3D=3D -1) {
            throw =
Error.create(AjaxControlToolkit.Resources.Common_UnitHasNoDigits);
        }
        var type;
        var size;
        if (s < (l - 1)) {
            type =3D value.substring(s + 1).trim();
        } else {
            type =3D 'px';
        }
        size =3D parseFloat(value.substr(0, s + 1));
        if (type =3D=3D 'px') {
            size =3D Math.floor(size);
        }
        return {
            size: size,
            type: type
        };
    },

    getElementOpacity: function(element) {
        /// <summary>
        /// Get the element's opacity
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <returns type=3D"Number">
        /// Opacity of the element
        /// </returns>

        if (!element) {
            throw Error.argumentNull('element');
        }

        var hasOpacity =3D false;
        var opacity;

        if (element.filters) {
            var filters =3D element.filters;
            if (filters.length !=3D=3D 0) {
                var alphaFilter =3D =
filters['DXImageTransform.Microsoft.Alpha'];
                if (alphaFilter) {
                    opacity =3D alphaFilter.opacity / 100.0;
                    hasOpacity =3D true;
                }
            }
        }
        else {
            opacity =3D this.getCurrentStyle(element, 'opacity', 1);
            hasOpacity =3D true;
        }

        if (hasOpacity =3D=3D=3D false) {
            return 1.0;
        }
        return parseFloat(opacity);
    },

    setElementOpacity: function(element, value) {
        /// <summary>
        /// Set the element's opacity
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <param name=3D"value" type=3D"Number">
        /// Opacity of the element
        /// </param>

        if (!element) {
            throw Error.argumentNull('element');
        }

        if (element.filters) {
            var filters =3D element.filters;
            var createFilter =3D true;
            if (filters.length !=3D=3D 0) {
                var alphaFilter =3D =
filters['DXImageTransform.Microsoft.Alpha'];
                if (alphaFilter) {
                    createFilter =3D false;
                    alphaFilter.opacity =3D value * 100;
                }
            }
            if (createFilter) {
                element.style.filter =3D =
'progid:DXImageTransform.Microsoft.Alpha(opacity=3D' + (value * 100) + =
')';
            }
        }
        else {
            element.style.opacity =3D value;
        }
    },

    getVisible: function(element) {
        /// <summary>
        /// Check if an element is visible
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <returns type=3D"Boolean" mayBeNull=3D"false">
        /// True if the element is visible, false otherwise
        /// </returns>

        // Note: reference to CommonToolkitScripts must be left intact =
(i.e. don't
        // replace with 'this') because this function will be aliased

        return (element &&
                ("none" !=3D $common.getCurrentStyle(element, =
"display")) &&
                ("hidden" !=3D $common.getCurrentStyle(element, =
"visibility")));
    },

    setVisible: function(element, value) {
        /// <summary>
        /// Check if an element is visible
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
        /// Element
        /// </param>
        /// <param name=3D"value" type=3D"Boolean" mayBeNull=3D"false">
        /// True to make the element visible, false to hide it
        /// </param>

        // Note: reference to CommonToolkitScripts must be left intact =
(i.e. don't
        // replace with 'this') because this function will be aliased

        if (element && value !=3D $common.getVisible(element)) {
            if (value) {
                if (element.style.removeAttribute) {
                    element.style.removeAttribute("display");
                } else {
                    element.style.removeProperty("display");
                }
            } else {
                element.style.display =3D 'none';
            }
            element.style.visibility =3D value ? 'visible' : 'hidden';
        }
    },

    resolveFunction: function(value) {
        /// <summary>
        /// Returns a function reference that corresponds to the =
provided value
        /// </summary>
        /// <param name=3D"value" type=3D"Object">
        /// The value can either be a Function, the name of a function =
(that can be found using window['name']),
        /// or an expression that evaluates to a function.
        /// </param>
        /// <returns type=3D"Function">
        /// Reference to the function, or null if not found
        /// </returns>

        if (value) {
            if (value instanceof Function) {
                return value;
            } else if (String.isInstanceOfType(value) && value.length > =
0) {
                var func;
                if ((func =3D window[value]) instanceof Function) {
                    return func;
                } else if ((func =3D eval(value)) instanceof Function) {
                    return func;
                }
            }
        }
        return null;
    },

    addCssClasses: function(element, classNames) {
        /// <summary>
        /// Adds multiple css classes to a DomElement
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"classNames" type=3D"Array">The class names to =
add</param>

        for (var i =3D 0; i < classNames.length; i++) {
            Sys.UI.DomElement.addCssClass(element, classNames[i]);
        }
    },
    removeCssClasses: function(element, classNames) {
        /// <summary>
        /// Removes multiple css classes to a DomElement
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"classNames" type=3D"Array">The class names to =
remove</param>

        for (var i =3D 0; i < classNames.length; i++) {
            Sys.UI.DomElement.removeCssClass(element, classNames[i]);
        }
    },
    setStyle: function(element, style) {
        /// <summary>
        /// Sets the style of the element using the supplied style =
template object
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"style" type=3D"Object">The template</param>

        $common.applyProperties(element.style, style);
    },
    removeHandlers: function(element, events) {
        /// <summary>
        /// Removes a set of event handlers from an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to modify</param>
        /// <param name=3D"events" type=3D"Object">The template object =
that contains event names and delegates</param>
        /// <remarks>
        /// This is NOT the same as $clearHandlers which removes all =
delegates from a DomElement.  This rather removes select delegates=20
        /// from a specified element and has a matching signature as =
$addHandlers
        /// </remarks>
        for (var name in events) {
            $removeHandler(element, name, events[name]);
        }
    },

    overlaps: function(r1, r2) {
        /// <summary>
        /// Determine if two rectangles overlap
        /// </summary>
        /// <param name=3D"r1" type=3D"Object">
        /// Rectangle
        /// </param>
        /// <param name=3D"r2" type=3D"Object">
        /// Rectangle
        /// </param>
        /// <returns type=3D"Boolean">
        /// True if the rectangles overlap, false otherwise
        /// </returns>

        return r1.x < (r2.x + r2.width)
                && r2.x < (r1.x + r1.width)
                && r1.y < (r2.y + r2.height)
                && r2.y < (r1.y + r1.height);
    },

    containsPoint: function(rect, x, y) {
        /// <summary>
        /// Tests whether a point (x,y) is contained within a rectangle
        /// </summary>
        /// <param name=3D"rect" type=3D"Object">The rectangle</param>
        /// <param name=3D"x" type=3D"Number">The x coordinate of the =
point</param>
        /// <param name=3D"y" type=3D"Number">The y coordinate of the =
point</param>

        return x >=3D rect.x && x < (rect.x + rect.width) && y >=3D =
rect.y && y < (rect.y + rect.height);
    },

    isKeyDigit: function(keyCode) {
        /// <summary>
        /// Gets whether the supplied key-code is a digit
        /// </summary>
        /// <param name=3D"keyCode" type=3D"Number" integer=3D"true">The =
key code of the event (from Sys.UI.DomEvent)</param>
        /// <returns type=3D"Boolean" />

        return (0x30 <=3D keyCode && keyCode <=3D 0x39);
    },

    isKeyNavigation: function(keyCode) {
        /// <summary>
        /// Gets whether the supplied key-code is a navigation key
        /// </summary>
        /// <param name=3D"keyCode" type=3D"Number" integer=3D"true">The =
key code of the event (from Sys.UI.DomEvent)</param>
        /// <returns type=3D"Boolean" />

        return (Sys.UI.Key.left <=3D keyCode && keyCode <=3D =
Sys.UI.Key.down);
    },

    padLeft: function(text, size, ch, truncate) {
        /// <summary>
        /// Pads the left hand side of the supplied text with the =
specified pad character up to the requested size
        /// </summary>
        /// <param name=3D"text" type=3D"String">The text to pad</param>
        /// <param name=3D"size" type=3D"Number" integer=3D"true" =
optional=3D"true">The size to pad the text (default is 2)</param>
        /// <param name=3D"ch" type=3D"String" optional=3D"true">The =
single character to use as the pad character (default is ' ')</param>
        /// <param name=3D"truncate" type=3D"Boolean" =
optional=3D"true">Whether to truncate the text to size (default is =
false)</param>

        return $common._pad(text, size || 2, ch || ' ', 'l', truncate || =
false);
    },

    padRight: function(text, size, ch, truncate) {
        /// <summary>
        /// Pads the right hand side of the supplied text with the =
specified pad character up to the requested size
        /// </summary>
        /// <param name=3D"text" type=3D"String">The text to pad</param>
        /// <param name=3D"size" type=3D"Number" integer=3D"true" =
optional=3D"true">The size to pad the text (default is 2)</param>
        /// <param name=3D"ch" type=3D"String" optional=3D"true">The =
single character to use as the pad character (default is ' ')</param>
        /// <param name=3D"truncate" type=3D"Boolean" =
optional=3D"true">Whether to truncate the text to size (default is =
false)</param>

        return $common._pad(text, size || 2, ch || ' ', 'r', truncate || =
false);
    },

    _pad: function(text, size, ch, side, truncate) {
        /// <summary>
        /// Pads supplied text with the specified pad character up to =
the requested size
        /// </summary>
        /// <param name=3D"text" type=3D"String">The text to pad</param>
        /// <param name=3D"size" type=3D"Number" integer=3D"true">The =
size to pad the text</param>
        /// <param name=3D"ch" type=3D"String">The single character to =
use as the pad character</param>
        /// <param name=3D"side" type=3D"String">Either 'l' or 'r' to =
siginfy whether to pad the Left or Right side respectively</param>
        /// <param name=3D"truncate" type=3D"Boolean">Whether to =
truncate the text to size</param>

        text =3D text.toString();
        var length =3D text.length;
        var builder =3D new Sys.StringBuilder();
        if (side =3D=3D 'r') {
            builder.append(text);
        }
        while (length < size) {
            builder.append(ch);
            length++;
        }
        if (side =3D=3D 'l') {
            builder.append(text);
        }
        var result =3D builder.toString();
        if (truncate && result.length > size) {
            if (side =3D=3D 'l') {
                result =3D result.substr(result.length - size, size);
            } else {
                result =3D result.substr(0, size);
            }
        }
        return result;
    },

    __DOMEvents: {
        focusin: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("focusin", true, false, window, 1); } },
        focusout: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("focusout", true, false, window, 1); } },
        activate: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("activate", true, true, window, 1); } },
        focus: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("focus", false, false, window, 1); } },
        blur: { eventGroup: "UIEvents", init: function(e, p) { =
e.initUIEvent("blur", false, false, window, 1); } },
        click: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("click", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        dblclick: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("click", true, true, window, 2, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mousedown: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mousedown", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mouseup: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mouseup", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mouseover: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mouseover", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mousemove: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        mouseout: { eventGroup: "MouseEvents", init: function(e, p) { =
e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null); } },
        load: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("load", false, false); } },
        unload: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("unload", false, false); } },
        select: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("select", true, false); } },
        change: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("change", true, false); } },
        submit: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("submit", true, true); } },
        reset: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("reset", true, false); } },
        resize: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("resize", true, false); } },
        scroll: { eventGroup: "HTMLEvents", init: function(e, p) { =
e.initEvent("scroll", true, false); } }
    },

    tryFireRawEvent: function(element, rawEvent) {
        /// <summary>
        /// Attempts to fire a raw DOM event on an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to fire the event</param>
        /// <param name=3D"rawEvent" type=3D"Object">The raw DOM event =
object to fire. Must not be Sys.UI.DomEvent</param>
        /// <returns type=3D"Boolean">True if the event was successfully =
fired, otherwise false</returns>

        try {
            if (element.fireEvent) {
                element.fireEvent("on" + rawEvent.type, rawEvent);
                return true;
            } else if (element.dispatchEvent) {
                element.dispatchEvent(rawEvent);
                return true;
            }
        } catch (e) {
        }
        return false;
    },

    tryFireEvent: function(element, eventName, properties) {
        /// <summary>
        /// Attempts to fire a DOM event on an element
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to fire the event</param>
        /// <param name=3D"eventName" type=3D"String">The name of the =
event to fire (without an 'on' prefix)</param>
        /// <param name=3D"properties" type=3D"Object">Properties to add =
to the event</param>
        /// <returns type=3D"Boolean">True if the event was successfully =
fired, otherwise false</returns>

        try {
            if (document.createEventObject) {
                var e =3D document.createEventObject();
                $common.applyProperties(e, properties || {});
                element.fireEvent("on" + eventName, e);
                return true;
            } else if (document.createEvent) {
                var def =3D $common.__DOMEvents[eventName];
                if (def) {
                    var e =3D document.createEvent(def.eventGroup);
                    def.init(e, properties || {});
                    element.dispatchEvent(e);
                    return true;
                }
            }
        } catch (e) {
        }
        return false;
    },

    wrapElement: function(innerElement, newOuterElement, =
newInnerParentElement) {
        /// <summary>
        /// Wraps an inner element with a new outer element at the same =
DOM location as the inner element
        /// </summary>
        /// <param name=3D"innerElement" type=3D"Sys.UI.DomElement">The =
element to be wrapped</param>
        /// <param name=3D"newOuterElement" =
type=3D"Sys.UI.DomElement">The new parent for the element</param>
        /// <returns />

        var parent =3D innerElement.parentNode;
        parent.replaceChild(newOuterElement, innerElement);
        (newInnerParentElement || =
newOuterElement).appendChild(innerElement);
    },

    unwrapElement: function(innerElement, oldOuterElement) {
        /// <summary>
        /// Unwraps an inner element from an outer element at the same =
DOM location as the outer element
        /// </summary>
        /// <param name=3D"innerElement" type=3D"Sys.UI.DomElement">The =
element to be wrapped</param>
        /// <param name=3D"newOuterElement" =
type=3D"Sys.UI.DomElement">The new parent for the element</param>
        /// <returns />

        var parent =3D oldOuterElement.parentNode;
        if (parent !=3D null) {
            $common.removeElement(innerElement);
            parent.replaceChild(innerElement, oldOuterElement);
        }
    },

    removeElement: function(element) {
        /// <summary>
        /// Removes an element from the DOM tree
        /// </summary>
        /// <param name=3D"element" type=3D"Sys.UI.DomElement">The =
element to be removed</param>
        /// <returns />

        var parent =3D element.parentNode;
        if (parent !=3D null) {
            parent.removeChild(element);
        }
    },

    applyProperties: function(target, properties) {
        /// <summary>
        /// Quick utility method to copy properties from a template =
object to a target object
        /// </summary>
        /// <param name=3D"target" type=3D"Object">The object to apply =
to</param>
        /// <param name=3D"properties" type=3D"Object">The template to =
copy values from</param>

        for (var p in properties) {
            var pv =3D properties[p];
            if (pv !=3D null && Object.getType(pv) =3D=3D=3D Object) {
                var tv =3D target[p];
                $common.applyProperties(tv, pv);
            } else {
                target[p] =3D pv;
            }
        }
    },

    createElementFromTemplate: function(template, appendToParent, =
nameTable) {
        /// <summary>
        /// Creates an element for the current document based on a =
template object
        /// </summary>
        /// <param name=3D"template" type=3D"Object">The template from =
which to create the element</param>
        /// <param name=3D"appendToParent" type=3D"Sys.UI.DomElement" =
optional=3D"true" mayBeNull=3D"true">A DomElement under which to append =
this element</param>
        /// <param name=3D"nameTable" type=3D"Object" optional=3D"true" =
mayBeNull=3D"true">An object to use as the storage for the element using =
template.name as the key</param>
        /// <returns type=3D"Sys.UI.DomElement" />
        /// <remarks>
        /// This method is useful if you find yourself using the same or =
similar DomElement constructions throughout a class.  You can even set =
the templates
        /// as static properties for a type to cut down on overhead.  =
This method is often called with a JSON style template:
        /// <code>
        /// var elt =3D $common.createElementFromTemplate({
        ///     nodeName : "div",
        ///     properties : {
        ///         style : {
        ///             height : "100px",
        ///             width : "100px",
        ///             backgroundColor : "white"
        ///         },
        ///         expandoAttribute : "foo"
        ///     },
        ///     events : {
        ///         click : function() { alert("foo"); },
        ///         mouseover : function() { elt.backgroundColor =3D =
"silver"; },
        ///         mouseout : function() { elt.backgroundColor =3D =
"white"; }
        ///     },
        ///     cssClasses : [ "class0", "class1" ],
        ///     visible : true,
        ///     opacity : .5
        /// }, someParent);
        /// </code>
        /// </remarks>

        // if we wish to override the name table we do so here
        if (typeof (template.nameTable) !=3D 'undefined') {
            var newNameTable =3D template.nameTable;
            if (String.isInstanceOfType(newNameTable)) {
                newNameTable =3D nameTable[newNameTable];
            }
            if (newNameTable !=3D null) {
                nameTable =3D newNameTable;
            }
        }

        // get a name for the element in the nameTable
        var elementName =3D null;
        if (typeof (template.name) !=3D=3D 'undefined') {
            elementName =3D template.name;
        }

        // create or acquire the element
        var elt =3D document.createElement(template.nodeName);

        // if our element is named, add it to the name table
        if (typeof (template.name) !=3D=3D 'undefined' && nameTable) {
            nameTable[template.name] =3D elt;
        }

        // if we wish to supply a default parent we do so here
        if (typeof (template.parent) !=3D=3D 'undefined' && =
appendToParent =3D=3D null) {
            var newParent =3D template.parent;
            if (String.isInstanceOfType(newParent)) {
                newParent =3D nameTable[newParent];
            }
            if (newParent !=3D null) {
                appendToParent =3D newParent;
            }
        }

        // properties are applied as expando values to the element
        if (typeof (template.properties) !=3D=3D 'undefined' && =
template.properties !=3D null) {
            $common.applyProperties(elt, template.properties);
        }

        // css classes are added to the element's className property
        if (typeof (template.cssClasses) !=3D=3D 'undefined' && =
template.cssClasses !=3D null) {
            $common.addCssClasses(elt, template.cssClasses);
        }

        // events are added to the dom element using $addHandlers
        if (typeof (template.events) !=3D=3D 'undefined' && =
template.events !=3D null) {
            $addHandlers(elt, template.events);
        }

        // if the element is visible or not its visibility is set
        if (typeof (template.visible) !=3D=3D 'undefined' && =
template.visible !=3D null) {
            this.setVisible(elt, template.visible);
        }

        // if we have an appendToParent we will now append to it
        if (appendToParent) {
            appendToParent.appendChild(elt);
        }

        // if we have opacity, apply it
        if (typeof (template.opacity) !=3D=3D 'undefined' && =
template.opacity !=3D null) {
            $common.setElementOpacity(elt, template.opacity);
        }

        // if we have child templates, process them
        if (typeof (template.children) !=3D=3D 'undefined' && =
template.children !=3D null) {
            for (var i =3D 0; i < template.children.length; i++) {
                var subtemplate =3D template.children[i];
                $common.createElementFromTemplate(subtemplate, elt, =
nameTable);
            }
        }

        // if we have a content presenter for the element get it (the =
element itself is the default presenter for content)
        var contentPresenter =3D elt;
        if (typeof (template.contentPresenter) !=3D=3D 'undefined' && =
template.contentPresenter !=3D null) {
            contentPresenter =3D nameTable[contentPresenter];
        }

        // if we have content, add it
        if (typeof (template.content) !=3D=3D 'undefined' && =
template.content !=3D null) {
            var content =3D template.content;
            if (String.isInstanceOfType(content)) {
                content =3D nameTable[content];
            }
            if (content.parentNode) {
                $common.wrapElement(content, elt, contentPresenter);
            } else {
                contentPresenter.appendChild(content);
            }
        }

        // return the created element
        return elt;
    },

    prepareHiddenElementForATDeviceUpdate: function() {
        /// <summary>
        /// JAWS, an Assistive Technology device responds to updates to =
form elements=20
        /// and refreshes its document buffer to what is showing live
        /// in the browser. To ensure that Toolkit controls that make =
XmlHttpRequests to
        /// retrieve content are useful to users with visual =
disabilities, we update a
        /// hidden form element to ensure that JAWS conveys what is in
        /// the browser. See this article for more details:=20
        /// =
http://juicystudio.com/article/improving-ajax-applications-for-jaws-users=
.php
        /// This method creates a hidden input on the screen for any =
page that uses a Toolkit
        /// control that will perform an XmlHttpRequest.
        /// </summary>  =20
        var objHidden =3D =
document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts=
');
        if (!objHidden) {
            var objHidden =3D document.createElement('input');
            objHidden.setAttribute('type', 'hidden');
            objHidden.setAttribute('value', '1');
            objHidden.setAttribute('id', =
'hiddenInputToUpdateATBuffer_CommonToolkitScripts');
            objHidden.setAttribute('name', =
'hiddenInputToUpdateATBuffer_CommonToolkitScripts');
            if (document.forms[0]) {
                document.forms[0].appendChild(objHidden);
            }
        }
    },

    updateFormToRefreshATDeviceBuffer: function() {
        /// <summary>
        /// Updates the hidden buffer to ensure that the latest document =
stream is picked up
        /// by the screen reader.
        /// </summary>
        var objHidden =3D =
document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts=
');

        if (objHidden) {
            if (objHidden.getAttribute('value') =3D=3D '1') {
                objHidden.setAttribute('value', '0');
            } else {
                objHidden.setAttribute('value', '1');
            }
        }
    },

    appendElementToFormOrBody: function(element) {
        /// <summary>
        /// Tries to append an element to the current form. If no form =
exists, the element will be appended to the body element.
        /// </summary>
        /// <param name=3D"element" type=3D"Object">The element to =
append.</param>
        if (document.forms && document.forms[0]) {
            document.forms[0].appendChild(element);
        } else {
            document.body.appendChild(element);
        }
    }
}

// getLocation implementation from msajax 4
if (document.documentElement.getBoundingClientRect) {
    Sys.UI.DomElement.getLocation =3D function(element) {
        /// <summary>Gets the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <returns type=3D"Sys.UI.Point">
        ///   A Point object with two fields, x and y, which contain the =
pixel coordinates of the element.
        /// </returns>
        // For a document element, body, or window, return zero.
        // In IE8, the boundingClientRect for body is influenced by the =
bounding rect of its content, and so may not be 0,0.
        // But for positioning purposes, elements positioned at 0,0 will =
be at the top even if the content has margins, etc, so
        // getlocation should return 0,0 for body.
        // In all browsers, detecting the body works by seeing if the =
element's parent ndoe is the element's own document's documentElement =
node.
        if (element.self || element.nodeType =3D=3D=3D 9 || // window?
            (element =3D=3D=3D document.documentElement) || // =
documentElement?
            (element.parentNode =3D=3D=3D =
element.ownerDocument.documentElement)) { // body?
            return new Sys.UI.Point(0, 0);
        }       =20
       =20
        // Here there is a small inconsistency with what other browsers =
would give for wrapping elements:
        // the bounding rect can be different from the first rectangle. =
getBoundingRect is used here
        // because it's more consistent and because clientRects need to =
be offset by the coordinates
        // of the frame in the parent window, which is not always =
accessible to script (if it's in a different
        // domain in particular).
        var clientRect =3D element.getBoundingClientRect();
        if (!clientRect) {
            return new Sys.UI.Point(0,0);
        }
        // Firefox 3 can return decimals here, so round them.
        // This appears to be consistent with how the display engine =
actually places the element when there is a decimal.
        var ex, documentElement =3D =
element.ownerDocument.documentElement,
            offsetX =3D Math.round(clientRect.left) + =
documentElement.scrollLeft,
            offsetY =3D Math.round(clientRect.top) + =
documentElement.scrollTop;
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) {
            // When the window is an iframe, the frameborder needs to be =
added. This is only available from
            // script when the parent window is in the same domain as =
the frame, hence the try/catch.
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    // frameBorder has a default of "1" so undefined =
must map to 0, and "0" and "no" to 2.
                    var offset =3D (f.frameBorder =3D=3D=3D "0" || =
f.frameBorder =3D=3D=3D "no") ? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }
            if (Sys.Browser.version =3D=3D=3D 7 && =
!document.documentMode) {
                // IE7 reapplies the page zoom level when using the =
returned coordinates.
                // therefore we must divide by the zoom level to =
compensate. This is not perfect, but close.
                // NOTE: IE8 with document.documentMode =3D=3D=3D 7 does =
NOT emulate IE7 behavior, by design.
                // Also, this zoom detection does not work perfectly in =
IE8 compat mode, where we would want
                // it to be 100% always, so it is necessary that we =
ensure this only happens in ACTUAL IE7.
                // IE6 does not support zoom.
                var body =3D document.body,
                    rect =3D body.getBoundingClientRect(),
                    zoom =3D (rect.right-rect.left) / body.clientWidth;
                // zoom is not completely accurate, so snap to the =
previous 5% by multiplying by 100, rounding,
                // then subtracting zoom % 5, then dividing by 100 to =
get back to a multiplier.
                // It's not likely someone is zooming at 154%, for =
example, so that probably means it is actually 150%, whereas
                // 156% probably means 155% (the estimate tends to =
over-estimate).
                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 (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) {
    Sys.UI.DomElement.getLocation =3D function(element) {
        /// <summary>Gets the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <returns type=3D"Sys.UI.Point">
        ///   A Point object with two fields, x and y, which contain the =
pixel coordinates of the element.
        /// </returns>
        // For a document element, return zero.
        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 an element is absolutely positioned, its parent's scroll =
should not be subtracted
        if (!elementPosition || (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 {
    Sys.UI.DomElement.getLocation =3D function(element) {
        /// <summary>Gets the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"/>
        /// <returns type=3D"Sys.UI.Point">
        ///   A Point object with two fields, x and y, which contain the =
pixel coordinates of the element.
        /// </returns>
        // For a document element, return zero.
        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 an element is absolutely positioned, its parent's scroll =
should not be subtracted, except on Opera.
        if (!elementPosition || (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);
    }
}

// Create the singleton instance of the CommonToolkitScripts
var CommonToolkitScripts =3D AjaxControlToolkit.CommonToolkitScripts =3D =
new AjaxControlToolkit._CommonToolkitScripts();
var $common =3D CommonToolkitScripts;

// Alias functions that were moved from BlockingScripts into Common
Sys.UI.DomElement.getVisible =3D $common.getVisible;
Sys.UI.DomElement.setVisible =3D $common.setVisible;
Sys.UI.Control.overlaps =3D $common.overlaps;

AjaxControlToolkit._DomUtility =3D function() {
    /// <summary>
    /// Utility functions for manipulating the DOM
    /// </summary>
}
AjaxControlToolkit._DomUtility.prototype =3D {
    isDescendant : function(ancestor, descendant) {
        /// <summary>
        /// Whether the specified element is a descendant of the =
ancestor
        /// </summary>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Ancestor =
node</param>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Possible descendant node</param>
        /// <returns type=3D"Boolean" />
       =20
        for (var n =3D descendant.parentNode; n !=3D null; n =3D =
n.parentNode) {
            if (n =3D=3D ancestor) return true;
        }
        return false;
    },
    isDescendantOrSelf : function(ancestor, descendant) {
        /// <summary>
        /// Whether the specified element is a descendant of the =
ancestor or the same as the ancestor
        /// </summary>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Ancestor =
node</param>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Possible descendant node</param>
        /// <returns type=3D"Boolean" />

        if (ancestor =3D=3D=3D descendant)=20
            return true;
        return AjaxControlToolkit.DomUtility.isDescendant(ancestor, =
descendant);
    },
    isAncestor : function(descendant, ancestor) {
        /// <summary>
        /// Whether the specified element is an ancestor of the =
descendant
        /// </summary>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Descendant node</param>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Possible =
ancestor node</param>
        /// <returns type=3D"Boolean" />

        return AjaxControlToolkit.DomUtility.isDescendant(ancestor, =
descendant);
    },
    isAncestorOrSelf : function(descendant, ancestor) {
        /// <summary>
        /// Whether the specified element is an ancestor of the =
descendant or the same as the descendant
        /// </summary>
        /// <param name=3D"descendant" =
type=3D"Sys.UI.DomElement">Descendant node</param>
        /// <param name=3D"ancestor" type=3D"Sys.UI.DomElement">Possible =
ancestor node</param>
        /// <returns type=3D"Boolean" />
       =20
        if (descendant =3D=3D=3D ancestor)
            return true;
           =20
        return AjaxControlToolkit.DomUtility.isDescendant(ancestor, =
descendant);
    },
    isSibling : function(self, sibling) {
        /// <summary>
        /// Whether the specified element is a sibling of the self =
element
        /// </summary>
        /// <param name=3D"self" type=3D"Sys.UI.DomElement">Self =
node</param>
        /// <param name=3D"sibling" type=3D"Sys.UI.DomElement">Possible =
sibling node</param>
        /// <returns type=3D"Boolean" />
       =20
        var parent =3D self.parentNode;
        for (var i =3D 0; i < parent.childNodes.length; i++) {
            if (parent.childNodes[i] =3D=3D sibling) return true;
        }
        return false;
    }
}
AjaxControlToolkit._DomUtility.registerClass("AjaxControlToolkit._DomUtil=
ity");
AjaxControlToolkit.DomUtility =3D new AjaxControlToolkit._DomUtility();


AjaxControlToolkit.TextBoxWrapper =3D function(element) {
    /// <summary>
    /// Class that wraps a TextBox (INPUT type=3D"text") to abstract-out =
the
    /// presence of a watermark (which may be visible to the user but =
which
    /// should never be read by script.
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// The DOM element the behavior is associated with
    /// </param>
    AjaxControlToolkit.TextBoxWrapper.initializeBase(this, [element]);
    this._current =3D element.value;
    this._watermark =3D null;
    this._isWatermarked =3D false;
}

AjaxControlToolkit.TextBoxWrapper.prototype =3D {

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        this.get_element().AjaxControlToolkitTextBoxWrapper =3D null;
        AjaxControlToolkit.TextBoxWrapper.callBaseMethod(this, =
'dispose');
    },

    get_Current : function() {
        /// <value type=3D"String">
        /// Current value actually in the TextBox (i.e., TextBox.value)
        /// </value>
        this._current =3D this.get_element().value;
        return this._current;
    },
    set_Current : function(value) {
        this._current =3D value;
        this._updateElement();
    },

    get_Value : function() {
        /// <value type=3D"String">
        /// Conceptual "value" of the TextBox - its contents if no =
watermark is present
        /// or "" if one is
        /// </value>
        if (this.get_IsWatermarked()) {
            return "";
        } else {
            return this.get_Current();
        }
    },
    set_Value : function(text) {
        this.set_Current(text);
        if (!text || (0 =3D=3D text.length)) {
            if (null !=3D this._watermark) {
                this.set_IsWatermarked(true);
            }
        } else {
            this.set_IsWatermarked(false);
        }
    },

    get_Watermark : function() {
        /// <value type=3D"String">
        /// Text of the watermark for the TextBox
        /// </value>
        return this._watermark;
    },
    set_Watermark : function(value) {
        this._watermark =3D value;
        this._updateElement();
    },

    get_IsWatermarked : function() {
        /// <value type=3D"Boolean">
        /// true iff the TextBox is watermarked
        /// </value>
        return this._isWatermarked;
    },
    set_IsWatermarked : function(isWatermarked) {
        if (this._isWatermarked !=3D isWatermarked) {
            this._isWatermarked =3D isWatermarked;
            this._updateElement();
            this._raiseWatermarkChanged();
        }
    },

    _updateElement : function() {
        /// <summary>
        /// Updates the actual contents of the TextBox according to what =
should be there
        /// </summary>
        var element =3D this.get_element();
        if (this._isWatermarked) {
            if (element.value !=3D this._watermark) {
                element.value =3D this._watermark;
            }
        } else {
            if (element.value !=3D this._current) {
                element.value =3D this._current;
            }
        }
    },

    add_WatermarkChanged : function(handler) {
        /// <summary>
        /// Adds a handler for the WatermarkChanged event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// Handler
        /// </param>
        this.get_events().addHandler("WatermarkChanged", handler);
    },
    remove_WatermarkChanged : function(handler) {
        /// <summary>
        /// Removes a handler for the WatermarkChanged event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function">
        /// Handler
        /// </param>
        this.get_events().removeHandler("WatermarkChanged", handler);
    },
    _raiseWatermarkChanged : function() {
        /// <summary>
        /// Raises the WatermarkChanged event
        /// </summary>
        var onWatermarkChangedHandler =3D =
this.get_events().getHandler("WatermarkChanged");
        if (onWatermarkChangedHandler) {
            onWatermarkChangedHandler(this, Sys.EventArgs.Empty);
        }
    }
}
AjaxControlToolkit.TextBoxWrapper.get_Wrapper =3D function(element) {
    /// <summary>
    /// Gets (creating one if necessary) the TextBoxWrapper for the =
specified TextBox
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// TextBox for which to get the wrapper
    /// </param>
    /// <returns type=3D"AjaxControlToolkit.TextBoxWrapper">
    /// TextBoxWrapper instance
    /// </returns>
    if (null =3D=3D element.AjaxControlToolkitTextBoxWrapper) {
        element.AjaxControlToolkitTextBoxWrapper =3D new =
AjaxControlToolkit.TextBoxWrapper(element);
    }
    return element.AjaxControlToolkitTextBoxWrapper;
}
AjaxControlToolkit.TextBoxWrapper.registerClass('AjaxControlToolkit.TextB=
oxWrapper', Sys.UI.Behavior);

AjaxControlToolkit.TextBoxWrapper.validatorGetValue =3D function(id) {
    /// <summary>
    /// Wrapper for ASP.NET's validatorGetValue to return the value from =
the wrapper if present
    /// </summary>
    /// <param name=3D"id" type=3D"String">
    /// id of the element
    /// </param>
    /// <returns type=3D"Object">
    /// Value from the wrapper or result of original ValidatorGetValue
    /// </returns>
    var control =3D $get(id);
    if (control && control.AjaxControlToolkitTextBoxWrapper) {
        return control.AjaxControlToolkitTextBoxWrapper.get_Value();
    }
    return =
AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id);
}

// Wrap ASP.NET's ValidatorGetValue with =
AjaxControlToolkit.TextBoxWrapper.validatorGetValue
// to make validators work properly with watermarked TextBoxes
if (typeof(ValidatorGetValue) =3D=3D 'function') {
    AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue =3D =
ValidatorGetValue;
    ValidatorGetValue =3D =
AjaxControlToolkit.TextBoxWrapper.validatorGetValue;
}


// Temporary fix null reference bug in =
Sys.CultureInfo._getAbbrMonthIndex
if (Sys.CultureInfo.prototype._getAbbrMonthIndex) {
    Sys.CultureInfo.prototype._getAbbrMonthIndex =3D function(value) {
        if (!this._upperAbbrMonths) {
            this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
        }
        return Array.indexOf(this._upperAbbrMonths, =
this._toUpper(value));
    }
    Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex =3D =
Sys.CultureInfo.prototype._getAbbrMonthIndex;
    Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex =3D =
Sys.CultureInfo.prototype._getAbbrMonthIndex;
}

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRjJFPOKjnIFcuTj0FNMkiisLtM_hnqT-hWtu72nAc3G0vMKSpFAzLMMsEvcifEx5Bo1&t=41a5b0a3

Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.BehaviorB=
ase=3Dfunction(c){var =
b=3Dnull,a=3Dthis;AjaxControlToolkit.BehaviorBase.initializeBase(a,[c]);a=
._clientStateFieldID=3Db;a._pageRequestManager=3Db;a._partialUpdateBeginR=
equestHandler=3Db;a._partialUpdateEndRequestHandler=3Db};AjaxControlToolk=
it.BehaviorBase.prototype=3D{initialize:function(){AjaxControlToolkit.Beh=
aviorBase.callBaseMethod(this,"initialize")},dispose:function(){var =
a=3Dthis;AjaxControlToolkit.BehaviorBase.callBaseMethod(a,"dispose");if(a=
._pageRequestManager){if(a._partialUpdateBeginRequestHandler){a._pageRequ=
estManager.remove_beginRequest(a._partialUpdateBeginRequestHandler);a._pa=
rtialUpdateBeginRequestHandler=3Dnull}if(a._partialUpdateEndRequestHandle=
r){a._pageRequestManager.remove_endRequest(a._partialUpdateEndRequestHand=
ler);a._partialUpdateEndRequestHandler=3Dnull}a._pageRequestManager=3Dnul=
l}},get_ClientStateFieldID:function(){return =
this._clientStateFieldID},set_ClientStateFieldID:function(a){if(this._cli=
entStateFieldID!=3Da){this._clientStateFieldID=3Da;this.raisePropertyChan=
ged("ClientStateFieldID")}},get_ClientState:function(){if(this._clientSta=
teFieldID){var =
a=3Ddocument.getElementById(this._clientStateFieldID);if(a)return =
a.value}return =
null},set_ClientState:function(b){if(this._clientStateFieldID){var =
a=3Ddocument.getElementById(this._clientStateFieldID);if(a)a.value=3Db}},=
registerPartialUpdateEvents:function(){var =
a=3Dthis;if(Sys&&Sys.WebForms&&Sys.WebForms.PageRequestManager){a._pageRe=
questManager=3DSys.WebForms.PageRequestManager.getInstance();if(a._pageRe=
questManager){a._partialUpdateBeginRequestHandler=3DFunction.createDelega=
te(a,a._partialUpdateBeginRequest);a._pageRequestManager.add_beginRequest=
(a._partialUpdateBeginRequestHandler);a._partialUpdateEndRequestHandler=3D=
Function.createDelegate(a,a._partialUpdateEndRequest);a._pageRequestManag=
er.add_endRequest(a._partialUpdateEndRequestHandler)}}},_partialUpdateBeg=
inRequest:function(){},_partialUpdateEndRequest:function(){}};AjaxControl=
Toolkit.BehaviorBase.registerClass("AjaxControlToolkit.BehaviorBase",Sys.=
UI.Behavior);AjaxControlToolkit.DynamicPopulateBehaviorBase=3Dfunction(c)=
{var =
b=3Dnull,a=3Dthis;AjaxControlToolkit.DynamicPopulateBehaviorBase.initiali=
zeBase(a,[c]);a._DynamicControlID=3Db;a._DynamicContextKey=3Db;a._Dynamic=
ServicePath=3Db;a._DynamicServiceMethod=3Db;a._cacheDynamicResults=3Dfals=
e;a._dynamicPopulateBehavior=3Db;a._populatingHandler=3Db;a._populatedHan=
dler=3Db};AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype=3D{ini=
tialize:function(){var =
a=3Dthis;AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(a,=
"initialize");a._populatingHandler=3DFunction.createDelegate(a,a._onPopul=
ating);a._populatedHandler=3DFunction.createDelegate(a,a._onPopulated)},d=
ispose:function(){var =
a=3Dthis;if(a._populatedHandler){a._dynamicPopulateBehavior&&a._dynamicPo=
pulateBehavior.remove_populated(a._populatedHandler);a._populatedHandler=3D=
null}if(a._populatingHandler){a._dynamicPopulateBehavior&&a._dynamicPopul=
ateBehavior.remove_populating(a._populatingHandler);a._populatingHandler=3D=
null}if(a._dynamicPopulateBehavior){a._dynamicPopulateBehavior.dispose();=
a._dynamicPopulateBehavior=3Dnull}AjaxControlToolkit.DynamicPopulateBehav=
iorBase.callBaseMethod(a,"dispose")},populate:function(b){var =
a=3Dthis;if(a._dynamicPopulateBehavior&&a._dynamicPopulateBehavior.get_el=
ement()!=3D$get(a._DynamicControlID)){a._dynamicPopulateBehavior.dispose(=
);a._dynamicPopulateBehavior=3Dnull}if(!a._dynamicPopulateBehavior&&a._Dy=
namicControlID&&a._DynamicServiceMethod){a._dynamicPopulateBehavior=3D$cr=
eate(AjaxControlToolkit.DynamicPopulateBehavior,{id:a.get_id()+"_DynamicP=
opulateBehavior",ContextKey:a._DynamicContextKey,ServicePath:a._DynamicSe=
rvicePath,ServiceMethod:a._DynamicServiceMethod,cacheDynamicResults:a._ca=
cheDynamicResults},null,null,$get(a._DynamicControlID));a._dynamicPopulat=
eBehavior.add_populating(a._populatingHandler);a._dynamicPopulateBehavior=
.add_populated(a._populatedHandler)}a._dynamicPopulateBehavior&&a._dynami=
cPopulateBehavior.populate(b?b:a._DynamicContextKey)},_onPopulating:funct=
ion(b,a){this.raisePopulating(a)},_onPopulated:function(b,a){this.raisePo=
pulated(a)},get_dynamicControlID:function(){return =
this._DynamicControlID},get_DynamicControlID:this.get_dynamicControlID,se=
t_dynamicControlID:function(b){var =
a=3Dthis;if(a._DynamicControlID!=3Db){a._DynamicControlID=3Db;a.raiseProp=
ertyChanged("dynamicControlID");a.raisePropertyChanged("DynamicControlID"=
)}},set_DynamicControlID:this.set_dynamicControlID,get_dynamicContextKey:=
function(){return =
this._DynamicContextKey},get_DynamicContextKey:this.get_dynamicContextKey=
,set_dynamicContextKey:function(b){var =
a=3Dthis;if(a._DynamicContextKey!=3Db){a._DynamicContextKey=3Db;a.raisePr=
opertyChanged("dynamicContextKey");a.raisePropertyChanged("DynamicContext=
Key")}},set_DynamicContextKey:this.set_dynamicContextKey,get_dynamicServi=
cePath:function(){return =
this._DynamicServicePath},get_DynamicServicePath:this.get_dynamicServiceP=
ath,set_dynamicServicePath:function(b){var =
a=3Dthis;if(a._DynamicServicePath!=3Db){a._DynamicServicePath=3Db;a.raise=
PropertyChanged("dynamicServicePath");a.raisePropertyChanged("DynamicServ=
icePath")}},set_DynamicServicePath:this.set_dynamicServicePath,get_dynami=
cServiceMethod:function(){return =
this._DynamicServiceMethod},get_DynamicServiceMethod:this.get_dynamicServ=
iceMethod,set_dynamicServiceMethod:function(b){var =
a=3Dthis;if(a._DynamicServiceMethod!=3Db){a._DynamicServiceMethod=3Db;a.r=
aisePropertyChanged("dynamicServiceMethod");a.raisePropertyChanged("Dynam=
icServiceMethod")}},set_DynamicServiceMethod:this.set_dynamicServiceMetho=
d,get_cacheDynamicResults:function(){return =
this._cacheDynamicResults},set_cacheDynamicResults:function(a){if(this._c=
acheDynamicResults!=3Da){this._cacheDynamicResults=3Da;this.raiseProperty=
Changed("cacheDynamicResults")}},add_populated:function(a){this.get_event=
s().addHandler("populated",a)},remove_populated:function(a){this.get_even=
ts().removeHandler("populated",a)},raisePopulated:function(b){var =
a=3Dthis.get_events().getHandler("populated");a&&a(this,b)},add_populatin=
g:function(a){this.get_events().addHandler("populating",a)},remove_popula=
ting:function(a){this.get_events().removeHandler("populating",a)},raisePo=
pulating:function(b){var =
a=3Dthis.get_events().getHandler("populating");a&&a(this,b)}};AjaxControl=
Toolkit.DynamicPopulateBehaviorBase.registerClass("AjaxControlToolkit.Dyn=
amicPopulateBehaviorBase",AjaxControlToolkit.BehaviorBase);AjaxControlToo=
lkit.ControlBase=3Dfunction(b){var =
a=3Dthis;AjaxControlToolkit.ControlBase.initializeBase(a,[b]);a._clientSt=
ateField=3Dnull;a._callbackTarget=3Dnull;a._onsubmit$delegate=3DFunction.=
createDelegate(a,a._onsubmit);a._oncomplete$delegate=3DFunction.createDel=
egate(a,a._oncomplete);a._onerror$delegate=3DFunction.createDelegate(a,a.=
_onerror)};AjaxControlToolkit.ControlBase.__doPostBack=3Dfunction(c,b){if=
(!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack())f=
or(var =
a=3D0;a<AjaxControlToolkit.ControlBase.onsubmitCollection.length;a++)Ajax=
ControlToolkit.ControlBase.onsubmitCollection[a]();Function.createDelegat=
e(window,AjaxControlToolkit.ControlBase.__doPostBackSaved)(c,b)};AjaxCont=
rolToolkit.ControlBase.prototype=3D{initialize:function(){var =
b=3D"undefined",a=3Dthis;AjaxControlToolkit.ControlBase.callBaseMethod(a,=
"initialize");a._clientStateField&&a.loadClientState(a._clientStateField.=
value);if(typeof Sys.WebForms!=3D=3Db&&typeof =
Sys.WebForms.PageRequestManager!=3D=3Db){Array.add(Sys.WebForms.PageReque=
stManager.getInstance()._onSubmitStatements,a._onsubmit$delegate);if(Ajax=
ControlToolkit.ControlBase.__doPostBackSaved=3D=3Dnull||typeof =
AjaxControlToolkit.ControlBase.__doPostBackSaved=3D=3Db){AjaxControlToolk=
it.ControlBase.__doPostBackSaved=3Dwindow.__doPostBack;window.__doPostBac=
k=3DAjaxControlToolkit.ControlBase.__doPostBack;AjaxControlToolkit.Contro=
lBase.onsubmitCollection=3D[]}Array.add(AjaxControlToolkit.ControlBase.on=
submitCollection,a._onsubmit$delegate)}else =
$addHandler(document.forms[0],"submit",a._onsubmit$delegate)},dispose:fun=
ction(){var b=3D"undefined",a=3Dthis;if(typeof =
Sys.WebForms!=3D=3Db&&typeof =
Sys.WebForms.PageRequestManager!=3D=3Db){Array.remove(AjaxControlToolkit.=
ControlBase.onsubmitCollection,a._onsubmit$delegate);Array.remove(Sys.Web=
Forms.PageRequestManager.getInstance()._onSubmitStatements,a._onsubmit$de=
legate)}else =
$removeHandler(document.forms[0],"submit",a._onsubmit$delegate);AjaxContr=
olToolkit.ControlBase.callBaseMethod(a,"dispose")},findElement:function(a=
){return =
$get(this.get_id()+"_"+a.split(":").join("_"))},get_clientStateField:func=
tion(){return =
this._clientStateField},set_clientStateField:function(b){var =
a=3Dthis;if(a.get_isInitialized())throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_CannotSe=
tClientStateField);if(a._clientStateField!=3Db){a._clientStateField=3Db;a=
.raisePropertyChanged("clientStateField")}},loadClientState:function(){},=
saveClientState:function(){return null},_invoke:function(g,d,h){var =
a=3Dthis;if(!a._callbackTarget)throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_ControlN=
otRegisteredForCallbacks);if(typeof =
WebForm_DoCallback=3D=3D=3D"undefined")throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_PageNotR=
egisteredForCallbacks);for(var =
e=3D[],b=3D0;b<d.length;b++)e[b]=3Dd[b];var =
c=3Da.saveClientState();if(c!=3Dnull&&!String.isInstanceOfType(c))throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_InvalidC=
lientStateType);var =
f=3DSys.Serialization.JavaScriptSerializer.serialize({name:g,args:e,state=
:a.saveClientState()});WebForm_DoCallback(a._callbackTarget,f,a._oncomple=
te$delegate,h,a._onerror$delegate,true)},_oncomplete:function(a,b){a=3DSy=
s.Serialization.JavaScriptSerializer.deserialize(a);if(a.error)throw =
Error.create(a.error);this.loadClientState(a.state);b(a.result)},_onerror=
:function(a){throw =
Error.create(a);},_onsubmit:function(){if(this._clientStateField)this._cl=
ientStateField.value=3Dthis.saveClientState();return =
true}};AjaxControlToolkit.ControlBase.registerClass("AjaxControlToolkit.C=
ontrolBase",Sys.UI.Control);
Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.Resources=
=3D{"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios =
must have 4 =
elements","HTMLEditor_toolbar_button_FontSize_defaultValue":"default","HT=
MLEditor_toolbar_button_DesignMode_title":"Design =
mode","Animation_ChildrenNotAllowed":"AjaxControlToolkit.Animation.create=
Animation cannot add child animations to type \"{0}\" that does not =
derive from =
AjaxControlToolkit.Animation.ParentAnimation","PasswordStrength_Remaining=
Symbols":"{0} symbol =
characters","HTMLEditor_toolbar_button_FixedForeColor_title":"Foreground =
color","HTMLEditor_toolbar_popup_LinkProperties_field_URL":"URL","Extende=
rBase_CannotSetClientStateField":"clientStateField can only be set =
before =
initialization","HTMLEditor_toolbar_button_Bold_title":"Bold","RTE_Previe=
wHTML":"Preview =
HTML","HTMLEditor_toolbar_popup_LinkProperties_button_OK":"OK","HTMLEdito=
r_toolbar_button_JustifyRight_title":"Justify =
Right","RTE_JustifyCenter":"Justify =
Center","PasswordStrength_RemainingUpperCase":"{0} more upper case =
characters","HTMLEditor_toolbar_popup_LinkProperties_button_Cancel":"Canc=
el","Animation_TargetNotFound":"AjaxControlToolkit.Animation.Animation.se=
t_animationTarget requires the ID of a Sys.UI.DomElement or =
Sys.UI.Control.  No element or control could be found corresponding to =
\"{0}\"","AsyncFileUpload_UnhandledException":"Unhandled =
Exception","RTE_FontColor":"Font Color","RTE_LabelColor":"Label =
Color","Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is =
invalid for =
parseBorderWidth","HTMLEditor_toolbar_button_JustifyFull_title":"Justify"=
,"RTE_Heading":"Heading","AsyncFileUpload_ConfirmToSeeErrorPage":"Do you =
want to see the response =
page?","Tabs_PropertySetBeforeInitialization":"{0} cannot be changed =
before =
initialization","HTMLEditor_toolbar_button_StrikeThrough_title":"Strike =
through","RTE_OrderedList":"Ordered =
List","HTMLEditor_toolbar_button_OnPastePlainText":"Plain text pasting =
is switched on. Just now: =
{0}","HTMLEditor_toolbar_button_RemoveLink_title":"Remove =
Link","HTMLEditor_toolbar_button_FontName_defaultValue":"default","HTMLEd=
itor_toolbar_button_FontName_label":"Font","ReorderList_DropWatcherBehavi=
or_NoChild":"Could not find child of list with id =
\"{0}\"","CascadingDropDown_MethodTimeout":"[Method =
timeout]","RTE_Columns":"Columns","RTE_InsertImage":"Insert =
Image","RTE_InsertTable":"Insert =
Table","RTE_Values":"Values","RTE_OK":"OK","ExtenderBase_PageNotRegistere=
dForCallbacks":"This Page has not been registered for =
callbacks","HTMLEditor_toolbar_button_InsertLink_title":"Insert/Edit URL =
link","Animation_NoDynamicPropertyFound":"AjaxControlToolkit.Animation.cr=
eateAnimation found no property corresponding to \"{0}\" or =
\"{1}\"","Animation_InvalidBaseType":"AjaxControlToolkit.Animation.regist=
erAnimation can only register types that inherit from =
AjaxControlToolkit.Animation.Animation","RTE_UnorderedList":"Unordered =
List","AsyncFileUpload_UnknownServerError":"Unknown Server =
error","ResizableControlBehavior_InvalidHandler":"{0} handler not a =
function, function name, or function =
text","Animation_InvalidColor":"Color must be a 7-character hex =
representation (e.g. #246ACF), not \"{0}\"","RTE_CellColor":"Cell =
Color","PasswordStrength_RemainingMixedCase":"Mixed case =
characters","HTMLEditor_toolbar_button_HtmlMode_title":"HTML =
text","RTE_Italic":"Italic","CascadingDropDown_NoParentElement":"Failed =
to find parent element =
\"{0}\"","ValidatorCallout_DefaultErrorMessage":"This control is =
invalid","HTMLEditor_toolbar_button_DecreaseIndent_title":"Decrease =
Indent","RTE_Indent":"Indent","ReorderList_DropWatcherBehavior_CallbackEr=
ror":"Reorder failed, see details =
below.\\r\\n\\r\\n{0}","PopupControl_NoDefaultProperty":"No default =
property supported for control \"{0}\" of type =
\"{1}\"","RTE_Normal":"Normal","PopupExtender_NoParentElement":"Couldn\u0=
027t find parent element \"{0}\"","RTE_ViewValues":"View =
Values","RTE_Legend":"Legend","RTE_Labels":"Labels","RTE_CellSpacing":"Ce=
ll Spacing","PasswordStrength_RemainingNumbers":"{0} more =
numbers","HTMLEditor_toolbar_popup_LinkProperties_field_Target":"Target",=
"HTMLEditor_toolbar_button_PreviewMode_title":"Preview","RTE_Border":"Bor=
der","RTE_Create":"Create","RTE_BackgroundColor":"Background =
Color","RTE_Cancel":"Cancel","HTMLEditor_toolbar_button_PasteText_title":=
"Paste Plain Text","RTE_JustifyFull":"Justify =
Full","RTE_JustifyLeft":"Justify =
Left","RTE_Cut":"Cut","AsyncFileUpload_UploadingProblem":"The requested =
file uploading =
problem.","ResizableControlBehavior_CannotChangeProperty":"Changes to =
{0} not supported","RTE_ViewSource":"View =
Source","Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid =
for =
parsePadding","RTE_Paste":"Paste","ExtenderBase_ControlNotRegisteredForCa=
llbacks":"This Control has not been registered for =
callbacks","Calendar_Today":"Hoy: =
{0}","MultiHandleSlider_CssHeightWidthRequired":"You must specify a CSS =
width and height for all handle styles as well as the =
rail.","Common_DateTime_InvalidFormat":"Invalid =
format","HTMLEditor_toolbar_button_Copy_title":"Copy","ListSearch_Default=
Prompt":"Type to search","CollapsiblePanel_NoControlID":"Failed to find =
element \"{0}\"","RTE_ViewEditor":"View =
Editor","HTMLEditor_toolbar_popup_LinkProperties_field_Target_Current":"C=
urrent window","RTE_BarColor":"Bar =
Color","AsyncFileUpload_InternalErrorMessage":"The AsyncFileUpload =
control has encountered an error with the uploader in this page. Please =
refresh the page and try =
again.","HTMLEditor_toolbar_button_Underline_title":"Underline","Password=
Strength_DefaultStrengthDescriptions":"NonExistent;Very =
Weak;Weak;Poor;Almost OK;Barely =
Acceptable;Average;Good;Strong;Excellent;Unbreakable!","HTMLEditor_toolba=
r_button_SuperScript_title":"Super =
script","HTMLEditor_toolbar_button_Ltr_title":"Left to right =
direction","HTMLEditor_toolbar_button_RemoveAlignment_title":"Remove =
Alignment","HTMLEditor_toolbar_button_OrderedList_title":"Ordered =
List","HTMLEditor_toolbar_popup_LinkProperties_field_Target_New":"New =
window","HTMLEditor_toolbar_popup_LinkProperties_field_Target_Top":"Top =
window","HTMLEditor_toolbar_button_JustifyCenter_title":"Justify =
Center","RTE_Inserttexthere":"Insert text =
here","Animation_UknownAnimationName":"AjaxControlToolkit.Animation.creat=
eAnimation could not find an Animation corresponding to the name =
\"{0}\"","ExtenderBase_InvalidClientStateType":"saveClientState must =
return a value of type =
String","HTMLEditor_toolbar_button_JustifyLeft_title":"Justify =
Left","Rating_CallbackError":"An unhandled exception has =
occurred:\\r\\n{0}","HTMLEditor_toolbar_button_Undo_title":"Undo","HTMLEd=
itor_toolbar_button_Redo_title":"Redo","Tabs_OwnerExpected":"owner must =
be set before initialize","DynamicPopulate_WebServiceTimeout":"Web =
service call timed out","PasswordStrength_RemainingLowerCase":"{0} more =
lower case =
characters","HTMLEditor_toolbar_button_BulletedList_title":"Bulleted =
List","HTMLEditor_toolbar_button_Paste_title":"Paste","Animation_MissingA=
nimationName":"AjaxControlToolkit.Animation.createAnimation requires an =
object with an AnimationName =
property","HTMLEditor_toolbar_button_PasteWord_title":"Paste from MS =
Word (with =
cleanup)","HTMLEditor_toolbar_button_Italic_title":"Italic","RTE_JustifyR=
ight":"Justify Right","Tabs_ActiveTabArgumentOutOfRange":"Argument is =
not a member of the tabs collection","RTE_CellPadding":"Cell =
Padding","HTMLEditor_toolbar_button_ForeColorClear_title":"Clear =
foreground color","RTE_ClearFormatting":"Clear =
Formatting","AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVis=
ibleControlBehavior must have an =
element","HTMLEditor_toolbar_button_SubScript_title":"Sub =
script","Slider_NoSizeProvided":"Please set valid values for the height =
and width attributes in the slider\u0027s CSS =
classes","DynamicPopulate_WebServiceError":"Web Service call failed: =
{0}","PasswordStrength_StrengthPrompt":"Strength: =
","HTMLEditor_toolbar_button_Rtl_title":"Right to left =
direction","PasswordStrength_RemainingCharacters":"{0} more =
characters","HTMLEditor_toolbar_button_BackColorClear_title":"Clear =
background color","PasswordStrength_Satisfied":"Nothing more =
required","RTE_Hyperlink":"Hyperlink","Animation_NoPropertyFound":"AjaxCo=
ntrolToolkit.Animation.createAnimation found no property corresponding =
to \"{0}\"","PasswordStrength_InvalidStrengthDescriptionStyles":"Text =
Strength description style classes must match the number of text =
descriptions.","HTMLEditor_toolbar_button_Use_verb":"Use =
{0}","HTMLEditor_toolbar_popup_LinkProperties_field_Target_Parent":"Paren=
t window","PasswordStrength_GetHelpRequirements":"Get help on password =
requirements","HTMLEditor_toolbar_button_FixedBackColor_title":"Backgroun=
d color","PasswordStrength_InvalidStrengthDescriptions":"Invalid number =
of text strength descriptions =
specified","RTE_Underline":"Underline","HTMLEditor_toolbar_button_Increas=
eIndent_title":"Increase =
Indent","AsyncFileUpload_ServerResponseError":"Server Response =
Error","Tabs_PropertySetAfterInitialization":"{0} cannot be changed =
after =
initialization","RTE_Rows":"Rows","RTE_Redo":"Redo","RTE_Size":"Size","RT=
E_Undo":"Undo","RTE_Bold":"Bold","RTE_Copy":"Copy","RTE_Font":"Font","HTM=
LEditor_toolbar_button_FontSize_label":"Size","HTMLEditor_toolbar_button_=
Cut_title":"Cut","CascadingDropDown_MethodError":"[Method error =
{0}]","HTMLEditor_toolbar_button_InsertLink_message_EmptyURL":"URL can =
not be empty","RTE_BorderColor":"Border =
Color","HTMLEditor_toolbar_button_RemoveStyles_title":"Remove =
styles","RTE_Paragraph":"Paragraph","RTE_InsertHorizontalRule":"Insert =
Horizontal Rule","HTMLEditor_toolbar_button_Paragraph_title":"Make =
Paragraph","Common_UnitHasNoDigits":"No =
digits","RTE_Outdent":"Outdent","Common_DateTime_InvalidTimeSpan":"\"{0}\=
" is not a valid TimeSpan =
format","Animation_CannotNestSequence":"AjaxControlToolkit.Animation.Sequ=
enceAnimation cannot be nested inside =
AjaxControlToolkit.Animation.ParallelAnimation","HTMLEditor_toolbar_butto=
n_InsertHR_title":"Insert horizontal =
rule","HTMLEditor_toolbar_button_OnPasteFromMSWord":"Pasting from MS =
Word is switched on. Just now: =
{0}","Shared_BrowserSecurityPreventsPaste":"Your browser security =
settings don\u0027t permit the automatic execution of paste operations. =
Please use the keyboard shortcut Ctrl+V instead."};
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRgtBNl8CFK1lTmWdbLHI6fo_dCafdeIBSgJGR6H4pCmng2&t=41a5b0a3

// Name:        AjaxControlToolkit.Tabs.Tabs.debug.js
// Assembly:    AjaxControlToolkit
// Version:     3.0.30930.28736
// FileVersion: 3.0.30930.0
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Public License.
// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
// All other rights reserved.


/// <reference name=3D"MicrosoftAjax.debug.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />
/// <reference path=3D"../ExtenderBase/BaseScripts.js" />
/// <reference path=3D"../Common/Common.js" />
/// <reference path=3D"../DynamicPopulate/DynamicPopulateBehavior.js" />


Type.registerNamespace("AjaxControlToolkit");

AjaxControlToolkit.ScrollBars =3D function() { }
AjaxControlToolkit.ScrollBars.prototype =3D {
    None : 0x00,
    Horizontal : 0x01,
    Vertical : 0x02,
    Both : 0x03,
    Auto : 0x04
}
AjaxControlToolkit.ScrollBars.registerEnum("AjaxControlToolkit.ScrollBars=
", true);

AjaxControlToolkit.TabContainer =3D function(element) {
    AjaxControlToolkit.TabContainer.initializeBase(this, [element]);   =20
    this._cachedActiveTabIndex =3D -1;
    this._activeTabIndex =3D -1;
    this._scrollBars =3D AjaxControlToolkit.ScrollBars.None;
    this._tabs =3D null;
    this._header =3D null;
    this._body =3D null;
    this._loaded =3D false;
    this._autoPostBackId =3D null;
    this._app_onload$delegate =3D Function.createDelegate(this, =
this._app_onload);
}
AjaxControlToolkit.TabContainer.prototype =3D {

    add_activeTabChanged: function(handler) {
        this.get_events().addHandler("activeTabChanged", handler);
    },
    remove_activeTabChanged: function(handler) {
        this.get_events().removeHandler("activeTabChanged", handler);
    },
    raiseActiveTabChanged: function() {
        var eh =3D this.get_events().getHandler("activeTabChanged");
        if (eh) {
            eh(this, Sys.EventArgs.Empty);
        }
        if (this._autoPostBackId) {
            __doPostBack(this._autoPostBackId, "activeTabChanged:" + =
this.get_activeTabIndex());
        }
    },

    get_activeTabIndex: function() {
        if (this._cachedActiveTabIndex > -1) {
            return this._cachedActiveTabIndex;
        }
        return this._activeTabIndex;
    },
    set_activeTabIndex: function(valuePassed) {
        var value =3D valuePassed;
        if (!this.get_isInitialized()) {
            this._cachedActiveTabIndex =3D value;
        } else {
            if (value < -1) {
                throw Error.argumentOutOfRange("value");
            }
            if (value >=3D this.get_tabs().length) {
                value =3D this.get_tabs().length - 1;
            }
            if (this._activeTabIndex !=3D -1) {
                =
this.get_tabs()[this._activeTabIndex]._set_active(false);
            }

            var changed =3D (this._activeTabIndex !=3D value);

            this._activeTabIndex =3D value;

            if (this._activeTabIndex !=3D -1) {
                this.get_tabs()[this._activeTabIndex]._set_active(true);
            }
            if (this._loaded && changed) {
                this.raiseActiveTabChanged();
            }
            this.raisePropertyChanged("activeTabIndex");
        }
    },

    get_tabs: function() {
        if (this._tabs =3D=3D null) {
            this._tabs =3D [];
        }
        return this._tabs;
    },

    get_activeTab: function() {
        if (this._activeTabIndex > -1) {
            return this.get_tabs()[this._activeTabIndex];
        }
        return null;
    },
    set_activeTab: function(value) {
        var i =3D Array.indexOf(this.get_tabs(), value);
        if (i =3D=3D -1) {
            throw Error.argument("value", =
AjaxControlToolkit.Resources.Tabs_ActiveTabArgumentOutOfRange);
        }
        this.set_activeTabIndex(i);
    },

    get_autoPostBackId: function() {
        return this._autoPostBackId;
    },
    set_autoPostBackId: function(value) {
        this._autoPostBackId =3D value;
    },
    get_scrollBars: function() {
        return this._scrollBars;
    },
    set_scrollBars: function(value) {
        if (this._scrollBars !=3D value) {
            this._scrollBars =3D value;
            this._invalidate();
            this.raisePropertyChanged("scrollBars");
        }
    },

    initialize: function() {
        AjaxControlToolkit.TabContainer.callBaseMethod(this, =
"initialize");

        var elt =3D this.get_element();
        var header =3D this._header =3D $get(this.get_id() + "_header");
        var body =3D this._body =3D $get(this.get_id() + "_body");

        // default classes
        $common.addCssClasses(elt, [
            "ajax__tab_container",
            "ajax__tab_default"
        ]);
        Sys.UI.DomElement.addCssClass(header, "ajax__tab_header");
        Sys.UI.DomElement.addCssClass(body, "ajax__tab_body");

        this._invalidate();

        Sys.Application.add_load(this._app_onload$delegate);
    },
    dispose: function() {
        Sys.Application.remove_load(this._app_onload$delegate);
        AjaxControlToolkit.TabContainer.callBaseMethod(this, "dispose");
    },
    getFirstTab: function(includeDisabled) {
        var tabs =3D this.get_tabs();
        for (var i =3D 0; i < tabs.length; i++) {
            if (includeDisabled || tabs[i].get_enabled()) {
                return tabs[i];
            }
        }
        return null;
    },
    getLastTab: function(includeDisabled) {
        var tabs =3D this.get_tabs();
        for (var i =3D tabs.length - 1; i >=3D 0; i--) {
            if (includeDisabled || tabs[i].get_enabled()) {
                return tabs[i];
            }
        }
        return null;
    },
    getNextTab: function(includeDisabled) {
        var tabs =3D this.get_tabs();
        var active =3D this.get_activeTabIndex();
        for (var i =3D 1; i < tabs.length; i++) {
            var tabIndex =3D (active + i) % tabs.length;
            var tab =3D tabs[tabIndex];
            if (includeDisabled || tab.get_enabled())
                return tab;
        }
        return null;
    },
    getPreviousTab: function(includeDisabled) {
        var tabs =3D this.get_tabs();
        var active =3D this.get_activeTabIndex();
        for (var i =3D 1; i < tabs.length; i++) {
            var tabIndex =3D (tabs.length + (active - i)) % tabs.length;
            var tab =3D tabs[tabIndex];
            if (includeDisabled || tab.get_enabled())
                return tab;
        }
        return null;
    },
    getNearestTab: function(includeDisabled) {
        var prev =3D this.getPreviousTab(includeDisabled);
        var next =3D this.getNextTab(includeDisabled);
        if (prev && prev.get_tabIndex() < this._activeTabIndex) {
            return prev;
        } else if (next && next.get_tabIndex() > this._activeTabIndex) {
            return next;
        }
        return null;
    },
    saveClientState: function() {
        var tabs =3D this.get_tabs();
        var tabState =3D [];
        for (var i =3D 0; i < tabs.length; i++) {
            Array.add(tabState, tabs[i].get_enabled());
        }
        var state =3D {
            ActiveTabIndex: this._activeTabIndex,
            TabState: tabState
        };
        return Sys.Serialization.JavaScriptSerializer.serialize(state);
    },
    _invalidate: function() {
        if (this.get_isInitialized()) {
            $common.removeCssClasses(this._body, [
                "ajax__scroll_horiz",
                "ajax__scroll_vert",
                "ajax__scroll_both",
                "ajax__scroll_auto"
            ]);
            switch (this._scrollBars) {
                case AjaxControlToolkit.ScrollBars.Horizontal:
                    Sys.UI.DomElement.addCssClass(this._body, =
"ajax__scroll_horiz");
                    break;
                case AjaxControlToolkit.ScrollBars.Vertical:
                    Sys.UI.DomElement.addCssClass(this._body, =
"ajax__scroll_vert");
                    break;
                case AjaxControlToolkit.ScrollBars.Both:
                    Sys.UI.DomElement.addCssClass(this._body, =
"ajax__scroll_both");
                    break;
                case AjaxControlToolkit.ScrollBars.Auto:
                    Sys.UI.DomElement.addCssClass(this._body, =
"ajax__scroll_auto");
                    break;
            }
        }
    },
    _app_onload: function(sender, e) {
        if (this._cachedActiveTabIndex !=3D -1) {
            this.set_activeTabIndex(this._cachedActiveTabIndex);
            this._cachedActiveTabIndex =3D -1;
        }
        this._loaded =3D true;
    }
}
AjaxControlToolkit.TabContainer.registerClass("AjaxControlToolkit.TabCont=
ainer", AjaxControlToolkit.ControlBase);

AjaxControlToolkit.TabPanel =3D function(element) {
    AjaxControlToolkit.TabPanel.initializeBase(this, [element]);
    this._active =3D false;
    this._tab =3D null;
    this._headerOuter =3D null;
    this._headerInner =3D null;
    this._header =3D null;
    this._owner =3D null;
    this._ownerID =3D null;
    this._enabled =3D true;
    this._tabIndex =3D -1;
    this._dynamicContextKey =3D null;
    this._dynamicServicePath =3D null;
    this._dynamicServiceMethod =3D null;
    this._dynamicPopulateBehavior =3D null;
    this._scrollBars =3D AjaxControlToolkit.ScrollBars.None;   =20
    this._header_onclick$delegate =3D Function.createDelegate(this, =
this._header_onclick);
    this._header_onmouseover$delegate =3D Function.createDelegate(this, =
this._header_onmouseover);
    this._header_onmouseout$delegate =3D Function.createDelegate(this, =
this._header_onmouseout);
    this._header_onmousedown$delegate =3D Function.createDelegate(this, =
this._header_onmousedown);
    this._dynamicPopulate_onpopulated$delegate =3D =
Function.createDelegate(this, this._dynamicPopulate_onpopulated);
    this._oncancel$delegate =3D Function.createDelegate(this, =
this._oncancel);
}
AjaxControlToolkit.TabPanel.prototype =3D {

    add_click: function(handler) {
        this.get_events().addHandler("click", handler);
    },
    remove_click: function(handler) {
        this.get_events().removeHandler("click", handler);
    },
    raiseClick: function() {
        var eh =3D this.get_events().getHandler("click");
        if (eh) {
            eh(this, Sys.EventArgs.Empty);
        }
    },

    add_populating: function(handler) {
        this.get_events().addHandler("populating", handler);
    },
    remove_populating: function(handler) {
        this.get_events().removeHandler("populating", handler);
    },
    raisePopulating: function() {
        var eh =3D this.get_events().getHandler("populating");
        if (eh) {
            eh(this, Sys.EventArgs.Empty);
        }
    },

    add_populated: function(handler) {
        this.get_events().addHandler("populated", handler);
    },
    remove_populated: function(handler) {
        this.get_events().removeHandler("populated", handler);
    },
    raisePopulated: function() {
        var eh =3D this.get_events().getHandler("populated");
        if (eh) {
            eh(this, Sys.EventArgs.Empty);
        }
    },

    get_headerText: function() {
        if (this.get_isInitialized()) {
            return this._header.innerHTML;
        }
        return "";
    },
    set_headerText: function(value) {
        if (!this.get_isInitialized()) {
            throw =
Error.invalidOperation(String.format(AjaxControlToolkit.Resources.Tabs_Pr=
opertySetBeforeInitialization, 'headerText'));
        }
        if (this.get_headerText() !=3D value) {
            this._header.innerHTML =3D value;
            this.raisePropertyChanged("headerText");
        }
    },

    get_headerTab: function() {
        return this._header;
    },
    set_headerTab: function(value) {
        if (this._header !=3D value) {
            if (this.get_isInitialized()) {
                throw =
Error.invalidOperation(String.format(AjaxControlToolkit.Resources.Tabs_Pr=
opertySetAfterInitialization, 'headerTab'));
            }
            this._header =3D value;
            this.raisePropertyChanged("value");
        }
    },

    get_enabled: function() {
        return this._enabled;
    },
    set_enabled: function(value) {
        if (value !=3D this._enabled) {
            this._enabled =3D value;
            if (this.get_isInitialized()) {
                this._makeEnabled(this._enabled);
            }
            this.raisePropertyChanged("enabled");
        }
    },

    get_owner: function() {
        return this._owner;
    },
    set_owner: function(value) {
        if (this._owner !=3D value) {
            if (this.get_isInitialized()) {
                throw =
Error.invalidOperation(String.format(AjaxControlToolkit.Resources.Tabs_Pr=
opertySetAfterInitialization, 'owner'));
            }
            this._owner =3D value;
            this.raisePropertyChanged("owner");
        }
    },

    get_ownerID: function() {
        return this._ownerID;
    },
    set_ownerID: function(value) {
        this._ownerID =3D value;
    },

    get_scrollBars: function() {
        return this._scrollBars;
    },
    set_scrollBars: function(value) {
        if (this._scrollBars !=3D value) {
            this._scrollBars =3D value;
            this.raisePropertyChanged("scrollBars");
        }
    },

    get_tabIndex: function() {
        return this._tabIndex;
    },

    get_dynamicContextKey: function() {
        return this._dynamicContextKey;
    },
    set_dynamicContextKey: function(value) {
        if (this._dynamicContextKey !=3D value) {
            this._dynamicContextKey =3D value;
            this.raisePropertyChanged('dynamicContextKey');
        }
    },

    get_dynamicServicePath: function() {
        return this._dynamicServicePath;
    },
    set_dynamicServicePath: function(value) {
        if (this._dynamicServicePath !=3D value) {
            this._dynamicServicePath =3D value;
            this.raisePropertyChanged('dynamicServicePath');
        }
    },

    get_dynamicServiceMethod: function() {
        return this._dynamicServiceMethod;
    },
    set_dynamicServiceMethod: function(value) {
        if (this._dynamicServiceMethod !=3D value) {
            this._dynamicServiceMethod =3D value;
            this.raisePropertyChanged('dynamicServiceMethod');
        }
    },

    _get_active: function() {
        return this._active;
    },
    _set_active: function(value) {
        this._active =3D value;
        if (value)
            this._activate();
        else
            this._deactivate();
    },

    initialize: function() {
        var owner =3D this.get_owner();

        if (!owner) {
            owner =3D $find(this.get_ownerID());
            if (owner) {
                owner.initialize();
                this.set_owner(owner);
            }
        }

        AjaxControlToolkit.TabPanel.callBaseMethod(this, "initialize");

        if (!owner) {
            throw =
Error.invalidOperation(AjaxControlToolkit.Resources.Tabs_OwnerExpected);
        }

        this._tabIndex =3D owner.get_tabs().length;

        Array.add(owner.get_tabs(), this);
        var tabId =3D this.get_id() + "_tab";
        this._tab =3D document.getElementById(tabId);
        var serverRendered =3D (this._tab !=3D null);

        if (!serverRendered) {
            this._headerOuterWrapper =3D document.createElement('span');
            this._headerInnerWrapper =3D document.createElement('span');
            this._tab =3D document.createElement('span');
            this._tab.id =3D tabId;
            this._header.parentNode.replaceChild(this._tab, =
this._header);
            this._tab.appendChild(this._headerOuterWrapper);
            =
this._headerOuterWrapper.appendChild(this._headerInnerWrapper);
            this._headerInnerWrapper.appendChild(this._header);
        }

        $addHandlers(this._header, {
            mousedown: this._header_onmousedown$delegate,
            dragstart: this._oncancel$delegate,
            selectstart: this._oncancel$delegate,
            select: this._oncancel$delegate
        });
        if (this._enabled) {
            this._addHandlersOnEnabled();
        } else {
            Sys.UI.DomElement.addCssClass(this._tab, =
"ajax__tab_disabled");
        }

        if (!serverRendered) {
            Sys.UI.DomElement.addCssClass(this._headerOuterWrapper, =
"ajax__tab_outer");
            Sys.UI.DomElement.addCssClass(this._headerInnerWrapper, =
"ajax__tab_inner");
            Sys.UI.DomElement.addCssClass(this._header, =
"ajax__tab_tab");
            Sys.UI.DomElement.addCssClass(this.get_element(), =
"ajax__tab_panel");
        }
    },

    dispose: function() {
        if (this._dynamicPopulateBehavior) {
            this._dynamicPopulateBehavior.dispose();
            this._dynamicPopulateBehavior =3D null;
        }
        $common.removeHandlers(this._header, {
            mousedown: this._header_onmousedown$delegate,
            dragstart: this._oncancel$delegate,
            selectstart: this._oncancel$delegate,
            select: this._oncancel$delegate
        });
        if (this._enabled) {
            this._removeHandlersOnEnabled();
        }
        AjaxControlToolkit.TabPanel.callBaseMethod(this, "dispose");
    },

    _addHandlersOnEnabled: function() {
        $addHandlers(this._header, {
            click: this._header_onclick$delegate,
            mouseover: this._header_onmouseover$delegate,
            mouseout: this._header_onmouseout$delegate
        });
    },

    _removeHandlersOnEnabled: function() {
        $common.removeHandlers(this._header, {
            click: this._header_onclick$delegate,
            mouseover: this._header_onmouseover$delegate,
            mouseout: this._header_onmouseout$delegate
        });
    },

    populate: function(contextKeyOverride) {
        if (this._dynamicPopulateBehavior && =
(this._dynamicPopulateBehavior.get_element() !=3D this.get_element())) {
            this._dynamicPopulateBehavior.dispose();
            this._dynamicPopulateBehavior =3D null;
        }
        if (!this._dynamicPopulateBehavior && =
this._dynamicServiceMethod) {
            this._dynamicPopulateBehavior =3D =
$create(AjaxControlToolkit.DynamicPopulateBehavior, { "ContextKey": =
this._dynamicContextKey, "ServicePath": this._dynamicServicePath, =
"ServiceMethod": this._dynamicServiceMethod }, { "populated": =
this._dynamicPopulate_onpopulated$delegate }, null, this.get_element());
        }
        if (this._dynamicPopulateBehavior) {
            this.raisePopulating();
            this._dynamicPopulateBehavior.populate(contextKeyOverride ? =
contextKeyOverride : this._dynamicContextKey);
        }
    },

    _activate: function() {
        if (this._enabled) {
            var elt =3D this.get_element();
            $common.setVisible(elt, true);
            Sys.UI.DomElement.addCssClass(this._tab, =
"ajax__tab_active");

            this.populate();
        } else if (this._get_active()) {
            var next =3D this._owner.getNearestTab(false);
            if (!!next) {
                this._owner.set_activeTab(next);
            }
        }
        this._owner.get_element().style.visibility =3D 'visible';
    },
    _deactivate: function() {
        var elt =3D this.get_element();
        $common.setVisible(elt, false);
        Sys.UI.DomElement.removeCssClass(this._tab, "ajax__tab_active");
    },
    _show: function() {
        this._tab.style.display =3D '';
    },
    _hide: function() {
        this._tab.style.display =3D 'none';
        if (this._get_active()) {
            var next =3D this._owner.getNearestTab(false);
            if (!!next) {
                this._owner.set_activeTab(next);
            }
        }
        this._deactivate();
    },

    _makeEnabled: function(enable) {
        if (enable) {
            this._addHandlersOnEnabled();
            Sys.UI.DomElement.removeCssClass(this._tab, =
"ajax__tab_disabled");
        } else {
            this._removeHandlersOnEnabled();
            if (this._get_active()) {
                var next =3D this._owner.getNearestTab(false);
                if (!!next) {
                    this._owner.set_activeTab(next);
                }
            }
            this._deactivate();
            Sys.UI.DomElement.addCssClass(this._tab, =
"ajax__tab_disabled");
        }
    },

    _header_onclick: function(e) {
        this.raiseClick();
        this.get_owner().set_activeTab(this);
    },
    _header_onmouseover: function(e) {
        Sys.UI.DomElement.addCssClass(this._tab, "ajax__tab_hover");
    },
    _header_onmouseout: function(e) {
        Sys.UI.DomElement.removeCssClass(this._tab, "ajax__tab_hover");
    },
    _header_onmousedown: function(e) {
        e.preventDefault();
    },
    _oncancel: function(e) {
        e.stopPropagation();
        e.preventDefault();
    },
    _dynamicPopulate_onpopulated: function(sender, e) {
        this.raisePopulated();
    }
}
AjaxControlToolkit.TabPanel.registerClass("AjaxControlToolkit.TabPanel", =
Sys.UI.Control);

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAE202.117BD2E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jabbah.unisabana.edu.co/Publicaciones/ScriptResource.axd?d=UBSWozR8N4_z4Xm_WnkDcfbHAiTU5hxTIxf40dTRBRj6Y0InYUaqgMhNPnVdsP-_pQOdS7-9OnSH66w4uQ5GK7ygS5sDQSvnp2Iq3zf6QirDwqa7x_dAM615CrApZ2lk0&t=41a5b0a3

// Name:        =
AjaxControlToolkit.DynamicPopulate.DynamicPopulateBehavior.debug.js
// Assembly:    AjaxControlToolkit
// Version:     3.0.30930.28736
// FileVersion: 3.0.30930.0
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Public License.
// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
// All other rights reserved.


/// <reference name=3D"MicrosoftAjax.debug.js" />
/// <reference name=3D"MicrosoftAjaxTimer.debug.js" />
/// <reference name=3D"MicrosoftAjaxWebForms.debug.js" />
/// <reference path=3D"../ExtenderBase/BaseScripts.js" />
/// <reference path=3D"../Common/Common.js" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.DynamicPopulateBehavior =3D function(element) {
    /// <summary>
    /// The DynamicPopulateBehavior replaces the contents of an element =
with the result of a web service or page method call.  The method call =
returns a string of HTML that is inserted as the children of the target =
element.
    /// </summary>
    /// <param name=3D"element" type=3D"Sys.UI.DomElement" =
domElement=3D"true">
    /// DOM Element the behavior is associated with
    /// </param>
    AjaxControlToolkit.DynamicPopulateBehavior.initializeBase(this, =
[element]);
   =20
    this._servicePath =3D null;
    this._serviceMethod =3D null;
    this._contextKey =3D null;
    this._cacheDynamicResults =3D false;
    this._populateTriggerID =3D null;
    this._setUpdatingCssClass =3D null;
    this._clearDuringUpdate =3D true;
    this._customScript =3D null;
   =20
    this._clickHandler =3D null;
   =20
    this._callID =3D 0;
    this._currentCallID =3D -1;
   =20
    // Whether or not we've already populated (used for =
cacheDynamicResults)
    this._populated =3D false;
}
AjaxControlToolkit.DynamicPopulateBehavior.prototype =3D {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        AjaxControlToolkit.DynamicPopulateBehavior.callBaseMethod(this, =
'initialize');
        $common.prepareHiddenElementForATDeviceUpdate();       =20
   =20
        // hook up the trigger if we have one.
        if (this._populateTriggerID) {
            var populateTrigger =3D $get(this._populateTriggerID);
            if (populateTrigger) {
                this._clickHandler =3D Function.createDelegate(this, =
this._onPopulateTriggerClick);
                $addHandler(populateTrigger, "click", =
this._clickHandler);
            }
        }
    },
   =20
    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        // clean up the trigger event.
        if (this._populateTriggerID && this._clickHandler) {
            var populateTrigger =3D $get(this._populateTriggerID);
            if (populateTrigger) {
                $removeHandler(populateTrigger, "click", =
this._clickHandler);
            }
            this._populateTriggerID =3D null;
            this._clickHandler =3D null;
        }
      =20
        AjaxControlToolkit.DynamicPopulateBehavior.callBaseMethod(this, =
'dispose');
    },
   =20
    populate : function(contextKey) {
        /// <summary>
        /// Get the dymanic content and use it to populate the target =
element
        /// </summary>
        /// <param name=3D"contextKey" type=3D"String" =
mayBeNull=3D"true" optional=3D"true">
        /// An arbitrary string value to be passed to the web method. =
For example, if the element to be
        /// populated is within a data-bound repeater, this could be the =
ID of the current row.
        /// </param>
       =20
        // Don't populate if we already cached the results
        if (this._populated && this._cacheDynamicResults) {
            return;
        }

        // Initialize the population if this is the very first call
        if (this._currentCallID =3D=3D -1) {
            var eventArgs =3D new Sys.CancelEventArgs();
            this.raisePopulating(eventArgs);
            if (eventArgs.get_cancel()) {
                return;
            }
            this._setUpdating(true);
        }
       =20
        // Either run the custom population script or invoke the web =
service
        if (this._customScript) {
            // Call custom javascript call to populate control
            var scriptResult =3D eval(this._customScript);
            this._setTargetHtml(scriptResult);=20
            this._setUpdating(false);
         } else {
             this._currentCallID =3D ++this._callID;
             if (this._servicePath && this._serviceMethod) {
                Sys.Net.WebServiceProxy.invoke(this._servicePath, =
this._serviceMethod, false,
                    { contextKey:(contextKey ? contextKey : =
this._contextKey) },
                    Function.createDelegate(this, =
this._onMethodComplete), Function.createDelegate(this, =
this._onMethodError),
                    this._currentCallID);
                $common.updateFormToRefreshATDeviceBuffer();
             }
        }
    },

    _onMethodComplete : function (result, userContext, methodName) {
        /// <summary>
        /// Callback used when the populating service returns =
successfully
        /// </summary>
        /// <param name=3D"result" type=3D"Object" mayBeNull=3D"">
        /// The data returned from the Web service method call
        /// </param>
        /// <param name=3D"userContext" type=3D"Object">
        /// The context information that was passed when the Web service =
method was invoked
        /// </param>       =20
        /// <param name=3D"methodName" type=3D"String">
        /// The Web service method that was invoked
        /// </param>

        // ignore if it's not the current call.
        if (userContext !=3D this._currentCallID) return;

        this._setTargetHtml(result);

        this._setUpdating(false);
    },

    _onMethodError : function(webServiceError, userContext, methodName) =
{
        /// <summary>
        /// Callback used when the populating service fails
        /// </summary>
        /// <param name=3D"webServiceError" =
type=3D"Sys.Net.WebServiceError">
        /// Web service error
        /// </param>
        /// <param name=3D"userContext" type=3D"Object">
        /// The context information that was passed when the Web service =
method was invoked
        /// </param>       =20
        /// <param name=3D"methodName" type=3D"String">
        /// The Web service method that was invoked
        /// </param>

        // ignore if it's not the current call.
        if (userContext !=3D this._currentCallID) return;

        if (webServiceError.get_timedOut()) {
            =
this._setTargetHtml(AjaxControlToolkit.Resources.DynamicPopulate_WebServi=
ceTimeout);
        } else {
            =
this._setTargetHtml(String.format(AjaxControlToolkit.Resources.DynamicPop=
ulate_WebServiceError, webServiceError.get_statusCode()));
        }

        this._setUpdating(false);
    },

    _onPopulateTriggerClick : function() {
        /// <summary>
        /// Handler for the element described by PopulateTriggerID's =
click event
        /// </summary>

        // just call through to the trigger.
        this.populate(this._contextKey);
    },
   =20
    _setUpdating : function(updating) {
        /// <summary>
        /// Toggle the display elements to indicate if they are being =
updated or not
        /// </summary>
        /// <param name=3D"updating" type=3D"Boolean">
        /// Whether or not the display should indicated it is being =
updated
        /// </param>

        this.setStyle(updating);
       =20
        if (!updating) {
            this._currentCallID =3D -1;
            this._populated =3D true;
            this.raisePopulated(this, Sys.EventArgs.Empty);
        }
    },
   =20
    _setTargetHtml : function(value) {
        /// <summary>
        /// Populate the target element with the given value
        /// </summary>
        /// <param name=3D"value" type=3D"String">
        /// The data to populate the target element.
        /// </param>
       =20
        // Make sure the element is still accessible
        var e =3D this.get_element()
        if (e) {
            // Use value for input elements; otherwise innerHTML
            if (e.tagName =3D=3D "INPUT") {
                e.value =3D value;
            } else {
                e.innerHTML =3D value;
            }
        }
    },
   =20
    setStyle : function(updating) {
        /// <summary>
        /// Set the style of the display
        /// </summary>
        /// <param name=3D"updating" type=3D"Boolean">
        /// Whether or not the display is being updated
        /// </param>
       =20
        var e =3D this.get_element();
        if (this._setUpdatingCssClass) {
            if (!updating) {
                e.className =3D this._oldCss;
                this._oldCss =3D null;
            } else {
                this._oldCss =3D e.className;
                e.className =3D this._setUpdatingCssClass;
            }
        }
       =20
        if (updating && this._clearDuringUpdate) {
            this._setTargetHtml("");
        }
    },
   =20
    get_ClearContentsDuringUpdate : function() {
        /// <value type=3D"Boolean">
        /// Whether the contents of the target should be cleared when an =
update begins
        /// </value>
        return this._clearDuringUpdate;
    },
    set_ClearContentsDuringUpdate : function(value) {
        if (this._clearDuringUpdate !=3D value) {
            this._clearDuringUpdate =3D value;
            this.raisePropertyChanged('ClearContentsDuringUpdate');
        }
    },
   =20
    get_ContextKey : function() {
        /// <value type=3D"String">
        /// An arbitrary string value to be passed to the web method.
        /// For example, if the element to be populated is within a
        /// data-bound repeater, this could be the ID of the current =
row.
        /// </value>
        return this._contextKey;
    },
    set_ContextKey : function(value) {
        if (this._contextKey !=3D value) {
            this._contextKey =3D value;
            this.raisePropertyChanged('ContextKey');
        }
    },
   =20
    get_PopulateTriggerID : function() {
        /// <value type=3D"String" mayBeNull=3D"true" optional=3D"true">
        /// Name of an element that triggers the population of the =
target when clicked
        /// </value>
        return this._populateTriggerID;
    },
    set_PopulateTriggerID : function(value) {
        if (this._populateTriggerID !=3D value) {
            this._populateTriggerID =3D value;
            this.raisePropertyChanged('PopulateTriggerID');
        }
    },
   =20
    get_ServicePath : function() {
        /// <value type=3D"String" mayBeNull=3D"true" optional=3D"true">
        /// The URL of the web service to call.  If the ServicePath is =
not defined, then we will invoke a PageMethod instead of a web service.
        /// </value>
        return this._servicePath;
    },
    set_ServicePath : function(value) {
        if (this._servicePath !=3D value) {
            this._servicePath =3D value;
            this.raisePropertyChanged('ServicePath');
        }
    },
   =20
    get_ServiceMethod : function() {
        /// <value type=3D"String">
        /// The name of the method to call on the page or web service
        /// </value>
        /// <remarks>
        /// The signature of the method must exactly match the =
following:
        ///    [WebMethod]
        ///    string DynamicPopulateMethod(string contextKey)
        ///    {
        ///        ...
        ///    }
        /// </remarks>
        return this._serviceMethod;
    },
    set_ServiceMethod : function(value) {
        if (this._serviceMethod !=3D value) {
            this._serviceMethod =3D value;
            this.raisePropertyChanged('ServiceMethod');
        }
    },
   =20
    get_cacheDynamicResults : function() {
        /// <value type=3D"Boolean" mayBeNull=3D"false">
        /// Whether the results of the dynamic population should be =
cached and
        /// not fetched again after the first load
        /// </value>
        return this._cacheDynamicResults;
    },
    set_cacheDynamicResults : function(value) {
        if (this._cacheDynamicResults !=3D value) {
            this._cacheDynamicResults =3D value;
            this.raisePropertyChanged('cacheDynamicResults');
        }
    },
   =20
    get_UpdatingCssClass : function() {
        /// <value type=3D"String">
        /// The CSS class to apply to the target during asynchronous =
calls
        /// </value>
        return this._setUpdatingCssClass;
    },
    set_UpdatingCssClass : function(value) {
        if (this._setUpdatingCssClass !=3D value) {
            this._setUpdatingCssClass =3D value;
            this.raisePropertyChanged('UpdatingCssClass');
        }
    },
   =20
    get_CustomScript : function() {
        /// <value type=3D"String">
        /// The script to invoke instead of calling a Web or Page =
method. This script must evaluate to a string value.
        /// </value>
        return this._customScript;
    },  =20
    set_CustomScript : function(value) {
        if (this._customScript !=3D value) {
            this._customScript =3D value;
            this.raisePropertyChanged('CustomScript');
        }
    },
   =20
    add_populating : function(handler) {
        /// <summary>
        /// Add an event handler for the populating event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('populating', handler);
    },
    remove_populating : function(handler) {
        /// <summary>
        /// Remove an event handler from the populating event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('populating', handler);
    },
    raisePopulating : function(eventArgs) {
        /// <summary>
        /// Raise the populating event
        /// </summary>
        /// <param name=3D"eventArgs" type=3D"Sys.CancelEventArgs" =
mayBeNull=3D"false">
        /// Event arguments for the populating event
        /// </param>
        /// <returns />
       =20
        var handler =3D this.get_events().getHandler('populating');
        if (handler) {
            handler(this, eventArgs);
        }
    },
   =20
    add_populated : function(handler) {
        /// <summary>
        /// Add an event handler for the populated event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('populated', handler);
    },
    remove_populated : function(handler) {
        /// <summary>
        /// Remove an event handler from the populated event
        /// </summary>
        /// <param name=3D"handler" type=3D"Function" =
mayBeNull=3D"false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('populated', handler);
    },
    raisePopulated : function(eventArgs) {
        /// <summary>
        /// Raise the populated event
        /// </summary>
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs" =
mayBeNull=3D"false">
        /// Event arguments for the populated event
        /// </param>
        /// <returns />
        =20
        var handler =3D this.get_events().getHandler('populated');
        if (handler) {
            handler(this, eventArgs);
        }
    }
}
AjaxControlToolkit.DynamicPopulateBehavior.registerClass('AjaxControlTool=
kit.DynamicPopulateBehavior', AjaxControlToolkit.BehaviorBase);

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAE202.117BD2E0--

