vue-plugin-hiprint使用教程【2】
/ 文件名:printProvider.ts// 移除 旧的 customModule "元素"类型, 以避免重复// 这里不可用defaultModule,以为已经被插件占用了,如果用了,会导致与默认的provider冲突// 添加 customModule "元素"类型// 如果使用 hiprint.PrintElementTypeManager.build('.hiprintEpContai
·
4、新增拖拽区域的元素【新增providers】
参考文档:https://mp.weixin.qq.com/s?__biz=MzUyMzg5NDU0Mg==&mid=2247484532&idx=1&sn=4d76bd1545113e963453d11821044043&chksm=fa34ee15cd43670346c4ad52d0bca1e88eef6eff742da6012c802bfe4edb84767f0c9612511c&cur_album_id=2779135389654630403&scene=190#rd
4.1、默认的拖拽元素
文本:defaultModule.text
图片:defaultModule.image
长文:defaultModule.longText
表格:defaultModule.table
空白表格:defaultModule.emptyTable
自定义文本:defaultModule.customText
横线:defaultModule.hline
竖线:defaultModule.vline
矩形:defaultModule.rect
椭圆:defaultModule.oval
条形码:defaultModule.barcode
二维码:defaultModule.qrcode
4.2、自定义providers
4.2.1、新增自定义provider
// 文件名:printProvider.ts
// @ts-ignore
import {hiprint} from 'vue-plugin-hiprint'
import $tools from "@/utils/tools";
import {DateFormat} from "@/share/config/enum";
export default function (options:any) {
const addElementTypes = function (context:any) {
// 移除 旧的 customModule "元素"类型, 以避免重复
context.removePrintElementTypes("customModule"); // 这里不可用defaultModule,以为已经被插件占用了,如果用了,会导致与默认的provider冲突
// 添加 customModule "元素"类型
context.addPrintElementTypes("customModule", [
// 如果使用 hiprint.PrintElementTypeManager.build('.hiprintEpContainer2', "customModule") 这里会渲染这个 "常规" 分组名称
new hiprint.PrintElementTypeGroup("常规", [
{
tid: "customModule.printDate",// 唯一 key
type: 'text',// 元素类型
title: "打印日期", // 这里和 options 中的 title 一样。"拖拽时就显示" 优先级高于 options 的, "无法彻底删除"
// field: 'text' // 这里和 options 中的 field 一样。优先级高于 options 的, "无法彻底删除"
// data: "1111", // 这里和 options 中的 testData 一样。会有冲突, "无法彻底删除"
options: {
title: "打印日期",
field: "printDate",
testData: $tools.DateFormat(new Date().getTime(), DateFormat.YMDHMS)
}
}
])
]);
};
return {
addElementTypes: addElementTypes,
};
};
4.2.2、自定义provider的引入
// 在组件中导入自定义的provider
import PrintProvider from "@/share/printProvider";
hiprint.init({
providers: [defaultElementTypeProvider(),PrintProvider()],
});
4.2.3、在HTML中编写自定义provider里的拖拽元素
<div class="ep-draggable-item" tid="customModule.printDate">
打印日期
</div>
// 完整的demo代码
<template>
<div class="component" ref="componentRef">
<el-row>
<el-col :span="6">
<!-- 拖拽区域 -->
<div class="ep-draggable-item" tid="defaultModule.barcode">
条形码
</div>
<div class="ep-draggable-item" tid="defaultModule.text">
文本
</div>
<!-- 自定义,下面的tid就是自定义那边设定好的tid -->
<div class="ep-draggable-item" tid="customModule.printDate">
打印日期
</div>
</el-col>
<el-col :span="12" :style="'border: 1px solid #f0f0f0; padding: 20px;max-height: '+fullHeight+'px;overflow: auto;'" >
<!-- 画布区域 -->
<div id="design-content"></div>
</el-col>
<el-col :span="6">
<!-- 设计元素属性配置区域 -->
<div id="design-element-option-set"></div>
</el-col>
</el-row>
</div>
</template>
<script lang="ts" setup>
//@ts-ignore
import { hiprint, defaultElementTypeProvider } from "vue-plugin-hiprint";
import {onMounted, ref} from "vue";
import PrintProvider from "@/share/printProvider";
const componentRef = ref();
const fullHeight = ref();
let _printDesignObj:any; // 无需响应式声明
hiprint.init({
providers: [defaultElementTypeProvider(),PrintProvider()],
});
onMounted(() => {
fullHeight.value = componentRef.value.clientHeight;
buildLeftElement(); // 构建拖拽元素
buildDesigner(); // 构建画布和属性
});
const buildLeftElement = () => {
// @ts-ignore
hiprint.PrintElementTypeManager.buildByHtml($(".ep-draggable-item"));
};
const buildDesigner = () => {
$("#hiprint-printTemplate").empty();
_printDesignObj = new hiprint.PrintTemplate({
settingContainer: "#design-element-option-set", // 设计元素属性配置区域
});
_printDesignObj.design("#design-content"); // 画布区域
}
</script>
<style scoped lang="scss">
</style>
4.2.4、截止到这步的演示视频
vue-plugin-hiprint演示效果
5、常用方法
保存实例:designObj = new hiprint.PrintTemplate();
5.1、获取模板JSON数据
designObj.getJson();
5.2、将模板JSON数据更新(回显)到设计器中
designObj.update(jsonData)
5.3、初始化时的参数
new hiprint.PrintTemplate({
template: '', // 这里可以直接传入JSON模板
settingContainer: '', // 属性配置容器ID
fields: [{ // 如果有配置这个内容,那么属性配置那边的字段名就会从input框变成select框。field相当于select的value值,text相当于label展示值
field: '',
text: ''
}]
})
5.4、获取当前页面方向
const paperOrient = designObj.getOrient();
// paperOrient = 1,表示纵向,默认方向
// paperOrient = 2,表示横向,
5.5、旋转页面(横向纵向,跟打印时横向纵向不同)
// 旋转页面方向,将页面宽度高度互换。因此只有横纵两种情况,纵为默认方向
designObj.rotatePaper();
5.6、清空内容
designObj.clear();
5.7、设置页面大小
//内置的几种页面大小
const paperSize = {
A1: {width: 841, height: 594},
A2: {width: 420, height: 594},
A3: {width: 420, height: 297},
A4: {width: 210, height: 297},
A5: {width: 210, height: 148},
A6: {width: 105, height: 148},
A7: {width: 105, height: 74},
A8: {width: 52, height: 74},
B1: {width: 1000, height: 707},
B2: {width: 500, height: 707},
B3: {width: 500, height: 353},
B4: {width: 250, height: 353},
B5: {width: 250, height: 176},
B6: {width: 125, height: 176},
B7: {width: 125, height: 88},
B8: {width: 62, height: 88}
}
/**
* 这种设置方式在执行_printDesignObj.getPaperType()时能够正确获取到页面的类型,如A4
* @param paperSizeType 内置的页面大小名字,如A4
* @param {width:width,height:height} 对应的宽高
*/
designObj.setPaper(paperSizeType, {width:width,height:height});
/**
* 这种设置方式在执行_printDesignObj.getPaperType()时获取回来的是undefined
*/
designObj.setPaper(width, height);
5.7、页面放大缩小
// 这里的scaleValue是小数形式,如100%为1,50%为0.5
designObj.zoom(scaleValue);
// 示例 缩小到54%
designObj.zoom(0.54)
5.8、浏览器打印
designObj.print(printData, {}, {});
5.9、获取模板的HTML效果
designObj.getHtml(printData);
5.10、获取PDF文件
// scale为PDF清晰度,越高文件越大,浏览器约卡
// isDownload true为直接下载,false为先打开新的窗口预览
// type:''、'arraybuffer'、'dataurl'、'bloburl'、'dataurlstring'、'pdfobjectnewwindow'
_designObj.toPdf(printData, fileName, {scale:2,isDownload: false, type: pdfType}).then();
5.11、拖拽元素动态更新【比如图片】
hiprint.updateElementType('defaultModule.image', (type:any) => {
type.data='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAALQCAYAAAC5V0ecAAAgAElEQVR4nOzdd3TUdb7G8WcmvZEAofeOEGroIIq9YEOwiwoq2CEgXUBRQSkiIKhrb1jWXXfXtVd67016kd5bSEiZ+8e4XlRKJpmZ76+8X+d49njulTz37jF582PmMx41mipYXjlJVX/7q+xvf19aUnFJKb/9Z4KkRElRkuIlxRjYCQAA/ihbUqakHEnHJB2XdFDSod/+c4+kXb/9tUnSZkk7TQxFwUWaHoDfJUqqL6mhpAaSakiqLn80x5qbBQAAiiBG//9Qq3QB/5ks+UN6o6QNkpZLWiZppfwRDsMIaDMSJDWXdL6kxpIaSaomyWtyFAAAsIRYSXV/++tU+fI/pV4qaYmk6ZLmy/9UG2Hk4SUcYVFK0oWS2khqK6mJ+M0LAAAoulz5Y3qGpFmSfpK01+QgNyCgQyNCUgtJV0q6QlK6eLoMAABCL1/SQklfSfpS0jxJeUYXORABHTxx8gdzF0mXSSphdg4AAIAOSPpG0t8lfSHphNk5zkBAF02M/E+Yb5Z0jfxvBAQAALCiY5L+I+kj+Z9QZ5udY18EdOG0lnSfpE6Skg1vAQAACNQRSf+Q9Kqk2Ya32A4BXXAlJHWVdK/85+YAAACcYKWk1yW9Lf9LPnAOBPS5tZDUS/6nzXw4CQAAcKps+Z9Kj5f/zYc4Ay5DnJ5X0rWSpkmaK+lWEc8AAMDZYuRvnrnyN9C1ohVPi/+n/FGMpPslrZL0L/k/6AQAAMBtzpe/hVbJ30Z8KvIpCGi/aEk9JK2X9IqkOmbnAAAAWEId+dtonaSe8jeT67k9oCMl3SPpF0kvS6podg4AAIAlVZQ0Rf5m6iaXf6KyWwPaI/9rfFZJekNSVaNrAAAA7KGq/Bc7VsnfUh6jawxxY0A3kfSzpA8k1TK8BQAAwI5qyd9S0+RvK1dxU0CXk/93TAvEmwMBAACCoZ38bfW6/K3lCm4I6EhJGZLWyv+aHTf83wwAABAuXvkba638zeX410c7PSYbyf/xlGMlJRreAgAA4GSJ8jfXbPkbzLGcGtBxkp6V/48UmhneAgAA4CbN5G+wZ+VvMsdxYkC3kbRE0kC54I8QAAAALChS/hZbIn+bOYqTAjpS0pPyX9iobXgLAAAA/E32s/yN5pgHm04J6Ory/5czVA76LwcAAMABIuVvtGnyN5vtOSGgu0paLAf+8QAAAICDtJa/2bqaHlJUdg7oWElvSnpbUjHDWwAAAHBuxeRvtzclxRveUmh2Dega8p9IudvwDgAAAATubkkz5W8627FjQF8uaZ6kxqaHAAAAoNAaS5ovf9vZit0COkPSfyWVMD0EAAAARVZc/rbLMD0kEHYJ6AhJL8n/6TYRhrcAAAAgeCLkb7yXZJPOs0NAJ0r6l6QHTQ8BAABAyDwof/Mlmh5yLlYP6PLy33e+2vQQAAAAhNzV8t+LLm96yNlYOaDrSJolqanpIQAAAAibJvJfW6tjesiZWDWgm8j/u48qpocAAAAg7CrL34KWfJBqxYBuLelHSaVNDwEAAIAxpSX9IH8bWorVAvp8SV9LSjY9BAAAAMYly9+G55seciorBXRbSV9JSjI9BAAAAJaRJH8jtjU95H+sEtDp8h/Rtu1nogMAACBk4uVvxWamh0jWCOgGkr4UL9sAAADAmSVL+kL+djTKdEDXlPSNpFKGdwAAAMD6SsnfjjVNjjAZ0BXlf2dlWYMbAAAAYC9l5b/YVtHUAFMBHS/pP5IqGfr6AAAAsK+KMvj+ORMBHSFpqqTGBr42AAAAnKGh/E0ZEe4vbCKgJ0q61sDXBQAAgLNcK39bhlW4A7qvpAfC/DUBAADgXA9IejycXzCcAX25pFFh/HoAAABwh5Hyt2ZYhCuga8rQa1QAAADgeP97j11YztuFI6DjJX0iqXgYvhYAAADcqbikvysMlznCEdCTxMUNAAAAhF4jSS+F+ouEOqC7SronxF8DAAAA+J+7f/srZEIZ0HUUht8BAAAAAH8ySf4WDYlQBXS0/C/kTgzRrw8AAACcSYL8LRodil88VAH9pKQmIfq1AQAAgHNpIumpUPzCoQjodgrzMWsAAADgNPrK36ZBFeyAjpX0hrj3DAAAAPMi5G/T2GD+osEO6GGSagX51wQAAAAKq5b8jRo0wQzoRvI/JgcAAACspK+C+LkkwQroCEmvSYoM0q8HAAAABEuk/K0alJcZByuge0lqFqRfCwAAAAi2dEm9g/ELedRoalF/jQqS1oibzwAAALC2Y5LqStpelF8kGE+gnxfxDAAAAOtLlL9di6SoAd1W0q1FHQEAAACEya3yN2yhFSWgPZLG/fafAAAAgB0UuWGLEtA3S2pRhH8eAAAAMKGFivAqisIGdJSkpwv7RQEAAADDnpK/aQNW2IC+V1KNQv6zAAAAgGk15G/agBUmoOMkDSnMFwMAAAAs5An52zYghQno+ySVL8Q/BwAAAFhJOUn3B/oPBRrQcZL6B/pFAAAAAIvqpwCfQgca0HeLp88AAABwjvKS7gnkHwgkoCMl9QloDgAAAGB9/eRv3QIJJKA7icsbAAAAcJ4q8rdugQQS0L0D3wIAAADYQoFbt6AB3eq3vwAAAAAnKnDvFjSgHy38FgAAAMAWCtS8BQnokgrgNSEAAACATXWSv33PqiABfaekmCLPAQAAAKwtRlLXc/0vFSSgC/UZ4QAAAIANnbN9zxXQbSXVD84WAAAAwPLqyd/AZ3SugO4WvC0AAACALXQ/2//wbAEdI6lzcLcAAAAAlnejzvIewLMF9JWSigV9DgAAAGBtxeRv4dM6W0DfFPwtAAAAgC2csYXPFNDxkq4JzRYAAADA8q6Rv4n/4kwBfZWkxJDNAQAAAKwtUWd4GceZArpL6LYAAAAAtnDaJj5dQEdJujy0WwAAAADLu0L+Nv6D0wV0O0nJIZ8DAAAAWFuy/G38B6cL6DOe7AAAAABc5i9tfLqAviwMQwAAAAA7+Esb/zmgy0hqGJ4tAAAAgOU1lL+Rf/fngL5QkidcawAAAACL88jfyL/7c0C3D9sUAAAAwB4uOPVvCGgAAADg7M4/9W9ODehkSfXCuwUAAACwvHo65czzqQHdQmf+ZEIAAADArbzyt/Lvf/M/rcO/BQAAALCF31v51IBubGAIAAAAYAe/t/KpAd3AwBAAAADADn5v5f8FdIKk6ma2AAAAAJZXQ1KS9P8B3VC8gRAAAAA4E4+kNOn/o5mXbwAAAABn10AioAEAAICC+kNA1zA4BAAAALCD2tL/B3RVczsAAAAAW6glEdAAAABAQVWSFOWVVF5SnOExAAAAgNVFSqrgFU+fAQAAgIKqREADAAAABVfJK6m06RUAAACATZT2SippegUAAABgEyW8klJNrwAAAABsohQBDQAAABRcSa+kEqZXAAAAADZRktdAAwAAAAVXwispxfQKAAAAwCZSvJKiTa8AAAAAbCLWKyne9AoAAADAJuK8krymVwAAAAA2EemVlGR6BQAAAGATCTx9BgAAAAJAQAMAAAABIKABAACAABDQAAAAQAAIaAAAACAABDQAAAAQAAIaAAAACAABDQAAAASAgAYAAAACQEADAAAAASCgAQAAgAAQ0AAAAEAACGgAAAAgAAQ0AAAAEAACGgAAAAgAAQ0AAAAEgIAGAAAAAkBAAwAAAAEgoAEAAIAAENAAAABAAAhoAAAAIAAENAAAABAAAhoAAAAIAAENAAAABICABgAAAAJAQAMAAAABIKABAACAABDQAAAAQAAIaAAAACAABDQAAAAQAAIaAAAACAABDQAAAASAgAYAAAACQEADAAAAASCgAQAAgAAQ0AAAAEAACGgAAAAgAAQ0AAAAEAACGgAAAAgAAQ0AAAAEgIAGAAAAAkBAAwAAAAEgoAEAAIAAENAAAABAAAhoAAAAIAAENAAAABAAAhoAAAAIAAENAAAABICABgAAAAJAQAMAAAABIKABAACAABDQAAAAQAAIaAAAACAABDQAAAAQAAIaAAAACAABDQAAAASAgAYAAAACQEADAAAAASCgAQAAgAAQ0AAAAEAACGgAAAAgAAQ0AAAAEAACGgAAAAgAAQ0AAAAEgIAGAAAAAhBpegCCKz42Qh3bV1CH5qXVskFJ1aqcpKhIr3w+nzwej3Lz8pWTmy+fz/RSWF2E1yOPV8rL88nnk+JiIpSf79PmnZlatvaQZi/bp+/n7tbKDYdNTwXwJ6WKx6h+jWTVqVpMNSslqkr5BFUoHafSJWJVoli0EuMjFR3l1cmcfGVm5Sk7J08xURFKjI9UZITH9HyEWPbJfB06elKRkV6lJEVp9/4srdl0RPNWHNBPC/bo61k7TU+0PI8aTSWlHOLSVmV1/4011PnSSqanwCXWbzum9/+7WW/9e5M27zhueg7gWlGRXrVrkqo2jVLVIq2kmtUvofKl4kzPgg3l5/v0/hdb9Na/N+mHebtNz7EsAtohbruyip7oUV91qxYzPQUu9MX0HRr99hr9tGCP6SmAq7RplKrLWpfVxS3LqF2TUqbnwEHWbjmq0W+v0Wv/2GB6iiUR0A5wWZtyemlgU9WslGR6Clxs0ZqD6jt2sX6cT0QDoRQV6dX1HSroug4V1bF9eSUnRpmeBIfadyhbAycsI6JPg4C2ufjYCH0ypp2ualfO9BRAC1cfUJe+M7VpOy/nAELhlisq6+bLK+v6DhVNT4FLrN1yVA88s4CXc/wJVzhs7oaLKhLPsIz080ro2UcamZ4BOM4lLcvonadbaeqoNsQzwqp2lSTdfW010zMsh4C2uSvblTc9AfiDzpdUVIfmpU3PAByhQuk4De+ZprdGtNKdHauangOXuv2qKrq8DQ/rTkVA21yzeiVMTwD+IDLSq8H31jc9A7C9K9qW08tDmmtYzzRVKM1FDZjj9Xp0YTMejJyKO9A2V7EM31RhPe2alFJazWStWM+NaKAwHr6llvp0rauq5RNMTwEkSS3SeGB3Kp5AAwi6mGiv+t19njx8HgMQkBLJ0Zo4IF0v9mtKPMNS6lbjTO6pCGib49oBrOqmyyrrohZlTM8AbKNOlSR9MekCPXxLLXm9/O4T1lKmZKzpCZZCQNvcnGX7TE8ATism2qthPdIUHcW3GeBc0s8roW9f6aCWDUqangKc1p4DWaYnWAo/2Wzuu7ncZYR1nd+0lG65orLpGYCltU8vpW9fuVCVysabngKc0S+bj5qeYCkEtM395+ftWrjqgOkZwBkN6l5fpUvwR3/A6Vzeupy+mdJBxYtFm54CnNW8FftNT7AUAtrmMrPyNPL11crOyTc9BTitOlWT1KNzDdMzAMu5qEUZfTXlAsVE86MY1ubzST/O32N6hqXwb60DfPr9No16fZXy8vlUdljTgzfVUvWKiaZnAJZxVbvy+v7VDqZnAAXyn5+366uZO03PsBQC2iGGv7xCgycuU/ZJnkTDesqmxqrX7bVNzwAs4d5ONfT5xPNNzwAK5Ghmrl76eJ3pGZZDQDvIc2+u1nWPTdfhYzmmpwB/0e366krnkzPhco/dXluTB6XLw5F02IDPJ/37p1/1zaxdpqdYDgHtMF/P3qnre03Xzn0nTE8B/iAhLlJPPZimCO7bwqUevqWWRj7aSFGR/OiFPRw9nqPHxy01PcOS+LfYgX5asEedMmZo8w4+ZAXWcmXb8up0cUXTM4Cw63tXXT37SCPFxUSYngIUiM8nffj1Vh7InQEB7VBzlu1Xl74ztXVXpukpwO88HmlAt3qKjyUi4B5D7quv4T3TlJQQaXoKUGDHT+Tq6b+tND3DsghoB1uw6oBuzJihjb8eMz0F+F3T84qr2/XVTc8AwmLIffU16N56SogjnmEvUz5Zr208hDsjAtrhFqw6oGsenaaVGw6bngL8ru9ddVUuNc70DCBkoqO8GtqjvgZ2r8fLNmA7Bw6f1MjXV5meYWkEtAus2nhEnfvO1PJ1h0xPASRJVcolqPeddUzPAEIiJtqrYT3SNPje+rxcCbY04tWVOnjkpOkZlkZAu8SaTUd0Q8YMLVtLRMMa7utUXQ1qpZieAQRVbEyEhvdsoAHdzlN0FD9iYT+bth/XlE+4+3wu/NvtIhu2HdN1vaZr4aoDpqcASkmK1oBu55meAQRNQlyknnwgTY/fXVdezjXCpvqOW8yHshUAAe0ym3cc1839Z2kBEQ0L6HxJJV3csozpGUCRpSRFa3TvxurTtS63zmFbMxbv1T9/+NX0DFsgoF1ow7ZjuqH3DE1ftNf0FLhcdJRXTz7QgNeJwtZSkqI1rm8TPXBTTeIZtuXzSb1HL5bPZ3qJPRDQLvXr7kx1eXymflqwx/QUuFzbxqm69coqpmcAhVIsIUrj+jbRPddVMz0FKJJ3P9/Mn04HgIB2sd37s3Rzv1n6eSERDbP6dq2rMiVjTc8AApKaEqPJg5sRz7C94ydyNWgiH9kdCALa5fYcyFKXvjP13dzdpqfAxepWK6b7OtUwPQMosFLFYzRxQLpuv4o/PYH9Pf/Wam3fw0d2B4KAhvYezNbN/Wbqixk7TE+Biz10cy1Vq5BgegZwTqkpMRrfr6luuaKy6SlAkW3dlakxb68xPcN2CGhI8n/q0B2D5vDuWxhTNjVW/e/hrB2sLTUlRq8Pb6HbeN0+HGLgi0uVmZVneobtEND43cEjJ3Xn4Dma+uUW01PgUvdcV10tG5Q0PQM4raSESL37TCtde2EF01OAoJizbL+mfsXP/MIgoPEHx0/kqtvweXrvv5tNT4ELRUd5NbxnGqfAYDnxsRH6dGw7XdG2nOkpQFD4fFKv0Ys4W1dIBDT+Iis7T/c/NV/vf8HvShF+V7Qtp+s68IQP1pEQF6nPJ16gS1uVNT0FCJr3v9isucv3m55hWwQ0TutEdp7ue3Ke3vhso+kpcKFB3espKSHS9AxACXGR+vaVC9WheWnTU4CgyczK06CJy0zPsDUCGmd0IjtPPZ9eoFc/3WB6ClwmvV4Jdbu+uukZcLnixaL1w986qHXDVNNTgKAa/dZqbduVaXqGrRHQOKuc3Hw9PHKhJn+8zvQUuEyv2+uoYpl40zPgUtUqJOjrKReqRRpvaoWz/Lo7U8+/tdr0DNuLUNnOw02PgLXl5/v09cxdSoyPUutGPIlBeKQkRSvC69FXs3aangKXqVkpUV++dKEa1koxPQUIuodGLtTC1QdNz7A9nkCjQPLyfeozdjG/a0VY3XN9NTUgYhBGVcsn6D8T2qt2lSTTU4Cgm7t8v97/YrPpGY7AE2gE5Pu5uxUXG6G2jUuZngIXiImOUPFi0fr0u22mp8AF6lRN0j/GtlP9msmmpwBB5/NJXR6fqV9385HdwcATaATE55P6j1+qoZOXm54Cl+hyWSUuICDk0mom64ORbdSwNn/iAWf68KstmrOMs3XBwhNoFMq0hXuVeSJXl7QqKw+feYEQ8no8qlk5Se/9d7Py8rn4j+CrV72YPnyurRrVIZ7hTJlZebqh93QdPpZjeopj8AQahTb67TUa8OJS5RM1CLG2jVN1Z8eqpmfAgWpVTtJn489XGi/bgIONfWeNtnK2LqgIaBTJ82+tVq/Ri5WbR0QjtAZ0q6eyqbGmZ8BBmp5XXD+/cZFqVeYNg3Cu7XtO6Lk3OQAQbAQ0imzi1LV69LmFOpmTb3oKHKxmpUQ90KWW6RlwiNYNU/XvF9urXGqc6SlASA2auFTHT+SanuE4BDSCYsrH6/XIqIU8iUZIPXBTTZ4Wosjap5fSp+PaqkJp4hnONn/lAb37+WbTMxyJgEbQvPrpBj08ciFv9ELIlCoeo7531TU9AzZ2YbPSmjqqDU+e4Xg+n9R79CL5+JEcEgQ0guqVv69XjxHzlX2Sl3MgNLp2rKrWDflETASuY/vymjqqjcqXIp7hfB9/s1Uzl+wzPcOxCGgE3ev/3Kjuw+cqMyvP9BQ4UGxMhIb2qK8IL/cTUXBdLq2k14e34I2ocIWs7Dz1e2GJ6RmORkAjJN7/You6DZuro8d54wKC7/I25XRdhwqmZ8Ambr2yiiYOSFfpEsQz3GEMZ+tCjoBGyHz09VbdPmi2Dhw+aXoKHMbjkYb2SFNCXKTpKbC426+qohf7NVWZksQz3GHHXs7WhQMBjZD6z8/bdUv/Wdp7MNv0FDhMo9op6tG5hukZsLCbL6+sMRlNVKp4jOkpQNgMnrhMxzL5099QI6ARct/O2aXbB87WwSM8iUZwZdxZl1NkOK07O1bVS4PSec0zXGXBqgN6h7N1YUFAIyy+nbOLJ9EIugql49T7jjqmZ8Bi7u1UQ5MGpqtkMk+e4R4+n5QxZrHyOSUbFgQ0wuab2bvUpe9M7dh7wvQUOMj9N9ZUw9oppmfAIh68qZYm9G+qYglRpqcAYfX377Zp+qK9pme4BgGNsPp54R7d9DgRjeBJSojUE/fVl4erdq7m9Xr0yK21NTqjseJiIkzPAcKKs3XhR0Aj7GYu2aebHp+pbZzYQZBcf1FFXd6mnOkZMCQywqNHb62tUY81Unws8Qz3GffuL9q847jpGa5CQMOImUv26YaMGdq0nX/hUXSRER4N7FZPMdF8S3Ob6CivHr2ttp5+uAHxDFfatS9LI99YZXqG6/DTBsYsXHVA1z42TWs2HTE9BQ7QPr2Ubr2iiukZCKOYaK963V5HzzzckJvgcK3BkzhbZwIBDaNWrD+s63tP16qNRDSKbvB99ZWawuUFN4iPjVC/u8/TUw82UCyveYZLLVp9UG/9e5PpGa5EQMO4XzYf1XWPTdOytYdMT4HN1ayUqEdurW16BkIsIS5ST9yfpicfaMDLduBqvccs4mydIXzngSWs33ZM1/WarsVrDpqeApt78Oaaqlkp0fQMhEh8bIRGPNRAA7qdx+UVuNrfv92maQs5W2cKAQ3L2LzjuDplzNCSX4hoFF5qSowGdKtnegZCIC4mQk8/3JAPz4HrZWXnqd94ztaZREDDUjbvOK4bes/Q/JUHTE+Bjd3ZsapaN0w1PQNBlJwYped6NSKeAUkvfrCWK1aGEdCwnM07juvGPjM0a+k+01NgU9FRXj35YJq8Xv6M3wlKJsfouV6NeH07IP/Zumdf42ydaQQ0LGnbrkzd2GeGZizm9V0onEtbldWNF1c0PQNFlJIUrWceaaAenWuangJYwhOTl+vI8RzTM1yPgIZl7dqXpRv7zNR3c3ebngKbGnJffSXGcx/YrpITozTy0YbEM/CbJb8c1BufbTQ9AyKgYXF7DmTp5n4z9eWMnaanwIYa1k4hvmyqeLFoje/XVD278N8f8D+9Ry/mbJ1FENCwvAOHT+r2QbP12Y+/mp4CG8q4s44ql403PQMBKF4sWi883kR3X1vN9BTAMv7x/a/6acEe0zPwmwiV7Tzc9AjgXLKy8/Tf6TtUs1Ki6tdINj0HNpKUEKUIr0dfzeRPMewgNSVGLw1spjuurmp6CmAZ2SfzdX3v6Tp45KTpKfgNT6BhG8cyc3X3E3P18TdbTU+BzXS/obqa1SthegbOoWxqrN54soVuuaKy6SmApUyYulYbfz1megZOQUDDVk5k56nbsHma+uUW01NgIwlxkXxyncWVS43Tu8+01jUXVDA9BbCUPQey9PSrK03PwJ8Q0LCd4ydy1X34PL37+WbTU2Aj13WoqCvbljc9A6dRsUy8/vlCO13SsozpKYDlDJnE2TorIqBhSyey89R9+DzO+aDAIiM8GnxfPcXGRJieglNUKZegqaNaq2WDkqanAJazdO0hfs5ZFAEN28rJzdf9T83Xy5+sNz0FNtGmUaru5M1pllG/RrI+Ht1G7ZqUMj0FsKTeoxcpj7N1lkRAw9by8n16aORCTfpwnekpsIm+d9VVqeIxpme4Xv0ayXptWAu1SOPJM3A6n/34q36cz9k6q+KMHWzP55O+nLFTSfGRatMo1fQcWFzJlBgdzczVtIV8TLwpdasV02vDWqg1/74Cp5V9Ml+dMmbowGHO1lkVT6DhGH3HLdHzb602PQM28MittVWjUqLpGa5Uv0ay3niyBb/ZBc5i0odrtW7rUdMzcBY8gYajfDdnt7wejy5oVtr0FFhYQlykEuIi9e+ft5ue4iqNaqfojadaqiUv2wDOaO/BbHXuO1PZJ/NNT8FZ8AQajjNsynI99Qo3M3F2d1xdVW0b8xQ0HDweqel5xfXGky35QBvgHJ54abkOH+NsndUR0HCkYVOWa+jk5aZnwMJior0a/kADRXj5dJVQ8sdzCb0+vIWanlfc9BzA0pavO6TX/rHB9AwUAC/hgGNNW7hXWdl5uqRVWdNTYFHVKyZq5YYjWrnhsOkpjtUiraTeHtFKDWqlmJ4CWN4dg2ZrAx/ZbQs8gYajPffmavUevVg+zmjiDIb1TFNifKTpGY7UskFJvfdsK9WrXsz0FMDy/v3Tdn03d7fpGSggnkDD8eYs3689B7N0Weuy/HE9/qJU8RgdOnJSs5buMz3FUVo19D95rl0lyfQUwPJycvN1fS/O1tkJT6DhClM+Xq8Hn12okzm8qxl/lXFnXZUvFWd6hmO0SCupD0a2UZ2qxDNQEBOnruNsnc3wBBqusWj1QW3blakr2pZTZCS/d8T/S4yPVFSkV1/N3Gl6iu21a1JK/53UXuX4DQlQIHsPZqtL35nKOplnegoCQEXAVd7+zybd++Q8ZWXzjQp/dN+NNbgSUURXn19e09+8WMWLRZueAtjGsCnLdegoL92wGwIarvP+F1vUffg8ZWYR0fh/cTEReuL++vLwMvlCueaCCpo6qo3pGYCtrFh/WH/7lLN1dkRAw5U++HKL7npijo5l5pqeAgu55oIKuqpdedMzbMXr9ajzpZX09oiWSkrgmgkQiD5jFys3jzNRdkRAw7X+/u023TpgFn90ht9FeD0a2qO+EuIIwYLwej3qcmklTRncjJdtAAH6fNoOfTN7l+kZKCQCGq72+bQdurnfLO07lG16CiyiRVpJ3X1tNdMzLC/C69HtV8GLlIQAACAASURBVFXRS4PSlZoSY3oOYCs5ufnqO26x6RkoAgIarvfN7F26ud8s7TmQZXoKLKJP17oqUzLW9AzLivB6dPPllTWubxOVTCaegUC99NE6/bKZs3V2RkADkn6Yt1udMmZo1z4iGlK1Cgl67LbapmdYUoTXo9uvrqKJA3jyDBTG/sPZevLllaZnoIgIaOA3M5fsU6eMGdqx94TpKbCAh26upWoVEkzPsBSPR7qzY1VNGtBMJZJ5zTNQGMOnrOC9Nw5AQAOnmL1sn655dJo27zhuegoMS4iL1BVtypmeYRler0c9u9TUS4OacW0DKKRVG4/o5U/Wm56BICCggT9ZtPqgOmXM0NZdmaanwKCICI8ubV3W9AxLiIzwqPcddTSuTxPFx0aYngPYVsYYztY5BQENnMbiNf6I3vjrMdNTYFCH5qXVplGq6RlGRUd51adrXT39UAPFxhDPQGF9MWOHvp610/QMBAkBDZzBwlUHdEPGDG3YRkS7VUpStC5pWcb0DGP+F8/DeqYRz0AR5OTmq8/YJaZnIIgIaOAslq09pI6PTtOaTUdMT4EhbRq78wl0VKRX/e85T8N6pCmOeAaKZMrH6/k54jAENHAOazYd0dWPTNOytYdMT4EBaTVTTE8Iu5hor4b2qK/B99ZXTDQ/JoCi2H84W0++ssL0DAQZ3xmBAtj46zFd+9h0LVp90PQUhFnZVHd9oEpifKRGPtpI/e85j3gGguCpV1bqwGHO1jkN3x2BAtqy87iu6zVd81bsNz0FYbT3gHs+5j06yquhPdL0yK21FRXJjwegqNZsOqLJH60zPQMhwHdIIAC/7s7UDb1naO5yItot3HITPDYmQqMea6Ret9dWZITH9BzAETLGcrbOqQhoIEA79p7Q9b2na+aSfaanIAzWbj1qekLIJcZH6vlejfTQzbV48gwEyVczd+rLGZytcyq+UwKFsGtfljplzNBPC/aYnoIQ8vl8WrPpsOkZIZWcGKXRvRurR+eaio7iRwIQDLl5PmWMWWx6BkKI75ZAIe05kKUb+8zQt3N2mZ6CEDmZ69P0Rc79k4bE+Eg937uxut9QnXgGgujlT9ZrNWfrHI3vmEARHDh8Ul36ztR/p+8wPQUh8MX0HZq11JkBnZIUrRf7NdXd11bjZRtAEB08clLDp3C2zun4rgkU0eFjObql/yx99uOvpqcgiL6YsVNd+s5Ufr7z3gBUukSsXhqUrjs7VuXJMxBkT76yQvsPu+d6j1vxnRMIgmOZubp94Gz98wci2gk+/Gqrrnl0mvIcGM/lUuP08pBmuvnyyjx5BoLMf7ZuvekZCAO+ewJBkpmVp9sGztZHX281PQVF8OL7a3XbwFmOfPKcmhKjyYPTde2FFRTh5VQdEGx9xy1RTm6+6RkIAwIaCKKs7Dx1HTJHU7/cYnoKCmHk66vUa/Qi+ZzXzipVPEavDm2uay4gnoFQ+Gb2Lt4P4yKRpgcATnMyJ193D52rnFyful5T1fQcFNDgScv07GurTM8IiXKpcXrjyRa6rHVZeYlnIOg4W+c+BDQQAidz8tVt2FxlnczT/TfWMD0HZ+HzSX3GLtYL7/1iekpIVCobr3efaaX2TUvLQzsDIfHqp+u1coOzb8bjjwhoIETy8n164JkFys3L14M31TI9B6eRn+/Tg88u1Ct/d+abfkoVj9E/x7VTer0SpqcAjnXo6EkNm8zZOrfhNdBACOXn+/TQsws17l1nPt20s7x8n+4eOtex8VyhdJw+G38+8QyE2FOvrNS+Q5ytcxsCGgiDPmMXa9Qbq03PwG9O5uTr1v6z9O7nm01PCYnKZeP1yZi2atMo1fQUwNHWbjmqSR+uMz0DBvASDiBMBk5YKp/Pp4Hd65me4mpZ2Xnq8vhMfT7Nme+Wr1gmXlOfa6PWDYlnINQ4W+deBDQQRoMmLlN2Tr6G90wzPcWVMrPydN1j0/Td3N2mp4RE5bLx+geveQbC4ru5u/Wfn7ebngFDIlS283DTIwA3+XnBHp3MydfFLcuYnuIqR47n6MqHftZPC/aYnhISVcsn6F8vtleTusVNTwEcLy/fpxt6T9eeA7z22a14Ag0YMPL1VcrKztPYPk04LRYGBw6f1BUP/qT5Kw+YnhIStSon6YuXLlDNSommpwCu8LdPN2jFes7WuRkBDRjywnu/6GROvib0b8qHW4TQngNZuvyBn7Xkl4Omp4RE3WrF9NNrF6lMyVjTUwBXOHT0pIZOXm56BgzjCgdg0EsfrdMDzyxQXr4DPzvaAnbsPaELu//g2Hhuel5xzX7nEuIZCKOn/7ZKew/y0g23I6ABw179dIMeHrlQPho6qLbsPK723b7X6k1HTE8JiQ7NS+uryRcqJSna9BTANdZtPaqJU9eangELIKABC3j5k/XqMWK+cvOo6GBYt/Wo2t/zvTZsO2Z6StB5PFLH9uX16dh2KlU8xvQcwFX6vbBUJ3M4WwcCGrCMv/1jg3qMmM/LOYpo1cYjuqDbD9q6K9P0lKDzej26+vzyemtESxUvxpNnIJx+mLdbn/34q+kZsAgCGrCQNz7bqHuGzuUwfyEtXnNQF3T7Xjv3nTA9JegivB51bF9erzzRXCWTefIMhFNevk+9xyw2PQMWQkADFvPu55t128DZyszKMz3FVuYs26+L7vtR+w457809kREeXXthBb08pJnKl4ozPQdwndf/uVHL1h4yPQMWQkADFvT3b7epc98ZOnI8x/QUW/h54R5d9sCPOnT0pOkpQRcV6VWXyypryuBmKpdKPAPhduR4joZMWmZ6BiyGgAYs6ssZO3VjxgwdPkZEn83Xs3bqqod+1tHjuaanBF2E16ObLqukyYPSOVUHGDLi1ZWcrcNfENCAhX03d7du6D3dkU9Wg+FfP23XtY9Nd+TLXSK8HnW6uKLGZDThVB1gyIZtxzhbh9MioAGL+3H+Ht3YZyZPQP7kw6+2qkvfmY49KdXp4oqa0D9dZVN58gyY8vgLS5R90pnfY1A0BDRgAz/M263re03Xrn1ZpqdYwpv/2qQ7Bs127LWSW66orEkDiWfApB/n79E/f+BsHU6PgAZsYtbSfbqxzwxt3+O8E22BmPLxenUfPtex97Lv7FhVEwekq3QJ4hkwJS/fpwzO1uEsCGjARmYt3adrHp2mLTuPm55ixJi31+ihkQsc+7Hn3a6vrnF9myg1hTvPgElvfrZRS345aHoGLIyABmxm8ZqDuu6x6dq03V0RPeLVlXr8hSWOjeeeXWrquV6NiGfAsCPHczTkpeWmZ8DiCGjAhpauPaSOj/ys9duOmZ4SFgNeXKqhk537A63vXXX17CMNiWfAAp59bZV27+f9Jjg7AhqwqVUbj+i6x6bpl81HTU8JGZ9PemTUQj335mrTU0JmyH319cT99VW8GKfqANM2bT+u8e//YnoGbICABmxs1cYj6vjIz1q54bDpKUGXl+/T/SPma9KH60xPCZnhPdPU7+7zVCwhyvQUAOJsHQqOgAZsbv22Y7qu13QtW3vI9JSgyc3zqevgOXrtHxtMTwmZpx9uqD5d6yopIdL0FACSfl64R59+t830DNgEAQ04wIZtx9Tx0Wmav/KA6SlFdjInXzc9PlMffLnF9JSQGfloI/XtWleJ8cQzYAX5+T71Hs3ZOhQcAQ04xLZdmbq+13TNWbbf9JRCO5Gdp+t7T3f0hxeMyWisx++uq5hovv0CVvHmvzZp8RrO1qHg+A4OOMiOvSfUKWOGZi7ZZ3pKwI5l5urqh3/WlzN2mp4SMlMGN1OfrnUV4fWYngLgN0eP52rIS8tMz4DNENCAw+zcZ7+IPnwsR5c/8JN+nL/H9JSQ8Ho9Gv94U/XsUtP0FAB/MvKNVdq1j7N1CAwBDTjQngNZur7XdH07Z5fpKee0/3C2LrrvB81aap/gD0SE16OJA5rqsdtrm54C4E82bT+uF97jbB0CR0ADDrXvULY695mp/07fYXrKGe3en6UO9/6oRaud+drD+NgITRnSTA/eVMv0FACn0X/8EmVl55meARsioAEHO3I8R7cNmK1//bTd9JS/+HV3pi7o/r2Wr3PO+b1TpSRF68V+TXVfpxqmpwA4jemL9uqTbzlbh8IhoAGHO3I8R3cMmm2p+6abth9X+27fO/ZTFEuXiNX4fk10L/EMWFJ+vk+9x3C2DoVHQAMucCwzV12HzNGHX201PUW/bD6q9t2+16btx01PCYlyqXEa17eJ7rqmmukpAM7gnc83a+Eq+9/Nhzlc8QdcIjMrT92GzZXHI918eWUjG5avO6RLe/6k3fud+Y73CqXj9GK/prrxkkqmpwA4g2OZuRo0gbN1KBqeQAMuciI7T3c9MUfvfr457F974aoD6nDvj46N54pl4jX+ceIZsLpRb6zSzn0nTM+AzfEEGnCZ7JP56j58nk7m5Kv7DdXD8jVnLtmnqx/+WYeP5YTl64Vb5bLxmjKkma5qV970FABnsWXncY19l7N1KDqeQAMulJObrx4j5mvCB2tD/rV+mLdblz/wk2PjuVqFBL01ohXxDNhAvxeWcrYOQUFAAy6Vl+9Tr9GLNC6ET2O+mLFDHR+ZpuMnckP2NUyqWSlR7z3bWh2alzY9BcA5zFi8V598a/6N1HAGAhpwMZ9P6jN2sca+sybov/Y/vv9VN/SeoRMOfdpTtXyC3nu2tdo0SjU9BcA5+HxS79GL5fOZXgKnIKABqO+4JRr1xuqg/Xrvf7FFNz0+Uydz8oP2a1pJjd+ePLdsUNL0FAAF8M7nm7SAs3UIIt5ECECSNHDCUnm9HvW7u26hf438fJ+mfLJejz23SHn5znzUU6tykt59phXxDNjEscxcDZ7I2ToEF0+gAfyu//gleuOzjYX6Z7NO5mnsO2v08MiFjo3n+jWS9cGo1mqRRjwDdvH8W6u1fQ9n6xBcPIEG8Afdh89TVna+7u1UXdFRBfs99q79WRrxykpN/nhdiNeZk16vhN4Y3kINaqXI4zG9BkBBbN2VqTFvB/89HkCEynYebnoEAGv5YsYOLV93SMlJ0apVOems/7v/+nG7Bk9cpg+/du672/1PntsorWYy8QzYSM+n52vJL4dMz4ADedRoqjP/rBVAkcXHRqhj+wrq0Ly0WqSVVM3KiZKk9VuPad6K/fpx/h59Pm27MrOceWlDkhrVTtE7T7dSw9oppqcACMDsZfvU9q7vuLyBkCCgAeAMGtcprg9GtdZ51YqZngIgAD6f1OrObzVvxX7TU+BQvIkQAE6jZYOS+mRMW+IZsKH3/ruZeEZIEdAA8CcXpJfWh8+1Uc1KiaanAAhQZlaeBk5YanoGHI4rHADwG6/Xow7NS+tvQ1uoavkE03MAFMJzb67ibB1CjoAGAEkRXo8ua1NWUwY3U5VyxDNgR9s4W4cwIaABuF6E16Or25fXpAHpqlQ23vQcAIU0cMJSR18FgnUQ0ABczev16IaLK2pi/3SVTY01PQdAIc1Ztl8ffLnF9Ay4BAENwNU6X1JJE/o3VZmSxDNgVz6f1HvMIm4+I2wIaACudWfHqhrbp4lKFY8xPQVAEXzw5RbNWcbZOoQPAQ3Ale65rpqe791YqSnEM2BnnK2DCdyBBuA6xDPgHKPfWq1tuzJNz4DL8AQagKv06FxTIx5qQDwDDrB9zwk9/9Zq0zPgQgQ0ANe4t1MNPfNIA5VMJp4BJ+BsHUwhoAG4wsO31NKTDzRQieRo01MABMG8Ffv13n83m54BlyKgATher9vraMRDDZQYz7c8wAl8PqnX84s5Wwdj+GkCwNEevqWWRj3WSDHRvGcacIoPv9qi2cv2mZ4BFyOgATiSxyP16VpXTz/UkHgGHOREdp4GvMjZOphFQANwnOgor/reVVdPPdhAEV6P6TkAgmjM22u0lbN1MIyABuAo8bERGtCtnp64v77pKQCCjLN1sAoCGoBjJMZHakC3ehp8bz3TUwCEwOCJy3QsM9f0DICABuAMKUnReuL++up9Rx3TUwCEwIJVB/TO55tMzwAkEdAAHKB4sWgN65Gmh26pJQ8veQYcx3+2bhFn62AZBDQAWytTMlZPPdhAd11TTZER1DPgRB9/s1Uzl3C2DtZBQAOwrTIlY/V8r8a69crKiorkVB3gRFnZeeo/nrN1sBZ+4gCwpYS4SD3zcEPdcgXxDDjZ2Hd/0Zadx03PAP6AnzoAbCchLlLj+jbRHVdXVXQU38YAp9q574RGvbHK9AzgL3gJBwBbiY2J0KSB6brj6qq85hlwuEETOFsHayKgAdhGfGyE/jashW69ogrXNgCH85+t22x6BnBaBDQAW0hJitabT7XQ9R0qmp4CIAwyxixWfj5362BNBDQAy0tKiNRbI1rqugsrmJ4CIAw++Xabpi/aa3oGcEa8+waApaWmxOjdZ1oTz4BL+M/WLTE9AzgrnkADsKyKZeL18pBmuvr88qanAAiTF977RZu2c7YO1kZAA7Ck6hUTNXFAU13VjngG3GLXviyN5GwdbICABmA5tSonaeKAprq8TTnTUwCE0eBJy3T0OGfrYH0ENABLqVutmCb0b6pLW5U1PQVAGC1ec1Bv/XuT6RlAgRDQACwjrWayJg5I1wXppU1PARBmvUdztg72QUADsIRGtVP00qBmatMolQ9JAVzm0++26eeFe0zPAAqMgAZgXIu0kprQv6ma1y9BPAMuk30yX4+/wNk62AsBDcCoto1TNWVwMzWolWJ6CgADxr/P2TrYDwENwJiWDUrqtWEtVLdaMdNTABiwa1+Wnn2Ns3WwHz6JEIARHZqX1ltPtSSeARd7YvJyHTmeY3oGEDCeQAMIK6/Xo4ual9YrTzRX9YqJpucAMGTJLwf15mcbTc8ACoWABhA2EV6PLmxeWi8NakY8Ay6XMWax8jhbB5sioAGEhdfr0SWtyurFfk1Vu0qS6TkADPrnD7/qx/mcrYN9EdAAwuLyNv54rlWZeAbcjLN1cAICGkDIXd+hosb2aczLNgBowtS12rDtmOkZQJEQ0ABCqsullTSubxNVLBNvegoAw/YezNbTr640PQMoMgIaQMjccFFFje/XVOVLxZmeAsAChkxaxtk6OAIBDSAkbrykkiYOaKpyqcQzAGnZ2kN6/Z+crYMzENAAgu62K6to4oB0lUiONj0FgEX05mwdHISABhBU91xXTeP7NVWxhCjTUwBYxGc//qof5u02PQMIGgIaQFBEeD3q2aWmRj3WSInxfGsB4Jd9Ml/9XlhqegYQVPyUA1BkMdFe3dephp7v3VhxMRGm5wCwkEkfrtW6rUdNzwCCioAGUCTxsRF64KZaGtYjjXgG8Ad7D2br6b+tMj0DCDoCGkChxcdG6OFbamvIffWVlMC3EwB/NHTych06etL0DCDo+IkHoFAS4yPVp2td9bmzLvEM4C9WrD+sv326wfQMICT4qQcgYHExERp8b309elttxcfysg0Af9V79CLO1sGxvKYHALAXr9ejoT3SiGcAZ/Tvn7bru7mcrYNz8QQaQIFF/BbPj91emzcMAjitnNx8Pf7CEtMzgJAioAEUSFSkV08+kKb+95wnr9djeg4Ai5r04Tqt3cLZOjgbAQ3gnBLiIjW8Z5r63lXX9BQAFrbvULaeemWl6RlAyBHQAM4qJSlaw3v6X7YBAGczbPIKztbBFQhoAGdUItkfz4/cSjwDOLsV6w/r1U/Xm54BhAVXOACcVonkaA29n3gGUDB9xi5Wbh5n6+AOPIEG8BfFi0Xrucca6d5ONUxPAWADn0/boW9m7zI9AwgbAhrAH6QkRWvSwHTddmUV01MA2ABn6+BGBDSA36UkReu1Yc114yWVTE8BYBOTP1qvNZuOmJ4BhBUBDUCSlJwYpbdHtNTV7cubngLAJvYfztaTr6wwPQMIOwIagJITozR1VBtd3qYsH5ICoMCGT1mhg0c4Wwf3IaABlyuWEKV/vXi+LkgvbXoKABtZtfGIXv6Es3VwJ87YAS5WIjla/5nQnngGEDDO1sHNCGjApcqUjNW/xp+v9umlTE8BYDNfztipr2buND0DMIaABlyoZqVE/WdCe7VrQjwDCExunk8ZYxebngEYxWugAZepW62YXhnSXM3rlzA9BYANTf5oHWfr4HoENOAiTeoW14T+TXnyDKBQ9h/O1lOvrDQ9AzCOgAZcomHtFE0amK42jVJNTwFgU0+9slL7D2ebngEYx2ugAReoXjFRkwc1U+uGxDOAwlmz6YimfMzZOkDiCTTgeLUqJ+m9Z1upef2S8vAZKQAKqc/YJcrJzTc9A7AEAhpwsPo1kvXes63UuE5x01MA2NjXs3bqixk7TM8ALIOXcAAO5PFIzeuX0LvPEM8AiiY3z6eMMZytA07FE2jAYbxej85vUkqTBqYrrWay6TkAbO7lT9Zr1UbO1gGnIqABB/F4pA7NS2vigHSdV62Y6TkAbO7gkZMaPmWF6RmA5fASDsBBLm1VlngGEDScrQNOjyfQgEN0bF9eY/s0Ue0qSaanAHCAXzYf1UsfrTM9A7AkAhpwgBsuqqgXHm+iKuUSTE8B4BB9xy3mbB1wBgQ0YHM3XlJJkwakq2xqrOkpABzim9m79Pk0ztYBZ0JAAzbW5dJKeuWJ5ipeLNr0FAAOkZvnU5+xnK0DzoaABmwoMsKjThdX0pTBzYhnAEH16qfrtWL9YdMzAEsjoAGbiYn26tYrqmh0RmOVSCaeAQTPoaOcrQMKgoAGbCQm2qs7O1bT870a8eQZQNCNeHWl9h7kbB1wLtyBBmwiOsqr7tfX0KjHGhLPAIJu3dajmjiVs3VAQfAEGrCJh2+ppWE901QsIcr0FAAO1HfcEs7WAQVEQAM20Peuunri/vrEM4CQ+G7ubv37p+2mZwC2QUADFvfwLbU0rEeaEuP51xVA8OXl+9R79CLTMwBb4ScyYGGP3V5bIx9tpLiYCNNTADjUa//YwNk6IEAENGBBXq9HPTvX1PjHm5qeAsDBDh/L0RMvLTc9A7AdAhqwmJhor+7rVEMTB6SbngLA4ThbBxQOAQ1YSFxMhB69rbZGPdbI9BQADrdu61FN+nCt6RmALRHQgEVER3nVp2tdDe1R3/QUAC7Q74Wlyj7J2TqgMAhowAJiYyI0qHs9ZdxZR1GRfL4RgND6Yd5uffbjr6ZnALZFQAOGxcZE6MkH0vTQzbWUEMe/kgBCKy/fp4wxi03PAGyNn9aAQfGxEXr2kUZ64Kaaio7iyTOA0Hvjs41auvaQ6RmArRHQgCGJ8ZEak9FYPTrXND0FgEscOZ6jIZM4WwcUFQENGFAyOUajMxrrnuuqmZ4CwEWefnWl9hzIMj0DsD0CGgizSmXj9dSDDXT3tcQzgPDZsO2YJkzlbB0QDAQ0EEZVyyfo6Ycb6varqpieAsBlHn9hCWfrgCAhoIEwqVw2Xs8+0lC3Xkk8Awivnxbs0T9/4GwdECwENBAGFUrHaXRGY914SSXTUwC4TH6+T71Hc7YOCCYCGgix8qXiNKF/uq65oLwivB7TcwC4zBufbdSSXw6angE4CgENhFCp4jF65+lWuqhFGXloZwBhduR4jp6YzNk6INj45AYgRCqWidfUUW10cUviGYAZz762Srv2cbYOCDaeQAMhULtKkt59ppVapJU0PQWAS23aflzj3//F9AzAkQhoIMjqViumKYObEc8AjOo3nrN1QKjwEg4giGpUStTYPo11YbPSpqcAcLFpC/fq799uMz0DcCyeQANBUr1ioqYMbqZLW5U1PQWAi+Xn+9R7zCLTMwBHI6CBIKhVOUmvDm2u9k1LmZ4CwOXe+vcmLVrN2ToglAhooIjqVS+myYOb6fwmpeTlzjMAg44ez9XgSctMzwAcj4AGiqBZvRKaOCBdrRryhkEA5o16k7N1QDgQ0EAheL0etWpQUi8PaaYGtVJMzwEAbd5xXOPe5WwdEA4ENFAI5zcppSlDmum8asVMTwEASVK/F5YoKzvP9AzAFQhoIEAXtyyjCf3TiWcAljF90V79/TvO1gHhQkADAbi0VVlNGpiu2lWSTE8BAEn+s3UZYxbL5zO9BHAPAhoooKvaldfLQ5qpUtl401MA4HfvfL5ZC1YdMD0DcBUCGiiAq88vr7dGtFRqSozpKQDwu2OZuRo0gbN1QLgR0MBZeL0eXdm2nD56vo0S4vjXBYC1PPfmau3cd8L0DMB1KALgDKKjvLqybTm9/XQr4hmA5Wzdlakx76wxPQNwJa/pAYAVRUZ41Oniinr9yRZKTowyPQcA/oKzdYA5BDRwGp0vraQxGU1UMpnXPAOwnplL9unjb7aangG4Fn8uDfzJnR2r6qkHG6hC6TjTUwDgL3w+qdfzizhbBxhEQAOn6H5DdQ3tkabKnKoDYFHvcrYOMI6ABn5zb6caeurBNJVL5ckzAGs6fiJXgyYuNT0DcD0CGq7n9XrU/frqGvFQA5UpGWt6DgCc0XNvrtb2PZytA0wjoOFqsTERuvvaanr2kYYqXiza9BwAOKOtuzI1lrN1gCUQ0HCtuJgI3d+5hp5+qKES4/lXAYC1DXhxqTKzOFsHWAHVAFfyej3q2aWmhvVMI54BWN7sZfv04VdbTM8A8BvKAa7U+446GnxvPT4kBYDl+c/WLeZsHWAhBDRcp0/XuhrOk2cANvH+F5s1b8V+0zMAnIKCgGvExkTokVtq6fnejU1PAYACyczK08AJy0zPAPAnBDRcISUpWn261tGQ++qbngIABfb8W6v16+5M0zMA/AkBDcdLTYnRwO71lHFnHdNTAKDAtu3K1Oi3VpueAeA0CGg4WmpKjIb2qK+Hbq5legoABGTgBM7WAVblNT0ACJWUpGgN7VFf93WqIa/XY3oOABTY3OX79cGXnK0DrIon0HCkxPhIPf1wA911TTXFxkSYngMABebzSb1GL+JsHWBhBDQcJzE+UmMyGqvrNdUURzwDsJmpX23RnGWcrQOsjICGoyQnRumVJ5qry6WVU8PpcQAAFRtJREFUeNkGANvJzMrTwBeXmp4B4BwIaDhGqeIxmjggXTdfXtn0FAAolDFvr9HWXZytA6yOgIYjlC8Vp9EZjYlnALa1fc8JPffmKtMzABQAAQ3bq1IuQaMzGqvLpZVMTwGAQhs0kbN1gF0Q0LC1imXi9WL/purYvrzpKQBQaPNXHtC7n282PQNAARHQsK3qFRM1undjXX1+eUXwhkEANuXzSb2e52wdYCcENGypXvViGpPRRFe2K2d6CgAUyUdfb9WspftMzwAQAAIatuLxSPWqJ2tC/6a6qEUZ03MAoEhOZOep//glpmcACBAf5Q1bqVO12P+1d+fRdtaFucefcxIgIQyRMCTKIEiAAoYMgCBIVcQL1ra3FL1ear29daBF7RUisFDEhQW9lTAIIku4QIVqbJ2lNCJasYAMgoEwSAIhJCRATBhCEkhChvvHm0CAhJx9zt7n9+59Pp+1zjIQ9t6PC//4+ubdvzcXniqegc7g2DpoTwKatrH3m7fOBZ8dl/e8TTwD7e/xBS/kq//8+9IzgF5wCwdtYY+dt8qlnz8o7zpox9JTAJricxdNy5LnV5aeAfSCgKb2dh25Zb795UNz8P7blZ4C0BR3PvB0rrnu0dIzgF5yCwe1tvebt873Jh2WQ8aMSLej6oAOsGZNctK5U7N6tXProF25Ak0tdXd35cB9t8tFp43PwfuPKD0HoGm+d8Oc3Dx1QekZQB8IaGqnqys5fNz2OX/iuEzY120bQOdYtnxVTr3gntIzgD4S0NTOkQfvlEkTx+WAvYaXngLQVOdfMz2zn1haegbQRwKaWjnqkJG58NTx2XePbUpPAWiqJxcuy1eufKD0DKAJBDS18d5DR+Zrp47P3m8Wz0Dn+dzF9zi2DjqEgKa4rq7k6MNG5dLPH5jdRg0rPQeg6e564Ol869pHS88AmkRAU9TgQV1576GjcuVZB2enEUNKzwFoiZMmObYOOolzoCnqfe94Y7519tvEM9CxvnfDY7npd46tg04ioCnm2CN3zkWnjc/2w7coPQWgJZYtX5XTLry79AygyQQ0RXzgqF0y6eRx7nkGOtqF356RWfMcWwedxj3Q9Lvjjtol5548VjwDHe3JhcvylSscWwedSEDTr/7mz3bPOZ8ekzfuMLT0FICWOuOSaXlu6YulZwAtIKDpF0O3GJSP/OnuOevv9/eFQaDjTX3wmVz1k1mlZwAtIqBpuWFDB+dv//seOfOE/XxhEBgQTjrXsXXQyQQ0LdXVlXz82LfkzBP2yxu22bz0HICW++Ev5+bXd/2h9AyghZzCQUt98n+Mzuc/vq94BgaE5StW55QLHFsHnc4VaFrmUx8ana+eNDZDtxhUegpAv/jad6bnkblLSs8AWkxA03SDurvy9x/cMxedNiFdXaXXAPSP+U8tyzmXO7YOBgIBTVNtOWRQTjhuz3z502PEMzCgnHHJvY6tgwFCQNM02wzbLJ/80Oic+jf7ZIjbNoAB5O7pz+SqHz9SegbQTwQ0TTF0i0H5zIf3ysl/vU+23Wqz0nMA+tXJk6ZmlWPrYMAQ0PTZ5pt15/SP7pvP/NXe2XqY/0kBA8uPfzU3v/qtY+tgIFE79MmwoYNzxsf3y8SP7J3NBjsVERhYlq9YnVPOd2wdDDQCml7bfvgW+cIn9ss/HL9X6SkARVw8eUYefsyxdTDQCGh6ZacRQ3LmCfvlxA+OLj0FoIgFzyzPP152f+kZQAECmoaN2HaLnPOpMfnoX+xRegpAMWd8fZpj62CAEtA0ZOthg3P+Z8fl+PftVnoKQDH3PvRsrviRY+tgoBLQ9Nh2226er35mbD7w3l0yeJCnpAAD10mOrYMBTUDTIzvvtGW+8g9j8qGjdxPPwID2kxvn5Ze3zy89AyhIQLNJu47cMhecMj7HHrlz6SkARa140bF1gIBmE/bcZatMmjguf/7ON5WeAlDcxZNn5KE5i0vPAArz5As2ateRW+bck8eKZ4BUx9adffkDpWcANeAKNBu0y8gt8/XTJ+SYw99YegpALXzx0nvz7OIVpWcANSCgeY3Ru26di04bn//29lHp8n1BgNz38KJc/oOZpWcANSGgecmg7q68dfTwnP2pt+bow0aVngNQGydPmpqVqxxbB1QENC956+jh+epJB+SoQ0aWngJQG9f+el5uuO3J0jOAGhHQJEnG7v2GnDdxbN598E6lpwDUxosrV+ezjq0DXsUpHOSto4fnvIlj866DxDPA+r7+3YcyY7Zj64BXcgV6gNv9TcNyyekT8vax2/vCIMB6nlq0PF/65v2lZwA1JKAHqK6u6srzJadPyOHjdig9B6B2vviN+xxbB2yQgB6AurqSg/cfkQtPGZ9DxowoPQegdu6fuSjf/P7DpWcANSWgB6DDx+2Q8yaOy0H7bVd6CkAtObYOeD0CeoB554E75sJTx+eAvYaXngJQS9fd9Hh+fqtj64CNE9ADyBETdshFp43P/nuKZ4ANWbV6jWPrgE0S0APEERN2yCWnH5j999y29BSA2rr62ll5cNZzpWcANSegO1x3d1feeeCOufzMg7LHzluVngNQWy8sX+XqM9AjArrDve/wUfnG5w7MLiO3LD0FoNa+9i8z8vQix9YBmyagO9hxR+2S8yaOE88AmzDniaU545JppWcAbUJAd6hjj9w5F582ISO3H1J6CkCtLV+xOn939p1ZtdqxdUDPCOgOs/lm3fnAUbvkwlPHZ/vhW5SeA1B7V//7rEy55YnSM4A2IqA7yNAtBuWE4/bMl07cP1sP26z0HIDau+uBZ3KKLw4CDRLQHaKrK/nCCftl4l/vk8036y49B6D2nl60Il/4xrQsWvJi6SlAm1FaHeL/HL+3eAZowAXfnp4pN7t1A2ic2uoAxxw2Kmd8Yj/xDNBDV/zokZx92f2lZwBtSnG1uS2HDMpnPrx3Rmy7eekpAG3hO1Nm56xv3ld6BtDGBHSbe/8Rb8p7Dx1ZegZAW7jupsfzT1f9Po89+XzpKUAbE9Bt7j2H7FR6AkBbuP43T+Tsy+/PtBnPlp4CtDmncLS5Q8dsX3oCQO1dd9PjOfvy+3PbtKdKTwE6gIBuc3vsPKz0BIBa+86U2fmnq37vyjPQNAK6za1eXXoBQH1d8C/Tc/410zN3vnuegeYR0G3uoTmLM26fN5SeAVAr0x9dnEv+9aFcPHlG6SlABxLQbe72e58S0ADr+dfr5+SyH8zMf94xv/QUoEMJ6Db3q9/+IX/3gT1LzwAobuqDz+Rb187KVT+eleeWejw30DoCus39+3/Ny/d/8ViOe88upacAFDHzsSX57vVzMnnK7Nw/c1HpOcAAIKDb3PPLVuWy78/MmNHDs9duW5eeA9Bvps14Nj+5cV5+9J9zM/XBZ0rPAQaQrhwweU3pEfTd/zxmt5z5if2yz+7blJ4C0DLPLl6RX94+Pz+/9cn87JYnMscTBYECXIHuEJOnzM7CZ5bnE3/5lhx3lNs5gM4x/dHF+e39T+XWe57KLXcvyD3OcwYKcwW6w2w5ZFDef8Sb8q6DdszB+4/I6F23Snd3VxY/vzKDB3Vl2NDB2WywJ7gD/aOrK+la+4uuV/3emqxJd1dXXly5OouXrszCZ5dn/lPLMnf+85k1b2kemrM4v5/1XO57eFGWvrCywHqADRPQAADQAJciAQCgAQIaAAAaIKABAKABAhoAABogoAEAoAECGgAAGiCgAQCgAQIaAAAaIKABAKABAhoAABogoAEAoAECGgAAGiCgAQCgAQIaAAAaIKABAKABAhoAABogoAEAoAECGgAAGiCgAQCgAQIaAAAaIKABAKABAhoAABogoAEAoAECGgAAGiCgAQCgAQIaAAAaIKABAKABAhoAABogoAEAoAECGgAAem5Jd5LFpVcAAECbWNWdZHXpFQAA0CaWdSd5ofQKAABoE8u7kywvvQIAANrEyu4kz5ZeAQAAbeK57iRPlV4BAABt4unuJE+XXgEAAG3i6e4kC0uvAACANrFQQAMAQM8tcA80AAD03NPdSf5QegUAALSJP3QnebT0CgAAaBOPCWgAAOi5ud1JnojHeQMAwKasytqAXhNXoQEAYFPmJHmxe+1fPFpwCAAAtIOHkmRdQM8sOAQAANrBjOTlgL634BAAAGgH9yYCGgAAeuo1Ab263BYAAKi1NUnuS14O6CVJHik2BwAA6m1mksXJywGduI0DAAA25qVWXj+g7y4wBAAA2sFLrbx+QN9aYAgAALSDl1p5/YC+I75ICAAAr7YmVSsneWVAL0ryQL/PAQCAensgVSsneWVAJ8lN/bsFAABq77/W/4tXB/Sv+3EIAAC0g1c08qsD+sZU93gAAABVG9+4/t94dUDPTzKtv9YAAEDNTUvVyC95dUAnyc/7ZwsAANTea9p4QwE9pR+GAABAO3hNG28ooG/Oesd0AADAALUoVRu/woYC+sUk17d8DgAA1Nv1qdr4FTYU0EnyvdZuAQCA2ttgE28soP8jyZLWbQEAgFpbkqqJX2NjAf18kmtbNgcAAOrt2lRN/BobC+gk+bfWbAEAgNrbaAu/XkBPSfJc87cAAECtPZfkZxv7zdcL6OVJftD0OQAAUG8/SrJsY7/5egGdJFc0dwsAANTe5a/3m5sK6FuSPNC8LQAAUGsPpGrgjdpUQCebKHAAAOgg/29T/0BPAvqaVPdDAwBAJ1ue5OpN/UM9Ceinkvywz3MAAKDefpiqfV9XTwI6SS7q2xYAAKi9HjVvTwP6trU/AADQiXrcuz0N6CS5oHdbAACg9nrcuo0E9A+TzGx8CwAA1NrsNPCdv0YCemWS8xqeAwAA9XZuqtbtkUYCOkmuSjKvwdcAAEBdzUtyZSMvaDSglyX5coOvAQCAuvpykhcaeUGjAZ1UT2d5tBevAwCAOpmdHjx58NV6E9ArkpzTi9cBAECdnJ2qbRvSm4BOkn9O8nAvXwsAAKXNTNW0DettQK9M8sVevhYAAEo7Mw2cvLG+3gZ0kkxOckcfXg8AACXckaple6UvAb0myclr/xMAANrBmiQT04eG7UtAJ8kt6UO9AwBAP5uc5Oa+vEFfAzpJTk2ypAnvAwAArbQkVbv2STMCel6Ss5rwPgAA0EpnpQlP1W5GQCfJBUnuatJ7AQBAs92Vqln7rFkBvSrJx9LLo0AAAKCFVqZq1VXNeLNmBXSS3J1kUhPfDwAAmmFSqlZtiq4c0NRDNIYkmZZkdDPfFAAAeumhJGOSLGvWGzbzCnRSDfvfadLlcQAA6INVSf42TYznpPkBnVRnQ5/TgvcFAIBGnJM+nvm8Ia0I6CT5xyS3tei9AQBgU25P1aRN16qAXpnkr5IsbtH7AwDAxixO1aItOSGuVQGdJI8k+VQL3x8AADbk00lmturNWxnQSXJ1kita/BkAALDOlUm+1coPaHVAJ8knk9zZD58DAMDAdleq9myp/gjo5Un+MsmCfvgsAAAGpgWpmrOpR9ZtSH8EdJLMSXUjt/OhAQBotlWpWnN2f3xYfwV0ktyQ5PR+/DwAAAaG01O1Zr/oz4BOknOTXNrPnwkAQOe6NFVj9pv+DuikOlbkpwU+FwCAzvLTVG3Zr0oE9Kokxye5t8BnAwDQGe5N8uEU+I5diYBOkqVJ3pdkbqHPBwCgfc1N1ZJFnnpdKqCT6r/4u5LML7gBAID2Mj/Ju1PwQmzJgE6Sh5MclWRh4R0AANTfwlTt+FDJEaUDOqnuXzkmyaLSQwAAqK1FqW7bKP49ujoEdFI96vtPkjxfeggAALXzfJL3J/lt6SFJfQI6SW5JcnQK3QwOAEAtLUnViDeXHrJOnQI6SW6K2zkAAKgsShXPN5Uesr66BXRSXYl+d5IFpYcAAFDMgiRHpmrDWqljQCfJ75IckWRO6SEAAPS7Oala8K7SQzakrgGdJA8mOTTJ1NJDAADoN3enasAHSw/ZmDoHdJI8nur/ffxH6SEAALTclCTvSNWAtVX3gE6qb17+WZJLSw8BAKBlLk3yp6nar9baIaCTZFWSE5OcsvbXAAB0hlWpGu/EtEnntUtArzMp1VEmHv0NAND+FqZqu0mlhzSi3QI6SX6RZEKqpxcCANCe7kzVdL8oPaRR7RjQSXW0yTuSXFF6CAAADbsiVcu15ZHF7RrQSbIsyceS/K8kzxXeAgDApj2Xqt0+lqrl2lI7B/Q6VycZl+S20kMAANio25KMT9Vuba0TAjpJHkn1xwBfSrKy8BYAAF62MlWjvSPJzMJbmqJTAjqp/uV8MckfJ5lReAsAAFWT/XGqRuuYi5ydFNDr/CbJ2CRfSQf9iwIAaCMrk/zfVE32m8Jbmq4TAzpJXkjyuSQHxXF3AAD96c5UDXZ6qibrOJ0a0OvcneTQJJ9NGzwWEgCgjS1J9UTBQ1M1WMfq9IBOqj9COC/JXkmuTLK67BwAgI6yOlVj7ZXqiYIdfwvtQAjodZ5I8tEkBya5tfAWAIBOcFuq2zU+mqq1BoSBFNDrTE1yWJLjkzxceAsAQDuamaql3p7kd4W39LuBGNBJsibJ5CR/lOpJOI8WXQMA0B5mp2qnfVK11Jqyc8oYqAG9zspUz2LfO8mJSeaWnQMAUEvzUrXSXqnaqePvc349Az2g11mR5NIko5OckGR62TkAALUwPVU4j07VSivKzqkHAf1Ky5JclmTfJH+e5KaycwAAirgpVQvtmyqcO/I8594S0Bu2OslPkxyR5G1JvptkedFFAACttTxV87wtVQP9NI7/3aCuHDC59IZ2MSLJR5J8PNWXDwEAOsGDqf4E/pokCwtvaQsCuncOS/UN1GOTbFN4CwBAoxYn+UGqLwTeXHhL2xHQfTMkyTFJPpjk/Um2KjsHAGCjlia5Nsm/JZmS6rtf9IKAbp6hSf4kyXFJjkqyXdk5AAB5OskNSb6f5Lr4MmBTCOjWGJTk4FRXp49OMiG+sAkAtN7qJHcl+Vmqq8x3JFlVdFEHEtD9Y4ck70xyeKr7pw9IMrjkIACgI6xMck+SW1Ldy3xjkgUlBw0EArqMYamOiDk8ybgkY5LsnqSr5CgAoNbWJJmVZFqSqamC+fZU9zbTjwR0fWyVZP9UMT0myVuSvHntz5BiqwCA/rYsyaNrf2amCuZpSe5LsqTYKl7iNoL6WJLktrU/rzYqL8f0qCQjk+yY6ouKw9f+DEsV4Zut/fXmrR4MALyupXn50dfPrPf3nl3780yS+UmeXPszK1U0P9GvK2nY/we5uMnrFFCndwAAAABJRU5ErkJggg=='
type.options = {};
type.options['width'] = 57;
type.options['height'] = 57;
return type
})
更多推荐
已为社区贡献4条内容
所有评论(0)