JavaScript中利用Ajax 实现客户端与服务器端通信(九)

时间:2023-12-04 23:42:50

一:Ajax (Asynchronous JavaScript and XML)不是一个新的技术,事实上,它是一些旧有的成熟的技术以一种全新的更加强大的方式整合在一起

Ajax的关键技术:
1.使用XHTML(HTML)和CSS构建标准化的展示层
2.使用DOM进行动态显示和交互
3.使用XML和XSLT进行数据交换和操纵
4.使用XMLHttpRequest异步获取数据
5.使用JavaScript将所有元素绑定在一起
二:如何去写Ajax应用程序:
第一步:创建一个XMLHTTP对象

第二的请求步:创建好XML HTTP请求对象后,可用Open()方法来指定要发送

oRequest.open(“get”,”example.txt”,false);

该方法有三个参数:

1、要发送的请求的类型:GET、POST、Header等

2、请求的URL

3、异步(true)或同步(false)

oRequest.open(“get”,”example.txt”,false);

该方法有三个参数:

1、要发送的请求的类型:GET、POST、Header等

2、请求的URL

3、异步(true)或同步(false)

如果要发送异步请求,必须使用onreadystatechage事件处理函数,并检查readyState特性是否等于4(与XML DOM一样),response对象在请求完毕前不可用
代码:
// JScript 文件
function CreateHttpRequest() { var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"]; for (var i=0; i < arrSignatures.length; i++) {
try { var oRequest = new ActiveXObject(arrSignatures[i]); return oRequest; } catch (oError) {
//ignore
}
} throw new Error("MSXML is not installed on your system.");
} var Http = new Object(); Http.Get=function(url,fnLoading,fnCallBack)
{
var oRequest = CreateHttpRequest();
if (oRequest){
oRequest.open("get",url,true);
//设置回调函数
oRequest.onreadystatechange = function()
{
if (oRequest.readyState == 4)
{
//成功进行回调 把数据返回
if (fnCallBack) fnCallBack(oRequest.responseText);
}else
{
if (fnLoading) fnLoading();
}
} oRequest.send(null); }
}

HTML页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<script type="text/javascript" src="js/Http.js"></script>
<script type="text/javascript">
function send()
{
var fnLoading =function()
{
var oDiv = document.getElementById("divLoading");
if (oDiv)
{
oDiv.innerHTML="<font color='red'>Loading...</font>";
}
} var fnCallBack = function(result)
{
var oDiv = document.getElementById("divLoading");
oDiv.innerHTML = result;
}
Http.Get("Default.aspx",fnLoading,fnCallBack);
}
</script>
</head>
<body>
<div id="divLoading"></div>
<input type="button" id="btnSend" value="Send" onclick="send()"/>
</body>
</html>

后台请求的页面的C#代码:

System.Threading.Thread.Sleep(2000);
        Response.Write("ok");

三:使用HTTP首部

   每个HTTP请求发送时都包含一组带有额外信息的首部.在我们使用浏览器时,这些首部被隐藏了,因为对于终端用户来讲,这些信息是没用的.然而,这些首部信息对开发人员来说可能是很重要的

1、getAllResponseHeaders()方法

   用于返回所有响应的HTTP首部信息

2、getResponseHeader(“参数“)

用于获取指定的某个首部

3、setRequestHeader(“myheader”,”value”);

用于设置XML HTTP请求的首部信息

一个HTTP请求如下所示:
Server: Microsoft-IIS/5.1
Date: Mon, 04 Aug 2008 14:46:05 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private

Content-Type: text/xml; charset=utf-8

Content-Length: 15812

oRequest.getAllResponseHeaders() //得到上述信息

oRequest.getResponseHeader(“Content-Type”)

//text/xml; charset=utf-8

oRequest.setRequestHeader(“myHeader”,”myvalue”);

这里可以假设你设计了一些服务器逻辑来根据这些首部信息提供额外的功能或者对请求的计算

   进行POST请求

与Get请求一样,POST请求的参数也必须进行编码,并用&进行分割,尽管这此参数不会被附加到URL上,发送POST请求时,要将参数传入send()方法:

oRequst.open(“post”,”http://www.myweb.com/login.aspx”,false);

oRequest.send(“username=admin&password=123”);

注意:利用post方法进和ajax请求时:必须将请求“Content-Type”首部设置为”application/x-www-form-urlencoded”,故:

oRequst.open(“post”,”http://www.myweb.com/login.aspx”,false);

oRequst.setRequestHeader(“Content-Type”,” application/x-www-form-urlencoded”);

oRequest.send (“username=admin&password=123”);

一个小实例登录:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" src="js/Http.js"></script>
<script type="text/javascript">
function send()
{
var fnLoading =function()
{
var oDiv = document.getElementById("divLoading");
if (oDiv)
{
oDiv.style.display="block";
// oDiv.innerHTML="<font color='red'>Loading...</font>";
}
} var fnCallBack = function(result)
{
var oDiv = document.getElementById("divLoading");
oDiv.style.display="none";
if (result=="success")
{
location.href="Main.aspx";
}else
{
alert("帐号或密码有误,请重试!");
}
}
var user = document.getElementById("txtUser").value;
var password = document.getElementById("txtPass").value;
var url = "LoginHandler.aspx?user="+user+"&password="+password+"&catch="+(new Date()).getTime()
alert(url);
Http.Get(url,fnLoading,fnCallBack);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="divLoading" style="width:100px;height:20px;background-color:Green;color:White;text-align:center;position:absolute;left:0px;top:0px;padding-top:3px;display:none">Loading....</div>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="用户名"></asp:Label>
<asp:TextBox ID="txtUser" runat="server"></asp:TextBox>
<br />
<asp:Label ID="Label2" runat="server" Text="密码"></asp:Label>
   
<asp:TextBox ID="txtPass" runat="server" TextMode="Password"></asp:TextBox>
<br />
           
<asp:Button ID="btnLogin" runat="server" Text="登陆" OnClientClick="send()" />
<input id="Reset1" type="reset" value="重置" /></div>
</form>
</body>
</html>

后台代码:

public partial class LoginHandler : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request["user"] != null && Request["password"] != null)
{
string user = Request.QueryString["user"];
string password = Request.QueryString["password"];
if (user == "admin" && password == "123")
Response.Write("success");
else
Response.Write("error");
} }
}

四:Json

JSON示例

下面的JSON表示名称/值对:
{ "firstName": "Brett" }
多个名称/值对串在一起:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON

更容易使用,而且可读性更好

当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性:

{ “employees": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },

{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }

] }

这比相应的XML格式表示的数据更加简洁:

相应的XML格式:
<employees>
      –< employee >
          –<firstName>Brett</firstName>
         –<lastName>McLaughlin</lastName>
–          <email>brett@newInstance.com</email>
–     </ employee >
–      < employee >
–           <firstName>Jason</firstName>
–          <lastName>Hunter</lastName>
–          <email>jason@servlets.com</email>
–    </ employee >
–     < employee >
–            <firstName>Elliotte</firstName>
–           <lastName>Harold</lastName>
          –<email>elharo@macfaq.com</email>
–     </employee>
</ employees >
XML和JSON的比较:
可读性
JSON和XML的可读性可谓不相上下,XML略占上风
可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了
解码难度
XML的解析得考虑子节点父节点关系,让人头昏眼花,而JSON的解析难度几乎为零。
流行度
XML已经被业界广泛的使用,而JSON才刚刚开始,但在Ajax领域,JSON凭借自身的优势有可能最终取代XML
JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的 API 或工具包。
将JSON数据赋值给变量:

var company =

{ “employees": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": brett@newInstance.com" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },

{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }

]

};这样将创建一个JavaScript对象

以JavaScript对象的方式访问数据,如获取第一个雇员的firstName信息:
company.employees[0].fristName
正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:
company.employees[0].fristName=“Vincent”
服务器端返回JSON相应的文本表示,如:
{“city” : “Hefei”, “province” : “Anhui”}
客户端使用eval()函数将JSON文本转化为JavaScript对象:
aaarticlea/png;base64,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" alt="" />
使用额外的圆括号可使eval()函数 将来源输入无条件地视为表达式进行解析。
然后从JavaScript对象中取得相应的值:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtcAAAA0CAIAAADOo4MPAAAgAElEQVR4nOy9V0BbSbbv3efhu/d8E3t6pnu6p4M7jJNwtrGcQzvIGRywjY1FDsZkDCKDyZicbXLOmGgMmBwEiJyjBIggBEgoZ2ndB5GN3fac08czZ/R7lEq11y6tWvWvVbVrfwIyZMiQIUOGDBkfg08+tgEyZMiQIUOGjH9TZCpEhgwZMmTIkPFxkKkQGTJkyJAhQ8bHQaZCZMiQIUOGDBkfB5kKkSFDhgwZMmR8HGQqRIYMGTJkyJDxcXgfFSLgLczOjhKJpIUFruhXt0jGuxGy2NTpiQni+Pg4cZRAwEsh4Anj49NUKksgWSzG5ixMTYzh8YSxscmZWQaP96/714l4fPrM9NTE2Nj4+Ch+5ZZHZ+bp/A+6LRFnfoGEHyXg8aPjY+NE4hhhlIDHE6fHqVyuULLhLwQsCmWMSJycm1tu2zcQM5lcKoXJFwmWPxKCYAGYJGDMA48FQjqwZ4A5B1wuSN5Wy9uQgJgJ3HlgMUAo/MDfvidvWMtZb61QLGBSFzh0xkd3I7GES12YGcfjCYRR4gR5gcYViz60SWX8myHm0ViUcTKVRuN9bFNkvMH7qBDiQJKjw7GLZ1WCw6onf3WLZLybqWpspPbtq6ePHzt24sihQ0gph5CHTh5X9nTLHuJJIzKpvjlGR/nyEeThY8cV1Y0S25rIH9nwfxxqz2CWub7y2aNHjx87jFy65aPIww+tIxq7+PD+AyO1yS/RAnn2GBJ55PjRYydOHD185BASecNIIbqjY27DaihTVWFBqIvnLtnbvxjkvGW4G85Iy/cOKOifn1j+aArwvpChAIk20FUIU1FQehvSTKAZB1zBhnW8HSHQi6EtACoLgDT7gb99T96w9vWdddaSmIRX4QE5MfF9YqH41zHi/RCzeR3RMbZXkchDh46cuGzkE1hHIXM/pkUy/vlh92VUhys6xqQn98JHdV8ZG/A+KkREqw0PvnVx/36M87OOX92ijwd7YHoMO0D92GYAALCEU1U9U2TWBoPebGtniok+6uufEFu/Pnr7urKGlq62zsNbdy7u/WKL6k2LciZPDAAw39Gb52ptpKZyYffJE/uPuZSkDv6zTxjJdf3jwzP8N79gjIwXuzne2Xxw3+ZtZ+5fuYtGo9FoFSX0+WvnNf0wecMkxgY/2hBGd9LLALSemvK905v3yX39+YHLpxTR6MdPTfMGBxc2FjOi4bxsfcWjO7V0HKpZ3DcimIQJlA5/R5e7D31y+6gzy59PQbc6+H4CLhcBmwpjdhD1G3CVh5JyYH2oCgGQDMFYEXThgLqwwbe8AZjHAuuDa13F5Hpro3+7ZO1i9mWeNVoaZnzP9rFT3aSI+hEDuZjLH8zLCzVB372udOyb/Tc076dODtE+nj0y/iVgtI1XuqWXV1eMwQZxkC16a7yV8evzNhVCmxvp7sBKaewZa+kYLPfVj88PblopIuYzRtt7cItlsI3DwxPs9YGcR6YRGlsbsVgsFtvcgxucJ41Ns+fn6Tw+lz453t/c3NGLJ7M5ACBgsaba+lpxTR2D+Dk2FwR8yvhYS1t7/9DAUP9YU1NrY+/w1DydRR7vbmtubO3oI81xxCIAABEISISB9kbsEs39XUTWUpwUAX+ePNTT2dbRjh/u7+7oxWKx2AZsE36YyF4au3j8BSK+rTnG0Nn6hpFfdmEhFovFYhsam3qJ8xT+Rl77Vvjc+dHBRmwjFovFtrV3js1SZoljfa3tnT2TdJoAAMS/bO1wd0lYgtNFXSf3sBQsthaLxWKxbX0jEwwJX2oKtX8qU9vO39e8nDkvBgGNQZseog/mBrjFB4fiOGtXzURt4S+DVVXCKxO63xw66FRSP65hyZKG1ob+WQpb+hWTOtzb19rRjscTutsHG5tb20dn6AsLs4T+xsampr6hCTp7sV3YHOpIe3PjUjVN2K6JiZURncejEvEd7W09vV34wcGWpnYsFtvQ1tRKmqEvrS6I6FTiADY9z1PRwNbULQaLrZI2TEcvgcLnSK3mzC0UmaXFufu0AnHxugvQ7aNqZLHN8FXXJBtAyFuYGm9p7WzGdfYPE+kSPgDwF+hT3d1dzbiWgZ5RKpe/1AJCNqfKMdpX/0F8b8X4m38imz452LN4Pw3tAy3Ds7VhtokJduU81voVERF9kPrK9L6Tx5no4TH6qpZnwZAFxP8FogxgoBnIIZD4LYTeAFw/cFf7ExNYAzCNhSksTLUBeRjY48CjAk8EEgDgAJsAM40w2QQzvUCjgHBtBxMtALUd2gyh7AY0ZMMIFqawMN0Ic+Ow7Nx8ElCbYLYZ5kaAyQExAHCAMwazHTDZBgtTIJEAcNdbm/TdemvFXMpY5u0wl1u2edM98x+8LiNiTpJHGttaW1uaW9o6e/qn6SzWAm1qsLWlpb2lua21q2VojsYRA3C5c6M9HbjGpR7ShieTNsyiMyfmCgzcvW21Mqf6KKs+Z5FII20tbZ39E1SmGEAs4M/2jnQ2NbZ29U3S6Ct6lc2h4t/ut7+ERCiiE4kDLdgNaWhsHZqaYojfR60JWdSZgab2BlzzwOQ0CyTc2XlCCxbbhG0kEKbZS5L1vawV0aZJPQ3N0kItbU1DYwP4ORqVLxbwmJN9/S2t3X0T89SZifH+5dbtGCBR1wU4Hp0y2LQUoXDYxrGJueVWY7FI+MHWttaBgZ6h/oEmbAsWi23sbuueX+CtvVcBl05o68UttkZD32AnnjQ1QRNwl3qQZH56tHslDDZ1NY8ssP+BBUcRgzOB65L+D03tDX3kMcIMa2aazhXyAEDI4pAH+joasY24ptau/knqwhpfWoy3peHviLciIWd2uqurG4fr6OohzPPYEgARi0seGOxtbm7paR2cpa3YzWWTx8e6unq6hgkzDKb4g8aOf182VCF0Pj4rWkfhHELKjtv2Fp4lFU/0M0vDV1QIcxib+/jUzQPSMrsQCF1tx+p28Zp8Fx3nl2iMOLYXgUAgEEeV9qpGOGvY5z9Pfk2YJTRFBWjslj992SChq0sIQO3pjb6gc0pO7gxaO6mnV0CZLQ14euLI0cvXbtxSsETsPY24qePyLDkv1PrKzwcR+39W8o1up5EBQDzFawwyf3B2544ljqhedSrrm5ZmadkwU5xtfvey/OE99+5fP3fuNgKBQOxEIPS0HWuWrJ2YqQ1xvnR852dffv7bz77+afNm6W3vPagVWFI28/4Jfwnw25oizDV2InYjEAjEmfMos/BwLyO9KztOKao8b26gAABJgAt+p7Ul2VYqF779/sv//PSvX337AwKxHYFAIBAoLYfwViFZagpzlFrwyDk4yLpunszH4zLLXz5vEtKplBnK7AxTLF7r+QOx5RGaas+r3lAhApgqyn6K3rt7x6Ixe07tVHkWWyVN+ndUWaupHzh06J6y/pkTWgjkyZPGXmnJscEW9xC7dskpqrmV1DJBCACMxqZYo5+P7lusZKf8zmuuTzKGloyYIFUFPbl0Qv70+SP376kc2HcegUAgTu456B1UMjYLACAGdlN1oKHyj3//9jefffHnrzYhENsQCAQCcUxRw/01eUTaMCIGt8I6J9nTrw0mFqumQo+/xhO3He4tfXMCgIWJynBf5J5jcnInNKyDWkQzADBbiwtXVjwpJ7dHVcmjmjC7KgI1uSeHmmhkjDbMr/sTeTBfXuCodmPR+eUuaKHdyl49scpNdyoXvBEmaQPVxeb79KwdnZpFtNVfcmDQApK+grQnMI6H2VBI/BZi1KFvFlZSIWKglUCjKiQgIAoBUWchTQ0adaAnEfAM4AMAHobdIW0fROyGpDtQlgdz9DVXZ9RC1SWI+gxCfgvhP0EMAmIQEL8XCgJheCktM5MAZQhI2gEZFtBJAB4AjMGwC6TKQ8gxqIwBkRBAst7apDetBYGYlJgRbKdunF/X8sHLe8zOqCwrxFl5ObkdcnsuqmjHtgz01DVF6Z8+tEtOTk7uwM1TFoVYPBdgZLzQ8e6lI0tOueNnk5CQZg7zzU4ooXJem/kG2OtkTfWuqBCxuD812fL40aOH7ni9rGaAmEuZyde0vya388hZBe+K4mXRSWvExRm/3W9/CSGDjQsJMTmzY0P27EdZxcZ08nnvIUMWeiszDQ5eRsjtvGNtmdXTWRYea3EUgdiHQJg8Dmkd2tDaHQc2tJZQ6O+jtPOItNCJIzvVtC+ph2ZkjHHnp7ujtLWQe8+eMQ4IfmqFQS96N+IU6l5QYg9rdSeYbcyM0dh1dre0wEEEwsouuouw2LoDvan2RicO7b107fRtpQc7EccRCATi8snLMWk9FOaqShjDTXmWPyshpa2xe+ftG4fUnljbFI0OS9NWDBhMCjBTXAmDB64dMkh/3b1Rru+d8Iayip13XTmCQCAQiAPnEPdCTNTdsl28CvrmxgCA3kfIMtZR2I/YuWfXYdQdn1cF+NW/Xoy3FzeOt6JZEQAwaUNZ8Yo/n5eTQ15VsX81PSQCYPaPZhnqXZWT26FwzDSnfnC5Ww62hZoaIRAHEHd0gqobWfAr7eP6X8abKoRFbnlZpKltcV1L0wKDwWAwGFUztZ+vHrq+94RnUFK3tNBsTVyGk7KGBlrzkbSMOUZV9Yaaq0pid98UFwCANUmqcXJ2uHhWTUXfTFrGVPXO9QO/23YaZRfaTR/HV5W4nldXPPjgWUPRPABrcrLaK8b8wm3l2+cCm19NMxndRXmYG1c2/X7fd7vVFIww9x8oX1Y4cU1LScVMV+Xig7saDzN7G3k0akdllZad1SNbS58lHCxNLK2Mgl7mNpMB+EDrak61MTq59/tPdyOPqBhhMJYWpuaKiqoGnp4t8+MMAKDQBl/n+LjqnlG4tP/M7YeGhhgMBoOxtnOMKunqob/nOqJIwBro8HYKuKqiqWlphMFgMOaWytfRhxCbEUg5tJdPOWGYzZhpq6x4t7X0rub08Cf3Na7tPHntxn0tDMYSg8FgME+js8tHRXSpKQzC9As9Q5WTO84rXr999shRfVWz1xT6W8xqe/YyRB39rCqxZ/V98HisoVaXAH9l84eeT92klrg722FMdJwi/QuHKUx8f0aQ66WdB//yh1N7rpmqm5hcv3Hxwq2zt41UVXS0r51RNvN72kMl86fxcXExd8wfObk/kVbi5eFubaxn6+2a1T40zQGg0PoLcuzvnPth67dfnryuZITBYDB6alqX7uoGFWSOCARiCfDxAyUJAbqPlPb+fPncdTUM5jEGg8FgXAIi83voZOkwKFxgVtoHmv584OJ9BWU0Go1G31dBXzJW8y+JIgq4EgBgU1pispV37T979bBd+iu8mA4ALEJvlp/eTvmzx3TM8wemGEsxQcjmVDnF+D1CJ6zLhfAYxMYacxOnq2gNQ4wZBoPB6Fnonrt78tKuA9YYbyyHv84XGJP1OcFHFNysYyrpsGaWJYBhS8j8PRT4AokBs1GQ+imkacPo0i4WyRzMFUHpY8hUh2pLqMJAlQXkn4fY/x9SVaF9FrgAQIaZfGi0gddKkHYdksNhdO2+LO4g9PtA0RnI2A+5D6EcA9UYqLWD9hKYWfIHWiHgrsDz85DpB5OzIAQAKowHQs6PEHsTmqpBmlFcZ23aWmsBAEAM0Fse7K2/xy42qedDN4jxiFW4WFXMpW/kjslv0w8OrBgjTQ6Nlnk6aSJ/s/vYb87Y2iW2D5MFAP3TLaEOtp7mj6X+9NTaWMfRzetFx/zYus0fzIm5AkMPHzudrNW5EIlkqqEuDG2osO2WS0oCEQQCFq0tKuvJDW3lM0cdC8LaJAAigOneiJiN/TZT6re/hJgnINbX5z332RC/gMiiZty0aOMdz2thT/Y3Jdj76l06d3Lfnw9cPXtRRdvAEGNmiEGrPfbJSSSJKEIyPjom9t3WskkLzYlRAdY6lk7O7j4+Pj5ejioqd/76x20K9+1xTPrCRFW0j/LR45/9bff3qONKZvekIRmjpXvLRF0lJ6t6ggUgEfEmCnyeWyo9UNfUN8ZgMBjMYyPMHbVLD0OMskfm6UKQTE82xEY9vCD/160//nDxgYalFQaDUburfl3bOLWpfFLaOyTCkVe1qa6mNlZmdtL/0BHzaOuWfdt/PBte0UIFEDAnWxtMXZ3VLI19fLykd+RsZ2FhpueZElM5LnzrLvC1CNiMFv8I76vn1W+oGVpiMBiM1WM9zftHvpBDIu45vp4YAgDO1CwuKcbfHqN19f757UcsYp42rt7btRhvnVU2jLdihhgAeOzxV7VGx8+f/RmhFxzTTCeLAXjkGWyyw6njZ+VuPIhp6CRJHUYC0FT66PCBTz755JO/bNdJz6fB+y4V/3uzToVIgNPRHO9udtjSO7JzcPHD+dEMa6sdO7/dZ2mTMgggAMFsqa+u0T1Fy4y+NsbST+eL4/3tzmgEZjUSWSDiTtSU2J+4pfdIM3+GLHVOAX6q0PbRLfWbJmkvJ4ANAIOpnUk6HvntOcsjwXQOLt9bI74rqw8AxGJ6cdy1MyaX7bP6GBxitp+O8pbjHv41c3ODiSXPddWiaovGurojnLX/dFv/YUB0yRJRZjZ3dvx/f9e+7YlbCsVdrQkuavLGdoFNgwAAAmhyigjBqCSONE6v3Hx7SG6SaWgVmcGAD0c4Qx1IdEDpat+NLZ+XziCptHo/l5M/Hr1ialEhpAGAqLcxxEn1j0q/ZC3M4oaytX2zX+JGN7wWa4z04qG+4o6vtu3atXfLph1qSpiyuYWNZffGKkQyS+tNfLL73r09pk/zinKllryISrI8un3nqb8ppNdPcAHYw/kuLrtO2rqUdlBmSSVPrh5VPvGouJY4NVdu4R3gblI8PEwoSlPSufONtmNMVqa0ksLMPNfLZw/v/79H/BOwZD4AAAcoBc91DO6e8UpqZ9MBgIYj5eoYBcTalLOXlzjYk9Qiw+DUiMK+jZuXzq5y8tbZt0nuwM798vLy8vLyR+W3qt03SkpowI8u8AUAwCbwupO9gnOf5k0uDiNi2sJQV4xlTExS3Rismta/TYXwRsYqw+xOGtvblrYsDr9cakNo8Im9P/0dfd+3iblehYwOFUbb/+j41L6qH9bnzMhp0HIPOl8BHYBRB00q0BwBFFhM0rJaocMYssygrmbpB3SYiYWia/DSDcZoa2dRjdARBC8SgDC2QdtMhkCrKQyTYeM9mjSg18PrAGipXsoPi2GhHhpMoKsMll1uvbUP1li7BKnjuasz4rKtX3nVP/CsAW+G1fjEy8nbNBA/ypAAAMz1kjOs73ol6JYtr/FMcxnlxQlFSZFSfyryUzuEPrPbJAPfvK5bbqxCpC1SO5ah5Z9RGDOwJA0XaifLPR7FVgc3iwFYwCh6dlXz9tdab/HbjTYnrUMiFFGGh9urSjak9HVN1+go7UMe3pnJznS88Pm2w9sueQeULQBwgJyHbarPGmeRSSUJ1zXvrLb2ZdaKtQ1kPgAwxmcrMK72xvdt05NzS0pKSgojHZ7c2nVa1cI2a1jaCFOlXq5Hf7vley2t0IGpxauOjmSG2B4xdgqq6WLxmfP92VbXdTS0XcvniYv+x4bxzCc2VpcMY+pHaCwAgDnBUKLzNT3VO9El0lTZZG57krZayMtAnLSHSQTd0QWhmveMQ1yiSkpKSkoK0mOMTt26duG6X2XrOA+E0+MlQcZfK6lfdgopKXkpvaMUzyDdPX/ZqnjwUckoW/QeEz+BkDHc5KegrXHjZnxfx+LGoAVug6+zxoPL6NDYVsqandyTxd0JqrpB6V716/swAMy1DL8r3vLngJAdHZVmkzA8yZEAAEjYYgohyyUx1K+oVyReEq1iAHx3nJP9qVMXTulZRDe2sWW5kPdirQqRCIGQWpbqoRrYkNe3qgFZTW0Zng+UA/wj+wAoMP/SNzDc4Gll/7Rg1T/KGy+NS7bVjapo6wfWxODLYF2/xKCaVVlwCfAo83OUGSp3cZNfX0p7oo5nQUcucakIKbe50EcjoSu7HwBYfGZ1hElApH0lm88GbklkeIiKc0M7UQAjUUUR+mqRteW1heVeNzd99s2X32zevpzc2/Ld919+9Z+/R6u4YAek1YpwjSWRmlZ56VWzEgAAPgyEpiX6qCbjG6dW4kRrcE6CSUjlDO0f2etGa58scz5tHnQ9cmAlK0HpHI5FW7h7mr7mz/MAaK8KnBW/+uPXv2AtwEzjQKaWT1ZhE37Day0MTmXpWjvbaidWV7W+iHSKCLB9TaNsPAZtrEJ4Q3NFllf3b//jHzdtlpOTk1qC2LJt058//fSo3Nn4PCILYL63KtX7Xnh5/pgIpqm9sfq2cQ4pJD5jklth6hbk/Tirc7jM1/EW8re/+fbHrQiEtBK57Ygfv/j8sx1fbvcMqyctAADQYS4vODjykVvD0BwAALC7WDWOmIhMmzLGsgphEedfGgSlPC/o2fA2uPO0EsuEkMcWGf2vu/B4PB4/3IrPe2qioHTwspNf7cyUBABEEgal1DU20jOtliOmAwCpjlAcaBlVFd28du/m21TIdGlfgYu2X0lYPWulsYSDU5WBBuruGOdqFmddVOnqSvTW/t7axqH6TRUiYgGfDHwOiAHEPOCRgcdYyauRyqFGFYYygLeqSgkL2LPAocO60UuChY5AeJEAhA12scBkMLSYwPAMvG0KzyVAtyW0RMGkBMQAMAYTOVAUB4NDKyLj3dYuIcbn+obe2Gzil/li+h9Y8xaCCJtr6PUEFf2awOAAzDRUZRg+8owtLlnM5kvEAvxkpY/D+RMHty6ulGz+2x8RB08YZk90rtt/+w4VMlFNSNfyz3gZO7isQuqmKj0N4mqC2wEks9DpY3zlwG9/881b/Hb6lxcGhAw2LjjY5OeNV2R27ztvFRvdyX9zN/NbEMNoQn6C663AqjQcZWnvAkfA5zK4M8JmH9Orv2StRCDm1pY4qT/4fvsexI4dO3bIbdm/7Qc90yhsK0U6cgLhhVvQ7S363vnZ4yt/nYRQ3haq/jShKLN/dqI384lnhO0zHJm92jZOT7JXjKNxQttEvxgApniENAfXOJuw7gVpNfPlhFcOOhHlgU1LsV4whn/t7bh//7EtUmt3bP3mylXNuMwpBoMnBgauO0Zz3/c//PnzH7ft3LEYfLb9uPmbP//2D5fPaubXs0XvMXhTGfPVEY/9Qm3zJhZW7b8R0mjzc9PzbJZg7co08VVXvKpuULoXdgMVQsYNviveggSA2/AsK9I6qphImQEAWj+zNtgtMt+zgrqmqUAk4jCYs7NzZMoCk8eTyPaFvBfrVIgA+iJKMr1UCifKSKu/mJjtybTQjXz+rAdgBkiJjmEZhlFT3LVhj9GQhfW8H17W2Ap0fF++p2ZOdcLoO67N74hvitXyLOjMX37AcSavpchPM7E7ux8AqCxqZahVcrJ3B4hpwC2OSk4xejY4RuJBf2heuIF6RG1VYVxmsPZnKnb3HYKiQoNDgoODg4ODwyKeRyUnxtXUdZDnAQAkwK6teR2r7l1bgKMCAEgY0BeRkRKskUZoml7xkwa/zBjDwFIi+R95ppXSMF5gtdsj4XI+ecX1BHPQ6xOcEm3wkjlFF8F0Uryf5u+Vbd9pLQAAsaYrRf1pWm7dwBtjGwAApX8qS8chKMi6nksHAY0wMdY6JXzLwRkbqxBay2Su8X4tw236fs9DQ8KkpoSEhT6PiYt7WfhqmMDiAxBaK1546ea0l5MARmcHUsz9Xwa9YgANzyo2ehLkZ5XaMJTnoIXR/0L9qVdAyLPFSkJCnkXHxOZkZXX2kjlcAJDMw1SWX3Sq0bO+aaoQAIDWzqjxsInOta9YUSHU4amch/7xoTntABtMs9mz1CLzjISngd2w8hyKiNAcYWBtqIkpHGuS/rES0Xx+cKCb0/WCsQYa8KpKSmxsAiq769bpyrepkLGcnlxH9Zyu2DXRiCKZLfKwDHdxqGSt3xfS1hHjhv7e4rFDZe+G/9TbIRZDxQOYq3iPokIQVEGb31tVyLgf4AxhkPjWx2RENGAkQpUHFFUDgwXsTOhyhIYuIH/4czXjxYGR6n8zCkhJ3/BZg19AAsAaj3JLMTAPbpiemO6pyAg6qxcSUjLMWEy6TPZnRUbd1LUycHYMCw4ODgkODX9mr+xkq2VXPINb9/Ta21WIeLRsIEndL6MofnhFhUxXPzVIqA3uABCMQZ29krHu5+peb/Fb9i8/+SvmCSYbG4tigjckNCyutK2V9F4rMgAAIjb0ReRkhOrlz3auW1oVECRVtrfez1p2HxYbERoREhwcHBzi7xlg8eSBY4p34ZB04O1NCn+ufvtZ1UD36vrnGmeKVP3SC2Nbpwit0eaBRS5Z6zQdUAr8S700wnGjbWIAGGMOJVsH5TiljC7OQWfK8cXu+jHVIbhVHZczMZwelx4WHBwcHBzkH+bsaGQRpBff2j3BBubrxji9b1Qen3ocGBMWHLrYYs/CI+MT4l6X1Y1PCSXvId5mF+aKvY3SU927f7ksAAznNUc90A5Mf7qRCpmo635XvAUAAFpNapYH5mpiczoJRL0dOHvrwMyyQgqIZULjv8w6FSKCmZeV8d5aj17ltaxyKVZ5a7z2pXs+PilEAC4wmyO8QjCOuV1rpwyTlZlpppa5lT1E4M4OF8cZ6AR5p7SsKUOfep1ZnV7YNCGiAYg6o+siVDEvunKlU2QgETIx3mZ6KnHDFSQA4EkkzdH2aVl+XQBs4BY/S0gxeD46QxHDUFjeM0Pt5C5sVwsux1vhsUdg/cw7M8Rtrdg0Pd+m14sLSEIYjSvMjXpYSOlZFdrqPKPCdNyKJjmLqV961+uMyrTCoXH+staWACzMdtdUp2RkpNQ3DFBWksTsfhLW//Z9PzW3rpUPWR0jARrmFh5GRfRptgio9UUpnhdM3IOw5Hfns8crm2LvWcVn1w8vfjAxXF+VEI/DjdN5AMCdZL0ydAsLtKiSrN4Rxh4kTvQMzwpEa/LJ+MSaWD3txLac1Sv5LDwZF6+JwaDDSoiPT9QAACAASURBVDca16RM9uJeBT7M66uZAyCS+5ONfF+FvuYBZ4xbauQcEmRXMk3qfhXgY6vgmtL0rvGMBcxX4YnZj58PS1O6wBmAVj/ntDK3xpUeTB0cTdewfx6QtfQs+Dyltz4lrr6si8wEAOBJauwK0n3WqBAAVq77CzNN54LRusX/kQ+UqpTogJ8fhWZUVJalFDwxT6scIm+wxNbmlfHMXPvFVMvq7yj1Ay999B9mhOdRVs0W+0hFRvfQtkY+bz6m3tebHmi4yfGJQ+3gB6qQuWpo0ISWOJhdLeVFQMkBQh5Mz8GaxfE26H4GuS9gcqPFwjFPwOpA3+TSigwdiJkwUAgL/KVkhhhgCpq8IMsCCE3QFQyVjjBFgw9/ZJg9mOrlf2qfuW9+AWVDFSKWCGcmsCUlKZlZmW0dk8wNhnNiOq7YyyGwqcTLO+Wp6bnYzhdj/CUr218ZWxr8yTymirU0xeTNphs+t1R3rWJ1re8zLFGVRWCYm1EJZ3rtFxJ8SU/cfcekwshR6QfMuSrfOAuVe0G1yaMAMAf4fDsXKwXX5Hf67f8spJTX+c/18uc6mWs/55NFQ7m/aC2PRifiusZJq581nYdu52Madgfs66VHzQ2lP/O5cUHDM69gatUvJ3s6vB+FphS9ItJII5X+doHOgZUTa+oW9iWHJVo4FneRJiQAMCOZyX0SVuiethRQFurman1N09uil9KY5N5BfBd+jfLnpvh7Gf/hflpWGw0EvX2lYTdM7CyyOn8p6/z2eAtMNhWXYWPog/GrJq72ZNECrgibmF7XRyWt9u+5iqE0LYOolyG9G1yGWN28QbxNwOHG6SsOzGzGFjw7p+sfkF3cVFLqapL4omZo7ZKlEFhj/Y35SQnJkdm4zrF/ZGH/35M3dqdKRnsy47zlHXy9X1YuHlKJ7y60dtP8+ocjDzQ9ayfn2XyhEBceGKpvHJSPWyoziMcXpz1/7mbwordtRgwgmGltDT2LsdYwTmxr6JGWGehriw5VOKqP0g2s548DwEhafSRa1TXOuQCPx/fhGyMDb+49+uO+41bZST1zs/OE8bYkFzVXD9NC4tQkj1oQHR6gYltS2k5eaA164X37hmd2RNscoT4zxeSojWtgFJaIJy4zQSTOz9P5QpCAmMUcz82KdlUwjAvJG55jcgTMcXKli7+3jWJATUEfk7nkrO0RQaFa2p4v6kvxePxgeUeMrcJRM5RuQS1r+chKMUBn3ZMbCv/xu9/9x33VwJahlXZbYE6Wx11zcrwRlt473IPH4/GdrQVPPPZvPX/G1LSYShIASIRT2IxEo8NWLhtZS+Mt9xpSU32Wrrrr0+cJ/Xg8vh9fHeT8QH/fqZCg2gm6kMUeq2kNvaVrYar8rLm2k0AYHR0dIwx09CQ89Au0jq9h8xgg5NPmZvH4UTx+KM8pwl7hilPS06JhPH6MQJinMPlCiZhHIVa433hioOyePYQdJq5iZmaOyRayWZSGkvgAU0WfzPjOOfrATGeUsc0zy4i+cUIfOU/P3sFQJX6wHk/riDP20UM5xjUU962uZHpyms7giQFEQjZ+Dhdq4+SpbFdcM7DA4rC446+7U4y1XEP100dGFwTSuQl9DF9s/sjdyjW8Fd+Fx+Nb42LNDQ8gPSwTu0kiHp86MBSv7udmaJrWX9q56E54Qn6shv7jYzaRldP4lWAgHC4rjkPf9jVW0QlMNMydGJhfmfwsnp061NOb9Mgdc/eK16uEmuWzUwEkM1PNOaHH7d2Mkgvx+EHpZarDoh7/uOPQ+YumBX3jdPaaqRSJUJbigTD1ti3qEH/YGjCvH0aeQoE9VGTD/BAs4GEBD6RiqDkB+SrQ2gdsMQjmgYkH2iDMJUEdBlK9oKsGFvBAHwced2W5ZDoCGrSg5gWM4GFhEGZjIO8YZOrC6Not+tPJ0HwXamwgOwTKS+A95vvrkAAQGkPcMJvVPEMb2jaeAgpE7LIc9OFD//HpZ3+0sC3AkzYoMzbWV+SrFYiRV/Z4/CShd2F06XhWgIFaNz/H7VZBKXWNRCKROERsjPW/vuP8NnnVoLqSCQZbDGIRhzUzOYXH47vqmp/fM7XQvRlUX9yKx+MniVN0plAsAYDJmoEUdQNnH5PU4UH8MH4gO8ng7IXv/75PLdC7dnaeLRSJ+M0RBt665x029tv32Zfw34VIwKZS8H3jJS4hvhgF3/KU2mE8Hk8YI5LpPK4YQCIBIffd1koAFob6Xuipu9o+je0k9ku/7C3tTLU76xBxOxUvfah+LNfX8cy3P53S0Q+rWQrteOyLsmfa3imFjQSxhM2g1rja+ZvZRlT14xa/78Hjc565PfOzfDU9wRQDn0drGy7z0bHw1/Ou7yezuRw6sz+tPNLwtluSY9EUhSMRSSTN/h5+apo+L1trpJaM9RPLfG09XPb4Yl/jOQAixggu1/pnWwvzgNfE7tHVdzRLpnBWLWSsj7eDK+0mEbNIQ0m3PTFXdJ5VFLVIrR3G43OTdC8aHVZ0ycS3s0VCNpUyNjqOx+PLw1+4Xr5hE/A4o38YT8DjyWQqd3m2NtPcsCreDqzE25qJVZNoEbm7PUNfO0DnuolfiHrKQM3Y2h4vpoo6fBxubv7P/9z2xWX/mMopkPF+vPmMjIA13tzrbqxy7pjc4iGVyP03T22/efjkVz/s33Jf1b9pdEHCGqutear+AHn4wGIReSRy+wklI7sU8uSCAACAz2BPVBUGaGqc3XtEfrHMQeT2ayoYnxRsN1nMAgB2+3DuY81jSMR2JBJ5HLnnipaCwq2Lh/6669AJRw/XQF+PIzsOffbNd39XvuWS09eZ/sr+pvzWC7vNs2IyArLMd2zfvUfOKCm5Az9e7xlz7/zlHciDyGVOIZF2dlF9E8CXMKqLHG5f+Ps3v/9i2w8qoR5FuIlKPyeVfd9v+tvvt5++9vT1q6Udf/SerHwHhQNIeTkkEil//NB2HRVMTgqWOCNczoWIAVrKzU4c+eSTTz65cMUVu2orpVgkmJ3NDgm6f2kbEnng0KFDh/b/jPzpwZlzl42izV7NSXeyi+iT5Aa3EKWzl960NqJjBBaHFt5832iCkdrVwz9J23eH4oXrAe5F/T0zbMFUdUO4ssL+P/3ly79++tPe3fuX/oB98t//9vIlpaQyoUAA5OE0D1ck8iwSeRDx9U9/+/3vvt7yndxBJPLi0RO+QUUEEoBELGEPZ5a63NHYevDIAeQqNB+YZpUSsWVhhjqbv//y9z9sO/3EO+v1VM1Tx0tHvztscju0qDJWy+ra1386dO9uZGfzSF13rI7FgSMn9q2u5AZKMS69kyoG6lxjuPfVvVu//u5TOcX9rsWVjWXtcTqovV/++Zsfvrtial1AHGEAAAg5M7OFT2xVTny/B7kfiUTuRZ0+9cQqobVhhMqh9gxlGumc+WrTt1/8dav8jv3LLrd5z5mH+p4t3STe6iFVSG7p99NS3HnzyMO05Dnx6jM+Fs9OPXrgwJbPv/3q0999J7d59/LZqWIAEY+Gn3jmaHH19FYkUuq28pePb7l/4thPPyC/vnQFU1A7snqKw59pKYq9dtjOyidjAj7ozCMJG9gD0OYAWccg+SAkIiEJCcnHIFMPcEUwTwOhBIh+8BoJafKQsAWefwWB30H0bohHQpYC9HSs7ALh9cCQAyQi4TkS4uUhdTsUYKAbC0zhmo0dwhEYtYAUOUhzgyEavNdZFmsQgrDpZaiP1vnAvMIR5sZl+CLWy5TLP/7wySeffKL9KHNwo0dpRLxpXK2X1lkF3SteFYO05U0AEgAWtT4jXefi2WP79yKRSOSJQ7suKxw7cnL/d9/uPnb76ctaDrBpjZUWatpIJHL/7r0/ffrXL//yhx/27NiHRCJV7+jklE5zuADAHaXWu9sontyx+eBB5CGk/KX7FxTVrh/7dvvOzcqufnUsigR4xJrWSG2TfYfX+61CdFrH3FseOPs1mJ+sjQ47d+Lqjm9+2PTV7zft3LL7IBKJPHVZyS6rt2PJ13jEqrda2znHBWAR2tOVEWe+++K7PcjFIvtPHNpjrBPVWDqzeILQSG5y4FXknWsnj1y+sFzFgdN3b9kUlwzQ+AASiYTRlZZtqaSw++BSSNiPRG4+p+nl/2qBzRMDDA3kOj1G/vTNl9//5YjutfC6blxuqbfSrp+++OO3WxCqT4NaBRQ+9AU/1N/2nz9s2b04ghxEIncoXdNPCsPTZjhiAJDwmPS+56mPrihtQx6SX7blMBJpoO9U1cIVr5r1rYm3axIZIiGf1FCfZGlybffJA8tX2oK6rmkfVt44yqAIKVO10WHnT19FIpE7f9z+ze/+8Lfvv9wmf3Ap3g6vxNuBVfH2oDTeuhX0dc+wVueVxaxxSorFw0NX9lwP8eunr9vDLGENjyadvvb1//3kNw8eRDZ1ktbuGJHxdjY8L4QBUy8jvR+roxdR9fSzSMnMdLDxMHB3SO6eogsBmPOdL6KN9fTQy6hbBya/nobVQZrRUZTvrKqvtlhCTdsw8PXwKj3LYhEq8lwsHmug0WgdtLpvSlZR8atYWxsTTExMVEpagraew0MdbTMvy+g6Ar6dWBDoZWatGVaZh63vfuHi/FjPwD+veEYkBNJIvI+fGlp1xRhtNDosLIcwAwIJq60uwtNBU+eRno6WX25MXQ+5JfWZp7W2tu4jAxOntKb65XyueJSIjbE10VZHo9FoU23DvNfD6zxJAjBNKImNMbe2Nk9KqZmYW9dy/I6W4mBjEzNTM3Nz88cuNkYZ/tp6/rFaL8jElcA21RPt7bve2tCwF4MTK/k9OkyUJvhba6LRaLQaWi0kOBO/uGtktrUrx83K3FBPV1dfS1VtuRZVNc2Hgf6JAwSQAFCIJbFRaLQeGo3W0NHSefRIR1NbHY1GG6hrJabVTS5tQOFTWvIzdNQM0at5Yu9b1jDT1ZQREqyprfdIV8MuIb6sizZcVhNgbWAZZJXT3t6Q/SrYUN/M1iWvdxhANIUtwxhYqq6u5PEj8/ySIYYY6AvdeQkYMzMdbX0LJ62ExpbupoFXQcYGDx/qaJk4B4bVzkws5pl5sNBYnOCqpYpWRaPRqu5PgttGF91oZLzM38PeWFtHT1cDrb5yIQ3ziMLCyTeTEEPCeq9b6Aj1wJF12wwXz07VQKM19XR09R9pq2uqLZ+dKo1IQqDX5Mc4aCxfxNZRP/VFsqdLiL6deUhN+8SatDhnAtcR8LOKnaNqCXP+wx/LY1RBFwZK0PASDUVoKDWD9taV51ZmkqAJDSVoKNKEMl2o0IZSNShEQ7kpjAyueiJGDEws1JtAIRoK0fDaEPDDGy8PUbMh9T5UZ/1DW/fFPE6HQ4KfjrZPc8vbRAiIxPyh7pTAQHNbO5v8ot75jbPS7ClGT2JQUalfM2P9Thvu8Fit35PHmmpoNBqtq6ruExaVnJDg/tjMwDWxrp0LXGZ3S4CjCxqNVlVT1dLX1dXT11JTV0Wj0Q5WrhUNc9IJLk8y31od4myniUaj1dBol7DI3MqqdDcnM33XqKQOFk0EAMAl1hdbPFrvt6Z5JYML/4MLNTRye27GI10TdR0tbd1Fh0SjtY0sQ8vwg6vCz1utHVrgA4gYpL4XngHmOovdB41Gq5pqG+S+7llYVpvjha/TNTQjIv3cYzyMHmqpSy9k7RaEJY2tLAtOEspj/TVVNVeuouGWVNbIkK56jI9VJQTr65noauvZBZhnd4z0VjakP1XX0tPX0TT3S0zrE9IEQO/IyfZ4aKSptjSCaKDVQ0JSh9ZGS/p4YUykOlpn5UJqaLSXx7OWPr54yXvXx9s3X2DAH2uv9deyWDFXwzW1rnmxb9Bm23Mz9HVM0Gi0upaGziN9XW1djZV4S9w43qquibdroMJQsOkjv0vWHYPrNx6z6SMvUxR2XvvpoopbS+s/z0rfvwKyd+r+NyNgzE73SY+LbWgoycoP0Lb2D/WoopJkfvkrI+FSF8Zx3S1Y7MvQAn81RQtfo9SBSeY/sPvhQ+BNirui9Z08TrmWtkgn4v9kiFnAGgEyDiZzoMsDkjFQWwws7ofuLeUJKIPVPpe8bO6HNzPxsmnevxQSIZ9O7C1ytjH9GWX8NC6msa9rbIH7nsdyyBCyWdMdA+1YbFlKTbimmqWDcnhzJ0m45hBkoM33F8bfsPC1yK6iveWZeRlvQaZC/puhtBVmGB1RPHrw4MGD8gdO7VCwdk9vmaILBf+DS83/nggmKuv8j97/GYHYsmnLps///N0Ph7U9Yzrhw08b/yCEwJvP9/KyfWif3DH79q2+Hw1uDwzYQ9YhiPw7RHwHwZsgzQ56Rz9UnE0zhrLdjW0c7FOJNLHsvaT/WggZ5KYgLd09X335h0+//GHbtjNGGiGts+9xNpsMABAvDPbFXze+ikBs/Wn7959/8e13CAV9r8qFsTXdQChgU2b6JmYmmbLe8aHIVMh/M/ThpupIG09bDAaDwdh42EQ3NhNkyvh/AhGlf6jYOdwDg7G2s7Z3dnGyD0spqCYC89fXfwvNuN6iotYp5kZZ3I+MYBKmswD3BCptoNYBmhyhIx8m5z7siR6ABS65/XVJVy12fv1JZjL+6RFx6PjSqBRfRyc3VycHWzvnqJCCgVmG7Eit90LCJk3VBiT5YTDWtlZ2T5ydHAMi4ov6WXOy9vtvQqZCZMiQIUOGDBkfB5kKkSFDhgwZMmR8HGQqRIYMGTJkyJDxcZCpEBkyZMiQIUPGx0GmQmTIkCFDhgwZHweZCpEhQ4YMGTJkfBxkKkSGDBkyZMiQ8XGQqRAZMmTIkCFDxsdBpkJkyJAhQ4YMGR+H91EhpNGi5880TQyds150/hMeDvlvxmxr5wZvs1NTVX/40CkpsXZy8WTu+Y7ePFdrIzW0ho4Oxj2wdGiA9nHt/i/AGBkvf/NtdhpoDe+IwoHJDznL851vs9vwNFEauSUz1cDYyDwisnaC95ZjWMlVFbiU1NpR2szyR7MwlQ4VtlASCSP1MFcILU5QEQz9fcD/Zz1yUcKEhdfQmQJtzcD4WG+K4QK7AVpcocgdWkpgvg6Gg6DiCeDKgbL4lj8BcLqbKqsTUgZJ0x/7VOL5zv89vUzG/y4E5M6B/McxGYnpvXzWP2vMkfI+KoQ2ke1ou3/fDzvN7WJ7fnWLPh6iOebC2Nw/xVsAhMAYmXnjfaMAADBVjQ29e3Xfn/7y5Rd//GHvrv2Hjxw7euzE3r3bv/3tj+jbjrUs6UuqSHXNMTp3Lx2W3/71lt17jrm8zh75Zz94mz06S6NsNPpRuwfTDbTOfLXpm8//uuWA3D55eXl5+QP75Ledu6AfFdw8S+W+73Hk1EbfhMfyZ47s37/582+//OPvvpPbvEte/rrhteiOjtkNKxExmiPDzh/c+oMK2r2euYEM4QN7MtXN3VjHMbVzbmL5YyJ0aYLv/wGXS1CfAKN2EPMn8DgMJaXA+vBX7/6PwSyB1ihoqAXa216a+2vDBmosJH8JdpsgxQuI0VB2ANw+gzhvGCVLS/CB1VgY9sTggU1hzcj8x309Ewn7L9fLZPy7wOwlvFAPjg2JbOMxft1Xev5XeZsKEQu5LCZNyjxlprWlIt5aJTQ5GLemEI/JZkjL0Gl0Dpf/RkiQCMVcOoNOo9FoNAaLwREK+AKJSCgSS8RCHpfNYLA4XIFYDAASkYjHYDEYdBaHKxRLQCIRcLkMJpPD5XA5PAadQWdzBUKxRMBjMRl0JpMtEK5cTcDlMOm0JRhsFm85FkhALOCzWSwmi8XjctgsltRaBpezMqKIxUIeh8GoCUyLsQh62YfHL94TncUVfOhb6CQiHodOo9NoNBqTyeIJRUI+j8NkMlk8oVDyftZyWEPluORH3slZ5W00GnWx8Tg8IYgBQMhiE6qbQ2/pYR6rRLc39I/ih4eH+qvbi30fanpZu9SwOCIAACGbszA1MYYfynOKdFK6FVSR0PPmnYhEAjZj2RQ6g84WihZtEQk5LDaTxeLxeGwmh85gMHkCsUgk5LLpdDqDw+EvFQSxRMRlMuhL1dBpLD5/ZUAXi4U8DpPJZLPZPA6HQWfSaDQ6k84UCJbLSIRCLnuqayjbLCAuLBNLo81Kb5nJ4grEYgmAiMcn9/bHq/u5Gz/OGqnoIxKJRCIeR8yzV9azPmJT1j/NBpCIhXwug8liMFhsDk8EYgCQCEU8FovNZDA5LK5QLJGIOPMLJPzoUE9v0iN3zN0rXq8SavB44vQ4lcsVrvwLIj6HvXg/VOpcH74r3UUvKMi2nPPmnIIzxsf5aTp5nvTF9szyVjo7HQZMIeoPEKoB3dVA8oP4LyHgImA7gCMGCR+ETBCwQSwCsQD4dODRgEcDPgtW/0kSPggZwGeAQAASABCBkAU8GvCZIF5dTgwi1qpKGCvfSvggZAGfAQIGCDggFIJECCIO8BkgYAKfCUI+gARABCI28KjAngDaJDDoIFrrLGI+CJgg4ICQCwI68GnAo4OADZI3x1wBCJmLlvBYIOSBRABi8Uq+SswDPm2pAB3469IZYqDlQt734LsHXqUBpQiqTsDTbyE7AaYX30otATFnosw9xWr/k6Til5MfPupLRCIek81iMqTewuXzhSKxgMtmsZgMJpvJYLC4XIFY2hl5HOaKZ7M46+Xuu3uZRCTis1lMJpPDE0hbQMTjs+kMBpPJ4QtEqxvvHTHhPRALhDwWk0HbEDqTzeaLRe9Tn0Qi5LHZdDqdyeYKAUACQjaLQafRWcyVyPCe1krE3KXRgU6ns7ksnlDAF0kkIBHyuCwGk8nlC4UiIY+1GIDodAb3TZEv4bM5y/dFZ7M5K1FDIuLzWCwmi83icTlMBksawRh83pvvChZweUza4mWYLCZXwOMJxSsu/u4I9ouNJhZyWWwmk80RiMQCPm8pctCYTM5KkHvvtgUQ8patpdFZTNbSQLeh3wrX+a0EQCwRcjks+sL8DJnYNzZNmmGt/fclQiGXzWIymVwuh8NmS0crOofNedNHxBI+g7X4JzLpbCGPJ5QIBSKxZKnt3tNvRSI+j8dmczg8vlD85ji0oQrhA62mwMVAAyXlqnlkUGJ3q7/Ji4rQxpWK50awfmiTG9IyV1CXXJyfd0+uq2kkvfzppXvXUCgUCnXX5LpdYZxHdHNBSfMUZbIzPdb2+i11Q4+CYbwYgD40nKluq3L1soadSxF+TLxAqYuNvHdPxcTisZVp4BWFB5dMnGPzq3DZofroW5eV1M1TCofZdAAAKuBTva1UL6GWULJ++Kx9ZnEyx4G5mmIPM907Krcd7cz1NE1RKBTq8oUrbk+edY8uWkmaa04M1rx7atP2zX/+ftexkydRKBQKdfHadev4mvp5+BAdMjpY6OdwFXUVhUKhVDV0/HML0/yfGt1Qffg4tat9AQBoQEh7l7XzNcXeZir7kNv++O02uX2HUajzKBQKhVKzCUjpES6+HpYzwXxl5BEV7dwDAMLZ1sHuoj5gTg52Dvd0zgiFa+3FJ9ZEa6s9r0roXncfEmA1VCZZKVy6cEFqyeX7Fy1fFHVJX7XZ3+SDsVZSue/o6KWj6nDploqqd1JNRWmWn+Wlq1evmNpH43p4IAEAcV//Kw/V29cuSiu5qHjhYVREBXnpKqTZpvggLfQdHX01RxsbJUUNFAp1Ea1wNzkDN8uSmsHpxMU/MTxyYvdnm7b8gDiIQp1FoVAo1B09TFj9/Lg0NyXhCKtti7KDI8ZWvTWbFKJpZ/vt46pOEg+ATmpKi76jpHbtqrqtd3y3aA4AKLiuVFMDTYVrt2xMwnETlFVZiDavjGfm2i+mWhjr/kEJiDuxkXbGF1AXUCgU6rKWs0P8EC7IuTDHoUzwRnaKNdrQ6H5EzdZBv5JLWT3h4MCQJST9DVLsYWwAZkMhcRNEoqGXCgIA6ktoVINXD6ArDboSIP8aZKIgAwWFWtDTC6ylOijFgFODvOvw8jkQBoFRDo0GkHgBCtRgeBCWb4bVCF3GUHARMlCQcQHybkN/KwgBQAT0Umg2hZxrkKsABU7Q3gCcLuj3gOxrkKsImRrQlANCDsAI9LvDi4uQqQQlntDTCZzVCRsJzBdA9X3IM4FSa6i4CgUoSLsErx7B6BisaRE2ULOgTgMyUJB5ETKNodYVCM9htAcWl3LnYMAXslGQiYIXKEhThEI3mJ1YXQXQXsLLrRB5DhrqgFUD1WcgSA7KSoGyyn/F8yV9L3T0bWJCc8fgAxFTB/szNJ10Fa4q3LipcFM7oOBV5+hsQ7SHhYaiguJtRaUrBpHRVbMALCAWxbnrXb6MkvYQxYd2bhVLDrmODXsZrX84185U7fo9q5DsQWAASIbTizwuqtxUUHJISOliL71OjioZSfWxVlsVEzCrYsJ7QMI2J5poKa9UsBrFR04erydH36M2MYfek+zgfOvS1Xu65hkDnSO9Iznmj1QuoS4Y6mLKG+ela4lUeA9r+aQhrB/a5KY0sFy+ZGbx4El8dHTrHJnP6MyMM1Z8cMsqKCI1LydATeWmtHWv3HQLqxifWlMLoy/+8RPlpQtdfGzkWNuz6Jk03kh+irkO+oHG/Sf2mAfK+igU6sLNi1dDw/LG1u0bIBZ4B2teuIxCoVCoCxrq150C7T2KmmuJi1+L+gZKPFci2AWFtRHsFxAy5zriLW1vK2nrB73ITwkLtlpqGbSWVXrpjFgaryTcd7ctd7kfTb70DdJAXV40RveBfmHNFA8AgD489IbfzjXELPvtVYPImBoKCOZ5reEBFrcuXFa8dlvDNKy4hCBYpQ2EwOlojnEyv6OsZGVlaGqAuYC6jkKhLlsaOdZ1MIVrRAS5riNK4dFdqRupXbTM9ndLbkxIwI4uTEg9Af8+fisS83qaQx0dlZXVVb3DKwhjbwiVN1UInz7a1Ob12PrCpXPnpHUjbyufvXXf/MLlkLi4Dmkh5kB1bZTVY+VTV85Iy5xHIa9fQAfb10xNLggAAHhU+mBWSrCS2A0anQAAIABJREFU8m3589KB9NrtIxfQp748iL7jFNFNwXemxz5EnDi041ZQQxldqkLUbK9t33fy0ml/XAVlgVIX80zx4P5v/iS3aevdHWevH7h47foDZb2HN89eOy2/6/R5HbMCfKeIwx5r7nWxfaSsfPneErfVb5t4B+S0tBLoSyoErbj1+z99uXOX3OlbKNT58+fO7rp4QycsCs+c48KyCjm7bfeO77btP3H69D+iQiQi/vREXljsA6UbR8+fQaFQKIWbp67pXD25Z8+Ov57WepTa1U7j0cdbel3s3mXtfE2xtxn64JHdX2/ZtefgsQ1VCH1kOlvPzED5rJGjo6ex6i1bY9MS6lsWpEVtz16GqKOfVSWuyYUIhfzp8cRnIWros3fvKkktuXNfQc3CLKiouIPM5vY0+Zjq7frmp6//evLvB1QOXbiCvHpTTUdZVeOK/InjO5FXDMOeEdgLItpcWUaGns7Vu3dvSCu5e+/2fQMdt6Sc5vGZBT4AabYpOkj56I6vvvvLd8gz8uduolCo4z8f341+9LyqkiwSSRZViNHxUwe+3bpz+57DKNS5N1WIgMoos3nmeEfRzN/eJzg4ODjY3zPYwkrNL8umiUYVAACdVB0Qdvirn7bu3KblE9clmgeAhfaWSEOF77/Z+tONO+G40WUVImRzqpxi/B6hE3orxte0FpcyOBjp8lTx6qVTqDMoFAp1/MatY3dV9c9e8PH0rOXx1k2RuCRcYQTqpKNVYP4MsFf3Lh4MmkPqHyDHC6bngfwMkj6FRA0gSEAEQH0JtVcg7k+QvB/SbkD8RUhHQQYKsk5Brgn0NIL0pinFgFOFHHkIOwmJalChC8VKkHgGXvwMlUUwxQUJC1hN0OYAOZch6xxkoCDjDGQfgFw36O8CEAKjFJpVIG4T+GyHGDPobABOFww+gVgEuH4OIai1KuQMJO+EiKvwIg3m6atdG+YLoBIF4V9A0I+QcgReoCDtEKQdh/ICmKIulhJPw1QBlD2ErIuLKiTtOiRvg4ztUJoKkwDCBaAGQ+19SLsH+feg6B7k3oZcHcDGwWQ/LL/kl1YKRX+DhPPQPgTsNqhCQvjfoaEF1srFqZmOZMuLDs5mr6Z48EH5ZjF1sD9Dw/7Kl1s2/f53u86cd39V0jk61/DMW//INz99/ckXh7bfC4+umgWgwmR8sL326bP3bt+5d+/ePaUH6rpOgWnYQQJzfUzYuJfR+of/X3tfHhZVluXpTHd/3f1198xUd2VlV1VmWZVmZplpVmaaZrCrKAoquKCAiBCAoKKgIqIIqIAiq6CAIMi+KzvIqrLvAsG+E/tKEMuLfY8zf0QAweKSNbV1D7+Pf4i4cd9555177u+ec+59pb6eez9GHXUJaFUR5aCefV57b6fjzs1f2AZ4VLJpEgCQ8ubeDIcEetnr+ISTLjo+4QPA7B8qCbp20clhPZwJiEloo5OE7+9Gy0KsDUx/3PKp+VlH92vXzh21PbLfYrfFCZuIWAwbr1YKcX1jd98jrZI+OFKbFHTZ1uGEpsVxK7svfrnD8MfDmb2jAv5wcbq7iclHm/W+3Gt1zOlHy8NmFhYWFnstTOxOuual1xPZAAAgJQ6NlETec7c4tm9xkjOxNLe661UxPUSVACDSucqCK5Y7N3/6s1/9YPS9ma2FhcUes11fHUcHl5RRpNqopYDCGqnNDL9wxs7ulIODg4OD7SnUt/u+/Oi7K/cfjwCoAfi0uudFF9bzYG80Huw90LCQK4af/+FnX+83OW523GGHVlyzg/uvXgrubp3kSAFA8g7dhsUOcHAKULEJpNepCd7H7Mz3a9y+hemB/buvoVN7m2YFwJ+dLXJbbbc9KUt2u/VUoi4LsdiNMvnq/3zjGHTjlZC7PEI0LMTnPOqLX/zi91u+2GVtamFlYWGxw+zg0ZAHvVSshkOo5FJCbUOuu7vz9xYHzC0sLCysrHcecTP51NjWyDmylTwLKiG+b/x9lgAAADKl8EWu+eZPN23atGnHwZiunjUT6hoWopgbeRYbvOP83fv1TWxNnGWoO97N/ZMvP/72emDhNIAKVJLepIv+DnvdE19XT2ra0JChjKjgm4YXc2sw8wpQK+lvuh7sOnbO/lBK3yAZQRAEIXb2prgd2W5mZJdYgFUhCqnkTVJTolNQKaaCrAk3IcKR9NqcEMeM4bJptVrOQ2bz4vd862x8NqFhBtudfu/Ukc9QfoHFY0Ntj5/HnD2T2VU/PzNTmBS0xetOYF4FZhEVEbGX9m0287+YMiLT5DiE7Y0x3jafn7oQUNmCIFw2iVnpGxvt516EG5iHpYxMY1jm43PhpaOzs39ERkbF5RMrE63OXrGKLhjm4hEEQSamSgK8t3/y/S53j1I6XqhUKHFD2Y8Df+f5HmnFwsm6zrTTQWl5dW8QhL0qIwMAQiK9/IKH5Zaf/fo3v/ntL3/+paN1QNMCb31B38JCOHx8ddLuK1f33k/t6uvUSNJWUR99fPeBkzsu1I7QBQoxpT/jsu+Wr85fym4YHh/K8T3w4xGUc97znsHh5153o8J8m/BYRkete6D3twFxVa3Nmk56W7qSXU8dt/zsZGYlhqUClUqxIJ7OjT5xynL7tZiauSkEQSZrMakung+z7rWJRQpthJCCmcx3u/8kOrcVQeZXZWQAQMETtYZEum77xaef/eazLVu2bNmyZduWX7k43a6tIyGIVKUCtYqFYTaEXY/KvllGZCs0cRrhwthg2tnwuJiSHolCvBQCfxsLUdIo3dkPTM4GeORUkTRizE2U3b61beuvfuN0OrZXIFtF4ynYhtzQ3/tF33o5CrAqTkJ5DM360FUIHDVwa+C1ETSFAgNADaCWAbcVOi0g9X9BgRtMM0CEgBSBhTJo0IcGPyDJQaEGtQwULBBVQbUZhP0nZLkCtg+kdEAa4U0LzHFAMgvjPlDuAY3VwJkHKQJSOvCqoeocVEeASAxKGcgxMBsPJYHQUQ9yJahVIB+C0RjIuAVv2lZkZGRUYBdC032oLIIF9krrloGwE16aQME+wAwCFwFpH8zFQ3kS9A0umlQ5tF2EvDsw3KVNuAiaodMGsn6A18XAVQO/Czr/AA1OMIoBOgbmMTD/EsZvQeY+KA8GkVibtRGOwpt90HgRsAhIaTCEhmormCbCyhgEjz1d+djwpK/Nw1IycH5SWkatVEp5SFtETrirbUh9Xp9QqlKr5BxBW/Sdu9e/Cn1dOsqRyNUAQoCugfam4lxMdzcGg8HUp4WGHP3cKzztOXE171l/lKmVSh6JUuqZnng7tF06xQdQSmXsUX5TSGhy6sVKDlkEoMYNZT8O+J3nnQAdn1Cp6xM+ADKER5ueGB3ErIehKSyeLRV/SIpBkzWgtY2mOxtv3/Ifnxze51fdP81ACBXD9emJvQsYKW0i//Gdz94jrXwwuTLxvFNIfrymUc/rymCToxY/6F8paZ8SqhVSZKo5z/kL1L988a1FetYonY4gCDJD784KNff1dMxr4qukShm2NCLS0QAdmpPZvxjwny4tigvQP5P4uGZGqlarlWIp80W+t5vVl+6BKT0YBEHIA7iC8wHR0d61LLKGddG6Zkou+gSHX3na1YPBYDCYjqzLAXabvzoeGFJEApCBrOuZ403vP/gve7A3rSs92HuVplJIhJNFt298/6+/+ZnNiaCWHq24He2PIy7+cCvsSc+kAlTv0m1KYg+nXyhjdhemndVH+4Y9aGVrfCBCbOzKCTJ1jfRN75colHKpYLXdKrhLdls8wtbNyCAzTcNpp7zCYn3reSzdvKdaoZCMjBeHnPnG5pTj00oSwkAQpDk8P+aCc+bAizkAUKnFlMl0a4+zZsbRDdXjHARBkPnJubIbZ013b98T8rCbyVExxnMf336fJWjMQSluq7loeeijj373m9OXcodXB+VXsxC1EiiVzbmhrtcrCnuWq+gUpOq6+16HjoRHZEwCIMDtSI4JvxiQ8XpKpMOwmSMViRFXvTObR3Egnp+tS7t4Lep+UQd9WRqYH+xt62p8Q6SKQQUAs8XjhR6RL4bKl2aChReDNTFuOSMlEwAgV0nbszxux1+toIgVIGl4GhVqeamuGacAYs6r9AvOqe0v+163Rzl894+bv/gcZWy+CKPfb/vlv23adOJwQNuctt8hTF3y2fM5mbU0rS+bjivMuu+YO9dFXXZgI0+qC68ld3DE4vda3loIxmltkUfPhNqGv6EtfUhraQ056H797vUW4KsBRC0N9+y3/v2n75MW2BhcxflHFQ0Y8rrXQmZppR7Xr509GpyYmBnq4xrq71PHYa1fVru+f5TjWY3BDl9v+/Rft+4w22+mkWSv4a6t//YP//DNz/VTywkiAOFsa/aDo8Glz2aFwOaNpJzxeOCVhOUKmfI238j4SJ/ysZnOJ1FHjH71d599Z7xnj6aTfaZm3/383//l002/Dn7UQuUBAIiBV5sSGefh2zCoCXPKxyRt/tefFN58xV8qtJDN8196JxWl18+sextSNu+Vf1qYq+P9wvjckpKSkpLi7JIwP9cjZw+5p+QOstkAoJYAB1cS/jw1sQkHIAcA3jC9tzA4/mV628IKivA2FrLQNlUT5uGb+7CSsWzYvN6hp752R/wv3e8QrK4LGB8rfOi5+XbQnbap5cX8oshE4HQCQgcFgHwB2F3AnltOo4gwgHGE4tPQ1qAzv9KBdA/aIqFvBoRLE10/NIVA4R2Y7gFt5ZUMEBYIhMDuhQZfaEkFlu5KF4GpcGi7BzNkEAGACvg90GwJXREgAFADIEUwdAuaGoG+pspF0QSdcVBVspqFAICKCC1+0BAG2mUOFzg1UPkEuheTtFOx0HIWpntBtKQIKfAGgdACTCooRMDKg+cfQfzHkGcBJeZQag5luyD3dxD+PyDbHkhCLY1TCoHXC+wxEKtAJQf+MCz0gUi6KvygFJD6yxwNfV08Hw4C7Y/YAiAfGS1ODDTPyn+O5QEoVEp88r2kkPv3BkSLaWUpyJsboq8465vv32dubm6x84etv//5P1jcyCgkrmacb+H6ACqxvDWwIjc0okM6uaS4ycdP8nM8q3kUgRqELQ2h9l/9/W/e4RPePxHSu/pyvN3sD5qvh6MXg8NeUnAfnt+RD3NfB7n430dHNDZNCFQAAAIQkXFsKZvV9uq+/dfvlBYAVOxeTNENT9QeMyONTzAz/nL/YaeYtMn5BZESAOT00brLW52P2l3JYyyPPzl+LOFqXFB44iCXTB9qyIv18HlU2EFlLkvGo3WXPLp6IeFZfb+Gs6rbqjMTzlwsqR/WBCJZgLkb/TTxXNk8XqNtMZUzmfjI8djB7832a5zcjl3GP573L+kbYspAzYGJpABz/V/9Tx0Ptn/PGg/2flBqwx8d/eWJi6nJA0ujWSkbq6676RL6tOo5cTGPvL5uiTi2lCUY7qlJ9rwSnlA+QlomuVLJXHO6v2fk4+wODkhgtd0q1eolu109WYinWJUe/g/jr69iIQAAODom29szJSJtUhtipBZ0FgWeTsUUTQKAQMrrLvD3D72a2DArXd4vwJsY6+542TmH5ciUnPaXoe+yhNllu1WrVZyF8f7+xsaW5uFxKp//noyMWg7jKfXFkY511MYVeTHqwmSZn0fa0ydjAAyg59xJKr6UwVhVWSbsLu2JcEh63d0PvLmJqrAzlW25JHg7ZEPZvZnuES+Gq5b0x6zC1D90yx0tnQQAjpDd/PhmQX70EKgRkDSk5xdcSZkh0KUwmVj5xMs1tb2lOrs09tS/7T9lYnvGwwWthetZ9/O+V7yycmqx2o5F7W2vMl2j26vfcAAA1HyYeFpUkHDmGa6XtqyS7tjijEvxL0mMD00J6oLVRajy+zYi91A1c7kST74AI2FxeSleNQIqTwWM/NyIk/+01/490gKQ2kYKXKOeVXSsndsAANiT1JJzd+IfB/aIeYAQu4f7KiekovXD0uv7Rz6GWnoRZXfiFwfPnHd1dtVI4uzq4n7RyzM64mF3P0cMQMA0lUeerxhspAPgmdOFvo9qE+r4gGCF9ZdD4h/eLOydqbh13sv2n/e5ODm7uGs30Dqj3S5cuHj39p36ZixPCADAAmpJTEbh5eRJOkcJAIAM8tvCA9IrbjctsxDOLLX8wqOcpPJBgHX2X4qYnNprRblR8WOw7JX43RXBjift3G7UEAcFAABqhQqfEZcQFHr5DWtMCuq++q5Iv5DagWrayt7exkIIZWMVd1wqxzJxuq05wGqI8EsOvdMkFK5SMmYoI9Tpt9ev3WkeX/dJvR3cRuh3htY8wOpOMkJQtMBAPjR3Ak+jBQTkbdCcDy29a7qQA6MNSiJguHXFx2o58HJh5BH0TABHBQAgJ8CMA7TfgmkuyNgweBcqLwOOsEbPAhC+gLYH67EQFUin4XUCtBSCtjKNDpx6qM6A3sWC9b570O297sMDAAAm0J9C6iFIOwpNrtCAhjo01LlA/Tl47QWYHGDKfpoCRTRsw81vblw5db8LSH/MxjbxQmdlyZGzscmNfXwxG996yzvoQvDzMZ7mDsQC2mBfXGikvaPjKbQDGo1Gn3E7fcz1hMG5hKpneFhVAflWFiJhcet8n2fci+qST2t4gJIJU4lJhXmeNQIqT7nkE4xs3uoT3h/oYQ4Ml929cWnp9ytw9vajxHYG+QMyMlrQm0kNYd6FfU8n13xFyM0NP/mP75RWAxVzoD3gSqDGszg5udhedvXOimyeJbLEAMCdwpSet3wQ87hGqGMvKjH0+VU9C77bQJuYrs1/nuUcj8XRV9y9dHZg7MHJ1KLCch6oQAG82sLiHLdH/YNYMQCAlAz9sQ+zs72qmITlDDUbnx+X6I7WyOvs4O7iEHk1s7txhgdKMrTfsnc//k9mzm/xYMgHqm0871Gyi+Xjpolh3U9ZPcw6x5jCokeDIFC/W7dqENTVVKWcjBxuHlsR/1Iu0PCJZ3LTonPIwAZYZbdcfPuS3a5ePDP6cIVnfB/E3WhYw0Lkw7N92RdiGlLqFs8WIBR1lUe5Zo+WTQEAS8Cpi7xU/Dxs4q03jM/JeaclkH7KAQprYiHE4sb8KNew7uoJHZ+g6JuoCnJwjo/LxgLwgdsYF5t6Lap9VdZyvrW40t+roGlwBkTU6donHiE5Ca/oK1SqEOHGiaPTFEQlAVAMZ3Slud6pHKnUTvsCbkdsQexN55ypeiIAiOTS7qcB+c+ihwAEIK5PycnzfDJLZipgOqky2cstu7+jq+F14T1Dv5SH7dR3HXCgetPbmncuqrOuT2ObUphNryhJPl9OH1pYbtUZlZPiEVVP4XE1/8sZc6PY4akF7opqdolonkAYGRsbIZEXxMvejz9MbQ638Eq0T5pZtgbJDKf0RkhU/KVaHlWgBGZdSVbwDt/kR++WFoDYMpDjGJRX1rkYGOBzSDgMhkzmShUAICRwX3jeTXh4rVHG1fmVks3jM9lClWqFN5/KbEo9dyazt1h3ZuWP01ofHfW7Z5PcSX5rUp040vki5nzZcDMDgDg/kX/lQU18vRCEeFHD5bsJcYFV06Su7NtRIaYRtf0L77A5HnBePM56fvXJ5AJPDQAgHJP3Rgfl1d3tlC+tKTkzxGL3++nxpUOLupMwicMDhDm6UAYASoG0yb88P/LhIOhWQAvrwytCzgZX49u0BWlSIJalPonQv1VaPjg3UlwXfym5ZozEgDXoDctP9D5ThO/WrWRjNE6+CD9/rz6lVff54Lg9ERfP3b8R3qtevSwdHc2P8dgceGu9WMi7gbRAvyO8jIRJXeFEwMuFvlToGQeBZuAoAfqgJR+aOtdoWA6sLqjxh76K1UtzWhJgwmACD3yNwAIQN0N/DnQWAjMfGqOgJA/4axfHapC9go4EqK4G7pp5XUmCpgRoLVj8nwX8ZqjNh/7FBzYeDR2eQMeuEEaNgGAYuBSQMoFRCc+uQWPpW4nKT4FKQB6qOKPn63Y+ZgCo69uwXMqlUkbGxkZwOKpAtMYtquf7ibU+sTl1Oc+6RrL9jkdknXlBXdznN0/uyAz7DB1wtqR9KY83UdwWeSI0u/4Zec2zWHeUAYBkgVt9NTs15G63Gq+xD2SQ/Mwn8EGyT6OcIwVY0PqE2Lb3+IS/HAS97NYon4KepJFVXyiBUlOS8V5p1UImm8Ngr5gUKVlR93w+dS2sxLAAgD8zVnrewe9GVPq0XMfQVEhVUFFSaHwfC09+8yIvzfNObc/cCmMRTne9DPTIffaiUwRqAJA1lZXnn48dGMVLAQAUDBiJSywsvNogYIgBAGQCIZfC4Ommo6S9E2U3vzodcyZjDhR0mMy6GHLHNLzmnR5Me/tyIXN+cmJiZGYGz+UpVuwPmyxMjbO3CchsbdUtX6JhJlPc4/LLcrCgVddbdasCcV9rVaaHX0lZF3PFRjn2XFeYd07i09cLi6VRunabdXOl3epAMM4oP++fkHyrTblmxE2RRgsvP3iZVre44qaUYWpizz2fq8EBAF+CtGfcuJd0qxDPXfEzOX2OMjxKWhAKKTVlWcE/fpDdKkHCphImRobHB2eZyHrHT6yqC1GDbLQ/50mgfmxa3thSHEM0GJfj+9XWA1d906cBlKDgvYp+EOUV/Gx4YXElqQSY6yjJe3g+tb+bJAGVmNzRfM/kRqBPWCuPobVHhQxpqTxr5X/MK7FbRgJQT+a0pzidS375dBQAJLBQ98xj16Hvd1s+6GmgAABXyG56fC01M7QHZFwQ1j7NyDj/cGSKLIaJxIoEN3RadzWWQ2rJjL2w707ai+a3xs7UIO5oq091ufuqrIMJAKDmw1hSYe4j18IVsZDeh3EJblcz3lBmAUCJ5bfGn7UKPOZV0yFULGpOBTCNSbzs+fWPP3593T9nbLlAXznPnS0LN797E13WL1ZLAACE7NGsLPPvjx3w9q7j0mVqkHOnXqVHnDN7p7QAAOT2jlz0uUeplS1yAJADtTTjhr+p+ZOkDgofAJBpRvHZwOgwzyoWaXEuUQgl3Y+KShNK+8VS3YGgxDypSXBxetKSM6YzapQiIWUkL8D6+o1rOZPAgXUx0//6eZhrXncdCQA/P55zObwkqpyl5mD5tV4h0Xev1HLmKPMdiRduep5O7OTg1u8EQM0CanHMkyzPh4MEphwAgItBWu7dTC2/pRML4c7NlXtcjr2XXIOAEACQxsZHd/abPggsGGMAgIIjqLtWkBYS1iGd0t6eEmC6I+BamKnXw3rSmHzxAak4/RWloQ6uTyN97qQWXkwdG6avruYAhUjcEpQec9Epe2UsRI4jtOXcMwmPudu+xCoU+MrG8O/1zO1t7/cKJKt6Is7WZQV/fiv6VtP4mrqQd4PfBb02kLkHXmWAYnESleJg2hf6EgErBm1ZOw/kbdCYBi9fgnRVjYAahGMwcBHaYgHLXc71yHkweAf674CAu0iM1AASmCyAl0fgjTW0P4EB4urVPIA2FtIaDZXF68VCpuBVNDRmgFwjLQ3YtfAibTkWwiyATm+oywO8Dk9kZECbKTQ+AbIUhKMw4A0NYTBB+2mMbT0IODPVKSbW105EFhCAvf4EQpurDA3ehkJ97XrmfufQWpqoYkqRF5lxxXcsgjMcT4c+ayxeWPLlNFJ77v3feoderl9c3ZJnC65c1//ytF9OIWltXch6owwApGyk3vfxQ99zJRQMCwBotMbwkN1fGh709q7jMnR8wu3Uynf7hL8cGC2k+rueaY0x3asmLzXIuJMv3yetSjmUkZF/N+YFXsJa+iExLSI24Nc3GionBAAgwWPKPAxMjA5ahndgWVpdKvjCjnvxGSHJLxEZIhOO5Gc9dPdNfzWusxymTHZXPDqX+KpkSKACABkgdYUFaa5hHb1TAgAACQneRMVkZHhWMTXVuPTe7ir/oPzaN8vnXIk7x6v8f38lzbWICGoZSJg1MeduXnR4lwfTApkfSE8y22ny9ZFjF140cqS6RB1f/iBo/+fbjt4OebHsUBi9g+WeQdklTX3SRefwVt0CqIQzr2oT3a48zmvsky7Z6gID+/rJ5YSixy08xeKHOnabvtpudcDowxW4Xot+dH2dWMjIbG+GR2hlQvniJI8r7CgNc8kaLp1SAShVInx/wuG7Pnb+LwjjWlegBhhrC0YH77ONqiBMyri4pvTo8x9gt0qG9E2Cv5PJtq8PoC4+ax7nrm2ydo+MiDXc1Hr24pmjtpaLgZaTZ80Njmz5wy+3Ghhdu5M/RhXAwpuq6kAHN2uH49omjmi0xQlX35txs0SaGABAxGBhktJD7U/Z2J46pWnjcPrUrpOH7P2Csl/OKlgAwG0fLfQ4fcDKyAKNRrugj9uf22dkun3bfxpZ2yRkpBVkpjma79+8fccPXjeevsJNPi8NRhvqux4Nf1lZEfPc9/tvTK32hjXUDAyOPz8f63jU7jDaUScMiUYnJZXjGCBXCwc6Ei847dr+8Zd7DS/nZ3SMzfdlJ/vs0Ud98/EutHtqT+diuJ7ell3oc9jsmJ0lGo12tD+92+WQ/eOg7KEZqXLRJlQAvS89f9y+adOmTbv33enQOcRNIRfjp2Mio4/a7T3tZI9Go9F2rsd2oHfo73N86FPHoksBAGS0sZki9/snD9uuljYxqWx6KfoqIA4Oxbq5nbTa6YBGox3Rh+2tzANcIhpfzXDEzIGRwqteFr/e8vXWT0xsre21XTjYORj94viJE6kNMpkE2KSGzDQ02gONdjzwncm3H3/03Z4fDzmh0V6u7rnPOigsALVCsdAa/dz3kIupw8lTuhHckNsxr7sZw71FIX6m+ls/1t9nG5/9upXaEX3D+sh3hyP8Cl73ZLtct/3q06MBV0uwQ28KWyOPXrI4aWun24mv57Wqhhm+Cnjc0cKcC+Z63+34xOiczZPO/tHeqbKb5w9t/d12o23OUY9atbFiKUKZy7ru73TQwAZtj0ajbeys93jb+VUWdlEQ/hzxVVjIyS/0fvhiq9lpK+1ulCQ1AAAPDklEQVQtO6DRe8x2n3G7UN02K9AdCCJs78BtB2f9Q7u8cx7h5Gwdb6E9O9XllMOeL37Y9uuPfrQ0PbZ0dqoKQCqgDWNu+PlandiP1j4gBzcrE/uv/rD5dzu2uXo9ah1cEdoWUburkkzN795MbmCD+KfUSPJ7oM8OCo0h/zjUOkEtGmrRUHUKilyhvw5EACoARh70noS6vZD8A6TshurTUIuGpiiYmNbWXii5wCmCDnd4fgJeoLWd1DhCsRcMVK2edZEGaLOGnAPQXgx8ncCAkg/EWOhAQ509VJpA2teQaABldlCNhrb7QGGBGgBphi5bSPkaHh+E5iLgjgMtFSp2QtwPkH0VhodAogAFFvD5UO0C5TZQsyhMhRVUOEP/S2ADqATAewXd7lBiDtWOUIuGOjTUoqEaDT3JMP/TMjIM5sgzfzP/IM9KrBjeUsI5h0mwObJp06ZNWz63LW1ahyYqARjjORFX9lmb2IVltBN0qJeQj+9uvHzB86ClpTPaCY1GO7k47N65b+t/fvYNyuJGcumMFAE+rSkz/Z2jDJQS2Uxazm3bXfpHDtmg0WhXN8vDzru3b/36281HrgVUTI4jIKNN4Ercw97nE/78UCgEQ52xQfdO7LHe9eUnP5hu2+egEeVOanUTFTQMXEobmyl6q7Q0AFCreu+dvbD1Z9vNrLUziNNptCXa5nKKXy9tFlECgBA/UX7hoJ3hNr0jDicctQF9BwdX61MPH+SM0AFUAPyJ9q5IN287u2PLl7GydXb1uNvXP8kD4MvJLyuD7A7q/fDxH47vv1dXOzBMaY6967Rj244dm4/4BlbNTUtgobU0btfHu7brmZxalNbG3v5EADq/rxKvHcjIQO7rsCMX9q/xYFcrG6a5uoWPxIYbXps2bdr0T//yh8RcxoryQWxFetSBr01Nd++0dV3qwubkFWev4qp+Kg+USuE7dQsAACLy5HjK1SBHm2NL0qKt7Z2OO12vrenQjdnq2K1t6Eq7FQvILfWBPjfRaPQJ86N6H2/++pvf7jpp6+CCRkeGPx2eUcgB5saLbl/fv+OT3xt/6xAX1jBGG3lRGX7czHDrxzssj4RVV88pFUqJYDy7MsHlzKnDJ7VqcUKj9548dPjy5YSSfhYVQMUYmyt+qyUsZ2R4b6ZS9Hb8899t+kebo4kdo5R1QifrnhcyLx9OveVxRB+lhd75i1bhEZEnjrmanUM/7MFz5ADzxNfxQQf2mC42QaH0ba5G5k6uWJfQXj9NQuuZaTvSM9i5zzuzq2t5qc7iDOUnoo9Y6qNQqN0oA8+omCepyYHHjh+0vh8W+iguatduexMjowMXToRWT4w1Tzz1djtgaxRYllFb0f749Cmr3Xt9MvIJErF0rP/eBS991JLAKNRuFOrWrdQJMsjU/NaaYA8HQ6OdxiaGl1PDanrJzXFBHtaGRkY7zQ6h417V4pee4PB42R2bgzv1USiUnuXOfYmZXYyV+wNVANjRrNsBpgcOmN4LK5leWRCkBHZjXcpls337zfbv379/v731gQeBri4xhR4VTPJSR4rh1tsenqulDbz1dGi5okfNVIxmhV46bqCHQqEMUPrXfB680WZnqK3dT91tLE2NjY1NDPX09RYfgJ6BgfGVS6E9I6ACmJ8tDA9FocxQKJSBkaHRzp1GBkb6KBTqgNHOB/E1uMWKYTaxNjHWxMBcD6WDM45XixtIXa8T/a4bGJrsNDE4GRlV3LEwWFB8+cSeY9ftnra218RlXN2709LhTFrfkFImHC/JPbbfekUn1uZHM58Nc1TAYfakRdscOmhkZGKFNol82dzzejDvuqXZThMjw/3OvoHVpFmtZoRAqsy652yoh9JDoVB6bk7eDb2agc4ZnSn2uWBvZmhkbGywdMt6KJSBpV9KyrBMsHolMCl4edfS/L717b5V6xvt2anGenoGxkbGJjuN9A30l85O1fQiAmJxym0HfRRKcx09ewfTqAd3nU9f2WV/1L+qfXaFRfDnOppvodwD7lzvknN/SjBE0A8jbtAeCA33oGQf5BtAHgryLeBFGiw9HlIMvNKDQgMoMILnhpCvB7koKLsE/UMgWJqxhYCNhko9yEdBHgpyUVC4ExrSAY+smb3wgC+CF6kwviJ3DQouTF+FGhQU6EG+ITwzhueGUKAH2SioOgdYOqgBWBXwei88N4ZsO6hKhoU3gI+DQkPIM4Liy9DVAZqqJDkFZoOgxhRyUJCLglwUVPjA4PSKjDX9KTTrwzM9yEVBAQryUJCDgpdBQJH8hGCSmtc6U33t4rWn8YXrVzMDAMA8oSEuZs+hQ6Y+PvF94+uWeaoUMJ6VkxN2ImfwNWElmZGz+H2Poq9YGGhN2uHU6duR0T6OJ3dbuQWlDonZwCGURYTqrR1lFitGmWJiMDfEx0TfRA+FQh2xtgnKyUu+ffP0zsMO5zL632iqnNQjbXfe5xP+7JDJkI66q87uegb6hsYmRgbGBtqRhr6bXYbX2YiuGH6btHgAACDXxsc5G+8z0FtsYITS9/WJerP0qMTUhforPoneLgHRVw8f3WdiqI9CofSMd9tElJVgl+yWhYzkJzgePrDsWPQPOl6O7+YR1QDAkc2WpF+wP2ZotHOPpcGt0rzWTtyLe262FsZGRqbWaK/80SERyAnd9UGH0XsNDfRQi27Dzsr+Wc0sT+dhiznDxZmH9632YEfSC4eYOssbHmukMNvO+pipy5mbrzoQma654F805Ds5xN6/ct7Pee8uIwN9PRQKtdPmrE/Z3CgCAAoV/5261XYjUFLrnl1ztF6SFqVnanUyuGpmdPXhfot2m41ZabdCZLay4PTRkygUSs9A33CnibGRiaGenp4BCuV5IbhrSC4DGH2TfNPDwGi3saGRa7hHYS+hOyv9tqOBofFOI+Pjwbk5o3JNj8hwXdFlY2uTJZ0YuEY8r2HojNO3W8KsloWIuYO52cc/Mf700NGAjv7VNeZarMtC1KDiLTBIOOwi6PNkLo9HpzKINApLc2ymWiVFWEQ8YakNFkeZZ/OVKw9/lPB5NOxSGxyeOC9Q6OhMrZYJeTQyGYfFYvFYHIODCAQCDo1KIi8sMFnsBTyBSiQQyHQSUyCViuXIPINMxs/zuEKhBKHTyQQig4soAEAlZzMYy+JisVgcFjs/z5HKQQ0qkYBJp+IJJCKBwOAuCMRyIXueTiEQCCQikcoWCJajq3K5iE0l4XFYLBZLwhMRwTp+US7js9lUGo3K4Qrla76XCDmk6dHBoUEMBjM40vGiJ+OcX2zctVrWMgsBlZS1rrQSHc2oQCFgz1Pw2u+ZTGRRSoVQxKGRySQikUjC43S6weGJ8/McTdheIUMWmFgsHovF4gh4AolEwBNwWCyWgMOx2ILlN5moJDwuAUfUlQVLIdN5ArlIyJ6fxxOIJAKewlrgiZVSvnCeQiIzSByRSIjwmSQSiUzliqUAoBQLyATyik5IBCIXkSgBlAoxd4FMIhMIJDIVzxIIxUIJMk8kEokEPJnGmOfLFzOaalCL+Ww6ftHmaMzFHSlKqYzHoFHJBAKRiMfq3DKexOIt71BWKRQSnpCP8PANM+X+6Lt5fhX0VQRFe3YqDovFEwlEEomAw+OWzk5daiXksanLV6FQiVwed56xQKSQGHzRygSsSjAnbA1GB4ebJg7PcD54W7cMFmqg1xaaY2B4HObHgDMDCBYQIgj4sHRykJwFAiwgeOATgI8HBAtcLPBoIJaASodiKDggwAGC1TZA8CDirzejK0EhBqEAZCvTCWolyOjAxwKiuRYR+ARtV3yq9q03Sj4ICcAnAo8KfA4oxSBnAw8PPALwGSASLcqjBgULBATgYrV/fCasyoepeCDGAU8j6qLMgnmQqz9w0a8GtYLZEV0RvONWZnU57h3URakQIwiVTqeyWMjqdJaO+ngCIYcqVKzZy6oGBZfDXHKDFAqNzeWxGTQimTrPkaiUoJTzPmSUKeR89oLG0rAkEoUtEAk4bDqJTKFxxWJtow/xCX9uqNVKkYBOoeLwODyRRMATF4cihcnlyXQd+1ul1ViWUoxwGSQd74TD4phMjtYQVHIpHfMm19klNCA8EzPTNT41OT2rcWAUjnCZXoMaFEIulaTjnXBE6jxXprFtpVrG49AoFAKBRCLhmTxEKJLxF6gUMpFAIJEpdEQiUQEoJCI2lU7C45f7oJCogtXn/ijE/HU8GAeR6B4BqVLKBHwGnU5lMtliiWqxLkStUkiEA2lPH9o6ROVUlU9ODY9Pz87OYbFYPJk2L1LK1QCaaeiDdCsRMKk6kuDwJApLrFin8Gl9u1UpZXyETCRhsVgcHkcgEYmExWvRaEyRRK0GkIg58zQ8gUTEE2gLVEQsF3E5TJrW2TMRrmTx1hRS0TyevKw7PI0rWlkD+167ZWBrnkRtt7t59Xn1vOJtxrzxTt0/MQTTnU1RaG+0g4ODg73NqQOnLt/JeNlPedsWlg38yaCg9Qxk2Pk4Wljs/mH39k9/+S3K1CeldBK4f9a1pFoMvJnUkFC3c/eLRlnU9/9AewhYx2HI+N+Q9BVknoLGFOD/jdQE/BeADEQD9U9uXTntWdI0Sf3bfk3XBtaC3vU8/YyByUf/vvl323Yc9bKLaOwh/hd++Y5CwBrO9r9m/OWW//Mfn+/Ys+dMZHDR3B9z1sN/Twi5+InB4t7JKc47topvsJA/MViDtSU3LdFWmqOLTx+8UfYCs/Gezb8EllnIQcuDVsesj1h5hSYXTWp3q/5ZQaquanry9OUs58NZSN8FeHECyo/Ac2uoDYd5/J9ZxP8+kIFooK2mJiFpkEj48O2nG/hbAb3red61Q2jb40ePHTl8GG3pV1yDWXj/z/5WoWEh912PHDlx/KiVpaWd/6UnvSteFrGB92GDhfyJoVLIpMLFF/jx+DzR6ve6bODPhcWMDMLj8fgCAZ8vEkukyr9IcZ9CrpJK5co1O3nfApUMFEKQC0DGBxkPZCJQ/T9vGvn/BmpQK+RyhUSqXuddehv4m4dKLpUKeQKhQCDg83l8nlAq+y/tItUqhUQoFvL5AgGfz+PxhAKJQrVhmj8FGyxkAxvYwAY2sIEN/HWwwUI2sIENbGADG9jAXwcbLGQDG9jABjawgQ38dbDBQjawgQ1sYAMb2MBfB/8X1Jh1Ecutdy4AAAAASUVORK5CYII=" alt="" />
自己分装Ajax的实例代码:
var Http=
{
XMLHttpRequest:function() {
try
{
var oRequest = new XMLHttpRequest();
return oRequest;
}catch(ex)
{
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"]; for (var i=0; i < arrSignatures.length; i++) {
try { var oRequest = new ActiveXObject(arrSignatures[i]); return oRequest; } catch (oError) {
//ignore
}
}
}
throw new Error("MSXML is not installed on your system.");
}, Get: function (sURL, fnCallback,fnLoading)
{
var oRequest = new Http.XMLHttpRequest();
oRequest.open("get", sURL, true);
oRequest.onreadystatechange = function () {
if (oRequest.readyState == 4) {
if (fnCallback) fnCallback(oRequest.responseText);
}else if (fnLoading) //call loading function...
{
if (fnLoading) fnLoading();
}
}
oRequest.send(null); }
}
 五:JavaScript中错误的Error对象:

类似于java的错误基类Exception,javascript有个基类Error,Error对象有以下特征:

pname –表示错误类型的字符串
pmessage – 实际的错误信息

Error对象的名称对应于它的类,可以是以下值之一

1、EvalError: 错误发生在eval()函数中

2、RangeError:数字的值超过javascript可表示的范围

3、ReferenceError: 使用了非法的引用

4、SyntaxError: 在eval()函数调用中发生了语法错误。

5、TypeError:变量的类型不是预期所需的

6、URIError: 在encodeURI()或者decodeURI()函数中发生的错误

说明:Mozzilla和IE均扩展了Error对象,如IE中提供了一个number特性来表示错误代号,也可用description代替message

引入throw语句,用于有目的的抛出异常

语法如下:throw error_object

error_object可以是字符串、数字、布尔值或是实际的对象。如:

throw  “an error occurred”;

throw 5007;

throw true;

throw new Object();

throw new Error();

throw new Error(“error”);

throw new Error(10001,”error”);

其他Error子类也可以使用

如:

throw new SytaxError(“语法错误”);

throw new TypeError(“数据类型有误”);

throw new EvalError(“Eval类型错误”);