From 1b29381c947b7a4aef4bedc299dd393e5c7eda1d Mon Sep 17 00:00:00 2001 From: linju-json Date: Tue, 6 Jul 2021 21:06:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=8C=E4=BB=85=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=80=E7=A7=8D=E5=BF=AB=E6=8D=B7=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.md | 2 + common/appInit.js | 16 +- .../uni-quick-login/uni-quick-login.vue | 233 +++++++++-------- manifest.json | 240 ++++++++++-------- package.json | 2 +- pages/ucenter/about/about.vue | 8 +- pages/ucenter/login-page/index/index.vue | 2 +- pages/ucenter/ucenter.vue | 2 +- static/login-index/apple.png | Bin 0 -> 18205 bytes static/login-index/weixin.png | Bin 0 -> 13348 bytes uni-starter.config.js | 2 +- .../uni-config-center/uni-id/config.json | 4 +- uni_modules_tools/copy/manifest.json | 15 +- .../uni-config-center/uni-id/config.json | 104 ++++---- 14 files changed, 325 insertions(+), 305 deletions(-) create mode 100644 static/login-index/apple.png create mode 100644 static/login-index/weixin.png diff --git a/changelog.md b/changelog.md index d41d562..70013e6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,5 @@ +## 1.0.32(2021-07-06) +修复,仅配置一种快捷登录时的错误 ## 1.0.31(2021-07-02) 优化项目文档 ## 1.0.30(2021-07-01) diff --git a/common/appInit.js b/common/appInit.js index 007a8ab..e5b66a6 100644 --- a/common/appInit.js +++ b/common/appInit.js @@ -9,7 +9,7 @@ import interceptorChooseImage from '@/uni_modules/json-interceptor-chooseImage/j const db = uniCloud.database() export default async function() { let loginConfig = uniStarterConfig.router.login - //清除有配置但设备环境不支持的登陆项 +//清除有配置但设备环境不支持的登陆项 // #ifdef APP-PLUS await new Promise((callBack)=>{ plus.oauth.getServices(oauthServices => { @@ -25,7 +25,6 @@ export default async function() { return true } }) - if(loginConfig.includes('univerify')){ //一键登录 功能预登录 uni.preLogin({ provider:'univerify', @@ -41,6 +40,7 @@ export default async function() { }) // #endif + //非app移除:一键登录、苹果登陆;h5移除微信登陆,如果你做微信公众号登陆需要将此行移除 // #ifndef APP-PLUS loginConfig = loginConfig.filter(item=>{ return ![ @@ -52,19 +52,15 @@ export default async function() { ].includes(item) }) // #endif - + uniStarterConfig.router.login = loginConfig - + // uniStarterConfig挂载到getApp().globalData.config - // #ifdef MP-WEIXIN setTimeout(()=>{ - // #endif getApp({allowDefault: true}).globalData.config = uniStarterConfig; - // #ifdef MP-WEIXIN - },100) - // #endif - + },1) + // 初始化appVersion(仅app生效) initAppVersion(); diff --git a/components/uni-quick-login/uni-quick-login.vue b/components/uni-quick-login/uni-quick-login.vue index 5774eaa..3251165 100644 --- a/components/uni-quick-login/uni-quick-login.vue +++ b/components/uni-quick-login/uni-quick-login.vue @@ -18,9 +18,9 @@ computed: { loginConfig() { return getApp().globalData.config.router.login - }, - agreements() { - return getApp().globalData.config.about.agreements || [] + }, + agreements() { + return getApp().globalData.config.about.agreements || [] } }, data() { @@ -36,58 +36,63 @@ "text": "短信验证码", "logo": "/static/uni-quick-login/sms.png", "path": "/pages/ucenter/login-page/index/index" + }, + { + "id": "weixin", + "text": "微信登录", + "logo": "/static/uni-quick-login/wechat.png", + }, + { + "id": "apple", + "text": "苹果登录", + "logo": "/static/uni-quick-login/apple.png", + }, + { + "id": "univerify", + "text": "一键登录", + "logo": "/static/uni-quick-login/univerify.png", + }, + { + "id": "qq", + "text": "QQ登录", //暂未提供该登录方式的接口示例 + "logo": "/static/uni-quick-login/univerify.png", + }, + { + "id": "xiaomi", + "text": "小米登录", //暂未提供该登录方式的接口示例 + "logo": "/static/uni-quick-login/univerify.png", + }, + { + "id": "sinaweibo", + "text": "微博登录", //暂未提供该登录方式的接口示例 + "logo": "/static/uni-quick-login/univerify.png", } ], - oauthServices: [], - config: { - "weixin": { - "text": "微信登录", - "logo": "/static/uni-quick-login/wechat.png", - }, - "apple": { - "text": "苹果登录", - "logo": "/static/uni-quick-login/apple.png", - }, - "univerify": { - "text": "一键登录", - "logo": "/static/uni-quick-login/univerify.png", - }, - "qq": { - "text": "QQ登录",//暂未提供该登录方式的接口示例 - "logo": "/static/uni-quick-login/univerify.png", - }, - "xiaomi": { - "text": "小米登录",//暂未提供该登录方式的接口示例 - "logo": "/static/uni-quick-login/univerify.png", - }, - "sinaweibo": { - "text": "微博登录",//暂未提供该登录方式的接口示例 - "logo": "/static/uni-quick-login/univerify.png", - } - }, - univerifyStyle:{ //一键登录弹出窗的样式配置参数 - "fullScreen": true, // 是否全屏显示,true表示全屏模式,false表示非全屏模式,默认值为false。 - "backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff - "buttons": { // 自定义登陆按钮 - "iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px - "list": [] - }, - "privacyTerms": { - "defaultCheckBoxState": false, // 条款勾选框初始状态 默认值: true - "textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB - "termsColor": "#5496E3", // 协议文字颜色 默认值: #5496E3 - "prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意” - "suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录” - "privacyItems": [] - } + oauthServices: [], + config: {}, + univerifyStyle: { //一键登录弹出窗的样式配置参数 + "fullScreen": true, // 是否全屏显示,true表示全屏模式,false表示非全屏模式,默认值为false。 + "backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff + "buttons": { // 自定义登陆按钮 + "iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px + "list": [] + }, + "privacyTerms": { + "defaultCheckBoxState": false, // 条款勾选框初始状态 默认值: true + "textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB + "termsColor": "#5496E3", // 协议文字颜色 默认值: #5496E3 + "prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意” + "suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录” + "privacyItems": [] + } } } - }, - watch: { - agree(agree) { - this.univerifyStyle.privacyTerms.defaultCheckBoxState = agree - } - }, + }, + watch: { + agree(agree) { + this.univerifyStyle.privacyTerms.defaultCheckBoxState = agree + } + }, props: { agree: { type: Boolean, @@ -96,60 +101,49 @@ } } }, - async created() { - let servicesList = this.servicesList - //获取当前环境能用的快捷登录方式 - // #ifdef MP-WEIXIN - let id = 'weixin' - servicesList.push({ - ...this.config[id], - id - }) - // #endif - // #ifdef APP-PLUS - this.oauthServices = await new Promise((callBack)=>{ - plus.oauth.getServices(oauthServices => { - callBack(oauthServices.filter(({nativeClient,id})=>nativeClient)) - //只返回1.应用支持 && 2.手机已安装对应客户端 && 3.uni-starter.config.js配置项中存在的快捷登录方式 - }, err => { - callBack([]) - uni.hideLoading() - uni.showModal({ - title: '获取服务供应商失败:' + JSON.stringify(err), - showCancel: false, - confirmText: '知道了' - }); - console.error('获取服务供应商失败:' + JSON.stringify(err)); + async created() { + let servicesList = this.servicesList + //去掉配置中不存在的 + servicesList = servicesList.filter(item => this.loginConfig.includes(item.id)) + //处理一键登录 + if(this.loginConfig.includes('univerify')){ + this.univerifyStyle.privacyTerms.privacyItems = this.agreements + //设置一键登录功能底下的快捷登陆按钮 + servicesList.forEach(({id,logo}) => { + if (id != 'univerify') { + this.univerifyStyle.buttons.list.push({ + "iconPath": logo, + "provider": id + }) + } }) - }) - // #endif - //添加可用的第三方快捷登陆项 - servicesList = servicesList.concat(this.oauthServices.map( ({id})=>{ - return {...this.config[id],id} - })) - - //去掉配置中不存在的 - servicesList = servicesList.filter(item=>this.loginConfig.includes(item.id)) - - this.univerifyStyle.privacyTerms.privacyItems = this.agreements - //设置一键登录功能底下的快捷登陆按钮 - servicesList.forEach(({id,logo})=>{ - if(id != 'univerify'){ - this.univerifyStyle.buttons.list.push({"iconPath":logo,"provider":id}) - } - }) - //如果当前页面为默认登陆界面。当前第一优先级的“第三方快捷按钮”要隐藏,因为他已经被渲染在默认登陆界面顶部 - if( - this.getRoute(1)=='/pages/ucenter/login-page/index/index' && - this.config[this.loginConfig[0]] - ){ - servicesList = servicesList.filter(item=>item.id!=this.loginConfig[0]) } - //去掉当前页面对应的登录选项 - this.servicesList = servicesList.filter(item=>{ - return item.path != this.getRoute(1) - }) - console.log('servicesList',servicesList,this.servicesList); + //如果当前页面为默认登陆界面。当前第一优先级的“微信和苹果登陆”要隐藏,因为他已经被渲染在默认登陆界面顶部 + if ( + this.getRoute(1) == '/pages/ucenter/login-page/index/index' && + ['weixin','apple'].includes(this.loginConfig[0]) + ) { + servicesList = servicesList.filter(item => item.id != this.loginConfig[0]) + } + //去掉当前页面对应的登录选项 + this.servicesList = servicesList.filter(item => { + return item.path != this.getRoute(1) + }) + console.log('servicesList', servicesList, this.servicesList); + }, + mounted() { + // #ifdef APP-PLUS + plus.oauth.getServices(oauthServices => { + this.oauthServices = oauthServices + }, err => { + uni.showModal({ + title: '获取服务供应商失败:' + JSON.stringify(err), + showCancel: false, + confirmText: '知道了' + }); + console.error('获取服务供应商失败:' + JSON.stringify(err)); + }) + // #endif }, methods: { ...mapMutations({ @@ -169,13 +163,13 @@ uni.navigateBack(); } else { uni.navigateTo({ - url: path, - animationType:'slide-in-left' + url: path, + animationType: 'slide-in-left' }) } }, login_before(type, navigateBack = true) { - if (!this.agree&&type!='univerify') { + if (!this.agree && type != 'univerify') { return uni.showToast({ title: '你未同意隐私政策协议', icon: 'none' @@ -201,7 +195,7 @@ }, err => { uni.hideLoading() - console.log(err); + console.error(err); uni.showModal({ content: JSON.stringify(err), showCancel: false @@ -236,7 +230,7 @@ }, fail: (err) => { uni.hideLoading() - console.log(err); + console.error(err); if (type == 'univerify') { if (err.metadata && err.metadata.error_data) { @@ -274,13 +268,15 @@ title: '点击了第三方登陆', icon: 'none' }); - console.log('点击了第三方登陆,provider:',err.provider); - let {path} = this.servicesList.find(item=>item.id==err.provider)||{} - console.log('path',path); - if(path&&path!=this.getRoute(1)){ //存在路径,且并不是当前已经打开的路径 - this.to(path) - }else{ - this.login_before(err.provider) + console.log('点击了第三方登陆,provider:', err.provider); + let { + path + } = this.servicesList.find(item => item.id == err.provider) || {} + console.log('path', path); + if (path && path != this.getRoute(1)) { //存在路径,且并不是当前已经打开的路径 + this.to(path) + } else { + this.login_before(err.provider) } break; default: @@ -292,10 +288,7 @@ }) }, login(params, type) { //联网验证登录 - console.log({ - params, - type - }); + console.log({params,type}); let action = 'loginBy' + type.trim().toLowerCase().replace(type[0], type[0].toUpperCase()) uniCloud.callFunction({ name: 'uni-id-cf', @@ -306,7 +299,7 @@ success: ({ result }) => { - console.log(result); + console.log("login-result",result); if (result.code === 0) { if (type == 'univerify') { uni.closeAuthView() diff --git a/manifest.json b/manifest.json index 690f7a6..d16274c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,119 +1,137 @@ { - "name" : "uni-starter", - "appid" : "__UNI__03B096E", - "description" : "云端一体应用快速开发模版", - "versionName" : "1.0.0", - "versionCode" : "100", - "transformPx" : false, - "app-plus" : { - "privacy" : { - "prompt" : "template", - "template" : { - "title" : "服务协议和隐私政策", - "message" : "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
  你可阅读《服务协议》《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", - "buttonAccept" : "同意", - "buttonRefuse" : "暂不同意" - } - }, - "compatible" : { - "ignoreVersion" : true + "name": "uni-starter", + "appid": "请点击重新获取", + "description": "云端一体应用快速开发模版", + "versionName": "1.0.0", + "versionCode": "100", + "transformPx": false, + "app-plus": { + "privacy": { + "prompt": "template", + "template": { + "title": "服务协议和隐私政策", + "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
  你可阅读《服务协议》《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", + "buttonAccept": "同意", + "buttonRefuse": "暂不同意" + } + }, + "compatible": { + "ignoreVersion": true + }, + "usingComponents": true, + "nvueStyleCompiler": "uni-app", + "compilerVersion": 3, + "splashscreen": { + "alwaysShowBeforeRender": true, + "waiting": true, + "autoclose": true, + "delay": 0 + }, + "modules": { + "Fingerprint": { + }, + "Share": { + }, + "OAuth": { + }, + "FaceID": { + }, + "Push": { + } + }, + "distribute": { + "android": { + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters": [ + "armeabi-v7a", + "arm64-v8a", + "x86" + ] + }, + "ios": { + "capabilities": { + "entitlements": { + "com.apple.developer.associated-domains": [ + "applinks:static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com" + ] + } + } + }, + "sdkConfigs": { + "oauth": { + "apple": { + }, + "weixin": { + "appid": "wxffdd8fa6ec4ef2a0", + "appsecret": "", + "UniversalLinks": "https://static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com/uni-universallinks/__UNI__03B096E" + }, + "univerify": { + } }, - "usingComponents" : true, - "nvueStyleCompiler" : "uni-app", - "compilerVersion" : 3, - "splashscreen" : { - "alwaysShowBeforeRender" : true, - "waiting" : true, - "autoclose" : true, - "delay" : 0 + "ad": { }, - "modules" : { - "Fingerprint" : {}, - "Share" : {}, - "OAuth" : {}, - "FaceID" : {}, - "Push" : {} + "share": { + "weixin": { + "appid": "wxffdd8fa6ec4ef2a0", + "UniversalLinks": "https://static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com/uni-universallinks/__UNI__03B096E" + } }, - "distribute" : { - "android" : { - "permissions" : [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ] - }, - "ios" : { - "capabilities" : { - "entitlements" : { - "com.apple.developer.associated-domains" : [ "applinks:static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com" ] - } - } - }, - "sdkConfigs" : { - "oauth" : { - "apple" : {}, - "weixin" : { - "appid" : "wxffdd8fa6ec4ef2a0", - "appsecret" : "", - "UniversalLinks" : "https://static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com/uni-universallinks/__UNI__03B096E" - }, - "univerify" : {} - }, - "ad" : {}, - "share" : { - "weixin" : { - "appid" : "wxffdd8fa6ec4ef2a0", - "UniversalLinks" : "https://static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com/uni-universallinks/__UNI__03B096E" - } - }, - "geolocation" : {}, - "push" : { - "unipush" : {} - }, - "payment" : {} - } + "geolocation": { }, - "nvueLaunchMode" : "" - }, - "quickapp" : {}, - "mp-weixin" : { - "appid" : "wx81dbb061d2258234", - "setting" : { - "urlCheck" : false, - "es6" : false + "push": { + "unipush": { + } }, - "usingComponents" : true, - "betterScopedSlots" : true - }, - "mp-alipay" : { - "usingComponents" : true - }, - "mp-baidu" : { - "usingComponents" : true - }, - "mp-toutiao" : { - "usingComponents" : true - }, - "uniStatistics" : { - "enable" : false + "payment": { + } + } }, - "h5" : { - "template" : "" + "nvueLaunchMode": "" + }, + "quickapp": { + }, + "mp-weixin": { + "appid": "", + "setting": { + "urlCheck": false, + "es6": false }, - "_spaceID" : "76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e" -} + "usingComponents": true, + "betterScopedSlots": true + }, + "mp-alipay": { + "usingComponents": true + }, + "mp-baidu": { + "usingComponents": true + }, + "mp-toutiao": { + "usingComponents": true + }, + "uniStatistics": { + "enable": false + }, + "h5": { + "template": "" + }, + "_spaceID": "76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e" +} \ No newline at end of file diff --git a/package.json b/package.json index 158bf9c..81a2c03 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "id": "uni-starter", "displayName": "uni-starter", - "version": "1.0.31", + "version": "1.0.32", "description": "云端一体应用快速开发基本项目模版", "keywords": [ "uni-starter", diff --git a/pages/ucenter/about/about.vue b/pages/ucenter/about/about.vue index 15423ef..1df24d1 100644 --- a/pages/ucenter/about/about.vue +++ b/pages/ucenter/about/about.vue @@ -9,10 +9,10 @@ 扫描二维码,您的朋友也可以下载{{about.appName}}客户端 - + Copyright © {{year}} {{about.company}} @@ -154,11 +154,15 @@ import uniShare from 'uni_modules/uni-share/js_sdk/uni-share.js'; left: 0; position: fixed; } +.agreement-box{ + justify-content: center; +} .agreement { color:#2285ff; font-size:26rpx; } .hint { + text-align: center; color:#999999; font-size:26rpx; } diff --git a/pages/ucenter/login-page/index/index.vue b/pages/ucenter/login-page/index/index.vue index 086eb7f..b7e05e1 100644 --- a/pages/ucenter/login-page/index/index.vue +++ b/pages/ucenter/login-page/index/index.vue @@ -117,7 +117,7 @@ justify-content: center; } .quickLoginBtn{ - margin-bottom:20px; + margin:20px 0; width: 450rpx; } \ No newline at end of file diff --git a/pages/ucenter/ucenter.vue b/pages/ucenter/ucenter.vue index a9175c8..00bcb0d 100644 --- a/pages/ucenter/ucenter.vue +++ b/pages/ucenter/ucenter.vue @@ -78,7 +78,7 @@ "event": 'getScore', "icon": "paperplane" } - // #ifndef H5 + // #ifdef APP-PLUS ,{ "title": '分销推荐', "event": 'share', diff --git a/static/login-index/apple.png b/static/login-index/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..04a3579cbd143037161da2779fb695f731818d81 GIT binary patch literal 18205 zcmX|p2RxQ-|NezgNR%Dfk}VQ4i;|fwJA{mc?46R#tn67KGn>bjnZ0KSQTE7Q|L>*u z_xE|8_kBKY_jRAwd40!m9N*)--#t=%a1oCR4?&QN4`rlO5CqE{{yXJ74*ai+w2}+_ zABMfkgS$vx7xf`neKfL0R^@XqVid0 zfvUQg{Z&ezC*}d04F z^iXVVc*!Moly5FQhOdX4d`mXMaTc6l>&?A*XjR z519@2eaRa=Rmfi?@Fx0NS_9LSx@#1HCAq9fleQ;!4;vN*E*(i#QV_a^OddJhuOxL= z6y(%x(VLb&8dvMiQFO-$JxjnRMt_7ts1Zw~)rO=;! zRT|_TLV+agEf~C=Yc=c9#?(5W5;ydY2z|4%k1b{03ySDPCqdWTD?Ig=nxEd>^=YC! zyYQE6fuNFRZ3@dvZ)apwsf7~5&>QhzZlcc+75+~0zyM)KihKXJLbjKVSidjQNiIoI zr%K@Ce8u>`&6mONMGo%HGVhlp%=|t#E86)1gEjrhwX?-Z=_8ZabO`nFftlrh7RCOP)#{`ipRwLqP9~M@93+p}M)gL`$8ra&j$kceI&A&Hrmf)FLA%BcPb8Y^=Km_7wYtWdH!1iwSsWauB+H*jkgwL z<_-uo?j!jovH!jFSS09r7FSkptTuMsZSO6FEqj3WYz@kuwpS$Ryc??=KMhs4X?Xwd zp^_@9BOIC^8E+ks%7|!RWrSyf{mPlI2kR8ctKHGoKXkVSoyA&bR z8kf|^<2OKvPmkpOy-=rzY@hBA8x1Ax_hD&ak(vGbwbB;$S1OGm?IC?%0U8M}_A=(P zduMCSI@wyY`S9GllcXh%N74Fak&({XD`^dMSQ3c0jGRE>e6bFNR>Il(i67cx@pShE zb8z-d`q`>q{&z?e+nM!z$0{eRyB8ef-^wp8 zE-v-pfn}oKw=Y@+3`Ryq#ftY-oSg;ZZrhwRbo1T3`KZWL;UX-pQ1Oe(XCB)bDcu@( zN_=vz0b!c7SBt#fc*y0P6+;}P-q4(wi;F8wr|h}WXyMbDhBx>|W5v(n7EA(T#613M zZEYn=O-+qkn33Uq`TJ2=R1`Cdd`yZ9mr8-}%ne&uz%WPo@-ZU68yN>jf+hS%7Thk|6+erNe{ zTd*bu|-kvB38YQ^r}yB8K0mt`6t^(kD~VKGH1 zSuEU|MIp|l*G%WhZMYi(8sP!cW1F$!3##ezlBXxfyw+p>mBD7Y0@h>Glhtn88ImDp z=e%Qik`#(sWy}rqZsI*2$kox*t#a<2qkMNmHQhWZSzEc-T)D_hztno%w6`qG*4CEg zuy+jhfkTW-I8o94czc-T@Q&9>)%w;}|51gTm@`gry*GT=+hsG@v7&jG`HUD57rP`e z-(MX1Ra%jpIvOILMpuMh?B;|{9aXEpKSh=2roct}b z+=m$V9M|nd3V!n*d~qjx`)|#`SCwl|iku9x)V^E}p%!{Il&dq&q?v~KTQw%O(>zbY z^5QHey_6&I<;$OWY0r5;P(F(wJme3bgid41Yv zj>N~`|9t0`8sAId#I!%`yQ@F0z!IaE+m$l}^Bxy9XBqd`dU=I~h0%{XIXaf^?be>= z?r)tZIl2*I;ISQ*w%|5Z;}N&;y@yM%N%{C|3rWjFf#=>&+@ckYTy18=zwfhL;A~5% z+>XoEyn=G-UF=F~T18tElJ{DKSL72lw$Al@Q!{4J(JC~#AREQTJj%ks(V;jx@|FlQ z;=0m(6BDKnoH{s8PEHXkNlAn*2Y;VMSd($-`p+~4>hOCm4dvQyFREup?|97y-zK7< zFyGl=d=L_on8j)~n5ACsutX+cGZ_@lEEi`rJ2&@QI*=^Yd1GepU@1SB>h0X0ZP&jm zQ}=C8j`k^TS&$SK7H&qGb;jK)FzZe-(;(yf706vvH`f-PJvcUyr&lSj zuM`s&_M~*Zi(9+I;!U;NF57c)$7L<|?Lkd}4u5L(&}*V!J&#@61fV=(@7Pa}>3i<~ z5>c?vhtgu&5%XlTU~bN2Z-4)1@5cv9o&u&F6degd{aFPkCx1dm6bKDZ7xF5 z*gH5Fvlh8A<-T<>PQcn?lNWyHX)A4afM_ueo0Aud|7c-lvRxdwG5QC?dc1T{L`mmC zu6Bu(np)(Xt&E}~nL-?YTfZRGVTSA17h*ljtjAftN3mb8w4QAamNqf@GRw@=~Zsyp;ikk^LD;awmk(M!u%P{=Z${*%>;D8Dr}> zzDD#)m6|fZ2;U?U=lvh#-Az2nbLY;rdaifJ-&WcZSs|4T2zz^pHUQH9@!)BSr0?r` zL!NOPD6tC9HFLChc`b)HpqD%q$cL8kE=xUoY_5E7Z;zF2PW<5a$Lr(e<>meXr0iqN zgw%qDH<~D)7B66ZSvr7(H~s~w?}ga!fsl6 zT3Hiw^ia42$s^$zzAkHgem{&R%5B4Gk1U7tZn<6h@QSLYreqU&!D(seyXAIf#Qy1PS2m0riVAsx^F+dNXpoT1oPhN1X5QagA&FN(cQ0pa<_qjUG3B9X{QIZ>jeh>H$OFzatI@)6 z)eGMm8gdrPV3&;=USD9ibxVDde9ag45_%)_c?PvyqpR?iLU#EqN_~C(8TfD0t;dBX zZ4u&RS}DIop-Vm+JZWrhCi{$SK<1>N_W2KCWq9sI<8H350dmn?u|H1g zeQ_Jw+vRTJLe<)6q4kmxi)OqZ^nUqUXQ#sQcv<&c>5UsV(mW1#;%F^z`C?Pud*f^x zH`}kdUx_6H9D^Z#yvVE@|8}v6(<-&!CEAdW4?-;>ql{atr-rx4{olTM^SD~rhznA! zBk>NosH;|)mZgOS8;ep>5Ig`XAt51`?@cPqvXON)9*6o`l6FuCop*mYJ>j81DApLw zo)5}BfT+SUGmF^$G7yxX&;5L=#(KLtXspEYt%29E`mdbUFxxO92dl{{N}Jl_Qj>Uq zS1I@25_0D>WcUC1`mCR&Z3Xut)$67}^7eVE0K zqkO|EU^PN_P27{?f{@&2!8$#!e;jjST|eCCT%6?VT!602cbO3xDz zxSNju>CcdRUIchA(C)&;i&4vK(6`f6KFfAn&HnsJ@3=O}S@9!`@c~o5P7!~kZg(DY zlBBT~5li+_8{vBj#^kpd84D3_E=~OSu{B}vSvE?l$h1?c(s4yfG!2`1tw5 zXZg-6CBsqxC_D3(ZfF;0#@x1<#Am-F#?8hidk!1>nWu;yBc%MNPoMlD-{OxxhGJ_^ z&Oqlj-MU3VFf$t}{$V0xU_cGUR-L=PPihT)(w`I1is_n|n8;k~j*KMf1ptE~;l9~+ zJ>2@rl`FYyBn=G>Oo!FBv&|9MY3?2#Pi;&*Rwsl;Z+!TGgU^2-BjCE~r=+Bry{q2y zbcNm-8Q1@FSn^X$6i$6yWD3ZjA)DW0o(BTR_$rcu7Vrp8mPLUy~oeyoZ{NRYhWLzcC}tp;Jo0u9??} zhNDZ4=kWoB;0rqFRBtac%W6fo17hB2yPnL-hTyZ=-)OzcqqQU{G+1t$utT=(-?}hDJ`vl6$KfGmba4lF$u)i z&GF~mNuuWc>A{>TOt_7hodU8SINqV461arM?#AiK)af^bs*L&k`EyfRB^eos`}h4!XrF$M zlx+XNNlZcEZ!wrvKR$jHI)se8ywu&hm<)`Jw(}j7D1dKkYqMCx)Ya9M?;>f9ii&!( zx98j@_SaSP)vH(Qi`n^U`qi$idjIi5PYQv?%EZFLARs^nAgSq#YQ~FS-$_fHFuZrL znmShh0?*LZRn=lrrk-_5xN+LkeA^G@-J7$NOelBc=xpc zr1IL$$rPLS-tAo&1VffWbl#qt zhJY`X=TicFyHSrzI}Ht}A?I;XhvyBW@9o^RL4(m{TP)qbnvaJxC$!1Id(RlsXMKO;!Mk*`mDhrXDvLVFEJ_f*T)xEM@z%k}31Kv6;G^_1lu z$h6;mp99r}!j0G0*Cl{~b&4g0h50~~h;J1^YBK^QTBghd%$W)yPH6A(J5%{1kNvzn zpvk!}$xt#=f!Ls8!4LAg0F%E#@jGg$MmW_AO&-2}^ClH4PVGKkyRzSK-f0*=asXq00;<383}okB)4#; z@frBwo*w~_%k6(36&w2w%6IKLXD#Cwy~@(Ln~ip`$DfS^LcX=P<3r6ZbUg$TU<3&l zFs70D2m@+>G*o3Y`(V2ti$0gUX;_D}wRGyW6q_AI=4De;cMWz-!xzG`Sa&gx82n} zD39yVj$*7chL?DO(N!JqjDvnbL`WlSvNhqqDP(|5b|Dte5-$kl!GlPJJJQaempktR zU`hC;Ee-+*w(dRsy`0I(@W5|dSD>2b=vMSCt}rq%nBeo9nVAJq3tdk3IuQyWfW{cKu5$PNo1i|K6!B{0X!)RID(4i6)GTD~{YQ_8fCyU&gp`09U_Sh8 z0R3!e76q{1mBF#u3h@Flg0^X+*v?7hG&I3LBc}(xsG5&_r5AWUVLnUXv$fFu&5&oh zUrD^F#BzB3htt$UMVdV2k2s!(E4MieYN#QkT44R8!Hi`p*&p9)|0sOJJI-Uwd-UKI1{uaL}!yqi9Pl;{0{y2%bt4l<}sww4SUW7%)@u zo6}LmYO@!6X&W>a|Dj|U*OEdp@^lplNKDpk1FNrf06IH76@18Gs z@(t(b?Ci&VGnoh$g+?e`q`wj(Bbk89F-}ZOm>j}B=1aGHq%$AL44d!1esAmd3IP|< zT~naObAd%>Anx_Mvju#_BOqvO4P$&d9$Sg=?AP}wQtP$fs)lP56~;S$i<6U+BmX(D z$MHXV_30DS9kY1~XkFa<(!Y(2z3eu>By62GgS3{q+WO3KO=kdun z>L6?sCdoN=YmC;acdvnf`g3{NDlOU!$`>B6tq-CfK5XvpqPp?e2#Ay6=FOW*F4>>$eticxpJY|p(IF2xh!1(w^zH2>h0@Ui zV_eg&gbUEwK|N7*)OP4ilO`r3^V?Y&*NLjU40q!UB$wA}geUOBvs$-ZF0s97toWpo zl14x)pk(>4ufG_b)rOJ;@4rIpxksNaANvYG-bN5{Z;=H?-KCxy6%#?jqr<7wp@Tps zY1hBMQ}+v0sCLAB=g(9BB%nfiK~&t>+b}Nju$n0E&065EO_t17&;Br1;IX%!`oh5> zYWZ7#zv`#-blIJLP5PW%zB1$9y5-w1z)`__2WMW&Q&+)fB{|U zCC~bsS=Oq7H~atoZ7$v2*5B~$oAkTO%vRy5`u8&W-vQH-^&AqjSseIcdN@nTf1f^> z7BLLQVrqC%r&VGRHI%Gc2vjw9vD(3khNDORttcKpG6RVlwQROLQa~o2v0p6#LP*>k z@8c@xf;7*eJU#Z&(7r!~7SwL`If*q3tE*ghg87CQ2eUaB$NMl>P`U>pud(s~$Ro+| zPb(e@Dd24!i{oV2+JKjy9#*+*rL!8;R1M~*g8cD4#CEz4Bfk1n*lCsHj%OY`>A;i} zy7*sdrl6n80Z6^uEB4R>qY*P$S;kmll`TYy+kB$DVCY8cSm9H-nm8&zR^CwF5#ab@K;14}fqs@Uyp((Gx`+rhY+m!%C*S17#6Y=EfO$pFMA?Ik{#1in z&v5IG+{wKvi1`%2wx+Z;KmNM~T329sxnQ83T04aB#;95H;}UCES7Fzk<#!-*q&LKRprbJqZlrsTO|NF0EXaz;%K@pIB)giKT-((DBY)jVS6c{rb3wdw3?JN$;Jt2KA-ek5jpG00@j%fxE;NoAu ze!Z#xN%26oCU<9O)L3tx-kqXD%jfY&o;V86tj0?_=O|zxg+T;VAzXFH$kWdE@7oWj6r>8iqR>^727FOWOg5YKH`I(b3V%#iLb|zFfCaI-RUp(tMK? z^wXKWjalv>czicbj@P_oE<6UOz&|g5xcx*|vN*R}LW#*@kQ)%;rX*3fq-VRodl{ws zeOz!LLS|oI6Y;&z63K0#-}`1mo6o^VJS-A+;xE80Sn$n#XAtuWpu}Lh$@ylq{W!Eb zKG<$;Yf~Q3yni1D_BT9Z!|LhZ-@VR&>yr*E99O7N<$cr<200yDTHS}oyHf@3`*!LF z2g^m>CZP}B;E_UQ$^7m-^n0X$F@WTT(ar{7auhs76|7EH2Lc&-SQ_@DOJTs`r^SbZbJH+G zE6D7wf^j2{+oju<=na*cUnC^#>Q~cM1x%5yZ2)i^9(lC&aFvVwU~{n=G+Jibslum$ zS;?oUa^NlkYzJmLYSvW?P`2>l-+Q3r^cFu;1tIKle|+V518l?e+FB@p!6$$%v;OV_ ztP(zA#-I^?SqIx=JJ(8#j-ZxavU(Z%+)uBlTnLTEUdWScZ)=kT{l_Zi&~M0)hjmQ9 zZQD2mC1j9J1*0t)P}pHBM|l|!7bhx;=E!+LVi&ZXc`fa+`lFKk(lwFyR>o^Z=CXLi za=@W+VQ}@{YIbEM7}k>|VCwE(l_kxBjPl(_)?u)bEu7Ab_VN8aXf^6IYtT@`-<0X+ zw`AwnWG%*Y-*H~2Lt$S(Z}Erl@K-=svidZEXQ8F-2=vNA>}rjpqoc1NwLmf8w;CY= z38o&>Hr+vcZm&wHDNO!5_Zuacz7{L`Y!-xypFp-x@a)F~2I7CG7JeLtn4@E9;&yh#&o)YGDWr;KAxfT*xpv}fnSAWcD#G9#81n`7^gN;# zd{Jl8i*{QeoG9d^GBLX&CMIS+UYcuiwIW_s&ib}VD^XFXCZK#y?c%TPvat|I8u`ww zzhGYrtvM?Ge5IOwEPLJuopDXRu7DX96b;8@3r(0)x3!=G87b-KgK~HmR7=0n7McnP zIVGhB0C`q!YHZ9jJ}F$fKk~ILbgE`#=oFj3{vcF(BTW5BN(Zi8(p9e(}Rv z*&328?UF2u*-<<3Pk8*Anwn6uuJQ8n3Q$f_SKO7!A0D4`ya>oP+I=D{pZ0rOTRn7z z<(nTq47*ovG+*T=F;l`PBy0wGtp_dVCjy}8??I^b0?910hQIYYh3e_p5wIC6CF=b$ zw}`GKA~G_PTO*|K*LQ7fRJMB$VRRKR`|S!3Xz?W0Hf!S30|L+bKAEk4W_n#$Hsu*u zS0|Am>>&HC!|Gn!-}{!71UNZ5Wr~FgK&Y8Df2+1bEwPU9R8>&{nVNev9Re&X*ev_F z99q29)myvwzQCwbPAsqg&!a508-w>2i0}oy5!?$oFj34Dj>=5w{qypLon81v`{8ppeoTUd z)#a9+2L41QZoUq5hVpCTviV z(CP1%d#5ENH?!HfIXef3Cb&gr8>XZWA5gV-)MW7%DeIpKRqA*8FF?{nG0YM_6QI2( z(Ellb9SnVWBv$6Qq77AzIFOvX>$a+UZmJ2XbP2g3PxRZ*?Rz?GFi9z@85AB5kBBfX zQdfzhrseFS5?YL9v+rMQJpm}_3z=aIjSB@rqmIe$n-`$E@IZVO1ty~(1uB8*VWxHo z8%lLyUOEdZ1IswLAaLM8hwG;D3JFm{Lo04yVE^Uz&h@JVBcGMS58ts#uTu|x%OUwC z{!El_D*AABy%eSaCX?Yng#`7Rd3ad6?H6&{2ypG@R()nSjQjXY3|U-x%e-9iJ%btV zTj$bNL}n)IIb2-h`d8TDD=1b%Nwdk%wO_y9z$Z=vkBeOXHZ?^H1xBF4?j>-W7ck6h zn_2$(?X5YCReWlLF~6|%Qi5P?Iu~te1KxqJcE4n+4i>WucMTcXIzYBl*Q;XSh8KD= zlxW**^0vNz=--+<&{$ed)X#ql0|JGvv>QTVr6Tx$WQ^yX0L{dRx|QlR+kN7D7aJQ( z0qQTz*L)zkz6}lzn%seD99ku|#oXtI_QCnN)%r}+FyMc_ zfNZmeruvV++csiyLSRH(y>iFy=kJ-BS4v|0QcL{&MX);%T38@hy8Ntm0k;caP!W4h zGpN~LtwwK-M%_u)gn<&Zs4EFt5_q39oKwrweO!2)dhabNNp(gaXSiSgLFs*TQ&Ei- z)Qz9(KflEtF%;kbct7~X-`~n0WwkALzQvD+S=;$ z7hpE!H0knSi9e|~MG^~kaC}+cuT)qEy3Pe>H#fObW&0L#Msr@ z8C4J*YsIe$m4bFp$I5yh)V+H!_dzJkFiWh*$=8Vw09%gct z{v1fQ!O&qCuU~IjEXeE$=*RLO5XQIDg^eE&#tww*;zEgOnXdPx*%8KJ;Dqsta%pDI zE6(o4!CakTmgAu>st-zoi&LMeVy zE>I)2GgACND%f;@{Y5;Uvj$af1~QfJZF~Cq`aT`c1Yh9E!BW@0e#pR92q_73Rjt!nK2Mx+-R36Dx(M!zIqip;%|@lAhV%D7N~ps ztL@fyf?-_%nl1yw3kJDhHn(iDPnb0Db4CUuC#S*^Ki->$1MAZG_^TGfdDfe}oF`vz zWvG2oF`ufbHi-uiVbu5OVOFRpOn2G_JK4bHgq9L$3#uMg2*|7WplW@#NQOWBU~T`W zk9n{eHh@M~Pp^~f%JX1QpxU_1@&R|ubS2*L4-Jj3>dJ>%*hsBcElp9{(Ht;EBq-1q zl?4D8@{J2XQ3BG`1UF!`xdF`-o!7;Pd)3UvfX>ngazn0C-0xGV`AOUrVuU+5f*!X7 z^iTK4DImqjFOlG3Ll=da(%AAW@GHj-mNj@B3I1v%CN_J=j7BfR>{NnH?3?AvIsCIpl&k%hj&e&DFleZ#||~*a_TE ztvW9cS{=FtL-_{z+R5p8LLQS)z|^mHtAJ8|6{!64oej8cV<6s+9j&}URJZW-^~a7Y z=AjO@gwnz-*9t6FNJ|&y|(j{emJE0L^BOwH?;z3^rnA zp))?iyaO^lZo(5{Nonk8$>8+zg$oxLgoU-i2qg_fSQ}hY@)MO#N}Cny+uQ0ZBmbx% zWRIqG5CDvt9xs?F$vk{W4D-GjXeFo=Y?u6oXa+>_fuoYht8hor9k;-0QC?X&Zn6wF z6abv7ZG#q^CL$st9IN9KOD8VylvS<0$hh@6?o2`?k?xX{kbE+yMJXK^rPvN1ffZ_z|(&XJ=S6px6w?>*vp zTqsoxa!A_3fWC5xg?a&shljgiwbH<_lC8|Tz}}QxOeyAG&O<>Eehjm4T^JlFY|YlS zmTh#DMYYq=(feVwfI?s*zD)g4ODkr+rDN>(z?X>8U1>S1Zrs zZOw>T$lHfBUUD#=xep#WWMi|PyM3PO+O_BX)E%TlN=q;xXgX%&>_N>CAfs(n(O#tD zCxYlKoCQ|QwyOHfhvhX9*Z|aj?T?h(eq7c9mqwX1cIp_mHV{iGFo&6VK|xd7b{PAj zdcC*S%d1EkN=JN+62}E@Zf;)l9y(j#ZDt`4!DN`JTT!Uc%)hN&4dd6nlfyMYw4D6n zEFfze%{0E7fofTp--L}%R<-WRzwih1qBm+JSqATSTbmIGN_X>zEj@K9_PIRkRGWn) z?h@b<-oAa?_Hf5~^pfaYLt}4k{CrCr@F4VB?2odtN!Ru{#~s!l#2;vD zU{WB=p}yGZ0^DkXiC{;_6##~?ai70yflUD{NiAu|{GZ{iakWW^KX=XEU4dcXexv+v zVcgp`{}r_Cz(aNIlneBYkiDBPalV7?11w389TU)TJxF&=$J#0>pJA}??d>fhN)G9$ z!9V16dT0=Mpk66~MF$+7VSK?G153>%xCV-9_$*Aq@nExH(<1M~j!1z!a8wsI+Ue)~ zeELCoH@UA8D8Py7EuY{?pfMfkQT^%j=Xa96II+v$5*G0Jku(_Ehu3B&dvfV}Y^!$~ z@CCV(GHyg7xHA4fr+HsYON?G(e87Vmazdj%!(~}eovhLZ+6ozvY>y{yZlva?pemAx zUjqD30v)1ztKbWem%XL@T9cN*ckhT{M)v5}{vPNHq-z;Bt}7ea~eoDv~HiPLh>TjA81QGn}AGgN77@jAu zOlrhW_C99KJ`}Bm_=xkkK}AGF2Y8bGP?-3xKM1_Co?&JoUm%LscXu__NT>*K3e0;M zlmX~>8r%+YC&q9NxF%7B#nkj-8o0>}aJvAp^Cg$b$*;>svVyEy$OJleBd~GOHRHQ? z8}O&n#D$xm!60h%6|Y@kD8jx@ro#^g{zL7~JVfCGVPIx9@zZrt(9 z?Y^mV1^iYK9Tm{?vVu@=%f56saLkpOH4wlr13ysZ9|t3wKeW6H(3sl9I(aoyFq$o` zqE1dcK`W*Z_pD;;&!xl`xQtZ2n2O~D|I4@fS&&_nU)ok^xbCjz?(-Hh{dKKQTarwQ zj)`FfTfzRPk<2@ZwINR4V|QfvgeWeeOnBedFs3SEOLBj5nK})VNngt30|u`)fd>UO7eI_1s0E}&R>9=VA~YX zy7cGIA0tp0)4*lQlFSVrV~u=$y^dsYgI>xefPUsD z`U2!vt}F7#??S*!ft7koq#3|*X9((LfktOkcFd`nm$0{5xh4hOC~a6uUcQ5`mi==B zHN+rK&9Kt`lli7Z^Y}W#Qvf)vb0_2gjt! z5!B=v=zIa){Gyy(T#7KN(Q?;~Br%sIdt3pl27d$*BtB6zm)>Q_IkGihqPy}jJoQ-% z!y4FB$Oc#_bc!#5;m4>eL1?CWck&7hPA@}gB85!90@~LVRJ?$zJemMC({E5!c7+ri zi?`!X0XuFDI7vu&kG`>m0lgH=byf;PVe&zWPHGa_j*G#4`;U_u2yncCA{@*6n5lEpStlUc@TpCqzXJ_n$4XN6tK^YkG!cUXW0 z=8Rp^Au|Und~e~O(skHk%M<+%_#kMur4@k(SYvx>ZjMPYSXO)A-TdKBpB(o) zH1I!VWUza7!GQ=V*l~_)?bM%Pmz9B)p@poe0`G}PztFQjCjF1iM9zx`MHvf1ix?BQ zh9@DOQm5;HBV+l@9#z;q%~h2I?HJs;0if0c|1%2Zkc(vdNUEUyZiZQ6?`-@K8tG_V65o@u5FBFNT(9p`?9- zmInC#0y#PP5qQU(Vd%zm*wN9^2$o`7I0%s->P7~lVI8ncVp>|8LC;L-jDA$m0s&SE z%#4>WUshXk>rYqsJyw!!5)W?Ak!_FuQfr;%u@bpL1)wuo8o61&oBLponmLF_|JjQ{@Dg3g3liNzqwQzJr|nVBDYDz*!`?Qj75W*VIbk-G`NCX?5iXeSJw z!5G>I(+_YQnJ9}vGJ}R+(AI(;4S^c3JzxOJ5TMT>&=YS=vT$-wMyCU?hU6dg@*@DKb&*Mvj_#;HFRqCv4Dpdb-!%^@i||grZ_s#Hj!U zfzmavlS?Mm`j-+FcROlfumUot5^9TrwS#R1H4(z-KftIdpdL&TfSlq; zVG$8qb1|Y`?yrfILR$J;=J#i3mzRSeTvLGlt#59=f=>nuW@FHPwS^Vin)oDg!J(`(}~~7}Uz`7YJpexj0Ajpjp7-iuYDtviSUoif@xW4=#8d z{4EeP6LL9b)PLsV2uBw9pY@${+gX+bEg=`omM}rb2MX8GPy42ns|QH|LotA1MwG}n z(8`)Tefk8bvIgm`q4R`;k?mgNrQArx>x zyt@@#9{d>Zn><`yT~R8FI{jfFNMa3EU0>9y#=y`pv%xxb2)@MmYt(ovN^88E%Egw$ ziW^P;mGV6OPSP3b^O@d>HjVzCU(AnEI1?1WE#)Ys!p`wsA)~@})(=eX0u{N68CRw} zb`xoKrSza>HvIUZS27$^p)QmRS}K!*{wa{T_np=-s}49&x!J^9mJ6ePs1)i)39S#o zun#q$du!v7FudYX?YhnJUzcVc;5en&R zD(yh6w2d%4BcX`~J}|Of(()pc0`Ec%a+8Mc;eD|HP%>}S&>aIfn*q})F)Zscj8DlR z6EB155;a=SzzGQ=m|3Y0gw`AOEMMxVdYzx253>fIN&{Ik;b((cQPOhVcLLztLz{Sy z*zsT0qH$BOPrz(<)R+$j0B~5=i3B27W!r(p;ohh&B>wQ6D4o+iL;9fXNVXeVoHu&x z7y+qn6zWwG=m-xX^enag6nb)It@2$I-xuFLgKt^1cijo=ug%58&NX7CxTX0U#n`qysNIp$Pw7E zXLtxEV2Gdwh>dq3e={;OW5Y3$dWc$-Ee0NLZEoI$;`$Q?d%(J9p+mtj1A?8ksZg+s zU0wEBK}BkSmZ)9Bz&Qun9?E{DkFh~G?ug-aUdk<-2I8*~C&2rBLJ-Uv{mZl9dcWo3 z0Yzc>5#UGgX>0N8gEotv?SWFP_3}p&86462>a?bx+u!OGsqf438HyQ{jQaqNl%Y+N zaO+c}CRkZn_&ZFr-2w;%uN5Y+4U4r`(!(jSAN&9GfO?4z=s-e)7B2}|8wR2p7+B$; z!VF9b1sxViV7CV+vEQON_8bll>X8NNeG_cVj{rOT-gX7@h#vGok4gan<%YUMg<7s* zTsib?i;ABTbkzp96lxs}qPa7aWlRbt7GlQxT2*?mGO%yuA1pOO=LVxFdW`W=o~{r& zMKp)C)f|ueZRW5ivG>W7nl~X6Cvdo-&<8liPjFp%Y@R}d;)9dI%E1eoF*;9%7Pj%7 zJ%9RhwEkVtRY?qDtWeh`AdXKa@xX9_$$NV1=X-4y!J)93Iv*^JP#yR@5IgX|Ciwu6 z%OjA!Krp5R89`(BOFFbN&~wiOM72$tTX_7rUzAgnPsm{42PPhiL_a<2(L(GiEb@;A zhQM|VmUR|5FJ`sv3`L{?Bms`e=b%`iiu~a0cUvc?7O=prAFkDkKQ4*IOC+Jtv~i!m zDq$}-%YnO|m&*r=KY-V_U>jx>J$RwYf*?4x==TDM(!dkSI>ksIUP2WSbhZJix?fq@ zZiG6isEEk);vyb7d9+yr2&&Max^wQIm*{2FRsj<}+AE~l%d5A#?tlk|6a>ox*KG?h z3*S~Uj!%Q@{rB?Eb!G5*I=i~2K{Emn+sfC{JUY4`d+O=R+`jOQ3Z!r7#f9J9v;;x^ zXJBU2$Uz-Afu&HHFks})LOePWM9H_l{_`Gsz-um)+qd2u z+$GRWzf6{K=7Q%Q+zAb!aq_zUHIEMh-}H;!RXsovAXHx=4x9A{r+r(*b>=n3n8d_j zVEd>zs#Rcw4ItRGh2RU3&hy2$^LWL+$ZA7*79;U!E0|VF6zl0%CaY0WB4uQhHuQyv zSQ&!|L^lUKsqVw8&2dZEuBzg%ZKa8~oFbSR3VF{?ORIT%;2U>tW7-24J~~fV&+_Mg zrI!k`E76u;Z4S|NZ8Z7K68o%EdXn;&X^@llR%d zWY#s$*99_sa(NP1-uX!DRMpvU{rx*!2xbYSAIjnt-$6XT+yCD+hw+dCyI>$j2+sux zyQIE<$HCbW!ZGAk`yK&^z^{we$hapZ^{EgF%IJ%ich8T41#iyU&flNaYyYxDak!r_ zzOVz<3o;4o|9|NEH3P;ur1eps)*nj#qyC@QhfMx0SWPDQRl^Ly*Bn@!9^zT@0!0Ss zS10^7qp)Oc;)tDzfiE3UrTLLF^5JaVnLMq?BO1JX(e_^^O%l5pB-lh&O{M?ak9vMY zhx12k9G|(jt;L)zqL4F@^zU6M!br+3#P{=6ZJiVh2~uPMab8Hh^zXA?&2f1joE};7 z%8_4i8B;*k7M{5M@0IjRIUHTcQl6xnHk0>d?%yq(T>i z8Ylk&R5NtlOZ?u$h{>z`5Q>4=)!>o%FVhf_pXSiJL)KJ~@We~(98 z=4}DlcY9l$OwcImY>-Ke_qj&N|L!P+?P@dC@7pE99ZL-K-IX}g!a<~;wEM6B@2r0? zMje904=k&#U|vMHFl8`%x^O)HeItUMl}-03*l+3ASxKe1sj6@7E;QDxDyy=apD#@_~0Nd z$OOhZ*?``y@UvTJy=I5}#rZlggf(jaxhVu0Le`6CWB$F-B@8D8*E?~CqGM9-=WUF2 zcEsjR=)dm^F!^$bjA02H=VO$VYd+Sa$XD3vH?%t2c?M=9q!?L`7R4Q$iTjGrll1UT zX8p*&E801JE2pZ~3*@U43w#|Dj%mp3Esu28H{Cm1i;SBPQiJeNG{-fq7RSu&Rn7Bo zT~pCmlKK}1Jpnj9Yf#Ki`Nz%Mh zCxul19O>u(cZHflBFVdcFM0TylGWr4eQ0QAo3)oYj* zOTibE*hL{dSQ1`H{>SNM^0SbLy^c`htX~Nlj%7BFSDYkmyxV+9f)>8hK9R*r z#8`PpoMJeel?TtrXQx;bse%!-hT^R5zu<5!LvnDw;?+q9+ZV*X(ogx-hmnardpuzG zkp-{&{Awu(p*>7hlWLqK{53(`vj zA<~s1HJ~6w4CN27&%WpW9jvM!O#DOTtzqd$LPB%p^ydNzGW$9S3574r#KPY~R|n+e1s8U3_HuL) zehBv_LX(ilD?apgaB_F?=X7*|z&sVWwp%;7IAP8TT;`IxqPpJ7E>M_8h_8!rh@Od4 zh`W=lGne8$PWgu*A_2IIzXRt(xQC}7=%E7F8C?+Z`E*!>i}MV`-(7(Ve9Dm1Lf3#( z*~{03Q&Lz8;3Ni= z=^r@n0AG(Y=FUzcE*>s$7f*jbBCOayu-;HFe=k3%*Z+d_Khyt>0nxO&y8rO_kFvnw z|FH1$R}Cbp@wY+#Beb7Mu(ykdk&B;KfUlE_Y9LWe?o(~NLCU@^4*p)gCSG11|8kVU zzeMI#Rz7u%EazQa2Pc^4sUH0QhUKE-;P0ZqB`zv11`w47h)S7=iGd_!LE=C`Q5le^ z=sBpamov;Y_&aan+@ixlw*=;#b|mUTJ}y?^1WcsT`} z#=$B6c}h5YIT306mw2L*PGYXEQj!2MCnpDhlPk~_AOm!k1jsr79h{t9ox~-@UH(N) z-xo&AN(YaBr+O-tGm)aJl&Fh~w6rWhT1rL|0CaK@131V!$r3Zj!O1~VMg}M=A$c16 z|HawF<)OchL$Hgl-``1f-vRRXlLzeI40r~k=Kv?#Y3&hmwe#t6N99uItCh^wwah2~ zZqYNqQ>yL1ti(~BK^Iw9UML5X8=`?c{xSUQy z*2S5N^L!ZgAN=({vdrK3K~NVW(f>^ppR@7va`g{#@O1%0h`#-wrOK)Lr`i)u``f_zb_X5k2N|A(er>4`Txh_+1$Tv9RG@F z;%;>M_|G;-{PNF6>f%W>mM?Le%#R>KMwg75Iwkr_Gl`X^Qi35al?X!mN;LuE}&l1#Vtue*8(vHqJ?KH^OG z=MCDvl9MyDGOMUwHB?bj-P{5l!CT&ZF+p3Iwz^@<${NGwpr}xLGgI`Rx%!Shbddtf zq2`sa;Q~J^wMN^iK+R>Oulln2GFJPfs;Tsc(#FKt_naxeeuPgupFjJ&bkWB1iIU1B zvy&0h(*i+>mPt^1P^h}L3&W(Xtplj8@A|^zu00qZxvAyZ`EZ~a@YJNTa!}+%-Dj~Y zxHz2m8vQ8wDI&#(z_^CkGc{ebcnMZqC}XUcV3#{e?G#(k-J7w=$KSl~fpA--cG z!e}0oaC?T~6pQ2%S9MF*CR1y=D~nf>1v_|vcT0c_+MSWnKtk}ha&oaeikG% z0r;vaQSqS)BZASegOIAYsy^zQ0lT}QoTv!?*sG+vR!dncVCDj9U~bn!FPfnW-a0R@}kZ@hX8goVz~DC1>R z4-!WIq?H1c8S5BQAgS!~Wg8m8yl1m9an-g?LO!%)@&0OO1DrUqTL?7}_t}>v1>C1N z%UalD{+d4EHL9~QAe&Fp#4fKSH`EAp(!VfcXv^I!dX6fl7R2G2Y4B39TG}&nO1vq| z97dX@d#3p#s+g>lZ6P>=d0#3@Q)^K($DXH<@eD0a*+w;+=NiH++b%o!A^uhNxw@iq z%RhG(Ofy;Pc1)K;)&1#K{yL}hGj4TeUSLFMXt)4nTFD=D8TTdY3hf!GQU{BkdlO6U zf;195&{XRI5#!5bXA`5nL^oFS)d~tq+=iygF4t$9oQ-S9rA}*a7zsiF#@2y?bLPKe zuAFOW`RbwmG>cEpXDTbA@j~=C&%mAIFJLtjQKp_{Ld#v}hIbvisE2Sef(3O1by&wGUlJ?&(~syQnU_sQ z%H(Jlw}CCbpzJR_=h~Be$xN2hTfYKv%Rr@W340cOJBOd)9|6EUVo=N?@Kz|aXATHD zBlC!2K?k1RV9V5sinkX{c=_jSl;qy!CgU)KS##x~4DGppP(6>7RYjnWcd2_4w(iBL zof`|IaYH!{)ejk*DLlqpkkL_7jg(=F~oz=j|B=5t6N?{7M8s_b>LNR%oWdzi4)LT3R7 zK^d6M1u#=rc zNy6-#u^y|nZ~Gp(uhCcyd`^4yG=Ss&;sqtwBoh0JrU#AB@zxry0JcDC+_EZ=kiF>_uqful|kN4Z<`Ov(aYJ- z?Aa!&>Ekc8zF9%cqQCR;S=ku?fc# z_Fpg-@=iwAS;0L#L8CRox|PNd>&NYB*{qz1cF(vdNhsL|xu=$=$@PcY zYB_C(n(cD7PDGK%>|wX=M1P|B1anj8&L_c%&Z_32Kix0K{5mz};VgU_d21E%^Dd~S%}N_58#_1B}Vb_)a{zEuSvjY zmCtUl0+leFmly1aYYcxbqI(W<@IB?@BD(lqn0OM(&UJk!X$s+f- z7yX?5M@Mju#&&GPEr{jXh{-=W$!Oe!XqV!%5zpzbJ2MJHj z>9gcdz1C)*+j-C!ZIJU6ouE`CCaKo=5RAK9c4)^Pof1Mmq>ItD4*Fg{H%b(B_~vJB zXg#>H&2vJqs&pcHZBPdpac7b~xIQy)Ddd$_qv;+P6s^C%vXjMJd8Egyg)G}CbIZCu z-fpn1BaXP_AX~CQGFcabw$vn`>8je^CE!8%`V^S*5gsx0YON7ph3w zxsl@Cz=~keyQ=bboqwcq?BowxcOuhpbaL0QJ`hu|mr+KL+6=KEM5Kpy-^(j=RP~`k z`q5lS9@DvPr6m!I-Qt2SHy6eO^*WmN_w279y-jWZ?7UrHkw=jeVCcZ{r;H*A%Ucxj z@urS$5S0Kui1~YVRNK~Sou;}GqKF$(mRTA?h7SA+R>%0qzARuJf20l9x`s$QMA<6T zHt!A6^|dD#y=xXl6d?gY)Nf#TFp@&$_FGULu3jmS1vrtn{Jd1;$WMU11-IRpyl&A0 zy54zJ0&<%v2W549kB0n;KNc&CU%HRUPnPI33~T&aVwUEAN6#G7c8SN|^~R`Odv(Kg zMucmT&PHXt(Vlx5ma;}4$&b6GhA|<{*SnyG;am%VRwxeKRu=&Ye952GpRf0f+z8xQ zA6IN_k@kPO_2BsTT-XM3{KR#(!L_0OXDxkQyX|it zA&By4Kvdu8kuP1b_IW&E!AoBMp{lx&G ztPm;7!s6+`koXTQ?2dr>e2yRNgfHebk#=rsKbNCeO$A=LnV7O$_*6z~XI#TO*$Yp?xJJD(1r}zZK}@WnGG9q zv``6C`qaoPzxgRr!6J0eWdUf!jSz0=gHh0_XW}H%!}VL0AL16V^7fE#PaaQI?MjPe z~5yrpq zrG}HzvU$j?E@mkxo6Bt>#29jc{6?}Xo_M0mN;1M#mmt?Jk5QDD{g@(u;Xk1`AnEA# zDjS6;a!a1tjzNJ(H!uywGRF}MQfxdN6_YJ$t;)a0k&*bYTbibyWkU!d=;&5@-|%=5 zd0!P2-TE({6N%jwb-9$ zzP};(9_-;GYF&3)c}+dy?qk}fUe9GZlhNiozwJZbWq8SbyxHtUzRtit|GR0$eJGqD zjK;2RoD?7QQB_v?EG*j7{t9-UNZ9>-5Y0bWQf-3QG&HF%HKP zz@mdBz%_C&@VUFWDRc(N)4rsiJ6swvi0Ve*kD=iwk2@Qz^4zK`Z30v!;bN;lhl{r@ z(mO*k$M^lq1G-1IEfPH*-uVn^UQMNuO+PC5*868lk_;ekSE{y;>>(awG6FJTjKCa! zS4FU2zcLOL->Yo1*3Kne7KN&dDJ&DOJj~I`H{BS|7rMIWF;-`~M#}}YBTWXGx-bHv zzeymSS(2%)EGwAnlaS4Pu~N!))ur#~$lgC|{j3v~BYCj!@SkKG8S0%Tvus~aH(TXv z2@7G}8EMSRN%b!eDXpAb1Mg&9t}zp@kS~?02(Vr(Ce-d*y}d(m*FRQqH722y2S3II z71w5Is7mnV)rKV2-YvhB#S1OF$G5&6hXR|V-pmqcOfe@4uwp%OR9YQ%Xl*@T6H)z# zZR2-O!t}BqN6n9~Zdxwi)-)%i)3QB}KGtkoMeZG1j#Iy|kMOUkCzg{`bF}jBg*~2b z(jWy4{I3+3Xffr`YC zd!r$=ljX#U@7BqeYO-xI12wW)m6CJ)NMdR%)#|^CD1Ca$B)N zsKd78U#PY4VznakQls3qi^f;(H4aN&FI?q>eqtWfRJLldmdl#Ku2K?JcTI6WWB|sr zjjRUM7L9$E#Gm?MrD{k#|3i9g0-tBG4{Uf|+)7 z()#l{4^`Sw;FERGK!^=-{kV7)NVxY*g8b&7(oDtLU&D)E3P2QxIGTBBwc$Io)k#lH zp8T2;nsz3-U7ynG5K%-B-Mhg`-g<|sA#Zu<$$!Ar-yKHqoko@L*%`M@HWf$QuB6RjZFoC6u z-%d?5wx`O*O`-9)s~|zKL%Q=1>yv;jC&2tm8|2f?V@XIz=20dZRr*!Ec%hViu4 zuo}jV=5=OZ>QYnTn_?bXX7Ip0`!)G)H&9I|Fh1$Zgs1KFj|Atvo@vqyFfPw0Inx#yyfJu#C^wky- zufkw)*$n1jx^bUPC;QS4{NfD`=_0?ZLmgRWMA75fbrkVE#mSdDVYjPXKIzQ8b)b3MM6n{*XBrWkyth<-0SR``>qqo#=YHl(g zG~sT}I^GQ5n)IOEzWD^Te0X6Y$P>|#oA-l!woML)D5@0};0OB^U80V7*MW`m7{xY+ z@r`@L=X5hmHAyw+i7m5Ja=F@-1{B@KKk>YfbY~=b>mG5r07HtX5toWMJ&8196s~RB z>B@R^-Okb(2#xrb#9bE&S%h#{m{%P)?~SEOR6wKwpN`uLvvO;NBlpBNTCi316X7j- z8$sVY!mlBopi~8*h9mifmKcAmYBLqW@4LjHhb~U2bQ*a>&O3Sc_66hviUQ9Ib)|@+ zGNx6V`KKrz5m#T@{yko-IW8_DB~|ppu)!2Q%bFKa%3lLQ6pe9A9uX^lH7Yj#gagO^ z+IbHR3a*zt+tMfPiqNCBm~q3zo6Td8cKDFT{CslwxN~^cksNm`eO(&ds%$TpPtnIn z*+?xrs?ges29ZV!ejWm_vLXj)e2Tq8D&Kr9Krz`|;1&OJ_bhd_Ocf&;`e$k3urk?H zZlPqe?(BrZK=^{B(yOWRu{+>h!M_|K(!Kabn)-)@ds7els@7Rif(sG+9h!}Dz`Gxl zxNaZ3K04aBkUN;`uyfB#xIKQ<nugE)a5@I<^JKBH;$7C&Y?*jj`qv3!3l99CNeCwb2{F9 zBIKx!dkq8y_CKAG&(O*Czux7q6AlmSEvGtn zlhccFJF==fhh(@qzO0~w_LIHMt2n&E!nY5^yVjIReKU+d!fIAGaEuq)GQOe11Z*p$NQXUUUm`T69uqSgENRWP@(%uCQEfYjW$!H#;Ko}~NJFf1ts^+04@{WVrOJl+ zB0GLfR|o8*w}aaMunRU+V2*S4@+un>LN_BfQzAo0U&qeHZkQ(8i&mz0 z_wq@Y9|@)Dbr37Zal{>PB0PM$V$$8S-t*y6$VR;W9Ok%PS}}O6#dWXKveS}~weC(P ztE1tkf~nzwBFx7{5B#Vu`n%eV603|~YE_E(D|Jl}%QgXB(8uA=3Yh#=r!N!$WPRNJ z9!}CdjRmZorSumgaD0wJIJlaYALkPhle&VHES&lf>T1-yat%fH$kc z57|yLNEljA4}%rUZ$^LTg)!AVnN=6sdNk%fgxa+UX1=DO-0V+=_6dKswfWqfWWL1j z)jEEM6Bb;#0C9*B?upLGqfW@<=s+x;6kDqq;O22%0ef)N4T%UVH&>Cwg z1CSq=c)p-35V)h1zEF5tmCJx!2InZHHuolCST8hw@?Y88U>+;aK{>)HSK_gq|NlT8((!(kBXEsH(2M^W$c{cR{^Z55|OY>S$w28N&c11N0!i*VE}P4Z5e; z9@Bxfw>13T#-cI-(BXO7+HSVt@)6n ztcq`WTURlHcmgI8qy-OTqQ+S~eXNt$>i2aL>P)T5)iFAo?lpIzVC=~gRnvD2U}BmC z6OS_~kJT>&kv5Jwzg z-9y-uL%ck#p+mtPkydmO0KWLUAQ5F9RbWZHX%MAkyVIw6i*FxCjMEj3*GpMd@*#u5 zj=alw)qays>5_2zjW>^*cYS#3#Zeeh_7Mth{TY8FjxP6ZZJrl+ zSF38^IV$)l!90qxGw|g}L$r7!es8MH41dH}*L@2XF`<>JB+l`Y893X)0ghG~y}^-P z7w{C7x_uX2Y`7EO8+&sb9$E!*k{VSXT+d9EaM|}z!FrRS^}tS-03pt4Jzgma^ax(A zt4pn+M-_DtxWVRrN7-i)!W(>mGUndNQIi3cA2P3=x43vk6=M=@KTM4#YG?G$M=uyh z2NoQJ zQwP&Gny8xo5Xw()Sm2~Y2LGl)9EN|cP1+CrQ~0w8PM|d95T3j>++c#1^ZmJ6HKjDnO-uGOh1OQ4rlkYW=QK1S*E zB{1KSyrc10jtqS~NxVEZfVG}P6BE^YxgK0G-&_$sGR0|m(Wx_&7KX1gqgTOP7NN$7 zkdN|xAtm$8QE#58ZU8KYJHNd>G%gyD>jWOtbf<7&0BX1$P3j@KLBNeUo_)f5KCVU;u68)YRzRi9-dGt9kNU_yRTtHTp-I z;G$@52rL~)He@5V`zP0M=u3ZS2_55y3TmqtmcTVqH$o^G?Mti3hGbMV9W5IVEM6}t zEO3m;T?KnwN|U>A6*#VZC$>&L+1O>t;o4HG2FaBk{3qKhNsk{0#GpzqYDvEvO|lK< zke*DNr}bkWHFM(tO9Y`b#;>V<+Ag`2KPoR+kwum7r@`@cf{qxd^~WB3V5eJbKx#|U zz=5oj#@oJuD^qgl_9+Thg11@xkG>D@;EM+1%KXCMu^iQ8ijKZ_zHE>M{gE({%lEP zJhP@S@y#Q;4XK7u6FWU1>wAQ8nSlvgqY`o9cQ-CQ6>nKdiM~sw%R^yDPdZMRa%a=Y zl`V(NrtjMHHb3VQ#cN5V;$OT~8ZJE4VZ+Z-3qs32TUYHt?B1ndOPVT6HU=yDMhb2} zjMc_0we~y~zyaMy?srNhymqXZ{%X%cK2$!Ru84QHCZlC*IreCcZlB_UbtWQ@S~HPGvNjTu|{{qo?qcr z6@}A3FIgVk$kxCtUaeG%P|xJA;jyixT}h*~E3M(BLfXHgn=K36nQf01?5!`CaK{O; zFcdtB2~#ts5M-$9o{hYp(P240>@eEhZp63DUa~UD=r1Y?13!0i9m@^(Q{HQ<=J`ZJ z7XM4F5T)BuU6ay{D3Cq;ri`8_wyLPjRU89BK6YB1zHAEkSe7|)y5S5HwmGclL$>tG z@0+)Fcv!65n^>;0Ye@c@)4Un_OtJ05FmjD7x#4QYo7}g$Oq=odlYfV``0|3E_r@KD zW#ltPM78>jSuj$LE4Q#51XsmF0ul?VXj4&ZGaP#{iEWLQ&P}GiyIGTd1id116XFdZ zf9$Zkc70}D*?iK5$m;jcW%UrSUGW^imbgpC-(#q|Ss-m^9x-E%psWs?R6i8k?TSa&fc#&M?KTeb(xJbq0S4?HT^KN=QD?J8fAaDdTGe^y4R;Iwspl z2p^Xx-+E++`DGHE$B8YfEXV{dptVSe>n);aRy8UADUnA!Q(ei}EF;ic*K20WCIrEI zqcDD*P4mMA6(9n~>_JAgG%BB!YywU$!IQk)zFl<#i+nFsBz=h)7;3<^D*4*_m0{`> z+v9>v7M+j$P?(THBJt3~X7adkL5G(3UP7P)6VRoXWlW&93Sfcj1q0$K81f1p>k_oB z*I$Qi-TnEY7- zXGYkaTXhqc#(Z!WoVWG)Bs_-KQ}?ch_4W6XuzDJsYCE#+T zty6CBw{S1*g{S=3_{*T+aJ5$Z+Rk#S70zMzv8|CC!JazdPwvadtp*ACpx+{RQ&!TX zMq@}m6+3r{UGy-wsl#`OFN-=Dn^=#o&ywDaWmV`D$TW29|BkhL$p-mqC3J+)-@U?^y{=D&#K-yYLs!BvK#f zb-pwMM~4mN*5}TH?$x2FPWv{-GKd`Nj93W=Z7&T;**b8#$U%epCy!)-=jT5}vAGT{}2%OhRg~zX!qUv*}LB1Z?>ukg(c;ZJXSz zM&xUhOtPoLixx87>t7zkKcP4q^nNAZSSJ?e{+Owb*ss;fF&`{MOMfaN9LcD&NWa9Oi4U}?aE9am6nT2+Ck;m_y{zCu>$qPu=y6^ z3%6ls&O%W=CSFG`lbv<%D4AW)h;h>@M41vButd;{D(9ofNxyen6K{^VP%3{zgtRBJL;CW9wNF&%yY?SCUXbDomhmqw=&)8?X?Pj|hDT~AcY znT3-z15$kFZq!-%S{YrjGomFeJ(|fT0KHFa)G~eDO27DbPg?cOx$u(lK%ePEHk>x? zHQ+06@J8d=i}@?(?kf`We24vW>Z6z5g(_sa(6jzH$Xd9icaQ3s{v?{*o<<$zb+6`4 z1GW2;nXc5`+8C`Am=D#!zOy-RX?$_L=5o2ei;w4ML`oBCl0UIn==%J?<1_t8Gz)+Y zxzeSRWYXgIF_(~p7wwBWp}PX(H1Ds0p<;@L|TLV z#Lk#2S?q7m=#R2uW1TWKmDFh1V2S5=nxI8;baC;!aHHE$xl#5=vzCL;2SWfY-9ZnVi*Yev<1sa~VdA?rYJ|iKM)E}38T)S-S^90zUCqO<_gv)Q> zXi&hk1Q44FgwL85AKm2E*ps9@&l=($ zb#qrYbuBSv>33AtXgKb*g=l$_57AWb_U|q84Fsi0>0}2@L26ciGz~kUom#rB)C0ob zf!YWL?#|e#3F0>ID{