From 3748f042cbf8568a347783f2423593ba02a37b58 Mon Sep 17 00:00:00 2001 From: zhangjing Date: Tue, 26 Sep 2023 16:55:20 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9C=80=E6=96=B0]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/interfaces/user.js | 9 +- app.json | 10 +- pages/index/index.js | 17 +- pages/index/index.wxml | 7 + pages/index/index.wxss | 37 ++++ pages/login/index.wxml | 2 +- pages/user/code/code.js | 372 ++++++++++++++-------------------- pages/user/code/code.wxml | 56 ++--- pages/user/code/code.wxss | 170 ++-------------- pages/user/index.wxml | 20 +- pages/user/index.wxss | 19 +- static/festival/00.png | Bin 0 -> 5125 bytes static/festival/00_active.png | Bin 0 -> 5410 bytes static/festival/02.png | Bin 0 -> 4779 bytes static/festival/02_active.png | Bin 0 -> 4431 bytes static/icons/close.png | Bin 0 -> 489 bytes static/share_00.png | Bin 0 -> 11044 bytes static/share_01.png | Bin 0 -> 10184 bytes 双节底部图标.txt | 19 ++ 19 files changed, 322 insertions(+), 416 deletions(-) create mode 100644 static/festival/00.png create mode 100644 static/festival/00_active.png create mode 100644 static/festival/02.png create mode 100644 static/festival/02_active.png create mode 100644 static/icons/close.png create mode 100644 static/share_00.png create mode 100644 static/share_01.png create mode 100644 双节底部图标.txt diff --git a/api/interfaces/user.js b/api/interfaces/user.js index e08b60a..555bbab 100644 --- a/api/interfaces/user.js +++ b/api/interfaces/user.js @@ -74,6 +74,12 @@ const goodsSign = (order_no) => req({ method: 'PUT' }) +// 邀请码背景 +const poster = (data) => req({ + url: "poster", + data: data +}) + export default ({ home, invite, @@ -86,5 +92,6 @@ export default ({ mallGoods, orders, goodsDet, - goodsSign + goodsSign, + poster }) \ No newline at end of file diff --git a/app.json b/app.json index 63f4b60..591e8cc 100644 --- a/app.json +++ b/app.json @@ -39,18 +39,18 @@ { "pagePath": "pages/index/index", "text": "锶源商城", - "iconPath": "/static/tabBarIcon/04.png", - "selectedIconPath": "/static/tabBarIcon/04_active.png" + "iconPath": "/static/festival/00.png", + "selectedIconPath": "/static/festival/00_active.png" }, { "pagePath": "pages/user/index", "text": "锶人中心", - "iconPath": "/static/tabBarIcon/02.png", - "selectedIconPath": "/static/tabBarIcon/02_active.png" + "iconPath": "/static/festival/02.png", + "selectedIconPath": "/static/festival/02_active.png" } ], "color": "#b6b9bb", - "selectedColor": "#6c78f8", + "selectedColor": "#000000", "borderStyle": "white" }, "style": "v2", diff --git a/pages/index/index.js b/pages/index/index.js index 29c6692..f3684bc 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -39,13 +39,21 @@ Page({ endX : 0, iCenter : 3, datas: [], - order: [] + order: [], + + haveimg : '', //双节图片 }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { + // 双节 + this.setData({ + haveimg: true + }) + + this.setData({ BarHeight: getApp().globalData.systInfo.statusBarHeight + wx.getMenuButtonBoundingClientRect().height }) @@ -250,4 +258,11 @@ Page({ videoFilex: false }) }, + + // 双节 + haveHIde() { + this.setData({ + haveimg: false + }) + } }) diff --git a/pages/index/index.wxml b/pages/index/index.wxml index 28c47d9..798841a 100644 --- a/pages/index/index.wxml +++ b/pages/index/index.wxml @@ -1,3 +1,10 @@ + + + + + + + diff --git a/pages/index/index.wxss b/pages/index/index.wxss index 081f8c0..5103cdf 100644 --- a/pages/index/index.wxss +++ b/pages/index/index.wxss @@ -2,6 +2,43 @@ page { background-color: #f3f3f5; } +/* 双节 */ +.haveBack { + position: fixed; + width: 100vw; + height: 100vh; + left: 0; + top: 0; + z-index: 999; + background-color: rgba(0, 0, 0, .5); +} +.haveCont { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-pack: center; + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 1000; + padding: 0 8%; + box-sizing: border-box; + text-align: center; +} +.haveCont-img { + width: 90%; + border-radius: 20rpx; + overflow: hidden; + display: block; + margin: 74rpx auto 0; +} +.haveCont-close { + width: 64rpx; + height: 64rpx; + margin-top: 10px; +} + /* 轮播 */ .page-section { position: relative; diff --git a/pages/login/index.wxml b/pages/login/index.wxml index 889ba1e..687596d 100644 --- a/pages/login/index.wxml +++ b/pages/login/index.wxml @@ -23,6 +23,6 @@ - 登录即表示同意用户《隐私协议》《服务协议》 + 我已阅读并同意《隐私协议》《服务协议》 diff --git a/pages/user/code/code.js b/pages/user/code/code.js index d5eb3f4..3d5966d 100644 --- a/pages/user/code/code.js +++ b/pages/user/code/code.js @@ -1,249 +1,187 @@ + /* * 手太欠 * 愿这世界都如故事里一样 美好而动人~ */ Page({ - /** * 页面的初始数据 */ data: { - shareSee : false, //分享弹出 - identity : '', //1为普通 - userInfo : '', //用户信息 - inviteText : '', //邀请码 - inviteCode : '', //二维码 - - //海报 - posterDatas: { - width : 375, //画布宽度 - height : 800, //画布高度 - // 缓冲区,无需手动设定 - pic : null, - buttonType : 1, - show : false, // 显示隐藏海报弹窗 - success : false, // 是否成功生成过海报 - canvas : null, // 画布的节点 - ctx : null, // 画布的上下文 - dpr : 1, // 设备的像素比 - }, + nameInfo: '', // 用户名 + invite : '', // 邀请码 + qrcode : '', // 二维码 + posters : [], // 海报数组 + current : 0, // 选项卡下标 }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { - //生成海报初始化 - var that = this; - var posterDatas = that.data.posterDatas - const query = wx.createSelectorQuery() - query.select('#firstCanvas').fields({ - node: true, - size: true - }, - function (res) { - const canvas = res.node - const ctx = canvas.getContext('2d') - const dpr = wx.getSystemInfoSync().pixelRatio - canvas.width = posterDatas.width * dpr - canvas.height = posterDatas.height * dpr - ctx.scale(dpr, dpr) - posterDatas.canvas = canvas - posterDatas.ctx = ctx - posterDatas.dpr = dpr - //存储 - that.setData({ - posterDatas - }) - }).exec() - }, - /** * 生命周期函数--监听页面显示 */ - onShow() { - // 获取推广码 - this.inviteInfo(); + onLoad() { + let miniShareFun = wx.$api.user.poster({ url: 'pages/mall/index' }) + // wx.$api.user.poster({ url: 'pages/mall/index' }).then(res => { + // console.log(res.data) + // this.setData({ + // nameInfo : res.data.name, + // posters : res.data.posters, + // qrcode : res.data.qrcode + // }) + // }) - // 小程序码 - this.ShareInfo(); - }, - - /** - * 推广码 - */ - inviteInfo() { - wx.$api.user.invite().then(res => { - this.setData({ - identity : res.data.code, - userInfo : res.data.user_info, - inviteText : res.data.invite - }) - }).catch(err => {}) - }, - - /** - * 小程序码 - */ - ShareInfo() { - wx.$api.user.miniShare({ - url: '/pages/login/index' - }).then(res => { - this.setData({ - inviteCode: res.data.qrcode - }) - }).catch(err => {}) - }, - - //海报生成 //画布 生成 海报[海报] - saveImg () { - var that = this; - var posterDatas = that.data.posterDatas - var canvas = posterDatas.canvas - var ctx = posterDatas.ctx wx.showLoading({ - title: '海报生成中', - mask: true - }); + title: '加载中...', + mask : true + }) - //二维码 - var codeImg = new Promise(function (resolve, reject) { - const photo = canvas.createImage(); - photo.src = that.data.inviteCode; - photo.onload = (e) => { - resolve(photo); - } - }); - - //背景素材 - var backImg = new Promise(function (resolve, reject) { - const photo = canvas.createImage(); - photo.src = "https://api.siyuankunlun.cn/storage/images/2023/03/14/7777441f7a2b25353f2d6de61452418c.png"; - photo.onload = (e) => { - resolve(photo); - } - }); - Promise.all([codeImg, backImg]).then(res => { - - // 绘制背景 - ctx.drawImage(res[1], 0, 0, posterDatas.width, posterDatas.height); - - // 绘制[二维码-白色背景] - ctx.fillStyle = "#ffffff"; - ctx.fillRect(200, 540, 120, 120); - - // 绘制[二维码-白色背景黑框] - ctx.strokeStyle = "black"; - ctx.strokeRect(199, 539, 122, 122); - - // 绘制[二维码] - ctx.drawImage(res[0], 210, 550, 100, 100); - - // 文字 - ctx.font = "bold 14px Arial"; //字体大小 - ctx.fillStyle = "#000"; //字体颜色 - ctx.textAlign = "center" - ctx.fillText('扫描二维码了解更多', 260, 690); - - // 关闭loading - wx.hideLoading(); - //显示海报 - posterDatas.success = true; - - that.setData({ - posterDatas + Promise.all([miniShareFun]).then(res => { + console.log(res) + let miniShareData = res[0].data + this.setData({ + posters : miniShareData.posters, + qrcode : miniShareData.code, + invite : miniShareData.invite, + current : 0 }) - - this.onDownloadImges(); - - }).catch(err=>{}) - }, - - //下载图片[海报] - onDownloadImges () { - wx.showLoading({ - title: '保存中', - mask: true - }); - var that = this; - var posterDatas = that.data.posterDatas; - if (!posterDatas.pic) { - that.onCanvasBuildImges(); - return; - } - //可写成函数调用 这里不做解释 - wx.saveImageToPhotosAlbum({ - filePath: posterDatas.pic, - success(res) { - wx.hideLoading(); - wx.showToast({ - icon: 'none', - title: '已保存到相册,快去分享吧', - }) - that.setData({ - posterDatas, - shareSee: !that.data.shareSee - }) - }, - fail() { - wx.hideLoading(); - wx.showToast({ - icon: 'none', - title: '进入设置页,开启“保存到相册”', - }) - that.setData({ - posterDatas - }) - return; - } + // wx.getImageInfo({ + // src : miniShareData.qrcode, + // success : qrcodePath => { + // this.setData({ + // qrcode : qrcodePath.path, + // posters : miniShareData.posters, + // nameName : miniShareData.name, + // current: 0 + // }) + // } + // }) + wx.hideLoading() }) }, - - //画布 转 图片[海报] - onCanvasBuildImges () { - var that = this; - var posterDatas = that.data.posterDatas; - wx.canvasToTempFilePath({ - canvas: posterDatas.canvas, - width: posterDatas.width, - height: posterDatas.height, - destWidth: posterDatas.width * 3, - destHeight: posterDatas.height * 3, - success: res=> { - posterDatas["pic"] = res.tempFilePath; - that.setData({ - posterDatas - }) - that.onDownloadImges(); - }, - fail() { - wx.hideLoading(); - wx.showToast({ - icon: 'none', - title: 'sorry 保存失败,请稍后再试.', - }) - return; - } - }); - }, - - /** - * 分享弹出 - */ - shareTap() { + swiperChange(e) { + let index = e.detail.current this.setData({ - shareSee: !this.data.shareSee + current: index + }) + }, + /** + * 检查授权信息 + */ + onCheckSetting(){ + wx.getSetting({ + success: res => { + if(res.authSetting['scope.writePhotosAlbum'] || res.authSetting['scope.writePhotosAlbum'] === undefined){ + this.onCanvas() + return + } + wx.showModal({ + title : '提示', + content : '暂未授权小程序写入您的相册,无法存储海报', + confirmColor: '#144592', + confirmText : '去设置', + success: res => { + if (res.confirm) { + wx.openSetting() + } + } + }) + } }) }, /** + * 生成海报 + */ + onCanvas(){ + wx.showLoading({ + title: '加载中...', + mask : true + }) + wx.getImageInfo({ + src: this.data.posters[this.data.current].cover, + success: imgInfo => { + wx.hideLoading() + wx.showLoading({ + title : '生成海报中...', + mask : true + }) + let posterSrc = imgInfo.path + let posterW = this.data.posters[this.data.current].width + let posterH = this.data.posters[this.data.current].height + let posterY = this.data.posters[this.data.current].position.y + let posterX = this.data.posters[this.data.current].position.x + let qrcodeSize = this.data.posters[this.data.current].position.size + let qrcodeSrc = this.data.qrcode + + wx.createSelectorQuery().select('#canvas').fields({ node: true, size: true }).exec(res => { + const canvas = res[0].node; + const ctx = canvas.getContext("2d"); + const img = canvas.createImage() + const code = canvas.createImage() + const dpr = wx.getSystemInfoSync().pixelRatio + + // 设置画布 + canvas.width = posterW * dpr + canvas.height = posterH * dpr + ctx.scale(dpr, dpr) + // 清理画布 + ctx.clearRect(0, 0, canvas.width, canvas.height) + // 绘制背景 + img.src = posterSrc + img.onload = () => { + ctx.drawImage(img, 0, 0, posterW, posterH) + + // 绘制图片二维码 + code.src = qrcodeSrc + code.onload = () => { + ctx.drawImage(code, posterX, posterY, qrcodeSize, qrcodeSize) + + // 保存海报 + wx.canvasToTempFilePath({ + canvas : canvas, + width : canvas.width, + height : canvas.height, + destWidth : canvas.width, + destHeight : canvas.height, + quality : 1, + success : paths => { + wx.saveImageToPhotosAlbum({ + filePath: paths.tempFilePath, + success: res => { + wx.showToast({ + title : '海报已保存', + }) + } + }) + }, + fail: () => { + wx.hideLoading() + wx.showModal({ + title: '提示', + content: '暂未授权小程序写入您的相册,无法存储海报', + confirmColor: '#e50d01', + confirmText: '去设置', + success: res => { + if (res.confirm) { + wx.openSetting() + } + } + }) + } + }) + } + } + }) + } + }) + }, + + /** * 微信分享 */ onShareAppMessage(){ return { - title : this.data.userInfo.nickname + '邀请您了解锶源昆仑', - path : "/pages/index/index?invite=" + this.data.userInfo.inviteText, + title : '锶源昆仑', + path : "/pages/index/index?invite=" + this.data.invite, imageUrl: "http://cdn.siyuankunlun.com/materials/2022/09/14/code.jpg" } } diff --git a/pages/user/code/code.wxml b/pages/user/code/code.wxml index fcc691e..7f75df2 100644 --- a/pages/user/code/code.wxml +++ b/pages/user/code/code.wxml @@ -1,32 +1,34 @@ - - - - - + + + + + + + + + + + + + + + + 保存海报 - 扫描二维码了解更多 - - - - 分享 + + - - - + - - - - - - - 保存二维码 - - - 取消 - \ No newline at end of file + + + \ No newline at end of file diff --git a/pages/user/code/code.wxss b/pages/user/code/code.wxss index e617fb2..ca606bb 100644 --- a/pages/user/code/code.wxss +++ b/pages/user/code/code.wxss @@ -1,164 +1,18 @@ -.code { - width: 100vw; - height: 100vh; - position: relative; -} -.code-back { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; -} +.content{ display: flex; align-items: center; flex-direction: column; justify-content: center; background: white; box-shadow: brown; min-height: 100vh;} -.code-cont { - width: 450rpx; - position: absolute; - z-index: 9; - text-align: center; - right: 0; - bottom: 13%; -} +/* 海报预览 */ +.poster{ width: 550rpx; height: 900rpx; background: white; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, .05); border-radius: 20rpx; overflow: hidden; } +.poster-item{ width: 550rpx; height: 900rpx; background-position: center; background-size: cover; position: relative; } +.poster-qrocde{ position: absolute; background-color: white; padding: 10rpx;} -.code-img{ - margin: 0 auto 20rpx; - overflow: hidden; - width: 220rpx; - height: 220rpx; - border: 4rpx solid #000; - background-color: #ffffff; - padding: 10rpx; - box-sizing: border-box; -} - -.code-img image { - width: 100%; -} - -.code-text { - color: #000; - font-size: 26rpx; - font-weight: 600; -} - -.code-share { - position: absolute; - z-index: 10; - right: 0; - bottom: 40%; - background: linear-gradient(to right, #3f7fff, #568fff); - width: 50rpx; - text-align: center; - border-radius: 26rpx 0 0 26rpx; - padding: 24rpx 4rpx 24rpx 10rpx; - box-shadow: 0 0 6rpx 6rpx rgba(0, 0, 0, .2); -} - -.code-share-name { - writing-mode:vertical-rl; - font-size: 28rpx; - padding-left: 4rpx; - color: #fff; -} - -.code-share image { - width: 30rpx; - height: 30rpx; - margin-bottom: 5rpx; -} - -.sharePop { - position: fixed; - width: 100%; - z-index: 99; - left: 0; - bottom: 0; - background-color: #0a1930; - display: none; -} - -.sharePop.active { - display: block; -} - -.shareCont-label image { - width: 60rpx; - height: 60rpx; - display: block; - margin: 0 auto 10rpx; -} - -.shareCancel { - border-top: 2rpx solid #0e2c58; - color: #ffffff; - width: 100%; - text-align: center; - line-height: 100rpx; -} - -.shareCont{ - display: flex; - padding: 30rpx 0; -} - -.shareCont-label { - color: #ffffff; - flex: 2; - text-align: center; - font-size: 28rpx; -} - -.codeShare-button { - background-color: transparent; - padding: 0; - font-weight: normal; -} +/* 分享功能 */ +.tool{ display: flex; align-items: center; justify-content: space-around; width: 70vw; margin-top: 80rpx; } +.tool-item{ text-align: center; } +.tool-item[size="mini"]{ padding: 0; margin: 0; background-color: transparent; } +.tool-icon{ background: #f7f8f9; width: 88rpx; height: 88rpx; border-radius: 50%; vertical-align: top; } +.tool-text{ color: gray; font-size: 30rpx; line-height: 40rpx; margin-top: 10rpx; font-weight: normal;} /* canvas */ -.canvasImg { - position: absolute; - left: -1000%; - height: 800px; - width: 375px; -} +.canvas{ background: #ddd; position: absolute; top: 0; left:-200%; } -/* 何院士样式 */ -.newCode-cont { - width: 70%; - height: 200rpx; - position: absolute; - z-index: 9; - text-align: center; - left: 15%; - bottom: 19.5%; - background: linear-gradient(to top, #a09084, #a58367); - padding: 15rpx; - box-sizing: border-box; - border-radius: 30rpx; -} - -.newCode-img { - height: 170rpx; - margin: 0 auto; - background: linear-gradient(to top, #e9d1bd, #c49b7a); - border: 4rpx solid #f3c49d; - border-radius: 30rpx; - display: flex; - padding: 10rpx 30rpx 10rpx 10rpx; - box-sizing: border-box; -} - -.newCode-img-title { - width: calc(100% - 140rpx); -} - -.newCode-img-title image { - width: 80%; - margin-top: 15rpx; -} - -.newCode-img-code { - width: 140rpx; - height: 140rpx; -} \ No newline at end of file diff --git a/pages/user/index.wxml b/pages/user/index.wxml index dac13e7..6d86164 100644 --- a/pages/user/index.wxml +++ b/pages/user/index.wxml @@ -1,11 +1,21 @@ - + + + + + + - - - - + + + + + + + + {{nickName}} diff --git a/pages/user/index.wxss b/pages/user/index.wxss index 8a67034..33588ea 100644 --- a/pages/user/index.wxss +++ b/pages/user/index.wxss @@ -10,12 +10,19 @@ page { } /* 头部 */ +/* 双节 */ .Usetop { width: 100%; position: relative; - padding-top: 48%; + padding-top: 52%; } +/* .Usetop { + width: 100%; + position: relative; + padding-top: 48%; +} */ + .Usetop-back, .Usetop-range { position: absolute; @@ -98,6 +105,16 @@ page { border-radius: 50%; } +/* 双节 */ +.userTop-head-frame { + position: absolute; + left: -22rpx; + top: -26rpx; + width: 136rpx; + height: 136rpx; + z-index: 9; +} + .Usetop-head-ancrown { position: absolute; width: 48rpx; diff --git a/static/festival/00.png b/static/festival/00.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ad04595898b7261105278786ce418c4a25a94e GIT binary patch literal 5125 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 br-1^xHj9?(Rqbp3{Fp<)4K$0@?>_n;ulY(G literal 0 HcmV?d00001 diff --git a/static/festival/00_active.png b/static/festival/00_active.png new file mode 100644 index 0000000000000000000000000000000000000000..9307feffd505ce0b7f45c4dbe06cfa3f70544b9f GIT binary patch literal 5410 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 C!O*<` literal 0 HcmV?d00001 diff --git a/static/festival/02.png b/static/festival/02.png new file mode 100644 index 0000000000000000000000000000000000000000..0560e62a40d12d22f1f0ad9422b53e9843597581 GIT binary patch literal 4779 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 literal 0 HcmV?d00001 diff --git a/static/festival/02_active.png b/static/festival/02_active.png new file mode 100644 index 0000000000000000000000000000000000000000..a184944d0ac3d5bae6bc5d00f8cbdd3250c212b2 GIT binary patch literal 4431 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 I(bb6m08&`#4*&oF literal 0 HcmV?d00001 diff --git a/static/icons/close.png b/static/icons/close.png new file mode 100644 index 0000000000000000000000000000000000000000..4018721f2488d3653d6b27b46779a3ced3c7df41 GIT binary patch literal 489 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy2?0JKu0Z-fEkTW{%r2lE@+Coj z!3E^ydvl@m z_qx;CPm)!yhlVBdg;!pYZ{S+UB-j3X!S3tLeuqyV)DL;YE4pR(e(h$9M2`Gx2Kgno zyR$F7HE#a8aM?W#RnJ!ESp~)4-}RQy*lnj8-F97g`4gLL(=U(WJ<4xgNS2xI|1Ic3 z>%x+l1lJQByEcgQ8H))THR*{N&EIfLIBb4^!ef6AuKZ11v)AnLJSw4I{N?OCJM%0d zzl$p(R*U}H#J}2_e|7VGgFIco3tti!+Ufg5oJ_2n`ke7iB737%i)o!Ia};Z3{+mq^ xm!B`VHCeMd{rKH34ynv}`{zyU{h{=afiXwi`O&0SRbY5Bc)I$ztaD0e0svu`1DgN< literal 0 HcmV?d00001 diff --git a/static/share_00.png b/static/share_00.png new file mode 100644 index 0000000000000000000000000000000000000000..321697765a44e7055a4c3b978e2d84229a0e63b7 GIT binary patch literal 11044 zcmV+PyA07*naRCr$1eF>NyRh9qm+5$I8Kp<=h5C{ZWRRW004DR|LbZ`cgzl`Jd zIT9BX!|H;}s5sx?Uj!9#0nt$e2Ne<)AxhZE23bhRMmkHculp@k=l`91Z&lr@SFgK6 z5@6m(=(kkeKqUZ% zQH+%VV+C>b8C6hQ%4O_mZ$D$_>w!71DMOeSH0ZQ>i2#zXv;JlE8CoIv8yI88@;=i#F%e2ZfF9-HDKOt# z^=p5wR4SXs-Pb=rANYVj@~rmV6|WjYm~Zz62d7UCg6dH@;9L;i%)n#_9ss%Il!O6d zkrY^4CI)d8Kn)0LAdyi^iuj>qC7x3Fg*Pi@>$+T43him7$gnuAi*8R0|4#` zRDOAL^QLV?uMT7OJ3|aeKRkA5$UhD~eTWp!0%#&Li#9kfA*2w_5>1G$>BWHG4OLkO zs%(I&ZUw5_^>-BX13|@Ug8-ESQ#0Uofb$c<`KjRiLEz%S;M_RF6g_LpDE0yQmtrgt zm6(GrF#Q=G-`3RRJq4WJy}xm0zcNHHqSB8;eWDAA=-mKK1GrGf2+;x=iD*Gk0o8Va z%FCe!9)lWO4ytZ5+M!L4y<7e^8hv<;`#X8y+;{}dMgI-+0Wo6xy(6e`3sjVF>dgRqkCd3wfLyFfJhAP=Ln704?2$gerh5fZwMj zp9Y_WDm@KV-URqv01pB|)zFl9D?e56yA>8pvvpOfdtKl00fGq+@V?+4n~rna#9mS7p;i-Y1*~) zjmT^phG>#a){FOaz8hmX%@Jr zE{^E!eD5+gscpuT>EEdd{@4ZZ$6o+09B45x5yu1!ELDsviml_95FO?E;(NrLSIiLR zyILxxj<@*Wg#?@!pID{!mEFEz}cNuBYcQ} z!!dgaBHP&}Ok&C-NSjMyHa>>9&CN%kHts#(_LIS0XF7hVGVquO`evb}=TAiEi5b}A z*DGSkmMwR+bdDYK_sn!TgO7+KZ4Xd+ptb|KUB83c^?RVQ1(Hw|-QJT|mSt(ADOr-A z)mN4_)Zfe6jMnvK!9U24N6>Kwg3kYgpm-oC5DOJ$3u**fO~hC3?C$;j)Tw*Uls%)8 z2rVx!luA3_?t!mmU`{k~jTd=Pc_X~8TcLWF0JUC_1?xKSP1~yBY?m|21Oc5!qf659 zinX92g+sZ}816RKz~t3^EjOwr1g-NBO!^3dW+8##ip`lBPOb=uzSPpv`G-9KC*Ns6D|k%4UuN(lt&IUxEkK}TcG-v0{);)2=0kq{BO8cG)P`K1TAymPrOja zE{3@guG9ef8!@gdwzk~ACqO@HhM45wq>~7AonQttn;1h9c+{l5r`+amf(D*8(YJ`A zmS8K!k!Yq;9)16MO1t;E_9uN$9cZLHu;^YpxafNM?1761!JoDeLF@4* z#$`WNN5wA?=%XOC zo2~@FbD+`+VMkU(&50n5mIMKa9VOhk1XXC4NJl_aHTOL6^j^+Z=@kvJ;ljR zZk`2y%D*6J6YpOdHb75=z97I4eIEK+d;43rkHqp38N&QRv0U2n&kTG4fJESuUA3%)ytqZ66kBimZ?7?I!xC68@`5Rh-7UC2hTi( z0{#JmXKRm1^CJ(c?S|TVBfMRIGFe$k)TPoMX~B=xI8Kiwc#z;e93wx9JeS1hwN%c-wyls`Y{u>8Lg$u1#aOcvy$&DFv{?ZPeWPE&V>COUnGY z+L9oX8zfrpCahtqolsMC5F6ebrd_PrjQkV_DPqYfA{h5p_)|U#&V|9Frc40Buc)TJ zQfxo{g+_QX3_}(-4G!QEkh+Y_GONi;39ozp0&ml|p(>jrQP<9(LkTmV*hn{WX3_)5 z3J=n9=t_MWma=Stdrj7a(@^6=Nfzuy*Qc3nZ7}5yKyAuJ2s+jtxWKAB!;^tRSS+}B_vL4ngxI6SHP`@8&_Bdj@qg} z<^|qGg|^dHWNAqzL%O>kI-roNU1q#0>M#^Hoc6YSAKvy~g9E9ci7BcX;-+T9?sX5g z8?mKYk&HI!_pYa-CCpx{|AcmM7z=M|ATnMSgF?j(3r~gviv-9dQz&|-wjW21>cKF) zkUa$B-VFc1&jVh2oFQiJVbD#Ln!0A}*f;J@54>)85&#bMPka*;{Sd%RBmAZ)M0G!e z+>6%$wLY*$lsI*sMUsRKOWUIC8|oKBToJT9in!URjXL+uUg%OZ5)%7crYfY|fO=}h zDrd(QY9S>5tMUkDd=mcnciLqL9iK>}FCyTNG_`GiFdZ<~bx|taH;vf45}<#IN;Jf) zDsO|g?kk{y=Ta`ra3bgWoDHe>%6~|RYS>J;WGH1oq}Sx_lAxPMe&u~ecP3OjTSLW4 zHP1wC)*^7r;nwTY_xTF=u}{HQTUr)ua&JyhQ?#QzF!^j&_&%7;s-Iq9^5Jd26KeBK zX3bkUYp436J#Zl19@A)@)`oP`j`edL2xCj^&GI&P0BF(&LAeeDUB3knEH`CdZqS;* zkc^mTSTv7RHI_KnriJ4ahEM^)r1!#~b`c;ek$Q1Uk7WY|{w2lMu0Oe2l3>Wro%f7s zF1B8&6kTlUrUc6iKzS>2YrhKWe>Nt53e7Zpr=s+T-YLy@C8Ca%scX~Nn-;}bPHh?k z3N-dic(Z>7s3N%c5d^FL6+E;aGou(1 zle14Vz*YQ41W0}#w;%Rmez&GdG6)mShdSbiW(k=C1bu%6KX(DRybkcfk&R?>Vw$^( zISeNf#w=1W9W56TO#FKU(?14yt&x^6_$fc&3)#1J!?J!a@KO^aWZw zwjj6mYEbXf#*5N!qlqx6Q603neggS+&WTk)N90`xER?t~AWIV=!4$_jC9czx&x0ns z4{G+0w7D?t`rsYEMX>e?aOqh<3E*1GA+re;C&Q_W0$!Q79=n}Dl$od(qu5cj4T>AA zvE)lY+Z=c8q>GuaYi=!kkI0l0MM7TMxp+Di)lWcplg%9J;8N|l7v6^d1Zq8z4`06? zZbLvz;k4!$<|UEFjY~r5aGBxyvc|hkfsY&d+XmQrHZv`>u{(xo5SHY5% z))l3;P5URE`q89!vBctpkq7gGdG9dAGA{ncno`k{splh@`XN9yhsj4Dga;YHheL4J zt!gkYPd=M{{t-+8v;p(#E_my|1-0uTummgH>Et&L98(ovm3Aq?Gk-2d~TN7zq z?rA#;{^4H*ic(P-1cVycin1V--8qK9{-yzaD!}$kvb}X`ksOJ!d0N5 ztvX+2#-2=w#F&s&-9`*aPHr@x(x{WZ$3Xcf&g>gCTOO--lr9%?Mt+9vFJb zn66Q;_q$_B7?@!uV#g;QSN;I_hkO=1?u|Ck)*jc8F1YjQ`u6rWb!jU1_AWj$?4LKQw^05@_cPUj%m<+w%Ef^vU`FXvD zghQyjj9}Au5p4J#;P)CgKI%6$&PLxS1`-a;wQp&L$-r~qN$-Gv(8qyXo2Idy(W6yA z_{f+s3s#Y&*oXQToWY8JMxaT0IAY^!-SD2j3fTQ{qLR=I*Gfu44N~AX9N*mE(v@(r zdtxkfWSQ#0GaiebyqGM}kV)@_cht`sGel-k-iBcPBJh@5b>W^dUsnG$$fsj1M=;Vu ziRLqmHp@IErPY2U{5f9-3X?;Ih|PJK0{UQ6+u|j}+ZVT$+q{p0c@YC0QS4D#4{zmV zpaF3eQ-B%?kuzwWQ%W()UYF8=2P1f4wI2jh=qykNOC%n18OoDob zg7VNt1naIq@ba%rg^ZLQyK{5Bp0pCUnxk)us_N{}?ReeE`wT9Og@44Cfw3oBV3Djm zdO)6}hsrfR2Zmn_Q%QV#emsy;ziqn3Y z!4D}W3E-{13em$nOOn@+DrAWHEuA6F@`;i#5ECq!s&|Xkq7u;w^q)qBQoJD%c(EOByyksn&RZ^;(6R8r9TR!B*g4&M;jXxV|+?hbjp(gUxyP!mn z>`tr<)Eiz?0&xEd1kYcJV8?y25Ju+HjJ^)vBVQm?lWd%e?=v_8FAx8uJAmRuC*jD; znbgN*HlgLV!H{~H$qj7tXVcFh87{Y4w6N# zILd|B1ZqDHYQ{%Foo9lIvK37>)VSC-l5ra8cLw+T75=Kv0=xbSP!PHL(VfF!c5JCq zOmQ}@=+R2lPK4m-Z-Eb(Z_So3Q&|tfA{rc6yof=UXb(%H8iRVCf_nN>rf9--2@{7N zxJ$O~Ad-eH(waJNst)QMidkj|(+iWJ4*mqZnU@+(*v~KCxfr$Q{x8tKCZ2oRr*SnW zkwMPTkhIKbPY?(W`8as$yA9?^YDYXRMK{vmzymjd`F(n2PyjtBgSOrc^}@efgP3wX zqYm8dOKB>ln3C{9oNE(pIg=4V@Y+BJoC5FQPlCied8tji`;9RHf*toFSg{b?w-Qid zFVo&*YJQ))%|kF}5m2097tt^T#{E?4U-B3c9j{3*TM4Q?P^+&4 zZM)ylQL>s&tdPCmDaLd2djiHRpd02T+~fo)40y{PbMK%Fp=K=vH9I@wUQK>zTVF=7 z@weMT=?o9wVVhva}7#V>WRW1SRkn~C7K>w)H};a>ZInV+Dc(u1p+`Ea8Rl5XDt zwPF#l<8jN7xMM@+nAj$omBgYMY+{97k0gwI<7z_9T8}Y3k_szpD1S!n@$db+6XI`8_S@jSt*)utC~0^6itC%7 z0{_Hs0PV8Y9#xla77USN5=;)uD}qX!pq{!E+_&CHvUO`C$0Cu+u*0(25L+v!+3~1E zDzt0j<>n{DKk-^%%xw2~knJ?s|3EiLa#)5T7@1|CQ{ zrJcY*JF>uPNUj~Zx!;DGe!+G`Lxv!AtwOh$0hwLnMOWVxU&Cabgs>PZ3h=M6|{Es1kfp_az7 zpXHO=UmXRBHVfFLUkcYQW_$p-V{QNyLsT&Zbxn96$m!o3e@^-{1y9^*{*yn zn(@d(=fx=^j!I^&FxOavdT`3ufiVK=(YE%@^=|J_7u3_213RBGedu+Lc>O#?Dm_%~ z2F7Wv#9~skamEHs<_61KmQ)eYG!5Rd*Tb9k{#ULYx{$dF_;U7T#he}_3DUv=qvS3F zLtEjmz6Sn=pBQF@rdkg@8A%vOa5n}e1=7yeNu(N(*E0`;U$G3uso+z-1+*QKbbFJ5 zVF9S@20ix;V9Nux+RsQqdOJ)!Oyir!`_P?wcdcS!xrw9lV!4Dlou?r;{}xc2oKv$W zF9vD@;PMWje-(o6#}V|c0{5>2s(nzC-;Uf-SDQWaBfY9U@K;>}|M~yWDGUzXTRZkB zf(n@vrSR;0WbP)=urEWIC|YFp)aZk$NBK`I~_C zcccQt5Ifv8j)a?$8KEcBCLx%cn8%xSF>Vwy5XiK*(!%DhSf#zJ(6oh^;+VNK&WFv;I0roE)5f%lnU!q{M0eJw-vb}mxeWBz z&zbbQsBjb&W=$>SeI!0MaFNCBD@;ZH^dCb_JbQSfBB|-FC8#aG0zvoFS{v-j?xe<5C+rWvU;AJ1S6mHLdK{t4a&a3CuhF$5cv?37&WB$F9P$r9P71Ky z^!wmL7a$0n1u731+y?s7`+*<;yA^)X*qq%q?iQv{KwNX`B;<@8B|v)_Gm&5LOQ>;j zAVh=L&^GvMZ$#~d{|A(}89dTFwrL8t>RrCq)#iDq>F+}R zUwu9NO}_yu-G&&U`E-KdL^-IIKFg3(GE7!51b_4IP<#4|;DPlZsqwYNGI2X;$KKh^ z8fCtnEhnM(l(5|HE>X)E>ztV-Tn~KKFMyV*P6Z<`hvG|Ykwfjr0G+D+QUP`jK+C=i zY<V+i);OgL|H(X70y&_VMw77Lm1q<0@Y_PN3i)WbJ~u}i1b)&YQh{U z${-~f<98u<(rrmEi+znh)kiM`%Dc4YhuY?5sk3T!Loo72gM{vOy==QRq2@6A77P1{8m)4es6E+_vw9=ULH9C^^<;V3O4kR0t8#{LG8)U z8;8J}sj%VXJmT&$bR{BrJX2R*%|P7|S_5mwA?rOV2h2DJIPMGjBn+F!ipzlN3gvX6 zLk{S90eJKaz<^l`h`f(z<7TQ(#<4n@>~&fdOO6~&4KZ17xdSxLFR; zUBNn2bub=6tfff=D`Kt+?ZEL1fvIQMaYzBYQz(~NN}6j1%00lNp9i|0(Bsr=BCfYJ zoHG$Bt_yJC;DmshA+u08=MJcG^CDITTkb;Tp$|DLbm31410733#CazeBM&s~T;xyr zDJa*5;N|;JUG{Ns&sq~PhfYDdNH}F~k{{y$w=R{QHN?oEm~n>;)d6AqOyKly0&O#N zcERYAQ%WlLmdlHe3~K6T08-ybk!@RfGw{Og`gp#2vlV6)LN6mkEjvPM+oKXoN5?~x zWf)>Kg!|T@^6)=^yB;@vCE}lGN(mcnB*ir>W*Hd8PUH@~1k^MR{`y-H?2?0VT!$ll z28gqF+R=2wGuyY@PgG**#42vs;+oh{d$r6cV8)riaSMS$hoP&n@k>=MxTsiMuu9)* zwj1c%I|2hQ{|#97b?{(Ud}O*i;P8DI2f2o|E}alEip+XI;XoA5x(#Z==~_~1 zE3ZTC*{^}C{U)AEtfx4;eH_rt8j9gA0l6_IFs$}CNAOuqOPEvpojZp_!>%wyqF>*2 z!~5-}dX=ypnENr{pmU8kD|K&#K??YWDywfr+YvH1>cFrQ`BQIzci{WM{TonO{7wYjEA)1=sJ_;zlXbn9#(g^48S-%0$G$ikkWrIc zKizseZHq)3%SM>jk{oEq!Jv~D0Ufg}!fU$JZ`hG9xbHJ?gfTJ%4@^TEmK2OUB(?hKM3ldw} zbc6gz^WZ?`6GU{W+4N~1{ea%}z|yOLU8{`m9uYm2^>IwOyV*0W(hn_(Zdc+3R-ozU zB0uj+_^ZB++PYtWBz^9@q9$F+*dsFB9c8X0r*tt1F)6rgnp-lgS`&V&oDwM+q>xDc2$-+j1D7ZJW$Y|j5@-KI}zvu<0oFvKr|SKS7z_&Fda zQadIf?fdAUC&a)8N*t-U2uR0lrKAnSEzLFCMDt|ONuM{`p|xq02M3s=H72};m3L!w zw1(9Zth^O0S`xazqou$|$>I^GmfcZCh!aaj+HN(Hm`Ifz+UxEt`LkTvbod^MV^oXf z+^=KM9BAg*!113kL7_hSPXo>dQglhNxV7=o8giY0yT|H^0EiEt@$x{=dhkPE271;x ziN4`wEK#hH1r9Dj(!VFvtIjwk&q~r#=cZVO;c_Z$srMY6zA}kFLSHV32<=-Yflm7} zFzE#M+^o?ZKBMQAbv%>Kx%l99zXu-wPP{ObsLB{o)JK28h{PR15JuZmqMy;K{3sh2 zjFhaw(fKY+ zaMlc*xn`C%MdoD`=FTz4bzXzxmg<($n_$D4Iz)Hf=)_rO4pr*-n)2TC$3_|)GD8HQ zZ4&6@F9B1;%?;0n*LOaqa^6LS!X6y)XH3`Prt+Y72{T_7Jx9u}m0;Z;z)yT17}}vz zDk;w~gt<|h^-TD1D3dn(?mA2(7|Nns1BHktknp6ONsY#XjOL(IBrTxX9{`RDP1Rl= zf@v7SRPKBDFwO;6ft_Pwmvu>O^X!U>@r$C+X37~z31#*4m-W?Nbn9|@NWm)O!dkOrve+Rbw z&2$>>aI;j4b}FRZ-f%)0htee^H0@YrVMLlD_Orfq7~Ber`x53S8G39OukB3wQr6Z4+kTM@#m@Oi%|FovptMon4*-{kl=6M0d}pA)-mdWw&CnSmgJAd z3k#Vd_os><3^8mYZr`p7rmtxPFlm8E3z)4Wq4vqZypNb5P-AWQ)E(|8rkkpq`&xVZ zX?uSde~2fQ%0sichHoqOA}i$SyAZq!n6L#I*9 z16^{UOLNWJ_U!{*Vmw)vFAtQ?42ZvKk03WHB1{oWxn(K%sat>@D~-yIv^dnr)oK9N z345M4F~j+$!}Zfh`x@M%;~n`;m?4-k_k7U7X9GDoW6Ur^D$nFdam94SetYCm%#`JY zQs4G-Jx^T|KNL({CkfjL+_fD1?e8qy=@WGNHQ%c*xFD?PE`Ym|(dXqjd zN|bPd+z%rSCLz(o0DTx6Xlc#p&&~8??M>D9S!vLJ>=W^*Z6fIKb3uo`4d^&f*FMMI z6kfXrOS?Kzuow5~BFgtAZ<%`|nBAOAQ4* zi*dS{=(r>stl95Ere~cAteKo8Bw=B+cB?&L$}#YcyAYUojKK?0G4lut%`)@oRl2g+ z+PQd7&6KO5BMIe*_FNuLTpKLU_t{TAoH(q2lpe}`;I;pQVEM0so~`Ct>hirrzs}|( zH*{!(>sb!baEwcPvaWSA49;lLVg;!jxM>{J5pM&{ejm`%X}BkXW^AndZ-78c0^+YV zH@7~vC(kU*BJN%@M2~8?$9HS67j3D6cdrAlxfi_QQK0lPP#uajCQC}wBMvjVq2ybx zMUx2A8(CGSt_iX?Bv_$6Cu^R(0;pv?F!fl_VdsJ-%#QYPI9eeRwSk#mUytvO&DRJI zxEHk->8h51-p$~(_afM^6eRC!b|+L+1U;f+CN9W=lPs?|{au7#;Zsw+9MC!mYT7*D zu(tu@4h0p)*z8A?LYLd@1Mca&)xi7p>+S*fE_L{&N1BJm`zH|drp0uBX8 zs>4iw+Kky}6;%hpr5!-m3LU%P<<;PUm(6oZWD}JU5U^ohn;J0+Fi0+!VQ@XqJKo0oz&Jr4A2vT5x2@Gs5N^wxl= zQ}agSgZ1bllO|XuD|yrAK}|my7=I*C>;Qy8`XEig5a+4SrlktNn+;a*Erm9$Y4n7( zSIPwUzWvG&1NcIghsO@}SLT6o9|G}NL~4S0V2pifk4%C}yRAufO=-7MPDbAe-nj#|;|>L6_fn{3nhBxT z6s0{38;DBGK^K_rgNNIin$(lP>D{AA5bh0Q_B%sjZIP!P_Eanf&slr=1 z&^R+2fVeaDXTOG#q!yj<@D+J)OJ1UIAS7(+d#ydf0J$g5H#vjWdMM8%0MklRe0MFV z+*>YJH;fzCKk#ZX!V$+kqUS!nc*~Z%TE-T~bOuG5qY#`$icVwZSp;e#LXla{3LkDU z_LUBY#m^pM@DLHL<$(VZK;5UxyrR3@yL0N)^GdI@<-NV{RWn(`4V0NxfBzrH7Ygm; zf}k>meRZrN%wfW8VjjyttJDAza}z5na)1KS@X38<1f)=*fXhrI8c+hb1fp)y1ZFHJ zFL+w1!q!TqZ&zE}IpWTyE4cQSzI%NC>w+QfsErfwObamBR_^iJf`UJph-U#b3jxbv zjFTA{Ps|-45=IrkFxzbjvd6dr<^d+^Az+7Wh=HO_0Iy}HwW{K6tK}*Kt*ztwfVrjp e4bpqck^c`ed7wL1_8`ar0000PyA07*naRCr$1oe7lPMV0?Q^2%khN44jj-olJpbf2GR0bV9u+`kWE?-P=^@O*~zq==I_v4tYC@|UO~0SNPd6!Q7h=s zSVn2sfZ{J1#h7!1^; zF+e)0lvN4eVROx0_t(7b(Hi7$|C957ryD1^dI-%vm1P;4KdKy$09#*J%)z(6U3K?5 zsD6ClZ^jT|#M}jp&M9Uqc#~3G2#iKC98E6{_c_%C#rY2!pyE)ADGk=t8px*r_#-X?Q53S#{Ddb}IF^Va#!7h~UFZ`)D|< zIh7pmQW-8$nvvRSL-H|%bOaQF3DKo!~=zwh3U%YkP#qejt?! zYBSJK31ceZgld>P0H#*M@G8h!@Hb48_jL(#9it_Fo5iwB1_1O>xD2u2)w5gmLGyA+hN%O*wzW62}Zg@$u8v| zDQD7z{@QBX$SOFc7S0|7^J-yyHB@KpJIY&;CRyFf(rXwEVsWTI&x zY)t+Qt|dfGK&3~8Dl!<4VQ>XZsD?8K!5MWhX#fn)!oZAupJQqT7rLj)@}G&3Ss#pPOaoz5^-X)2wB8I2G|h(?I?Kimp`+zX9IU|+Xm zg3}s93r~fpheAkmDeigre1S^kw`Xn(p&gSv2nqH~u7(9e;LXD<2GwM(nG6}D6-QN$ z^-A&eOeepdGK$^(g)RNU5a-HH*Kn1#SaG740uR0q zP=9o)m^Q_HGnP(Sq8lb*oq`hwz@-iFmSNU05NAPf%skig*`hSRR&f6di)ri+7x@*B zeW})!wXMv{DE=L|NXFx6YqUZD^GFUJ-v{^YfW|{`*qJ0@Ko~rblF)hZAh`DL-<0+R0TZSplZ9cgc z-Zc^~Y=9A!Ju!^y_ff4`l2v@M_An2R9jgu<3rCKLAxpRGnz|a^oXN3J!*mxMo1m*I z1G~E5XU*`RyJ71QEAW|&Gf!^R9+=aF*$^!aq@8Q)8J7@JfZmNH&&2!dCCrt%dW|8x>Q%zPGUhu8O%7-YleWgm??=R?%4{Dwb`I9 z@th)?5K6PxgfOrZ$xLI2$Co_Q;-%QR!wIq7^-%hgzrFAWqc6~`z~1EDa~_$Dd2TIy zbUd6l*lK83PY^2(*|V7}x9+Rw&wT;@1r2ZUIwV3G5tK9NTnNbU$JP|Hvus9O{ z{eGqS?%|`{Id`<$6*X7zZ?6n#(z?29FYnDLK7}?BxH8Ph*d*Yco8i&D(CJ)5)8Sqa zIge3+ro_@5Hxpw(fg=`cPvCv!5j|vPASng?@?VkwHqBFW=@(&&d{+SeGn1^Q__V$w z$4eUStQf-grzzD@iYX--vPkR9JNI&q(%i3=ncp@q7G~@@3SW5%{%2Quj8TjypT~+g0M;B ziaPH`u1jAMvr=Fiqv^#^IzpyJPC+?clb4F7R4cfABwRP4CwO#2k)n%V=5pLTV>nI4 z@T4e1WOAvam8+HFCZ9r=1e?70FRgIv26*WRWIbjSn(^MuWm)%&@zXHEF{3K$a%L`B z>6wy8?=+KBRuAk$DKO=yWs>{y3Yl6SS_#*k2=5qWV>2=5?z1POxV@r*`-)9+r7}dc zV|6RDD&PSmEn>0Sm@1h<{d5yN-fAxz?MT!6*tUdkO0!AD+KHst#4v8!Rc=kIg)7Fx z=z;L3UGUqT&>=C9OO~0}rp=$n%y9h+aVnvB+E|L%I+Fv-!OS}N(n&D8&fTYgwUe#cENM_o^$G&R|{BS!Q?zY;|r%x%Om(x(dNRh<) zEG(Q3|2z)rE8)fc@UfM!qz!Uz{>9HMhOT$&t9;*LkSNu!B48)P7eW2|5perd7?jPM zPuYj!I~|JKPiatli^xUKWeEUJxs(gURRbo9c1RR1?_RtIKDiFs9B$+#0ZX|Dy_t*N zP(13jaVs@Us)65~1v3X(lOme&iPiAH7AG*?3kkoU1_-749#gCs!-96@Ptg*YumAKE zc<1Pzf(mC(HfzO|D<0N8dJ5s1Fl&E&$U@|P++Rk1{JDx zXoPz+b7=tU2kfR{g&|XG;o);(qN`sKuVzsr+`S1791S!$HkYwu5rRZ1<~j3M5>(tX zK0cAD;jhhtS#>@20ZPIY%?}R4XXg%6ThoSXuKhym?3`9!pHY0v&-$5}G7Uf84qx32 z`@5|9GN0bmySMx0n5mR!yoQKtDGZq;Q)1ZZ;f0NG??yN%Cbch;e~f)e{hAXVp__PJ z?->u*OtAC!l3sD2En0K+ilIFG_Mqk~uggs>y1pB3%_y#tx+%G7fcywtzZ#xzw^3?Q zAdgvH%*ihX@FA1aq&ScR!H~&LL*%!7L_=;~3-@kzQvw$S z$HXO{JP_`h1t-_J$liKwQZ0GEf`!wDsrIn>gp8|O^~qWI5pb$plw6f?^k>`QYn$vG zxUZo~G^CU_RgA!CVpWWA{@Kt*I}Ax<$ilU7&xSxl0_NwzM{n92-%okIpuK<={&63h zykjhUY$DWG`VK1we_B*G(D za@C1&)dZ-?SlSA>YsKT49Pggyz}+%h>+Je=UZ3mc`=$WenJcNE6_9**x0{A7;z=dh zRzLOXCYbWfwbSoJtKH}lOHc%W6NW@mC#GO>9XuQ`L@-1&L_pnmS@NCOyNfg=EmQ1; z&Zl-vEtsD)3&!CC&P4dqxaU$T;s&2K816b5CJe~alAW0>@10uDBT~?9y4$ovkI>b8 zTngM|ZHBLPUAhl$SOqU14)RqgIvV3(o~8sq9OG#b{uWF=#ji9bOTbbXa$b*yBn$~O zB!r+)A=3C%%oNA)mWJJ=&WUNjwEKO%@rG)JW1PId5=X=BuG)33%odIpN` zqD(1|63Oiogd{QrT8g|QSyY8PqrSl+VRM4+iqOc=9)^%I@3Iu&>ST5=y8#>8=yA{ z30Qg)6_^W86k$kWvd+)fkegS*z2ap_HbLSg-@f}Z>_^Cu__`O6kp6ji7OS@tM$<>% z=b-QM-CQ@!sfTZ!3gZS?p?7UIYt29Z$2~l%R_)St*(@JWiba6QTS>^@bO1iQ-2To8 z!bcMBh0B}dqNcit)cYi%XJo?AlycIZtmv*E(wJyrI=KCM~Q-OYE@#%4Y0XceDBbA|B2N4LM(4xf{}m8gD5 z{a`fVc#GNDyunAzi7};=)e4_A(&jPb!U#iF1tu$vAt?fq){kO%QdXY>uQ05j5v>+D z_AQ?s6ut2Ex#e1jk26#zG^ga>!pTz+a&*K3Sdk-$*r zP2m<(9Y>e~@5SR#vGYQ8QScrtky|j_X zykI%RNrT{b=hy;nFKs$wk)Nl8^DSgdt5fQqRjOl+}UWA4A}IHt4)cfESV_i$ViT}Pt!dGVGH|tcSjM&0@Yhy&&l3B0 zNruEAl7{qYsuF5kF-{gyIbVF2#32hJP=68b6%FwWNpmXFG`?6c6-#_MCa}bq&CH>K zPs+sF2{r?4>bNw`WVlZ??$zHxn<9q60y47H?3df%v#YF3gs!8x5E3eIE3GATa#RfM zOChEIZaA1C>Tld$59-2@z+~MVGbDaz8D=qWoW;H$3sspm+SdTTV?5kA1BO&uQ!Abp zieIY6R{bEF1rnjl%;5f`R^{*C7!*pU5hn1v3vj?QE_UM6q|IF`gAd7T%%D6&F6m*2 zNiMF4G^8Aclw#7c3Rw~1Gkw=^?r^wkuEi1OX&q7UXSKFPFHwrui82U7_IARe)$rSG z`IYNweNMx*QkYiC4i{LABHo$NZW&ZJOsj|AFMuhogfn4CV-Ohjm+|kXcDyi2-yb*= zP8gVYS~;zGUQAXanv>*x;v?@q0v}rrPwoypEMFH}ge(4XB1~SLz4V6_gh2omYgSmI z=_6+`O^FHdt7zp#T`+YB{B8kEueXm#D&nSPaNlZMJ7y}^f@O2k9aBD2OdSK4I}xlj zEQ@ik7mp^Uj|7OahVg;W#AL~wt}N)MIt$wl!-tl_ioLGrEQ&@whM1Rx z#0^Vre2P9uPbC8k7RQ)tVQ&NTC4c&bm}a?y5Z8a#X~?O=;b#}X#322C*BbcRD%f|_ z5#Lp*`z<+q*=K5oHiAK)0*UdlHyBD|xTlxNxp%?%O8EA9Fsr_YA+kY%TDMorz8)rr zH6UwakE@ozx_xfLmw+KLr$dbI%^a0-$kM(m?-Jq-uZF)H1G5MB>`@|KiSTFMaJY1| z6(s+WRL_H3VRwfuQWL@pL&X#?-U%yOT~T?7ds`vi}Enf_dk{__fVS28e0kXoC~K7>0yX?S_KT*=oqp=G{lvO7F)k(_~6U- zqY81;mta6?;XvH~JS}n=-3hhu@!9b1$Aieye?))XtKP9eBfDVk~wr?NWlF9Pbj5|G|e=nkuSpi zg1Hv&P05W>)o|lnc<*EwVmI?E`y=LUSu1?g)|@Zlx!VrxFA7o$L_j)em)x@IJ3I0RbXuK8ZhZmo3f$#CUKFlJzR{5aAL zPc*}A%i-x=w%Ws2>KEWfEN#&%()t!Y64N2g5%aGQ3>jYm-@XuL4URxPbbAFHcOHi8 zm%uaP_IeG8^tONr(S=a@eIR5exMFk*kkDvEG!fsV4MVHpUuVMgvti_bbWM@;&l9^~;q&n9F1NhQGsC;qZnjPUUzj^$fUU@kHCYPE zk90xvVc6Tzvxc&)iT^<0yiGPV=>nO4e&BrTvbz+#3k;*wNqZ-JeGPoC$xYivUQBPc z)04@bWINwIYC*j)TijgemooArX(oqZS6Q+zY?j49~S# zFV1UAdB(FR-ZBj7hIu358)sVco0mF?lZzsuKi>qmt*|C0iEPtcks>C@Z=rNTEqrhW zTrm|!4lF%CA>R@0yl*XhW0hr4vVb%gwa1iU)$q2-@bNh?x!z8qN$JmjZ-K9_gk>#7 zq}ef6oPp<*J!a4>6wb1ICjf!}O_Tb>7T*|o#Jyzl$CAP0jh;Zvu=$L83SQ8^#^ zx;P0}EQXh4@-7HSi+(>eDKZ=DO!D=!;C<7ePWDW(WhqJe{R(u?1eHX!TMxp5hwOv$ z(!8A);x~s{;_e9m*Hys>ovk0|QXAzA`Xwo@coP1&HL30^KyQ;=blz8OCA@w-j2H-i z-UgdxdA75Ip(A0s>H4a>?246>RXlknl`xn575{Ssv_uG9Q}pb;t}65L^SK0 z=fK5dY!<=oEVNnYSftjr>iG(@{9v|xPdqIFv5Oyq9f$H`k#Y!X-YwEwX+5HAW?395 zcRIDL6K;P2zP$?CB_HKM#=kt+rq2VCNVwUTOV$|r=K~N=6x;!rZ1{TGD7fc*IBP_Y zz?Cz;wQcZ^zlU{>A?180=sF?{;ygTZ8HhGWw2gLA$w z&h!|%hk-y)1}e-LT>~FJ1+JO_^?i)~4MQG+b^FszR!Qsbh%bzI6r4E^%6#r-dp0ckBoz{c$me{4Z&Ismzq6)M<`mZzjkvgS@AIsg$B`^u2s z2=i*)Z)}6NK4b+}Kt19|L5e=S?`JvhzX&D{vf5$rL(@}ADg%>ZYpr-dDb5!D8es2+ zyH~;kYwh30MtIW{#UF_zdJni8YAWGhro#=Vz$A$ijzt__EvlDz@3KAcjz2(C2I9c{X!x=xSDj@Ql*D-xOQRm8SiAgg(kAwB}mB96=g+Vkdn1Y1nzB zCrFDy%e#|d_EbP!Jf923!mVe(nWOsVTD}JPV7ep#{9ha4h9_bBK^LP%4ur83;R-9~ zPzX(AE&V4>v#z#anF|OHYq&ex!IzWe2=Rg)X;gAJI}gDppSIv?u);}s=yIo+@+2SB zFaZ8-4qST*4DO>h^IBtyI0@ot-0>Xzb~ALiNIf=LzTbIx=aQpS2gBFTgXs-D6Kz^f z{D~Lr7%geh<8v8)sI*(s<_dv-+5}%)X7e{5+zZO>U9UWIlG#BGGaBH|bKngV?2P39 z#g8yU0@klAgCDPheH|&ewh+u?dT3h_`i^PvF(;fRoUrST{x_?+B5z5Xv?Yr^5ANlo z3U2U=KE*9-+6SL_5>~YI6b-~gjitfdcT0k0UiEE!=(%%paY%Vdie7`QpH#+*`2dQ`#w57A-5Oy5U=^ z;Jd5ffY*`~iiUAmsJ6z{R4{!gTr~^cG7*Lius(Pa!@R~gwW~ieQI~|BVx2;XD}Xww856F1{?*d1 zgs9#pG^|cjWDMei3&77FW~XA4&G6G05_xhSEaMWJR6z*$;f>lU=yzmlJWh%rzO)~f zG{cs5E0{@uoCX|G79&|IClw~OaL0T&cZ{W#D@E#k;{e%Opr9)r>c_3z8O@*=b}&@1L1g%}W+C%@>m+&=gj&at)dMYgpVyswWey z>do0=zN_cLhvwJ~{hfAbrP!QPd|<_&c&yj$nWUd)12fG{XtOP>SqLg1ETI0`r{RA# zT5cPr#Gi5;^E9TV4X_ODNgyJQSc~COZ;XhU9``kkQPDFl9l}|o;p-Q{sDXJ$H_5Vt z?{;OlefD70nx?#kG}T(IKftV9XRyVe+fIC48{GI9EZgNk&Lr%Tcv>zU`ug18 z;vJ?>y=j@dpO~sT_`(G+e~bljmqgSkmSigWxW%8mUpB$)YUAphXo@>WO0+~8|MhzK z@=}``H+bSZTtZUGg~QG8CZ!)cCK zDaXzCE2dK#-NI{WmZ_kh@wQC8;YQFIIni)R1AO94xa0(T!wBVBbpQYdc1c7*RO5!E z!ZL8DdZk;9`}fIa`~xfbwCtoAZpJSQLjQLw-2PWs*Wx7DfqX(}_lFrT92`B_L1zwwC%#&z*5L`dc27xm5;7>@< zngbd5PNs@Grw;0e&GJ=i3rhH^E?3VM&glK^~T#h7%QXhMj zA+G!9LVqCEf{<3F1iY9)6a$x3Z&#vt0r6_M^*ngvB+Cq^8NR6pGnyNx4rNWh9arI) zlHIVEvvcqzt(Yf=fJr9>tckx+sGMlZ3NQ#sn-v)O-2g`T&U`m?J56xLJc=upJF#mtxQH9=B z+-@w{X_^*mSZ~@8SgjtXMLO^5mSxfDRj0yblVLzbzznfia$;Krw;Z=4k9_ClP_T*? z-lQ_zuHB(vGI(>Ujrl`GQ|+zdZm*@G*2 zlRNIsd8ZKsFUa%CVoV4*Sw9k8FlcIVINEx87&n(!82d8c+%|ieW|S z_3$O~w`^ISh118tHK)VrqoBH?=jl>@^}hv@6XP6}y&l+FL=jo109N+}-ej zaQRGl_beD$Yhw}-G}kxjp*fs5tGTmnC`rPkJ)5}jg>mSTTGbzNR{5Yz3|`b z;L%OCu1RJe%_n3`V0((0p}c_vs!9QyIIBqo$yjS{H6&W-3(jyB^BU3j7jO$D=|r_ zjP)Fm-(DlKFt!fP8V{GB1T%*B)RPHTxKnZ@7&ZsoYsEJzI{DRW?tuG{<4?V;2M!y| z>8hJ+wdP`>x*0PMKg|o-O8z#f-;kF<{G&?x1$oFE8Qv5|{`9{qkp7Z59ugLC4&P;!`m9(R^ z&TMRF%F!;9X89MTn5sZ3S`67FUXj5HT@D?EU58+KGd#NkRyKopXfiu#<`K+km4Sa6 zYELQsj=|ZRB&qJtLT!az_c&uDoH-U=Hws4ALVb15wtHS999*?)&3fR+l@&ZVxt@Mn#zmxlW4#Vm_ zu(ky@?SrlRVb1|LD&?GAcB{W|L5^9>Qvns#FtirN*TKXFTc{_|wN!zawTCWpL}ECp{;ii^;UK{3p2 zHD(_7tE0?;0B#|_m@X+)6Acn($^VkX6QGrAqCu`!)=ImRc=;`um0Xka4qcnVgfQLV z`YLBbwV>FcG>Tkvn-x=p3*LEpR%w~8)F2`j`F_RqivJ@f? z8I$E}E?PIzov4;IU!jRH_Z+Aj>*hBc2sR9e2qT-}A0dNa#F|Wo2fK6pu|l)ug~c2! z_t@=nh+WPze{+U}om#qG*ECc!Op=t{aEVgPM>9njqo7*OLFqlFFK3tq&&UD6M+_qr z8?@%hEG$;Ax~+qjd1KX~V`{Y@zVxax#P?skvJK4)&(<)syPGjxIp!+GEHDQmH)yC; ziW;qr1__hIG3af%zgQ#zCV*619oDl#n3X4%nwh}J2i*mFF*roQs% zHNlVwYg9AT96Cr{cNcZtIYz6T(V8g=#-kXmHN&NV4`motrE`W!f;k;p(}_0ejD1S6 z2hC0mThVODX4s%J?Ck91;II+w9|ebwH%RxDA^#uh0MVC~`4n#e0000 C`j