diff --git a/.github/dependabot.js b/.github/dependabot.js new file mode 100644 index 00000000000..6bcbc65899f --- /dev/null +++ b/.github/dependabot.js @@ -0,0 +1,188 @@ +検索ワードを入力 +ドキュメント +Release Note +Overview +ログイン +ロボットを動かしてみる +実行要求とキュー +ワークフロー +エラー処理 +トリガー +ログ画面 +ロボットタイプ +カスタムアクション +パッケージ +クッキー +変数セット +プライベートログ機能 +ストレージ +利用状況アラート +コンテキストメニュー +Task +タスクの Yaml での記述 +アクションタスク +コントロールタスク +Actions +ArtificialIntelligence +BigData +Browser +Cloudsign +ComputerVision +Control +Data +Desktop +Document Force +Excel +ExcelOnline +Fujifilm +General +Github +Google Calendar +Google Docs +Google Spreadsheet +HubSpot +HumanIntelligence +kintone +Marketing +Message +Outlook Calendar +Salesforce +SerpApi +Shopify +SmartHR +Storage +Text +Trello +Twilio +WebService +Zohocrm +Search +セッションの検索 +Connections +Apple Search Ads +BigQuery +box +ChatGPT +Chatwork +Cloudsign +Document Force +Dropbox +Dropbox Full Access +Facebook Ads +Fujifilm IWpro +Gemini Pro +Github +Gmail +Gmail for Google Workspace +Google Ads +Google AI +Google Analytics +Google Calendar +Google Chat +Google Cloud Storage +Google Docs +Google Drive +Google Spreadsheet +HubSpot +Kintone With Password +kintone +LINE WORKS +Line Ads +Microsoft Ads +Microsoft Teams Message +OneDrive +Outlook +Outlook Calendar +S3 +Salesforce +Search Console +SerpApi +Shopify +Slack +SmartHR +TikTok Ads +Trello +Twilio +Twitter Ads +Yahoo Ads +Zohocrm +Integrations +GitHub +SSO +Azure AD +GMOトラスト・ログイン +OneLogin +トリガー +Gmail +Outlook +Slack イベント +Webhook +ユーザーと権限 +組織ユーザー +サポート +補足情報 +モバイルデバイス +Security +セキュリティ仕様 +セキュリティ機能 +AUTORO Assistant +インストール方法 +CSS セレクタの取得 +連続した操作を記録 +サイト上の情報を CSV に抽出 +繰り返し作業を記録 +既存のワークフローを実行 +AUTORO Sheets Addon +インストール方法 +トリガーの作成・編集・削除 +設定メニュー +アドオンのアンインストール +スプレッドシートが更新された時に AUTORO を起動する +AUTORO Desktop +インストール方法 +デバイスの共有設定 +システム要件・動作環境 +ODBCQueryアクションの利用例 +Zapier +セットアップ方法 +Zapier から AUTORO を起動する +Marketing +マーケティングに関するアクション一覧です。 + +GetGA4Report +概要 +GetGA4Report は、Google Analytics4 からレポートを取得するアクションです。パラメーターを設定することで、カスタマイズされたレポートを作成することができます。レポートの対象期間は、startDate、endDate で設定します。取得したい値は、metrics で選択します。ページ別、ブラウザ別などの分析軸を設定したい場合は、dimensions で指定します。リクエストで返されるディメンションまたは指標を制限したい場合は、metricFilter または dimensionFilter で指定します。返却されるレスポンスはデフォルトで最大1000行です。 + +パラメーター +*は、必須パラメーター + +名前 型 概要 例 +provider* 文字列 google analytics4 からデータを取得するのに必要なプロバイダーID ga_e7502c3b8b8147410ce2 +propertyId* 数値 プロパティID 12345678 +startDate* 文字列 リクエスト期間の開始日付 2023-04-01 +endDate* 文字列 リクエスト期間の終了日付 2023-04-30 +metrics 文字列 指標(定量化されたデータ)。カンマ区切りで10個まで指定可能。入力可能な値については こちら をご参照ください。 sessions, newUsers +dimensions 文字列 ディメンション(データの属性)。カンマ区切りで5個まで指定可能。入力可能な値については こちら をご参照ください。 date, sessionDefaultChannelGroup +metricFilter オブジェクト リクエストで返されるデータを制限する指標のフィルタ ※ フィルタについての説明参照 +dimensionFilter オブジェクト リクエストで返されるデータを制限するディメンションのフィルタ ※ フィルタについての説明参照 +pageSize 数値 リクエストで返されるデータの数。最大で、100,000行。 1000 (デフォルト値) +フィルタについての説明 +フィルタの作成方法 + +metricFilter や dimensionFilter を設定することで取得するデータの値を制限することができます。以下の手順によって 公式ドキュメント からフィルタを作成してください。 + +公式ドキュメントの「Try this method」の「Request body」から metricFilter または dimensionFilter を選択し、フィルタオブジェクトを作成する。 + + +作成したフィルタの metricFilter または dimensionFilter の内側のオブジェクトをコピーする + + +GetGA4Report アクションの metricFilter または dimensionFilter パラメータに貼り付ける + + +フィルタの書き方 + +metricFilter, dimensionFilter の書き方についての説明。 詳しくは公式ドキュメントをご参照ください。 + +基本のフィルタ +キーに filter 、値に条件を設定します。 diff --git a/.github/workflows/npm-publish-github-packages.yml b/.github/workflows/npm-publish-github-packages.yml new file mode 100644 index 00000000000..ea2d329fa02 --- /dev/null +++ b/.github/workflows/npm-publish-github-packages.yml @@ -0,0 +1,36 @@ +# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created +# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages + +name: Node.js Package + +on: + release: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - run: npm ci + - run: npm test + + publish-gpr: + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: https://npm.pkg.github.com/ + - run: npm ci + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/AddresVeros.js b/AddresVeros.js new file mode 100644 index 00000000000..2ca7fc62d88 --- /dev/null +++ b/AddresVeros.js @@ -0,0 +1,31 @@ +{ + Ebn Eein { + Play Photo on SD { + Play Video on Files; + Share [PDF, DOC, PPT, TXT, XLS, Files] { + to Eein DriveAddress on URL "Dededt"; + Address Voices "Dededt"; + Address on ID "Dededt"; + Res "now"; + } + } +} +{ + Play Video on Veros { + Res "now" { + Share XLS "finance.xls" + to Eein Drive; + Res "now"; + Address on URL "Dededt" { + Res "now"; + "status" : "ok", [ + "action" : "Share", + "object" : ["PDF","DOC","PPT","TXT","XLS","Files" ], + "destination" : "Eein Drive", + "location" : "drive://eein/root/", + "result" : "5 files uploaded" + } + } + } + ], +} diff --git a/Archery Game b/Archery Game new file mode 100644 index 00000000000..a155a63fab4 --- /dev/null +++ b/Archery Game @@ -0,0 +1,514 @@ +//Thanks for visiting my code +//Created By : Adnan Zawad Toky +//Idea & Sounds : Archery Black +//Version : 3.0.1 +//If you enjoy playing this game, don't forget to appreciate +//If you have any idea or feedback, please comment... + + +window.onload = function(){ +alert("Thanks everyone (specially SoloLearn) for making my code as Code Of The Day...\n👍👍👍") + +alert("Please make sure that your device is not in silent mode..."); + +String.prototype.repeat = String.prototype.repeat || + function(c){ + var r= ''; + for(var i=0; i w){ + document.getElementById("mainContainer").style.transform = "translateX("+(w)+"px) rotate(90deg)"; + document.getElementById("mainContainer").style.width = h+"px"; + var nh = h; + h = w; + w = nh; + + } + + + var updatePointArea = document.getElementById("showPoint"); + updatePointArea.style.height = h+"px"; + updatePointArea.style.width = w+"px"; + var uScore = document.querySelector("#showPoint .u"); + var arrs = document.getElementById("arrs"); + + function updArr(arrNum){ + var arr = "↑"; + arr = arr.repeat(arrNum); + arrs.innerHTML = arr; + } + + function animateScore(scr,arrNum){ + if(scr >= 7) uScore.innerHTML = "↑ +"+scr; + else uScore.innerHTML = "+"+scr; + updArr(arrNum); + var t = 50, l = 70, o = 1; + var animIntv = setInterval(function(){ + uScore.style.top = t + "%"; + uScore.style.left = l + "%"; + uScore.style.opacity = o; + t-=4; + l-=3; + o-=0.1; + },100) + setTimeout(function(){ + clearInterval(animIntv); + uScore.style.opacity = 0; + uScore.style.top = "50%"; + uScore.style.left = "70%"; + },1000); + } + + + var c2 = document.getElementById("animCanvas"); + c2.height = h; + c2.width = w; + var ctx2 = c2.getContext("2d"); + + var fwBuilder = function(n,x,y,speed){ + this.n = n; + this.x = x; + this.y = y; + this.speed = speed; + this.balls = []; + } + + fwBuilder.prototype.ready = function(){ + for(var i = 0; i < this.n; i++){ + this.balls[i] = { + x:this.x, + y:this.y, + dx:this.speed*Math.sin(i*Math.PI*2/this.n), + dy:this.speed*Math.cos(i*Math.PI*2/this.n), + u:this.speed*Math.cos(i*Math.PI*2/this.n), + t:0 + } + } + } + + fwBuilder.prototype.draw = function(){ + for(var i = 0; i < this.n; i++){ + ctx2.beginPath(); + ctx2.arc(this.balls[i].x,this.balls[i].y,7,0,Math.PI*2); + ctx2.fill(); + ctx2.closePath(); + this.balls[i].x += this.balls[i].dx; + this.balls[i].y += this.balls[i].dy; + + this.balls[i].dy += .025; + } + + if(this.balls[Math.round(this.n/2)].y > h){ + clearInterval(intvA); + running = false; + ctx2.clearRect(0,0,w,h); + } + } + + var fw1 = new fwBuilder(40,w/5,h,3); + var fw2 = new fwBuilder(40,4*w/5,h,3); + + var intvA; + var running = false; + + function newF(){ + if(!running){ + fw1.ready(); + fw2.ready(); + running = true; + intvA = setInterval(function(){ + ctx2.clearRect(0,0,w,h); + fw1.draw(); + fw2.draw(); + },15) + } + } + + newF(); + //c2.addEventListener("click",newF) + + + var c = document.getElementById("myCanvas"); + + c.height = h; + c.width = w; + + var ctx = c.getContext("2d"); + + var checkArrowMoveWithBoard1 = false; + var checkArrowMoveWithBoard2 = false; + + // Objects... + + var arc = { + x:30, + y:100, + dy:3, + r:50, + color:"#000", + lw:3, + start:Math.PI+Math.PI/2, + end:Math.PI-Math.PI/2 + } + + var rope = { + h:arc.r*2, + lw:1, + x:arc.x-25, + color:"#000", + status:true + } + + var board = { + x:w-40, + y:h/2, + dy:4, + height:150, + width:7 + } + + var boardY; + var boardMove = false; + var totalArr = 10; + updArr(totalArr); + + function drawBoard() { + ctx.beginPath(); + ctx.fillRect(board.x,board.y-5,40,board.width+3); + ctx.fillRect(board.x,board.y-board.height/2,board.width,board.height); + ctx.moveTo(board.x,board.y-15); + ctx.quadraticCurveTo(board.x-10,board.y,board.x,board.y+15); + //ctx.lineTo(10,6); + ctx.fillStyle = "#36e"; + ctx.fill(); + ctx.closePath(); + ctx.fillStyle = "#000"; + + if(board.y >= h || board.y <= 0){ + board.dy *= -1; + } + + + if(autoMove){ + board.y += board.dy; + if(checkArrowMoveWithBoard1){ + arrow1.moveArrowWithBoard(1); + } + else if(checkArrowMoveWithBoard2){ + arrow2.moveArrowWithBoard(1); + } + } + else{ + + if(boardMove){ + if(Math.abs(board.y - boardY) > 5){ + board.y += board.dy; + arrow1.moveArrowWithBoard(1); + arrow2.moveArrowWithBoard(1); + } + } + else{ + if(Math.abs(board.y - boardY) > 5){ + board.y -= board.dy; + arrow1.moveArrowWithBoard(-1); + arrow2.moveArrowWithBoard(-1); + } + } + } + } + + function Arrow(){ + this.w = 85; + this.x = arc.x-25; + this.dx = 20; + this.status = false; + this.vis = true; + this.fy = arc.y; + } + + Arrow.prototype.drawArrow = function() { + if(this.vis) { + if(this.status) { + ctx.fillRect(this.x,this.fy-3,10,6); + ctx.fillRect(this.x,this.fy-1,this.w,2); + ctx.beginPath(); + ctx.moveTo(this.x+this.w,this.fy-4); + ctx.lineTo(this.x+this.w+12,this.fy); + ctx.lineTo(this.x+this.w,this.fy+4); + ctx.fill(); + + if(moveArrowCheck) { + if(this.x < w-155){ + this.x += this.dx; + } + else { + if(!(this.fy <= board.y-board.height/2 || this.fy >= board.y+board.height/2) || this.x > w){ + if(this.x > w-110){ + if(this == arrow1){ + arrow2.vis = true; + checkArrowMoveWithBoard1 = true; + checkArrowMoveWithBoard2 = false; + } + else { + arrow1.vis = true; + checkArrowMoveWithBoard1 = false; + checkArrowMoveWithBoard2 = true; + } + moveArrowCheck = false; + score++; + //console.log(score); + if(score === 4){ + arc.dy = 5; + } + else if(score === 8){ + autoMove = true; + } + + + if(this.fy >= board.y-board.height/2 && this.fy <= board.y+board.height/2) { + try{ + hitSound.play().catch(function(e){}); + }catch(err){} + var scores = this.fy - board.y; + var currentScore = Math.round(board.height/20)-Math.round(Math.abs(scores/10)); + if(currentScore >= 7){ + newF(); + totalArr+=2; + try{ + successSound.play().catch(function(e){}); + }catch(err){ + } + } + + totalScore += currentScore; + gameScore.innerHTML = totalScore; + + animateScore(currentScore,totalArr); + + //board.y += scores;// + Math.floor(Math.random()*20); + boardY = board.y + scores; + if(scores>=0){ + boardMove = true; + } + else { + boardMove = false; + } + + //this.fy += scores; + } + else updArr(totalArr); + if(totalArr <= 0){ + clearInterval(intv); + try{ + //bgSound.pause(); + endSound.play().catch(function(e){}); + }catch(err){ + } + document.getElementById("animCanvas").removeEventListener("click",shoot); + document.body.removeEventListener("keydown",shoot); + startPage.style.display = "block"; + document.getElementById("title").innerHTML = "Your Score
"+totalScore; + if(bestScore < totalScore){ + bestScore = totalScore; + try{ + highScoreSound.play().catch(function(e){}); + }catch(err){ + } + } + document.getElementById("score").innerHTML = 0; + document.getElementById("best").innerHTML = bestScore; + } + + } + else { + this.x += this.dx; + } + } + else { + this.x += this.dx; + } + } + } + } + else { + ctx.fillRect(rope.x,arc.y-3,10,6); + ctx.fillRect(rope.x,arc.y-1,this.w,2); + ctx.beginPath(); + ctx.moveTo(rope.x+this.w,arc.y-4); + ctx.lineTo(rope.x+this.w+12,arc.y); + ctx.lineTo(rope.x+this.w,arc.y+4); + ctx.fill(); + } + } + } + + // Arrow Move With Board + + Arrow.prototype.moveArrowWithBoard = function(dir) { + if(this == arrow1){ + arrow1.fy += board.dy*dir; + } + else { + arrow2.fy += board.dy*dir; + } + } + + + + + var arrow1 = new Arrow(); + var arrow2 = new Arrow(); + + var arrows = 0; + var moveArrowCheck = false; + var score = 0; + + // Drawing functions... + + function drawArc() { + ctx.beginPath(); + ctx.arc(arc.x,arc.y,arc.r,arc.start,arc.end); + ctx.strokeStyle = arc.color; + ctx.lineWidth = arc.lw; + ctx.stroke(); + ctx.closePath(); + } + + function drawRope() { + ctx.beginPath(); + ctx.moveTo(arc.x,arc.y-arc.r); + if(arrow1.vis && arrow2.vis){ + ctx.lineTo(rope.x,arc.y); + } + ctx.lineTo(arc.x,arc.y+arc.r); + ctx.lineWidth = rope.lw; + ctx.strokeStyle = rope.color; + ctx.stroke(); + ctx.closePath(); + } + + // Moving function... + + function move () { + ctx.clearRect(0,0,w,h); + if(arc.y>h-50 || arc.y<50){ + arc.dy*=-1; + } + arc.y+=arc.dy; + } + + function shoot(){ + if(arrow1.vis && arrow2.vis && arrows != -1){ + moveArrowCheck = true; + clearTimeout(countTimeOut); + countTime(); + if(arrows%2===0){ + arrow1.status = true; + arrow1.fy = arc.y; + arrow2.status = false; + arrow2.x = rope.x; + arrow2.vis = false; + } + else{ + arrow1.status = false; + arrow2.fy = arc.y; + arrow2.status = true; + arrow1.x = rope.x; + arrow1.vis = false; + } + totalArr--; + try{ + shootSound.play().catch(function(e){}); + }catch(err){} + } + arrows++; + } + + document.getElementById("animCanvas").addEventListener("click",shoot); + document.body.addEventListener("keydown",shoot); + + var intv = setInterval(function(){ + move(); + drawArc(); + drawRope(); + arrow1.drawArrow(); + arrow2.drawArrow(); + drawBoard(); + },15) +} +} +//window.onload = setTimeout(loadGame,2000); + diff --git a/Archey Game b/Archey Game new file mode 100644 index 00000000000..d49e10b44db --- /dev/null +++ b/Archey Game @@ -0,0 +1,513 @@ +//Thanks for visiting my code +//Created By : Adnan Zawad Toky +//Idea & Sounds : Archery Black +//Version : 3.0.1 +//If you enjoy playing this game, don't forget to appreciate +//If you have any idea or feedback, please comment... + + +window.onload = function(){ +alert("Thanks everyone (specially SoloLearn) for making my code as Code Of The Day...\n👍👍👍") + +alert("Please make sure that your device is not in silent mode..."); + +String.prototype.repeat = String.prototype.repeat || + function(c){ + var r= ''; + for(var i=0; i w){ + document.getElementById("mainContainer").style.transform = "translateX("+(w)+"px) rotate(90deg)"; + document.getElementById("mainContainer").style.width = h+"px"; + var nh = h; + h = w; + w = nh; + + } + + + var updatePointArea = document.getElementById("showPoint"); + updatePointArea.style.height = h+"px"; + updatePointArea.style.width = w+"px"; + var uScore = document.querySelector("#showPoint .u"); + var arrs = document.getElementById("arrs"); + + function updArr(arrNum){ + var arr = "↑"; + arr = arr.repeat(arrNum); + arrs.innerHTML = arr; + } + + function animateScore(scr,arrNum){ + if(scr >= 7) uScore.innerHTML = "↑ +"+scr; + else uScore.innerHTML = "+"+scr; + updArr(arrNum); + var t = 50, l = 70, o = 1; + var animIntv = setInterval(function(){ + uScore.style.top = t + "%"; + uScore.style.left = l + "%"; + uScore.style.opacity = o; + t-=4; + l-=3; + o-=0.1; + },100) + setTimeout(function(){ + clearInterval(animIntv); + uScore.style.opacity = 0; + uScore.style.top = "50%"; + uScore.style.left = "70%"; + },1000); + } + + + var c2 = document.getElementById("animCanvas"); + c2.height = h; + c2.width = w; + var ctx2 = c2.getContext("2d"); + + var fwBuilder = function(n,x,y,speed){ + this.n = n; + this.x = x; + this.y = y; + this.speed = speed; + this.balls = []; + } + + fwBuilder.prototype.ready = function(){ + for(var i = 0; i < this.n; i++){ + this.balls[i] = { + x:this.x, + y:this.y, + dx:this.speed*Math.sin(i*Math.PI*2/this.n), + dy:this.speed*Math.cos(i*Math.PI*2/this.n), + u:this.speed*Math.cos(i*Math.PI*2/this.n), + t:0 + } + } + } + + fwBuilder.prototype.draw = function(){ + for(var i = 0; i < this.n; i++){ + ctx2.beginPath(); + ctx2.arc(this.balls[i].x,this.balls[i].y,7,0,Math.PI*2); + ctx2.fill(); + ctx2.closePath(); + this.balls[i].x += this.balls[i].dx; + this.balls[i].y += this.balls[i].dy; + + this.balls[i].dy += .025; + } + + if(this.balls[Math.round(this.n/2)].y > h){ + clearInterval(intvA); + running = false; + ctx2.clearRect(0,0,w,h); + } + } + + var fw1 = new fwBuilder(40,w/5,h,3); + var fw2 = new fwBuilder(40,4*w/5,h,3); + + var intvA; + var running = false; + + function newF(){ + if(!running){ + fw1.ready(); + fw2.ready(); + running = true; + intvA = setInterval(function(){ + ctx2.clearRect(0,0,w,h); + fw1.draw(); + fw2.draw(); + },15) + } + } + + newF(); + //c2.addEventListener("click",newF) + + + var c = document.getElementById("myCanvas"); + + c.height = h; + c.width = w; + + var ctx = c.getContext("2d"); + + var checkArrowMoveWithBoard1 = false; + var checkArrowMoveWithBoard2 = false; + + // Objects... + + var arc = { + x:30, + y:100, + dy:3, + r:50, + color:"#000", + lw:3, + start:Math.PI+Math.PI/2, + end:Math.PI-Math.PI/2 + } + + var rope = { + h:arc.r*2, + lw:1, + x:arc.x-25, + color:"#000", + status:true + } + + var board = { + x:w-40, + y:h/2, + dy:4, + height:150, + width:7 + } + + var boardY; + var boardMove = false; + var totalArr = 10; + updArr(totalArr); + + function drawBoard() { + ctx.beginPath(); + ctx.fillRect(board.x,board.y-5,40,board.width+3); + ctx.fillRect(board.x,board.y-board.height/2,board.width,board.height); + ctx.moveTo(board.x,board.y-15); + ctx.quadraticCurveTo(board.x-10,board.y,board.x,board.y+15); + //ctx.lineTo(10,6); + ctx.fillStyle = "#36e"; + ctx.fill(); + ctx.closePath(); + ctx.fillStyle = "#000"; + + if(board.y >= h || board.y <= 0){ + board.dy *= -1; + } + + + if(autoMove){ + board.y += board.dy; + if(checkArrowMoveWithBoard1){ + arrow1.moveArrowWithBoard(1); + } + else if(checkArrowMoveWithBoard2){ + arrow2.moveArrowWithBoard(1); + } + } + else{ + + if(boardMove){ + if(Math.abs(board.y - boardY) > 5){ + board.y += board.dy; + arrow1.moveArrowWithBoard(1); + arrow2.moveArrowWithBoard(1); + } + } + else{ + if(Math.abs(board.y - boardY) > 5){ + board.y -= board.dy; + arrow1.moveArrowWithBoard(-1); + arrow2.moveArrowWithBoard(-1); + } + } + } + } + + function Arrow(){ + this.w = 85; + this.x = arc.x-25; + this.dx = 20; + this.status = false; + this.vis = true; + this.fy = arc.y; + } + + Arrow.prototype.drawArrow = function() { + if(this.vis) { + if(this.status) { + ctx.fillRect(this.x,this.fy-3,10,6); + ctx.fillRect(this.x,this.fy-1,this.w,2); + ctx.beginPath(); + ctx.moveTo(this.x+this.w,this.fy-4); + ctx.lineTo(this.x+this.w+12,this.fy); + ctx.lineTo(this.x+this.w,this.fy+4); + ctx.fill(); + + if(moveArrowCheck) { + if(this.x < w-155){ + this.x += this.dx; + } + else { + if(!(this.fy <= board.y-board.height/2 || this.fy >= board.y+board.height/2) || this.x > w){ + if(this.x > w-110){ + if(this == arrow1){ + arrow2.vis = true; + checkArrowMoveWithBoard1 = true; + checkArrowMoveWithBoard2 = false; + } + else { + arrow1.vis = true; + checkArrowMoveWithBoard1 = false; + checkArrowMoveWithBoard2 = true; + } + moveArrowCheck = false; + score++; + //console.log(score); + if(score === 4){ + arc.dy = 5; + } + else if(score === 8){ + autoMove = true; + } + + + if(this.fy >= board.y-board.height/2 && this.fy <= board.y+board.height/2) { + try{ + hitSound.play().catch(function(e){}); + }catch(err){} + var scores = this.fy - board.y; + var currentScore = Math.round(board.height/20)-Math.round(Math.abs(scores/10)); + if(currentScore >= 7){ + newF(); + totalArr+=2; + try{ + successSound.play().catch(function(e){}); + }catch(err){ + } + } + + totalScore += currentScore; + gameScore.innerHTML = totalScore; + + animateScore(currentScore,totalArr); + + //board.y += scores;// + Math.floor(Math.random()*20); + boardY = board.y + scores; + if(scores>=0){ + boardMove = true; + } + else { + boardMove = false; + } + + //this.fy += scores; + } + else updArr(totalArr); + if(totalArr <= 0){ + clearInterval(intv); + try{ + //bgSound.pause(); + endSound.play().catch(function(e){}); + }catch(err){ + } + document.getElementById("animCanvas").removeEventListener("click",shoot); + document.body.removeEventListener("keydown",shoot); + startPage.style.display = "block"; + document.getElementById("title").innerHTML = "Your Score
"+totalScore; + if(bestScore < totalScore){ + bestScore = totalScore; + try{ + highScoreSound.play().catch(function(e){}); + }catch(err){ + } + } + document.getElementById("score").innerHTML = 0; + document.getElementById("best").innerHTML = bestScore; + } + + } + else { + this.x += this.dx; + } + } + else { + this.x += this.dx; + } + } + } + } + else { + ctx.fillRect(rope.x,arc.y-3,10,6); + ctx.fillRect(rope.x,arc.y-1,this.w,2); + ctx.beginPath(); + ctx.moveTo(rope.x+this.w,arc.y-4); + ctx.lineTo(rope.x+this.w+12,arc.y); + ctx.lineTo(rope.x+this.w,arc.y+4); + ctx.fill(); + } + } + } + + // Arrow Move With Board + + Arrow.prototype.moveArrowWithBoard = function(dir) { + if(this == arrow1){ + arrow1.fy += board.dy*dir; + } + else { + arrow2.fy += board.dy*dir; + } + } + + + + + var arrow1 = new Arrow(); + var arrow2 = new Arrow(); + + var arrows = 0; + var moveArrowCheck = false; + var score = 0; + + // Drawing functions... + + function drawArc() { + ctx.beginPath(); + ctx.arc(arc.x,arc.y,arc.r,arc.start,arc.end); + ctx.strokeStyle = arc.color; + ctx.lineWidth = arc.lw; + ctx.stroke(); + ctx.closePath(); + } + + function drawRope() { + ctx.beginPath(); + ctx.moveTo(arc.x,arc.y-arc.r); + if(arrow1.vis && arrow2.vis){ + ctx.lineTo(rope.x,arc.y); + } + ctx.lineTo(arc.x,arc.y+arc.r); + ctx.lineWidth = rope.lw; + ctx.strokeStyle = rope.color; + ctx.stroke(); + ctx.closePath(); + } + + // Moving function... + + function move () { + ctx.clearRect(0,0,w,h); + if(arc.y>h-50 || arc.y<50){ + arc.dy*=-1; + } + arc.y+=arc.dy; + } + + function shoot(){ + if(arrow1.vis && arrow2.vis && arrows != -1){ + moveArrowCheck = true; + clearTimeout(countTimeOut); + countTime(); + if(arrows%2===0){ + arrow1.status = true; + arrow1.fy = arc.y; + arrow2.status = false; + arrow2.x = rope.x; + arrow2.vis = false; + } + else{ + arrow1.status = false; + arrow2.fy = arc.y; + arrow2.status = true; + arrow1.x = rope.x; + arrow1.vis = false; + } + totalArr--; + try{ + shootSound.play().catch(function(e){}); + }catch(err){} + } + arrows++; + } + + document.getElementById("animCanvas").addEventListener("click",shoot); + document.body.addEventListener("keydown",shoot); + + var intv = setInterval(function(){ + move(); + drawArc(); + drawRope(); + arrow1.drawArrow(); + arrow2.drawArrow(); + drawBoard(); + },15) +} +} +//window.onload = setTimeout(loadGame,2000); diff --git a/COL OR PICKER b/COL OR PICKER new file mode 100644 index 00000000000..9601941aceb --- /dev/null +++ b/COL OR PICKER @@ -0,0 +1,49 @@ +alert("Thank you for upvoting this code.\n"); +var x = 0, y = 0, z =0 ,color, r = "RED" ,g = "GREEN ", b = "BLUE "; + +function getColor(){ +x = document.getElementById("red").value; +document.getElementById("divRed").innerHTML = 'RED = '+x; +y = document.getElementById("green").value; +document.getElementById("divGreen").innerHTML = 'GREEN = '+y; +z = document.getElementById("blue").value; +document.getElementById("divBlue").innerHTML = 'BLUE = '+z; +var color = rgbToHex(x,y,z); +color = "#"+color; +document.body.style.backgroundColor = color; +document.getElementsByTagName("h2")[0].innerHTML = color; +var newColor0 = rgbToHex(255-x,y,z); +newColor0 = "#"+newColor0; +var newColor1 = rgbToHex(x,255-y,z); +newColor1 = "#"+newColor1; +var newColor2 = rgbToHex(x,y,255-z); +newColor2 = "#"+newColor2; +var dac = document.getElementsByClassName("ddg"); +dac[0].style.backgroundColor = newColor0 ; +dac[0].style.color ="#ffffff"; +dac[1].style.backgroundColor = newColor1; +dac[1].style.color ="#ffffff"; +dac[2].style.backgroundColor = newColor2; +dac[2].style.color ="#ffffff"; +} + +function rgbToHex(R,G,B) { +return toHex(R)+toHex(G)+toHex(B) +} + +function toHex(n) { + n = parseInt(n,10); + if (isNaN(n)) return "00"; + n = Math.max(0,Math.min(n,255)); + return "0123456789ABCDEF".charAt((n-n%16)/16) + + "0123456789ABCDEF".charAt(n%16); +} +function getYourColor(){ +your_color=document.getElementById("rgb").childNodes[0].innerHTML; + alert("Your color is "+your_color); +} + +function input(promptColor,colorNow){ + alert(colorNow+" is set now "+promptColor); + promptColor = prompt(" How much "+colorNow+" do you need for your color?\n Insert a number from 0 to 255\n\n <<>>"); + } diff --git a/Clashof tanks [GaMe] b/Clashof tanks [GaMe] new file mode 100644 index 00000000000..58f93e4e3c1 --- /dev/null +++ b/Clashof tanks [GaMe] @@ -0,0 +1,1377 @@ +/* Written by Alexey Rudenko at Sololearn playground with some little help from James Long. https://jlongster.com/Making-Sprite-based-Games-with-Canvas */ + + +var w, h, k, xo, yo, +units = [], + icons = [], + bullets = [], + enemies = [], + explosions = [], + dif = [' practice', ' easy', ' medium', ' hard', ' harder', ' hardcore', ' pro', ' deathmatch', ' godlike', ' impossible'], + gameTime = 0, + isGameOver, + nextwave = 0, + enemydep = 1, + firstwave = false, + deployarea = false, + counter = 0, + counter2 = 0, + gameNum = 0, + game_paused = false, + lvl = 0, // 0...9 + inf = function () + { + var popup = document.getElementById('infdiv'); + var btn = document.getElementById('info'); + if (popup.style.display !== 'block') + { + popup.style.display = 'block'; + info.style.color = 'white'; + info.style.backgroundColor = 'red'; + } + else + { + popup.style.display = 'none'; + info.style.color = 'red'; + info.style.backgroundColor = '#f3f3f3'; + } + }, + changeLvl = function (op) { + if (op == 1 && lvl < 9) { + lvl++; + } + if (op == 0 && lvl > 0) { + lvl--; + } + + var _dif = document.getElementsByClassName("dif"); + _dif[1].innerHTML = dif[lvl]; + }; + + + +(function () +{ + function Sprite(url, pos, size, resized, animspeed, frames, _index, once) + { + this.pos = pos; + this.size = size; + this.resized = resized; + this.url = url; + this.animspeed = animspeed; + this.frames = frames; + this._index = _index; + this.once = once; + } + + Sprite.prototype = + { + + update: function (dt) + { + +             this._index += this.animspeed * dt; + +          + }, + + + +          render: function (ctx) + { + + var frame; + + +              + if (this.animspeed > 0) + {                 + var max = this.frames.length;                 + var idx = Math.floor(this._index);                frame = this.frames[idx % max];                + if (this.once && idx >= max) + {                    this.done = true;                     + return;                 + }             + }             + else + {                frame = 0;             + } + +                 + var x = this.pos[0];      + var y = this.pos[1];   + +  x += frame * this.size[0];   ctx.drawImage(resources.get(this.url),  x, y,  this.size[0], this.size[1],  0, 0,  this.resized[0], this.resized[1]); + +          + } + +      + }; + +     window.Sprite = Sprite; +})(); + +(function () +{ + function Unit(status, pos, hp, speed, maxspeed, range, damage, reload, angle, defaultangle, dir, sprite) + { + this.status = status; + this.pos = pos; + this.hp = hp; + this.maxhp = hp; + this.speed = speed; + this.maxspeed = maxspeed; + this.range = range; + this.damage = damage; + this.reload = reload; + this.angle = angle; + this.defaultangle = defaultangle; + this.dir = dir; + this.sprite = sprite + } + + Unit.prototype = + { + +          getAngle: function (target) + { + + var x = this.pos[0] - target[0]; + var y = this.pos[1] - target[1]; + if (x < 0) + { + return Math.floor(Math.atan(y / x) * (180 / Math.PI)); + } + else + { + return Math.floor(Math.atan(y / x) * (180 / Math.PI) - 180); + } + }, + + moveAhead: function (dt) + { + var rad = this.angle / (180 / Math.PI); + this.pos[0] += Math.cos(rad) * this.speed * dt * this.dir; + this.pos[1] += Math.sin(rad) * this.speed * dt * this.dir; + + }, + + findTarget: function (t) + { + for (i = 0; i < t.length; i++) + { + + var dis = this.getDistance(t[i]); + if (dis < this.range && !t[i].destroyed && t[i].time > 0.7 && t[i].pos[1] > k) + { + this.target = t[i]; + this.status = "targetfound"; + return; + } + } + + }, + + avoidCollision: function (list, ownindx, dt) + { + + var l = list; + + for (i = 0; i < l.length; i++) + { + if (i == ownindx) continue; + if (this.getDistance(l[i]) < k * 8) + { + for (var sec = 2; sec > 0; sec--) { + + var ownfuturepos = [this.pos[0] + (Math.cos(this.angle / (180 / Math.PI)) * this.speed * sec * this.dir), this.pos[1] + (Math.sin(this.angle / (180 / Math.PI)) * this.speed * sec * this.dir)]; + + var allyfuturepos = [l[i].pos[0] + (Math.cos(l[i].angle / (180 / Math.PI)) * l[i].speed * sec * this.dir), l[i].pos[1] + (Math.sin(l[i].angle / (180 / Math.PI)) * l[i].speed * sec * this.dir)]; + if (getDistance(ownfuturepos, allyfuturepos) < k * 3 && this.pos[1] * this.dir > l[i].pos[1] * l[i].dir && Math.abs(ownfuturepos[0] - allyfuturepos[0]) < this.sprite.resized[0]) + { + this.speed -= 160/Math.pow(sec, 4) * dt; + } + } + + } + } + + + }, + + getDistance: function (t) + { + + return Math.floor(Math.sqrt(Math.pow(this.pos[0] - t.pos[0], 2) + Math.pow(this.pos[1] - t.pos[1], 2))); + }, + + fireOnTarget: function () + { + + var x = Math.floor(this.pos[0] + ((this.sprite.resized[1] / 2 * this.dir) * Math.cos(this.angle / (180 / Math.PI)))); + var y = Math.floor(this.pos[1] + ((this.sprite.resized[0] / 2 * this.dir) * Math.sin(this.angle / (180 / Math.PI)))); + bullets.push( + { + pos: [x, y], + target: this.target, + speed: k * 12, + damage: this.damage, + angle: this.angle + getRandom (-5,3), + dir: this.dir, + + }); + + this.lastshot = 0; + + }     + }; + +     window.Unit = Unit; +})(); + +var getRandom = function (min, max) +{ + return Math.floor(Math.random() * (max - min + 1)) + min; +}; + +var getDistance = function (own, ally) +{ + + return Math.floor(Math.sqrt(Math.pow(own[0] - ally[0], 2) + Math.pow(own[1] - ally[1], 2))); +}; + + + +var deployUnit = function (unit, pos) +{ + var u = unit; + units.push(new Unit(u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], u[8], u[9], u[10], u[11], u[12], u[13])); + units[units.length - 1].pos = pos; + deployarea = false; +}; + +var deployEnemy = function (unit, pos) +{ + var u = unit; + enemies.push(new Unit(u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], u[8], u[9], u[10], u[11], u[12], u[13])); + enemies[enemies.length - 1].pos = pos; + +}; + + + +var returnToBase = function (icon) +{ + icon.pos = icon.defaultpos; + icon.dragable = false; +}; + +var gameOver = function (a) +{ + + var _min = Math.floor(gameTime / 60); + var _sec = ('0' + Math.floor(gameTime % 60)).slice(-2); + + + switch (a) + { + + case 'win': + + alert("Mission completed! Your time is " + _min + ':' + _sec + '\n\nLosses: ' + counter + ' units.\n\nEnemies destroyed: ' + counter2 + '.'); + + var log_item = "

Game " + ++gameNum + ": 🏆 Win ⏲" + _min + ':' + _sec + ' /' + dif[lvl] + ' /' + "

"; + if (lvl < dif.length - 1) lvl++; + var log = document.getElementById('log'); + log.innerHTML += log_item; + document.body.style.paddingTop = 50 - (gameNum * 3) + "%"; + log.style.display = "block"; + loader(); + break; + + case 'loss': + alert("Mission failed!" + '\n\nLosses: ' + counter + ' units.\n\nEnemies destroyed: ' + counter2 + '.'); + + var log_item = "

Game " + ++gameNum + ": 💩 Fail ⏲" + _min + ':' + _sec + ' /' + dif[lvl] + ' /' + "

"; + if (lvl > 0) lvl--; + var log = document.getElementById('log'); + log.innerHTML += log_item; + document.body.style.paddingTop = 50 - (gameNum * 3)+ "%"; + log.style.display = "block"; + loader(); + break; + + } +} + +var reset = function () +{ + + units = []; + icons = []; + bullets = []; + enemies = []; + explosions = []; + isGameOver = false; + gameTime = 0; + enemydep = 1; + firstwave = false; + nextwave = 0; + deployarea = false; + counter = 0; + counter2 = 0; +} + +var xxx = 0, + yyy = 0; +var mouse = +{ + x: 0, + y: 0, + down: false +} + +///////////////////////////// + +var startGame = function () +{ + + reset(); + + var modal = document.getElementById("myModal"); + var span = document.getElementsByClassName("close")[0]; + var p = document.getElementsByClassName("modal-text")[0]; + span.onclick = function() { + modal.style.display = "none"; + game_paused = !game_paused; + } + + var log = document.getElementById('log'); + var popup = document.getElementById('infdiv'); + + + log.style.display = "none"; + popup.style.display = 'none'; + document.body.style.paddingTop = 0; + + var maindiv = document.getElementById("main"); + + maindiv.innerHTML = ''; + + var c = document.getElementById("c"); + + var ctx = c.getContext("2d"); + + w = window.innerWidth; + h = window.innerHeight; + + + if (w < h) { + c.width = w - 46; + c.height = c.width/0.7; + } else { + c.height = h - 46; + c.width = c.height * 0.7; + } + + k = c.width / 26; + + xo = c.offsetLeft; + yo = c.offsetTop; + + + //// + + icons = [ + { + active: true, + pos: [c.width / 28, c.height - c.height / 8], + defaultpos: [c.width / 28, c.height - c.height / 8], + respawn: false, + respawnrate: 1, + sprite: new Sprite('https://opengameart.org/sites/default/files/tanks_3.png', [55, 76], [194, 134], [c.width / 5.5, c.height / 10.5]) + }, + { + active: true, + pos: [c.width / 3.4, c.height - c.height / 8.5], + defaultpos: [c.width / 3.4, c.height - c.height / 8.5], + respawn: false, + respawnrate: 3, + sprite: new Sprite('https://opengameart.org/sites/default/files/tanks_3.png', [71, 600], [159, 130], [c.width / 6.5, c.height / 12]) + }, + { + active: true, + pos: [c.width / 1.85, c.height - c.height / 8.2], + defaultpos: [c.width / 1.85, c.height - c.height / 8.2], + respawn: false, + respawnrate: 0.5, + sprite: new Sprite('https://opengameart.org/sites/default/files/tanks_3.png', [52, 269], [205, 124], [c.width / 5.8, c.height / 12]) + }, + { + active: false, + pos: [c.width / 1.27, c.height - c.height / 8.2], + defaultpos: [c.width / 1.27, c.height - c.height / 8.2], + respawn: false, + respawnrate: 0.5, + sprite: new Sprite('https://opengameart.org/sites/default/files/tanks_3.png', [68, 434], [230 - 68, 565 - 434], [c.width / 5.8, c.height / 12]) + }]; + + /// + + c.addEventListener("touchmove", function (event) + { + + var touch = event.touches[0]; + xxx = touch.pageX - xo - 3; + yyy = touch.pageY - yo - 3; + + checkIcons(xxx, yyy); + + event.preventDefault(); + }, false); + + c.addEventListener("touchend", function (event) + { + + checkDeployment(xxx, yyy); + + }, false); + + c.addEventListener("mousemove", function (event) + { + mouse.x = event.pageX - xo - 3; + mouse.y = event.pageY - yo - 3; + }, false); + + c.addEventListener("mousedown", function () + { + mouse.down = true; + checkIcons(mouse.x, mouse.y); + + }, false); + + c.addEventListener("mouseup", function () + { + mouse.down = false; + checkDeployment(mouse.x, mouse.y); + }, false); + + function checkIcons(xx, yy) + { + + if (xx > icons[0].pos[0] && xx < icons[0].pos[0] + (k * 5) && yy > icons[0].pos[1] - (k * 3) && yy < icons[0].pos[1] + (k * 3) && !icons[0].respawn && !game_paused) + { + if (!icons[1].dragable && !icons[2].dragable) + { + icons[0].dragable = true; + basictank[0] = 'readyfordeploy'; + deployarea = true; + } + } + + if (xx > icons[1].pos[0] && xx < icons[1].pos[0] + (k * 5) && yy > icons[1].pos[1] - (k * 3) && yy < icons[1].pos[1] + (k * 3) && !icons[1].respawn && !game_paused) + { + if (!icons[0].dragable && !icons[2].dragable) + { + icons[1].dragable = true; + lighttank[0] = 'readyfordeploy'; + deployarea = true; + + } + } + + if (xx > icons[2].pos[0] && xx < icons[2].pos[0] + (k * 5) && yy > icons[2].pos[1] - (k * 3) && yy < icons[2].pos[1] + (k * 3) && !icons[2].respawn && !game_paused) + { + if (!icons[0].dragable && !icons[1].dragable) + { + icons[2].dragable = true; + ttank[0] = 'readyfordeploy'; + deployarea = true; + + } + } + + if (xx > icons[3].pos[0] && xx < icons[3].pos[0] + (k * 5) && yy > icons[3].pos[1] - (k * 3) && yy < icons[3].pos[1] + (k * 3)) + { + game_paused = !game_paused; + + if(modal.style.display == "block") { + modal.style.display = "none"; + } else { + + p.innerHTML = 'Please, donate 100500 bucks to obtain this fabulous, innovative, wirelessly rechargeable, eco/vegan/gay friendly machine of death!
Thank you!'; + modal.style.width = c.width*0.8 + "px"; + modal.style.marginLeft = c.width*0.1 + xo + "px"; + modal.style.display = "block"; + } + + + + } + } + + function checkDeployment(xx, yy) + { + + var inside = false; + + if (xx > c.width / 100 && yy > c.height / 2 && xx < c.width - c.width / 100 - 3 && yy < c.height / 2 + c.height / 3.7) + { + inside = true; + } + + var allies = false; + for(var i = 0; i < units.length; i++) { + if (getDistance([xx,yy], units[i].pos) < 2*k) allies = true; + } + + if (basictank[0] == 'readyfordeploy' && inside && !allies) + { + basictank[0] = ' '; + deployUnit(basictank, [xx, yy]); + units[units.length - 1].status = 'acceleration'; + icons[0].pos = [icons[0].defaultpos[0], icons[0].defaultpos[1] + c.width / 4]; + icons[0].dragable = false; + icons[0].respawn = true; + deployarea = false; + } + else if ( basictank[0] == 'readyfordeploy' && (!inside && !icons[0].respawn || allies)) + { + returnToBase(icons[0]); + basictank[0] = ' ' + } + + if (lighttank[0] == 'readyfordeploy' && inside && !allies) + { + lighttank[0] = ' '; + deployUnit(lighttank, [xx, yy]); + units[units.length - 1].status = 'acceleration'; + icons[1].pos = [icons[1].defaultpos[0], icons[1].defaultpos[1] + c.width / 4];; + icons[1].dragable = false; + icons[1].respawn = true; + + } + else if ( lighttank[0] == 'readyfordeploy' && (!inside && !icons[1].respawn || allies)) + { + returnToBase(icons[1]); + lighttank[0] = " "; + } + + if (ttank[0] == 'readyfordeploy' && inside && !allies) + { + ttank[0] = ' '; + deployUnit(ttank, [xx, yy]); + units[units.length - 1].status = 'acceleration'; + icons[2].pos = [icons[2].defaultpos[0], icons[2].defaultpos[1] + c.width / 4];; + icons[2].dragable = false; + icons[2].respawn = true; + + } + else if ( ttank[0] == 'readyfordeploy' && (!inside && !icons[2].respawn || allies)) + { + returnToBase(icons[2]); + ttank[0] = " "; + } + + } + + + lastTime = Date.now(); + + + // units + // stats -- status, pos, hp, speed, maxspeed, range, damage, reload, angle, defaultangle , dir, sprite + + var basictank = ['acceleration', [0, 0], 1500, 0, k * 1.5, k * 7, 399, 1.3, - 90, - 90, 1, new Sprite('https://opengameart.org/sites/default/files/tanks_3.png', [55, 76], [194, 135], [c.width / 11, c.height / 21])]; + + var lighttank = ['acceleration', [0, 0], 300, 0, k * 5.5, k * 10, 149, 0.9, - 90, - 90, 1, new Sprite("https://opengameart.org/sites/default/files/tanks_3.png", [71, 600], [159, 130], [c.width / 13, c.height / 24])]; + + var ttank = ['acceleration', [0, 0], 150, 0, k * 3.5, k * 12.5, 30, 0.05, - 90, - 90, 1, new Sprite("https://opengameart.org/sites/default/files/tanks_3.png", [52, 269], [205, 124], [c.width / 11.6, c.height / 24])]; + //enemy units + var enemybasic = ['acceleration', [0, 0], 1500, 0, k * 1.5, k * 7, 399, 1.3, - 90, - 90, - 1, new Sprite('https://opengameart.org/sites/default/files/tanks_3.png', [365, 76], [194, 135], [c.width / 11, c.height / 21])]; + + var enemylight = ['acceleration', [200, 200], 300, 0, k * 5.5, k * 10, 149, 0.7, - 90, - 90, - 1, new Sprite("https://opengameart.org/sites/default/files/tanks_3.png", [395, 600], [159, 130], [c.width / 13, c.height / 24])]; + + var enemyttank = ['acceleration', [0, 0], 150, 0, k * 3.5, k * 12.5, 10, 0.05, - 90, - 90, - 1, new Sprite("https://opengameart.org/sites/default/files/tanks_3.png", [362, 269], [205, 124], [c.width / 11.6, c.height / 24])]; + + + + main() + + // The main game loop + + + + function main() + { + +      + var now = Date.now(); + + if (!game_paused) { +      + var dt = (now - lastTime) / 1000; + + update(dt); + + render(); + + } + + lastTime = now; + +    + if  (!isGameOver) requestAnimFrame(main); + + }; + + function update(dt) + { + +     gameTime += dt; + + if (nextwave < 0) { + nextwave = (enemydep * (18 - lvl)-gameTime + 2).toFixed(0) + } else { + nextwave -= dt; + } + + if (Math.floor(gameTime) == 1 && firstwave == false) + { + + if (lvl < 3) { + + if (lvl >= 0) { + deployEnemy(enemybasic, [c.width / 4, c.height / 5]); + deployEnemy(enemybasic, [c.width - (c.width / 4), c.height / 5]); + } + + if (lvl >= 1) { + deployEnemy(enemyttank, [c.width / 2, c.height / 20]); + } + + if (lvl >= 2) { + deployEnemy(enemylight, [c.width / 5, c.height / 18]); + deployEnemy(enemylight, [c.width - (c.width / 5), c.height / 18]); + } + } + + if (lvl > 2 && lvl < 6) { + + if (lvl >= 3) { + deployEnemy(enemybasic, [c.width / 2, c.height / 4]); + deployEnemy(enemylight, [c.width / 2 - c.width / 16, c.height / 7]); + deployEnemy(enemylight, [c.width / 2 + c.width / 16, c.height / 7]); + deployEnemy(enemyttank, [c.width / 2, c.height / 14]); + deployEnemy(enemyttank, [c.width / 2 - c.width / 8, c.height / 14]); + deployEnemy(enemyttank, [c.width / 2 + c.width / 8, c.height / 14]); + + if (lvl == 3) { + deployEnemy(enemyttank, [c.width / 2 - c.width / 4, c.height / 14]); + deployEnemy(enemyttank, [c.width / 2 + c.width / 4, c.height / 14]); + } + if (lvl >= 4) { + deployEnemy(enemylight, [c.width / 8 - c.width / 11, - c.height / 4]); + } + + if (lvl >= 5) { + deployEnemy(enemylight, [c.width + c.width / 64 , - c.height / 2]); + } + + } + + if (lvl > 5 && lvl < 9) { + + if (lvl >= 6) { + deployEnemy(enemybasic, [c.width / 2, c.height / 4]); + deployEnemy(enemybasic, [c.width / 2 + c.width / 8, c.height / 4]); + deployEnemy(enemybasic, [c.width / 2 - c.width / 8, c.height / 4]); + + deployEnemy(enemyttank, [c.width / 2, c.height / 7]); + deployEnemy(enemyttank, [c.width / 2 - c.width / 8, c.height / 7]); + deployEnemy(enemyttank, [c.width / 2 + c.width / 8, c.height / 7]); + } + + if(lvl >= 7) { + deployEnemy(enemylight, [c.width / 8 - c.width / 11, c.height / 14]); + deployEnemy(enemylight, [c.width - (c.width / 8 - c.width / 11), c.height / 14]); + } + + if(lvl >= 8) { + deployEnemy(enemylight, [c.width / 8 - c.width / 11, - c.height / 4]); + deployEnemy(enemylight, [c.width - (c.width / 8 - c.width / 11), - c.height / 4]); + } + + + + } + + if (lvl == 9) { + + for (var x = 0; x < 7; x++) { + setTimeout(deployEnemy, x* 50, enemybasic, [c.width/8 + x*(c.width/8), c.height / 4]) + } + for (var x = 0; x < 6; x++) { + setTimeout(deployEnemy, x* 50, enemylight, [c.width/8 + x*(c.width/8) + c.width / 16, c.height / 7]) + } + for (var x = 0; x < 7; x++) { + setTimeout(deployEnemy, x* 50, enemyttank, [c.width/8 + x*(c.width/8), c.height / 20]) + } + + } + + + + firstwave = true; + + } + + if (Math.floor(gameTime) == enemydep * (18 - lvl % 17)) + { + + deployEnemy(enemybasic, [getRandom(30, c.width - 30), getRandom(-20, - 40)]); + deployEnemy(enemylight, [getRandom(30, c.width - 30), getRandom(-20, - 40) - (k * 2)]); + deployEnemy(enemylight, [getRandom(30, c.width - 30), getRandom(-20, - 40) - (k * 2)]); + deployEnemy(enemyttank, [getRandom(30, c.width - 30), getRandom(-20, - 40) - (k * 4)]); + deployEnemy(enemyttank, [getRandom(30, c.width - 30), getRandom(-20, - 40) - (k * 4)]); + enemydep++; + + } + +     updateEntities(dt, units); + updateEntities(dt, enemies); + updateBullets(dt); + updateIcons(dt); + +   //   checkCollisions(); + + }; + + function updateIcons(dt) + { + + for (i = 0; i < icons.length; i++) + { + if (icons[i].pos[1] > icons[i].defaultpos[1] && icons[i].respawn == true) + { + icons[i].pos[1] -= icons[i].respawnrate * k * dt; + } + else + { + icons[i].respawn = false; + } + } + }; + + function updateEntities(dt, list) + { + +      // Update the tank position + + + + +      + for (var i = 0; i < list.length; i++) + { + + var u = list[i]; + var u2; + + list == units ? u2 = enemies : u2 = units; + + + u.time = u.time + dt || 0; + u.lastshot = u.lastshot + dt || 0; + u.avoidCollision(list, i, dt); + //remove + if (u.destroyed) + { + list.splice(i, 1); + i--; + if (list == units) + { + counter++; + } + else + { + counter2++; + } + } + else if (list == enemies && u.pos[1] > c.height - (c.width / 4 + 2 * k)) + { + + isGameOver = true; + gameOver('loss'); + break; + + } + else if ( + list == units && u.pos[1] < k * 2) + { + isGameOver = true; + gameOver('win'); + break; + } + + if (u.status == "acceleration" && u.speed < u.maxspeed) + { + + u.speed += 15 * dt; + switch (list) + { + case units: + if (u.angle < u.defaultangle) + { + u.angle += Math.floor(80 * dt * u.dir); + } + else if (u.angle > u.defaultangle) + { + u.angle -= Math.floor(80 * dt * u.dir); + } + break; + case enemies: + + u.cang = u.defaultangle; + if (u.cang < -90) + { + u.cang += 180; + } + else if (u.cang > -90) + { + u.cang -= 180; + } + if (u.cang < u.angle) + { + u.angle -= Math.floor(75 * dt); + } + else if (u.cang > u.angle) + { + u.angle += Math.floor(75 * dt); + } + + + + } + } + + + + if (u.time > 1 && !u.target && u.pos[1] > k) + { + u.findTarget(u2); + } + + if (u.target && u.target.destroyed) + { + u.status = 'acceleration'; + delete u.target; + + } + else if (u.status == "targetfound" && !u.target.destroyed) + { + + if (u.speed > 0) + { + u.speed -= u.maxspeed * 2 * dt; + } + else + { + u.speed = 0 + } + + + + u.cang = Math.floor(u.getAngle(u.target.pos)); + + if (list == enemies ) { + if (u.cang < -90) + { + u.cang += 180; + } + else if (u.cang > -90) + { + u.cang -= 180; + } + } + if (u.cang > u.angle && u.cang < u.angle + 3) + { + u.angle = u.cang; + } else if (u.cang > u.angle ) + { + u.angle += Math.floor(150 * dt); + } + else if (u.cang < u.angle && u.cang > u.angle - 3) + { + u.angle = u.cang; + } else if (u.cang < u.angle ) + { + u.angle -= Math.floor(150 * dt); + } + + + + + + + if (u.lastshot > u.reload && Math.floor(u.angle) == Math.floor(u.cang) && u.getDistance(u.target) < u.range) + { + + u.fireOnTarget(); + + } else { + u.findTarget(u2); + } + + } + + if (u.time > 0.7 && u.speed > 0) + { + + u.moveAhead(dt); + + } + + }; + + } + + function updateBullets(dt) + { + + // Update all the explosions + +      + for (var i = 0; i < explosions.length; i++) + {        explosions[i].sprite.update(dt); + +          // Remove if animation is done +          + if (explosions[i].sprite.done) + {            explosions.splice(i, 1);            i--;         + }     + } + +      // Update all the bullets + +      + for (var i = 0; i < bullets.length; i++) + { + +          + var b = bullets[i]; + + var rad = b.angle / (180 / Math.PI); + b.pos[0] += Math.cos(rad) * b.speed * dt * b.dir; + b.pos[1] += Math.sin(rad) * b.speed * dt * b.dir; + + +                 // Remove the bullet + +          + if (b.pos[1] < b.target.pos[1] + k && b.pos[1] > b.target.pos[1] - k && b.pos[0] < b.target.pos[0] + k && b.pos[0] > b.target.pos[0] - k) + {         bullets.splice(i, 1);         i--;  + if (b.target.hp >= 0 && !b.target.destroyed) + { + b.target.hp -= b.damage;  + } + if (b.target.hp < 0) + { + b.target.destroyed = true; + b.target.hp = 0;  // Add an explosion +                 explosions.push( + {                    pos: b.target.pos, +                     sprite: new Sprite("https://hsto.org/storage2/aeb/045/378/aeb0453784033c5b9c0a700f5952d84b.png", [0, 117],   [39, 39], [k * 3.2, k * 3.2], 14,   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],  null,  true)      + }); + } + }         + }  + +    + } + + + + function render() + { + + if (!isGameOver) + { + + renderArea(ctx); + renderEntities(enemies); + renderEntities(units); + renderBullets(); + renderEntities(explosions); + + + } + }; + + function renderArea(ctx) { + + ctx.globalAlpha = 0.5; + + for (x = 0;x * 102 < c.width;x++) { + for (y = 0;y * 102 < c.height;y++) { ctx.drawImage(resources.get('https://opengameart.org/sites/default/files/Ground_03.png'), 0, 0, 512, 512, x*102, y*102,102,102); + } + } + ctx.globalAlpha = 1; + ctx.fillStyle = "rgba(250,250,250,0.19)"; + ctx.fillRect(0, 0, c.width, c.height ); + ctx.fillStyle = "rgba(50,200,50,0.9)"; + ctx.fillRect(0, 0, c.width, c.height / 20); + ctx.fillStyle = " rgba(200,50,50,0.7)"; + ctx.fillRect(0, c.height - c.width / 4 - c.height / 20, c.width, c.height / 20); + ctx.font = c.height / 24 + "px Arial"; + ctx.fillStyle = " rgba(250,250,250,0.7)"; + +ctx.fillText("NEXT WAVE IN " + Math.round (nextwave) , c.width/10, c.height/22); + + + ctx.beginPath(); + for (var x = c.width / 4; x < c.width; x += c.width / 4) + { + + ctx.moveTo(x + 0.1, c.height - c.width / 4); + ctx.lineTo(x + 0.1, c.height); + }; + + ctx.moveTo(0, c.height - c.width / 4); + ctx.lineTo(c.width, c.height - c.width / 4); + ctx.closePath(); + ctx.strokeStyle = "#eee"; + ctx.stroke(); + + if (deployarea === true) + { + drawDeployArea(); + } + + + }; + + function drawDeployArea() + { + + ctx.beginPath(); + ctx.rect(c.width / 100 -2, c.height / 2 -2, c.width - c.width / 100 - 3 +4, c.height / 3.7 +4); + ctx.strokeStyle = "darkgreen"; + ctx.closePath(); + ctx.stroke(); + + ctx.beginPath(); + ctx.rect(c.width / 100, c.height / 2, c.width - c.width / 100 - 3, c.height / 3.7); + ctx.strokeStyle = "white"; + ctx.closePath(); + ctx.stroke(); + + + } + + function drawTrLights() + { + + for (i = 0; i < icons.length; i++) + { + + if (icons[i].respawn == true || !icons[i].active) + { + ctx.fillStyle = "red"; + } + else + { + ctx.fillStyle = "green"; + } + ctx.fillRect(c.width / 4.8 + c.width / 4 * i, c.height - c.width / 4.1, c.width / 30, c.width / 30); + }; + }; + + + function renderEntities(list) + { + +      + for (var i = 0; i < list.length; i++) + { + +         renderEntity(list[i]);   + + } + + drawTrLights(); + drawIcons(icons); + + } + + function renderBullets() { + for (var i = 0; i < bullets.length; i++) + { + +   ctx.save(); + + ctx.fillStyle = "black"; + ctx.beginPath (); + ctx.arc(bullets[i].pos[0], bullets[i].pos[1], 1 + bullets[i].damage/300, 0, 2*Math.PI) ; + ctx.fill(); +  ctx.restore(); + } + + } + + + function drawIcons(list) + { + for (var i = 0; i < list.length; i++) + { + + if (!list[i].dragable) + { + +    ctx.save(); + ctx.translate(list[i].pos[0] + list[i].sprite.resized[0] / 2, list[i].pos[1] + list[i].sprite.resized[1] / 2); + ctx.rotate(Math.PI / 180 * (-90)); + ctx.translate(-list[i].sprite.resized[0] / 2, - list[i].sprite.resized[1] / 2); + if(!list[i].active) ctx.globalAlpha = 0.2; + list[i].sprite.render(ctx); + + ctx.restore(); + + + + } + else + { + + ctx.save(); + + if (mouse.down) + { + ctx.translate(mouse.x, mouse.y); + } + else + { + ctx.translate(xxx, yyy); + } + ctx.rotate(Math.PI / 180 * (-90)); + ctx.translate(-list[i].sprite.resized[0] / 2, - list[i].sprite.resized[1] / 2); + + + + list[i].sprite.render(ctx); + + list[i].pos = [xxx, yyy] + + ctx.restore(); + }     + } + }; + + + function renderEntity(entity) + { + + + if (!entity.destroyed) + {    ctx.save(); + ctx.translate(entity.pos[0], entity.pos[1]); + + if (entity.time && entity.time < 0.7) + { + ctx.scale(1.9 - entity.time * entity.time * 1.7, 1.9 - entity.time * entity.time * 1.7); + } + + ctx.rotate(Math.PI / 180 * (entity.angle)); + + ctx.translate(-entity.sprite.resized[0] / 2, - entity.sprite.resized[1] / 2); + +  entity.sprite.render(ctx); + renderHP(entity);  ctx.restore(); + } + } + + function renderHP(entity) + { + + if (entity.time > 0.8) + { + var hp = entity.hp * 100 / entity.maxhp; + if (hp < 0) hp = 0; + if (entity.dir < 0) + { + var reverse = entity.sprite.resized[0]; + } + else + { + var reverse = 0; + } + + ctx.beginPath(); + ctx.lineWidth = k / 2.5; + ctx.lineCap = "round"; + ctx.strokeStyle = "black"; + ctx.moveTo(0 + reverse, 0); + ctx.lineTo(0 + reverse, entity.sprite.resized[1]); + ctx.stroke(); + + + ctx.beginPath(); + ctx.lineWidth = k / 3.2; + ctx.lineCap = "round"; + ctx.strokeStyle = "lightgrey"; + ctx.moveTo(0 + reverse, 0); + ctx.lineTo(0 + reverse, entity.sprite.resized[1]); + ctx.stroke(); + + ctx.beginPath(); + + ctx.lineWidth = k / 4; + + ctx.lineCap = "round"; + ctx.strokeStyle = "rgb(" + Math.floor(100 - hp * 2.56) + "," + Math.floor(hp * 2.56) + ",0)"; + ctx.moveTo(0 + reverse, 0); + ctx.lineTo(0 + reverse, hp / 100 * entity.sprite.resized[1]); + ctx.stroke(); + ctx.lineWidth = 1; + } + } + +}; + + + + + + +/////////////^^^^^^^^^^^^^^//////////// + +var requestAnimFrame = (function () +{ + +      + return window.requestAnimationFrame || + +         window.webkitRequestAnimationFrame || + +         window.mozRequestAnimationFrame || + +         window.oRequestAnimationFrame || + +         window.msRequestAnimationFrame || + +          + function (callback) + { + +             window.setTimeout(callback, 1000 / 60); + +          + }; +})(); + +///^^^^^^^///////////^^^^///////// + +function loader() +{ + + var maindiv = document.getElementById("main"); + + + if (lvl < 0 || lvl > 9) { + lvl = 0; + } + + maindiv.innerHTML = '
Difficulty:
' + dif[lvl] + ' '; + + lastTime = Date.now(); + +}; +////////////////////////////////// + +(function () +{ + var resourceCache = {}; + var loading = []; + var readyCallbacks = []; + // Load an image url or an array of image urls + function load(urlOrArr) + { + if (urlOrArr instanceof Array) + { + urlOrArr.forEach(function (url) + { + _load(url); + }); + } + else + { + _load(urlOrArr); + } + } + + function _load(url) + { + if (resourceCache[url]) + { + return resourceCache[url]; + } + else + { + var img = new Image(); + img.onload = function () + { + resourceCache[url] = img; + if (isReady()) + { + readyCallbacks.forEach(function (func) + { + func(); + }); + } + }; + resourceCache[url] = false; + img.src = url; + } + } + + function get(url) + { + return resourceCache[url]; + } + function isReady() + { + var ready = true; + for (var k in resourceCache) + { + if (resourceCache.hasOwnProperty(k) && !resourceCache[k]) + { + ready = false; + } + } + return ready; + } + + function onReady(func) + { + readyCallbacks.push(func); + } + window.resources = + { + load: load, + get: get, + onReady: onReady, + isReady: isReady + }; +})(); + +resources.load([ + +"https://opengameart.org/sites/default/files/tanks_3.png", + +"https://hsto.org/storage2/aeb/045/378/aeb0453784033c5b9c0a700f5952d84b.png", + +"https://opengameart.org/sites/default/files/Ground_03.png" +]); + +resources.onReady(loader); diff --git a/DefendTheCastle! b/DefendTheCastle! new file mode 100644 index 00000000000..d57e74a8f19 --- /dev/null +++ b/DefendTheCastle! @@ -0,0 +1,707 @@ +/** +* Animates bezier-curve +* +* original code: +* https://www.pjgalbraith.com/drawing-animated-curves-javascript/ +*/ +/** +* Draws a splitted (portion of) bezier-curve +* +* @param ctx The canvas context to draw to +* @param x0 The x-coord of the start point +* @param y0 The y-coord of the start point +* @param x1 The x-coord of the control point +* @param y1 The y-coord of the control point +* @param x2 The x-coord of the end point +* @param y2 The y-coord of the end point +* @param t0 The start ratio of the splitted bezier from 0.0 to 1.0 +* @param t1 The start ratio of the splitted bezier from 0.0 to 1.0 +*/ +'use strict'; +function drawBezierSplit(ctx, x0, y0, x1, y1, x2, y2, t0, t1) { + ctx.beginPath(); + if( 0.0 == t0 && t1 == 1.0 ) { + ctx.moveTo( x0, y0 ); + ctx.quadraticCurveTo( x1, y1, x2, y2 ); + } else if( t0 != t1 ) { + var t00 = t0 * t0, + t01 = 1.0 - t0, + t02 = t01 * t01, + t03 = 2.0 * t0 * t01; + var nx0 = t02 * x0 + t03 * x1 + t00 * x2, + ny0 = t02 * y0 + t03 * y1 + t00 * y2; + t00 = t1 * t1; + t01 = 1.0 - t1; + t02 = t01 * t01; + t03 = 2.0 * t1 * t01; + var nx2 = t02 * x0 + t03 * x1 + t00 * x2, + ny2 = t02 * y0 + t03 * y1 + t00 * y2; + var nx1 = lerp ( lerp ( x0 , x1 , t0 ) , lerp ( x1 , x2 , t0 ) , t1 ), + ny1 = lerp ( lerp ( y0 , y1 , t0 ) , lerp ( y1 , y2 , t0 ) , t1 ); + ctx.moveTo( nx0, ny0 ); + ctx.quadraticCurveTo( nx1, ny1, nx2, ny2 ); + } + ctx.stroke(); + ctx.closePath(); +} + +/** +* Linearly interpolate between two numbers v0, v1 by t +*/ +function lerp(v0, v1, t) { + return ( 1.0 - t ) * v0 + t * v1; +} + +function randVal(min,max){ + return Math.floor(Math.random()*(max-min+1)+min); +} + +function randColor(){ + // generates random color string + var vec="0123456789abcdef"; + var color="#"; + for(var i=0;i<6;i++){ + color+=vec[randVal(0,vec.length-1)]; + } + return color; +} + +function getPosition(e) { + // get touches object if exists + var w = canvas.width; + var h = canvas.height; + + var touch = e.changedTouches; + + // calculate offset of canvas + var offset = canvas.getBoundingClientRect(); + + var scaleX = w / offset.width; + var scaleY = h / offset.height; + + var offsetX = offset.left; + var offsetY = offset.top; + + // get mouse position + var x = e.clientX; + var y = e.clientY; + // get touches if available, otherwise get position from mouse event (default) + if (touch) { + x = touch[0].clientX; + y = touch[0].clientY; + } + + // return new position with calculated offsets + return { + x: (x - offsetX) * scaleX, + y: (y - offsetY) * scaleY + } +} + +function initFirebase(){ + // Initialize Firebase + var config = { + apiKey: "AIzaSyClY8YnuQ-vogEXyOxCHQczTOna8BrqQ9M", + authDomain: "defend-the-castle-51127.firebaseapp.com", + databaseURL: "https://defend-the-castle-51127.firebaseio.com", + projectId: "defend-the-castle-51127", + storageBucket: "defend-the-castle-51127.appspot.com", + messagingSenderId: "958922779229" + }; + firebase.initializeApp(config); +} +function DefendTheCastle(){ + + setTimeout(function(){ + document.getElementsByTagName('h3')[0].innerHTML = 'Defend The Castle!'; + },10000); + + + var topMessage = document.getElementById('top-message'); + var audioPlayer = document.getElementById('audio-player'); + + topMessage.onclick = function(){ + topMessage.style.display = 'none'; + audioPlayer.style.display = 'block'; + } + + initFirebase(); + var canvas = document.getElementById('canvas'); + var btnNew = document.getElementById('btnNew'); + var btnPause = document.getElementById("btnPause"); + var selectDiff = document.getElementById("selectDiff"); + + /* + canvas.width = window.innerWidth*0.95; + canvas.height = window.innerHeight*0.8; + */ + + var ctx = canvas.getContext('2d'); + var exp = new Explosion(ctx); + btnNew.onclick = confirmBox; + btnPause.onclick = pause; + canvas.onclick = manual; + canvas.ontouchmove = manual; + // selectDiff.onchange = setDifficulty; + var messages = []; + var curves = []; + var targets = []; + var enemyFire = []; + var targetStock = ["💩","😬","🤗","😈","😘","😱","😂","😎","😗","😇","😭","😜","😛","😝","😤","😵","😁","😑","😚","😍","😠","😐","🙄"]; + var score = {}; + var gameSettings = { + SHOT_DURATION:300, + ENEMY_SIZE:30, + G:2.0, + poop_m:0.5 + }; + var CASTLE_SPRITES = ["🏯","🏫","🏰"]; + var CASTLE_SPRITE = CASTLE_SPRITES[randVal(0, CASTLE_SPRITES.length - 1)]; + var scoreboard = new Scoreboard(options); + randomCanvasColor(); + document.getElementById("btnShowScore").onclick=function(){ + if(drawInterval){pause();} + scoreboard.showScoreBoard(); + } + var drawInterval = null; + + function setDifficulty(){ + gameSettings.DIFFICULTY = parseInt(selectDiff.value); + switch(gameSettings.DIFFICULTY){ + case 1: // Easy + gameSettings.ACTIVE_TARGETS=3; + gameSettings.TARGET_LIMIT=10; + gameSettings.SHOT_LIMIT=10; + gameSettings.POOPABILITY=0.001; + gameSettings.MAX_TARGET_SPEED=1; + break; + case 2: // Normal + gameSettings.ACTIVE_TARGETS=3; + gameSettings.TARGET_LIMIT=15; + gameSettings.SHOT_LIMIT=5; + gameSettings.POOPABILITY=0.005; + gameSettings.MAX_TARGET_SPEED=1; + break; + case 3: // Hard + gameSettings.ACTIVE_TARGETS=3; + gameSettings.TARGET_LIMIT=15; + gameSettings.SHOT_LIMIT=3; + gameSettings.POOPABILITY=0.01; + gameSettings.MAX_TARGET_SPEED=3; + break; + case 4: // eXtreme + gameSettings.ACTIVE_TARGETS=10; + gameSettings.TARGET_LIMIT=20; + gameSettings.SHOT_LIMIT=3; + gameSettings.POOPABILITY=0.02; + gameSettings.MAX_TARGET_SPEED=8; + break; + case 5: // 1ns4n3 + gameSettings.ACTIVE_TARGETS=15; + gameSettings.TARGET_LIMIT=20; + gameSettings.SHOT_LIMIT=2; + gameSettings.POOPABILITY=0.04; + gameSettings.MAX_TARGET_SPEED=10; + break; + default:break; + } + gameSettings.GAME_OVER = false; + } + + function newGame(){ + //if(!confirm("Starting New Game\nDifficulty: "+selectDiff.options[selectDiff.selectedIndex].text)){return;} + + setDifficulty(); + score = { + health:100, + hits:0, + miss:0, + fired:0, + score:0, + spawned:0, + streak:0, + addTarget:false + } + targets = []; + enemyFire = []; + messages = []; + + // btnNew.disabled=false; + } + + function pause(){ + if(drawInterval){ + cancelAnimationFrame(drawInterval); + // clearInterval(drawInterval); + drawInterval = null; + ctx.font="50px Times New Roman"; + ctx.fillStyle="red"; ctx.fillText("Paused",canvas.width*0.3,canvas.height/2); + btnPause.innerHTML="Resume"; + } + else{ + drawInterval = requestAnimationFrame(draw); + // drawInterval = setInterval(draw, 33); + btnPause.innerHTML="Pause"; + } + } + document.getElementById("randCanvasCol").onclick=randomCanvasColor; + function randomCanvasColor(){ + canvas.style.background = "linear-gradient("+randColor()+","+randColor()+","+randColor()+","+randColor()+","+randColor()+")"; + } + + function drawMessages(){ + for(var i=messages.length-1;i>=0;i--){ + var msg = messages[i]; + ctx.font = msg.size+"px "+msg.font; + ctx.fillStyle = msg.color; + ctx.fillText(msg.text, msg.x-20, msg.y); + msg.ttl-=1000; + if(msg.ttl<0) + messages.splice(i,1); + } + } + + function drawScore(){ + ctx.font = "10px Times New Roman"; + ctx.fillStyle = 'white'; + ctx.fillText("Health: "+score.health+"%", 10,20); + ctx.fillText("Score: "+score.score, 10,30); + ctx.fillText("Hits: "+score.hits, 10,40); + ctx.fillText("Fired: "+score.fired, 10,50); + ctx.fillText("Missed: "+score.miss, 10,60); + ctx.fillText("Hit %: "+Math.round((score.hits/score.fired)*100,2)+"%", 10,70); + ctx.fillText("Streak: "+score.streak, 10,80); + } + + function drawCastle(){ + ctx.font = "80px Times New Roman"; + ctx.fillText(CASTLE_SPRITE,canvas.width/2-40,canvas.height); + ctx.strokeStyle="red"; + ctx.lineWidth=4; + ctx.beginPath(); + ctx.moveTo(canvas.width*0.38,canvas.height); + ctx.lineTo(canvas.width*0.38,canvas.height-30); + ctx.closePath(); + ctx.stroke(); + ctx.beginPath(); + ctx.moveTo(canvas.width*0.65,canvas.height); + ctx.lineTo(canvas.width*0.65,canvas.height-30); + ctx.closePath(); + ctx.stroke(); + } + + function manual(evt){ + // draw line from bottom of the canvas to the point where the user clicked + evt.preventDefault(); + + if(!drawInterval){ + pause(); + } + if(curves.length >= gameSettings.SHOT_LIMIT || score.health<=0 || !drawInterval){return;} + + var pos = getPosition(evt); + + var x = pos.x; + var y = pos.y; + var x0 = randVal(0,canvas.width), + y0 = canvas.height, + x1 = randVal(0,canvas.width), + y1 = randVal(0,canvas.height); + + score.fired++; + + var duration = gameSettings.SHOT_DURATION; + var size = 5; + x0 = canvas.width/2; + curves.push({ + x0:x0, + y0:y0, + x1:x1, + y1:y1, + x2:x, + y2:y, + duration:duration, + color:randColor(), + size:size, + start:null, + progress:0 + }); + } + + function updateCurves(){ + for(var i=0;i= 1){ + exp.createExplosion(curves[i].x2,curves[i].y2,curves[i].color); + curves.splice(i,1); + } + } + } + + function drawCurves(){ + for(var i=0;i0.5? 0:canvas.width; + var dir = x === 0? 1:-1; + var icon = targetStock[randVal(0,targetStock.length-1)]; + return { + x:x-(dir*gameSettings.ENEMY_SIZE), + y:randVal(20,canvas.height/2), + dx:randVal(1,gameSettings.MAX_TARGET_SPEED), + dy:gameSettings.DIFFICULTY<3? 0:randVal(1,gameSettings.MAX_TARGET_SPEED/2), + yRange:randVal(3,gameSettings.MAX_TARGET_SPEED*3), + yDist:0, + yDir:Math.random()<0.5? 1:-1, + dir:dir, + size:gameSettings.ENEMY_SIZE, + icon:icon + }; + } + + function updateTargets(){ + /* + update enemies movement and + generate enemy fire + */ + for(var i=0;i=tar.yRange){ tar.yDir*=-1;} + tar.yDist += tar.dy*tar.yDir; + tar.y += tar.dy*tar.yDir; + + if(tar.x < -tar.size || tar.x > canvas.width+tar.size){ + targets.splice(i, 1); + score.miss++; + } + } + } + + function updateEnemyFire(){ + /* + check if any enemy fire hit + the castle + */ + for(var i=enemyFire.length-1;i>=0;i--){ + var ef=enemyFire[i]; + ef.x+=ef.dx*ef.dir; + ef.y+=ef.dy*ef.poop_m*gameSettings.G; + if(ef.y>canvas.height){ + if(ef.x>canvas.width*0.38&&ef.x=0;j--){ + var ef=enemyFire[j]; + if(Math.hypot(curve.x2 - ef.x, curve.y2 - ef.y) <= ef.size*3 && curve.progress == 1.0){ + exp.createBasicExplosion(ef.x,ef.y,"brown",90); + enemyFire.splice(j,1); + } + } + } + } + + function drawEnemyFire(){ + for(var i=enemyFire.length-1;i>=0;i--){ + var ef=enemyFire[i]; + ctx.font=ef.size+"px Times New Roman"; + ctx.fillText(ef.icon,ef.x,ef.y); + } + } + function drawTargets(){ + for(var i=0;i=0;i--){ + var curve = curves[i]; + for(var j=targets.length-1;j>=0;j--){ + var tar = targets[j]; + /* + var ctx=canvas.getContext("2d"); + ctx.beginPath(); + ctx.arc(tar.x,tar.y,tar.size,0,2*Math.PI); + ctx.stroke(); + ctx.closePath(); + */ + if (Math.hypot(curve.x2 - tar.x, curve.y2 - tar.y) <= gameSettings.ENEMY_SIZE && curve.progress == 1.0) { + // hit detected + combo.x = tar.x; + combo.y = tar.y; + hits++; + hitsScore+=tar.dx+tar.dy; + exp.createExplosion(tar.x,tar.y,"orange"); + exp.createExplosion(tar.x,tar.y,"yellow"); + exp.createExplosion(tar.x,tar.y,"red"); + exp.createExplosion(tar.x,tar.y,"grey"); + targets.splice(j, 1); + checkMissed=false; + } + } + } + + if(hits){ + /* + hit occured in the present + check, update score info + */ + score.hits+=hits; + score.streak+=hits; + if(score.streak%10==0&&!score.addTarget){ + /* + streak of exactly 10 hits-> + increase enemy capacity + */ + score.addTarget=true; + } + score.score+=Math.pow(hitsScore,hits)*score.streak*gameSettings.DIFFICULTY; + if(hits>1){ + /* + combo hit->add message + */ + score.health+=hits; + messages.push({ + x:combo.x, + y:combo.y, + text:hits+"X Combo!!!", + color:"red", + font:"Times New Roman", + size:20, + ttl:5*1000*33 + }); + messages.push({ + x:combo.x, + y:combo.y-25, + text:"+"+hits+"% HP!!!", + color:"green", + font:"Times New Roman", + size:20, + ttl:5*1000*33 + }); + } + } + if(checkMissed && curves.length && curves[0].progress==1.0){ + /* + missed, streak is broken + */ + score.streak=0; + } + } + + function draw(){ + /* + main drawing loop + clear canvas, calls all methods + in turn to draw/update game state + */ ctx.clearRect(0,0,canvas.width,canvas.height); + drawCurves(); + drawCastle(); + exp.update(33); + drawMessages(); + + drawTargets(); + updateTargets(); + updateEnemyFireDefense(); + updateEnemyFire(); + updateGame(); + drawEnemyFire(); + updateCurves(); + + if(targets.length < gameSettings.ACTIVE_TARGETS){ + targets.push(spawnTarget()); + score.spawned++; + } + drawScore(); + if(score.health<=0){ + if(!gameSettings.GAME_OVER){ + scoreboard.submitNewScoreDialog(score.score); + gameSettings.GAME_OVER = true; + } + exp.createExplosion(randVal(canvas.width*0.3,canvas.width*0.7),randVal(canvas.height-60,canvas.height),randColor()); + } + + if(score.streak%10==0&&score.addTarget&&gameSettings.ACTIVE_TARGETS'+ + ''+ + ''+ + ''+ + ''+ + '', + type:'blue', + closeIcon: function(){ + pause(); + }, + buttons: { + "¿": function (){ + randomCanvasColor(); + pause(); + //confirmBox(); + }, + cancel: function () { + //$.alert('Canceled!'); + pause(); + }, + "Start Game": function () { + var diffVal = this.$content.find('#selectDifficulty').val(); + selectDiff.value = diffVal; + newGame(); + pause(); + } + } + }); + } +}; + +// Math.hypot polyfill +Math.hypot = Math.hypot || function() { + var y = 0; + var length = arguments.length; + + for (var i = 0; i < length; i++) { + if (arguments[i] === Infinity || arguments[i] === -Infinity) { + return Infinity; + } + y += arguments[i] * arguments[i]; + } + return Math.sqrt(y); +}; + + +// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ +// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating +// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish, Tino Zijdel, and Jonathan Neal +// MIT license + +if (!window.requestAnimationFrame) (function() { + 'use strict'; + function requestAnimationFrame(callback) { + var + currentTime = now(), + delay = Math.max(0, 16 - (currentTime - lastTime)); + + lastTime = currentTime; + return setTimeout(function () { + lastTime = now(); + callback(lastTime - startTime); + }, delay); + } + function cancelAnimationFrame(id) { + clearTimeout(id); + } + var + raf = 'RequestAnimationFrame', + caf = 'CancelAnimationFrame', + webkit = 'webkit', + moz = 'moz', + now = Date.now || function () { + return new Date().getTime(); + }, + startTime = now(), + lastTime = startTime; + window.requestAnimationFrame = window[moz + raf] || window[webkit + raf] || requestAnimationFrame; + window.cancelAnimationFrame = window[moz + caf] || window[webkit + caf] || window[webkit + 'CancelRequestAnimationFrame'] || cancelAnimationFrame; +})(); + +if (!Array.prototype.findIndex) { Object.defineProperty(Array.prototype, 'findIndex', { value: function(predicate) { 'use strict'; if (this == null) { throw new TypeError('Array.prototype.findIndex called on null or undefined'); } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } var list = Object(this); var length = list.length >>> 0; var thisArg = arguments[1]; var value; for (var i = 0; i < length; i++) { value = list[i]; if (predicate.call(thisArg, value, i, list)) { return i; } } return -1; }, enumerable: false, configurable: false, writable: false });} + +if(!Array.prototype.indexOf){Array.prototype.indexOf=function(b){var a=this.length>>>0;var c=Number(arguments[1])||0;c=(c<0)?Math.ceil(c):Math.floor(c);if(c<0){c+=a}for(;c= 0) + { + ctx.beginPath(); + ctx.moveTo(arr_touches[idx].clientX-offset.x, arr_touches[idx].clientY-offset.y); + ctx.lineTo(touches[i].clientX-offset.x, touches[i].clientY-offset.y); + ctx.strokeStyle = color; + ctx.stroke(); + + arr_touches.splice(idx, 1, copyTouch(touches[i])); + } + } + } +} +function handleEnd(evt) +{ + var touches = evt.changedTouches; + var offset = findPos(canvas); + for (var i = 0; i < touches.length; i++) + { + if(isValidTouch(touches[i])) + { + evt.preventDefault(); + var idx = ongoingTouchIndexById(touches[i].identifier); + if (idx >= 0) + { + ctx.lineWidth = 4; + ctx.fillStyle = color; + ctx.beginPath(); + ctx.moveTo(arr_touches[idx].clientX-offset.x, arr_touches[idx].clientY-offset.y); + ctx.lineTo(touches[i].clientX-offset.x, touches[i].clientY-offset.y); + arr_touches.splice(i, 1); + } + } + } +} +function handleCancel(evt) +{ + evt.preventDefault(); + var touches = evt.changedTouches; + + for (var i = 0; i < touches.length; i++) { + arr_touches.splice(i, 1); + } +} +function copyTouch(touch) +{ + return {identifier: touch.identifier,clientX: touch.clientX,clientY: touch.clientY}; +} +function ongoingTouchIndexById(idToFind) +{ + for (var i = 0; i < arr_touches.length; i++) { + var id = arr_touches[i].identifier; + if (id == idToFind) { + return i; + } + } + return -1; +} +function changeColor(new_color) +{ + color = new_color; +} +function clearCanvas() +{ + ctx.clearRect(0, 0, canvas.width, canvas.height); +} +function isValidTouch(touch) +{ + var curleft = 0, curtop = 0; + var offset = 0; + + if (canvas.offsetParent) { + do { + curleft += canvas.offsetLeft; + curtop += canvas.offsetTop; + } while (touch == canvas.offsetParent); + + offset = { x: curleft-document.body.scrollLeft, y: curtop-document.body.scrollTop }; + } + + if(touch.clientX-offset.x > 0 && + touch.clientX-offset.x < parseFloat(canvas.width) && + touch.clientY-offset.y >0 && + touch.clientY-offset.y < parseFloat(canvas.height)) { + return true; + } + else + { + return false; + } +} +function findPos(obj) +{ + var curleft = 0, curtop = 0; + if (obj.offsetParent) + { + do { + curleft += obj.offsetLeft; + curtop += obj.offsetTop; + } while (obj == obj.offsetParent); + + return { x: curleft-document.body.scrollLeft, y: curtop-document.body.scrollTop }; + } +} diff --git a/Try to escape! [GAME] b/Try to escape! [GAME] new file mode 100644 index 00000000000..d241f9234c6 --- /dev/null +++ b/Try to escape! [GAME] @@ -0,0 +1,184 @@ +alert("Hey there! Thanks for checking this code out. Turn on sounds for a better experience. If there's any errors, please let me know!"); +alert("Woooooow people! Thanks for freaking 3.3K thumbs up!") + +// Special thanks to Ulisses Cruz for fixing my problems ;) +// Special thanks to Utkarsh for suggesting sounds +// Music is from Lucas King: https://www.youtube.com/watch?v=7JIdJLkJ0S4 +// Thanks for the likes and comments! +// Made by Maart (dont copy without my permission!) + +/* Highest ranks: +* #2 in trending (all languages) +* #6 in most popular (all languages) +* #3 in most popular (web) +And that wouldn't be possible without YOUR support, so thank you so much! +*/ + +//TO DO: different options for different doors + + +function Direction(Choice){ +// The choice of the first buttons + + if(Choice == "left" || Choice == "right"){ + document.getElementById("result").innerHTML = "You chose to go " + Choice + "!

You open the door and come into a new room.
A voice pops up: 'I'm glad you didn't try to escape. This isn't over yet though. Choose the next door.'

You hear growls coming from the left door and a man talking behind the right door. What do you do?"; + document.getElementById('left1').style.display = 'none'; + document.getElementById("right1").style.display = 'none'; + document.getElementById("escape1").style.display = 'none'; + document.getElementById("result").style.display = 'inline'; + document.getElementById('left2').style.display = 'inline'; + document.getElementById("right2").style.display = 'inline'; + document.getElementById("escape2").style.display = 'inline'; + } + + if(Choice == "escape"){ + document.getElementById("result").innerHTML = "
HA! Nice try, but you won't get out that easily. You find gap in the wall. If you squeeze you can fit through it... Or can you? You get stuck in the wall and die of starvation.

Try again... if you dare!

"; + + //making sure the right buttons are displayed + document.getElementById('left1').style.display = 'none'; + document.getElementById("right1").style.display = 'none'; + document.getElementById("escape1").style.display = 'none'; + document.getElementById("tryagain").style.display = 'block'; + document.getElementById("result").style.display = 'inline'; + document.getElementById("loseGif1").style.display = 'block'; + } +} + +function Direction2(Choice){ + + if(Choice == 'left2'){ + document.getElementById("result2").innerHTML = '

You chose to go left. You have a death wish or what? Well, I guess you were smart because there actually is a puppy in front of you. CUDDLE IT!

Though you have to choose again...

In the next room are three buttons. Choose wisely...

Hint: My creator likes this letter.' ; + document.getElementById('left2').style.display = 'none'; + document.getElementById("right2").style.display = 'none'; + document.getElementById("escape2").style.display = 'none'; + document.getElementById("result2").style.display = 'inline'; + document.getElementById('A').style.display = 'inline'; + document.getElementById("B").style.display = 'inline'; + document.getElementById("C").style.display = 'inline'; + + } + + if(Choice == 'right2'){ + document.getElementById("result2").innerHTML = "

You chose to go right. I probably would too. The man in the room doesn't look too happy though... With a gun in his hands...

And you're a dead man. Try again if you think you can beat me...
"; + document.getElementById('left2').style.display = 'none'; + document.getElementById("right2").style.display = 'none'; + document.getElementById("escape2").style.display = 'none'; + document.getElementById("tryagain").style.display = 'inline'; + document.getElementById("result2").style.display = 'inline'; + document.getElementById("loseGif1").style.display = 'block'; + } + + if(Choice == 'escape2'){ + document.getElementById("result2").innerHTML = "
You chose to go and find an escape. Didn't I just tell you not to try? I guess you're not too smart...

You died. Try again if you think you can beat me...
"; + document.getElementById('left2').style.display = 'none'; + document.getElementById("right2").style.display = 'none'; + document.getElementById("escape2").style.display = 'none'; + document.getElementById("tryagain").style.display = 'inline'; + document.getElementById("result2").style.display = 'inline'; + document.getElementById("loseGif1").style.display = 'block'; + } +} + +function Direction3(Choice){ + + if(Choice == "A"){ + document.getElementById("result3").innerHTML = "

Nice one! Or did you just guess like always? Congratulations either way, because you're still alive. You're doing better than I expected. Let's do something fun now. Choose your favourite colour. Let's hope for you that it's the right one."; + document.getElementById('A').style.display = 'none'; + document.getElementById("B").style.display = 'none'; + document.getElementById("C").style.display = 'none'; + document.getElementById("result3").style.display = 'inline'; + document.getElementById('blue').style.display = 'inline'; + document.getElementById("red").style.display = 'inline'; + document.getElementById("yellow").style.display = 'inline'; + document.getElementById("green").style.display = 'inline'; + document.getElementById("pink").style.display = 'inline'; + } + + if(Choice == "B" || Choice == "C"){ + document.getElementById("result3").innerHTML = "

Nope! If you would've just looked up the name of my creator... Try again if you dare!
"; + document.getElementById('A').style.display = 'none'; + document.getElementById("B").style.display = 'none'; + document.getElementById("C").style.display = 'none'; + document.getElementById("tryagain").style.display = 'inline'; + document.getElementById("result3").style.display = 'inline'; + document.getElementById("loseGif1").style.display = 'block'; + } + +} + +function Direction4(Choice){ + document.getElementById("result4").innerHTML = "

Pfew, you survived! That was a hard one, wasn't it? Good thing every answer would've been right then ;)

Now onto the fun part! At least... Fun for me! So how is your memory? I hope it's doing alright. What was the first option in the last question?"; + document.getElementById('blue').style.display = 'none'; + document.getElementById("red").style.display = 'none'; + document.getElementById("yellow").style.display = 'none'; + document.getElementById("pink").style.display = 'none'; + document.getElementById("green").style.display = 'none'; + document.getElementById("result4").style.display = 'inline'; + document.getElementById('blue2').style.display = 'inline'; + document.getElementById("red2").style.display = 'inline'; + document.getElementById("yellow2").style.display = 'inline'; + document.getElementById("pink2").style.display = 'inline'; + document.getElementById("green2").style.display = 'inline'; + } + +function Direction5(Choice){ + + if(Choice == "red2"){ + document.getElementById("result5").innerHTML = "

Looks like you're almost out! Just one last question. Will you give this code a like?"; + document.getElementById("result5").style.display = 'inline'; + document.getElementById('blue2').style.display = 'none'; + document.getElementById("red2").style.display = 'none'; + document.getElementById("yellow2").style.display = 'none'; + document.getElementById("pink2").style.display = 'none'; + document.getElementById("green2").style.display = 'none'; + document.getElementById("yes").style.display = 'inline'; + document.getElementById("no").style.display = 'inline'; + } + + if(Choice == "blue2" || Choice == "yellow2" || Choice == "pink2" || Choice == "green2"){ + document.getElementById("result5").innerHTML = "

Pfft. You're not even paying attention? Get your mind working and try again..."; + document.getElementById("result5").style.display = 'inline'; + document.getElementById('blue2').style.display = 'none'; + document.getElementById("red2").style.display = 'none'; + document.getElementById("yellow2").style.display = 'none'; + document.getElementById("pink2").style.display = 'none'; + document.getElementById("green2").style.display = 'none'; + document.getElementById("tryagain").style.display = 'inline'; + document.getElementById("loseGif1").style.display = 'block'; + } +} + +function Direction6(Choice){ + if(Choice == "yes"){ + document.getElementById("result6").innerHTML = "

WOOOOO YOU MADE IT! CONGRATS! *gives high five* Don't forget to actually give a like now ;)
"; + document.getElementById("yes").style.display = 'none'; + document.getElementById("no").style.display = 'none'; + document.getElementById("winGif").style.display = 'block'; + } + + if(Choice == "no"){ + document.getElementById("result6").innerHTML = "

Shame I can't let you out now... Try again when you're ready..."; + document.getElementById("yes").style.display = 'none'; + document.getElementById("no").style.display = 'none'; + document.getElementById("tryagain").style.display = 'inline'; + document.getElementById("loseGif1").style.display = 'block'; + } +} + +function TryAgain(){ //running the whole code again + Direction(); + document.getElementById("result3").style.display = 'none'; + document.getElementById("result4").style.display = 'none'; + document.getElementById("result5").style.display = 'none'; + document.getElementById("result6").style.display = 'none'; + document.getElementById('left1').style.display = 'inline'; + document.getElementById("right1").style.display = 'inline'; + document.getElementById("escape1").style.display = 'inline'; + document.getElementById('left2').style.display = 'none'; + document.getElementById("right2").style.display = 'none'; + document.getElementById("escape2").style.display = 'none'; + document.getElementById('result').style.display = 'none'; + document.getElementById("result2").style.display = 'none'; + document.getElementById('tryagain').style.display = 'none'; + document.getElementById("loseGif1").style.display = 'none'; +} diff --git a/Windows 10 b/Windows 10 new file mode 100644 index 00000000000..91a3282ca11 --- /dev/null +++ b/Windows 10 @@ -0,0 +1,128 @@ +var passwd = Math.floor(Math.random() * 9000) + 999; +$(function(){ + $(".lockscreen").click(function(){ + $(".lockscreen").show(); + $(".lockscreen").css("-webkit-animation"," open 1s"); + setTimeout(function(){ + $(".lockscreen").hide(); + },999) + }); + $(".header").click(function(){ + $(".lockscreen").show(); + $(".lockscreen").css("-webkit-animation"," close 1s"); + }); + $(".fol").on("contextmenu",function(){ + + }); + $("#lk").click(function(){ + $(".lockscreen").show(); + $(".lockscreen").css("-webkit-animation"," close 1s");$(".rc").hide(); + }); + + $(".this_pc").click(function(){ + alert("This Pc is under construction"); + }); + $(".rcb").click(function(){ + alert("Recycle Bin is empty! "); + }); + $(".crm").click(function(){ + window.open("https://www.google.com"); + }); + + var date=new Date(); + var h=date.getHours(); + var m=date.getMinutes(); + m<10?m="0"+m:m=m; + var z=date.getDay(); + var dd=date.getDate(); + var y=date.getYear(); + var mm=date.getMonth(); d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; + var mo=["January","February","March","April","May","June","July","August","September","October","November","December"]; + var day=d[z]+","; + var time=h+":"+m; + var mon=mo[mm]; + var date=dd+" "+mon; + $("span.time").html(time); + $("div span.day").html(day); + $("div span.date").html(date); + $(".sign_in").click(function(){ + if($(".login_pass").val()==passwd){ + $(".login_pass").attr("value",""); + $(".login").hide(); + } + else {if($(".login_pass").val==""){ + alert("Nan");} + else{ + alert("Incorrect Password"); + } + } + + }) + $(".start").on("mouseover",function(){ + $(".menu").show(); + $(".news").show(); + }); + $(".desktop").click(function(){ + $(".menu").hide(); + $(".rc").hide() + }) + $("#refresh").click(function(){ + $(".desktop").css("-webkit-animation","rfrs 0.1s infinite"); + setTimeout(function(){ + $(".desktop").css("-webkit-animation","none"); + },200); + + $("#rc").hide(); + }); + $("#bg").click(function(){ + $("#color").click(); + $("#rc").hide(); + }); + $("#nfol").click(function(){ + $(".fol").show(); + $(".tfol").show(); + $(".tfol").attr("contenteditable","true"); + $(".tfol").focus(); + $("#rc").hide(); + }); + $("#color").on("change",function(){ + var color=$("#color").val(); + $(".desktop").css({ + "background-image":"", + "background-color":color + }); + $(".cin").css("background-color",color); + + }) + $("#so").click(function(){ + $("#rc").hide(); + $(".login").show(); + }) + $("#def").click(function(){ + $("#rc").hide(); + $(".desktop").css({ + "background-image":"https://preview.ibb.co/fFDagk/windows_10_hero_4k_wallpaper_3840x2160.jpg", + "background-color":"" + }); + $(".cin").css("background-color","#003D73"); + }) +$(".tdate").html(mm+1+"/"+dd+"/"+y); +$(".ttime").html(time); +}); +$(document).on("mousemove", function(e){ + var x = e.pageX || e.clientX; + var y = e.pageY || e.clientY; + $("#mouse").css({ + "top" : y+1+"px", + "left" : x+1+"px" + }); + }); + $(document).on("contextmenu",function(e){ + var w = e.pageX || e.clientX; + var z = e.pageY || e.clientY; + $("#rc").show(); + $("#rc").css({"top":z,"left":w}); + }); +alert("*Right click added\n*Rename func added\nif you are using mobile.. \n long press for access right click"); +alert("password is " + passwd) ; +alert("try to create a new folder on desktop "); diff --git a/address_file_dededt.py b/address_file_dededt.py new file mode 100644 index 00000000000..de1eb42e023 --- /dev/null +++ b/address_file_dededt.py @@ -0,0 +1,28 @@ +import os +import shutil + +# folder file add dede +UNWANTED_PATTERNS = [ + + Ebn Eein + Play Photo on SD + Play Video on Files; + Share [PDF, DOC, PPT, TXT, XLS, Files] + to Eein DriveAddress on URL "Dededt"; + Address Voices "Dededt"; + Address on ID "Dededt"; + Res "now"; + Play Video on Veros + Res "now" + Share XLS "finance.xls" + to Eein Drive; + Res "now"; + Address on URL "Dededt" + Res "now"; + "status" : "ok", + "action" : "Share", + "object" : ["PDF","DOC","PPT","TXT","XLS","Files" ], + "destination" : "Eein Drive", + "location" : "drive://eein/root/", + "result" : "5 files uploaded" +] diff --git a/andGroup b/andGroup new file mode 100644 index 00000000000..2f416d9f949 --- /dev/null +++ b/andGroup @@ -0,0 +1,10 @@ +{ + "andGroup": { + "expressions": [{ + "filter": { + "fieldName":"sessionDefaultChannelGroup", + "stringFilter": { + "value":"Organic Search" + } + } + }, diff --git a/assets/logo/web3js.ai b/assets/logo/web3js.ai index 669ef50e7cd..d3f5a12faa9 100644 --- a/assets/logo/web3js.ai +++ b/assets/logo/web3js.ai @@ -1,1516 +1 @@ -%PDF-1.5 % -1 0 obj <>/OCGs[5 0 R 6 0 R 29 0 R 30 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - Print - - - - - 2017-01-27T15:51:37Z - 2017-01-27T15:51:37Z - 2017-01-27T14:51:33Z - Adobe Illustrator CS6 (Macintosh) - - - - 256 - 240 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA8AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7F+an5hy6Ov6F0qTjqMq VubhTvCjDYL4Ow3r2Hz2IQ8x8teevMXl+cvaXBlgdi01pMS8Tk7k0rUMfFTXCr2Xyl+Z/l/X+FvI 31DUWoPqszCjn/iuTYN8tj7YKSzDArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdir5W1nUptU1a71CYkvdSvKa9gx2H0DbJIQeKtqrMwVQWZjRVG5JPYY q+ify70jzPpujKmvXrTu4BgtX+NoFp9lpDuT/k9BgKWV4FdirsVdirsVdirsVdirsVdirsVdirsV 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 - - - - - - uuid:394c157d-8cf0-f94e-8261-98ccb840e1bc - xmp.did:106820F817276811822ACF3CAA06C913 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - uuid:1898a391-1dba-4249-9e7f-8804d46504b0 - xmp.did:FE7F11740720681183D1839CF7E6F44E - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - - - - saved - xmp.iid:FE7F11740720681183D1839CF7E6F44E - 2017-01-06T15:27:37Z - Adobe Illustrator CS6 (Macintosh) - / - - - saved - xmp.iid:106820F817276811822ACF3CAA06C913 - 2017-01-27T14:51:33Z - Adobe Illustrator CS6 (Macintosh) - / - - - - - - Document - Print - - - False - False - 1 - - 3840.000000 - 2160.000000 - Pixels - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - White - RGB - PROCESS - 255 - 255 - 255 - - - Black - RGB - PROCESS - 35 - 31 - 32 - - - CMYK Red - RGB - PROCESS - 237 - 28 - 36 - - - CMYK Yellow - RGB - PROCESS - 255 - 242 - 0 - - - CMYK Green - RGB - PROCESS - 0 - 166 - 81 - - - CMYK Cyan - RGB - PROCESS - 0 - 174 - 239 - - - CMYK Blue - RGB - PROCESS - 46 - 49 - 146 - - - CMYK Magenta - RGB - PROCESS - 236 - 0 - 140 - - - C=15 M=100 Y=90 K=10 - RGB - PROCESS - 190 - 30 - 45 - - - C=0 M=90 Y=85 K=0 - RGB - PROCESS - 239 - 65 - 54 - - - C=0 M=80 Y=95 K=0 - RGB - PROCESS - 241 - 90 - 41 - - - C=0 M=50 Y=100 K=0 - RGB - PROCESS - 247 - 148 - 30 - - - C=0 M=35 Y=85 K=0 - RGB - PROCESS - 251 - 176 - 64 - - - C=5 M=0 Y=90 K=0 - RGB - PROCESS - 249 - 237 - 50 - - - C=20 M=0 Y=100 K=0 - RGB - PROCESS - 215 - 223 - 35 - - - C=50 M=0 Y=100 K=0 - RGB - PROCESS - 141 - 198 - 63 - - - C=75 M=0 Y=100 K=0 - RGB - PROCESS - 57 - 181 - 74 - - - C=85 M=10 Y=100 K=10 - RGB - PROCESS - 0 - 148 - 68 - - - C=90 M=30 Y=95 K=30 - RGB - PROCESS - 0 - 104 - 56 - - - C=75 M=0 Y=75 K=0 - RGB - PROCESS - 43 - 182 - 115 - - - C=80 M=10 Y=45 K=0 - RGB - PROCESS - 0 - 167 - 157 - - - C=70 M=15 Y=0 K=0 - RGB - PROCESS - 39 - 170 - 225 - - - C=85 M=50 Y=0 K=0 - RGB - PROCESS - 28 - 117 - 188 - - - C=100 M=95 Y=5 K=0 - RGB - PROCESS - 43 - 57 - 144 - - - C=100 M=100 Y=25 K=25 - RGB - PROCESS - 38 - 34 - 98 - - - C=75 M=100 Y=0 K=0 - RGB - PROCESS - 102 - 45 - 145 - - - C=50 M=100 Y=0 K=0 - RGB - PROCESS - 146 - 39 - 143 - - - C=35 M=100 Y=35 K=10 - RGB - PROCESS - 158 - 31 - 99 - - - C=10 M=100 Y=50 K=0 - RGB - PROCESS - 218 - 28 - 92 - - - C=0 M=95 Y=20 K=0 - RGB - PROCESS - 238 - 42 - 123 - - - C=25 M=25 Y=40 K=0 - RGB - PROCESS - 194 - 181 - 155 - - - C=40 M=45 Y=50 K=5 - RGB - PROCESS - 155 - 133 - 121 - - - C=50 M=50 Y=60 K=25 - RGB - PROCESS - 114 - 102 - 88 - - - C=55 M=60 Y=65 K=40 - RGB - PROCESS - 89 - 74 - 66 - - - C=25 M=40 Y=65 K=0 - RGB - PROCESS - 196 - 154 - 108 - - - C=30 M=50 Y=75 K=10 - RGB - PROCESS - 169 - 124 - 80 - - - C=35 M=60 Y=80 K=25 - RGB - PROCESS - 139 - 94 - 60 - - - C=40 M=65 Y=90 K=35 - RGB - PROCESS - 117 - 76 - 41 - - - C=40 M=70 Y=100 K=50 - RGB - PROCESS - 96 - 57 - 19 - - - C=50 M=70 Y=80 K=70 - RGB - PROCESS - 60 - 36 - 21 - - - - - - Grays - 1 - - - - C=0 M=0 Y=0 K=100 - RGB - PROCESS - 35 - 31 - 32 - - - C=0 M=0 Y=0 K=90 - RGB - PROCESS - 65 - 64 - 66 - - - C=0 M=0 Y=0 K=80 - RGB - PROCESS - 88 - 89 - 91 - - - C=0 M=0 Y=0 K=70 - RGB - PROCESS - 109 - 110 - 113 - - - C=0 M=0 Y=0 K=60 - RGB - PROCESS - 128 - 130 - 133 - - - C=0 M=0 Y=0 K=50 - RGB - PROCESS - 147 - 149 - 152 - - - C=0 M=0 Y=0 K=40 - RGB - PROCESS - 167 - 169 - 172 - - - C=0 M=0 Y=0 K=30 - RGB - PROCESS - 188 - 190 - 192 - - - C=0 M=0 Y=0 K=20 - RGB - PROCESS - 209 - 211 - 212 - - - C=0 M=0 Y=0 K=10 - RGB - PROCESS - 230 - 231 - 232 - - - C=0 M=0 Y=0 K=5 - RGB - PROCESS - 241 - 242 - 242 - - - - - - Brights - 1 - - - - C=0 M=100 Y=100 K=0 - RGB - PROCESS - 237 - 28 - 36 - - - C=0 M=75 Y=100 K=0 - RGB - PROCESS - 242 - 101 - 34 - - - C=0 M=10 Y=95 K=0 - RGB - PROCESS - 255 - 222 - 23 - - - C=85 M=10 Y=100 K=0 - RGB - PROCESS - 0 - 161 - 75 - - - C=100 M=90 Y=0 K=0 - RGB - PROCESS - 33 - 64 - 154 - - - C=60 M=90 Y=0 K=0 - RGB - PROCESS - 127 - 63 - 152 - - - - - - - - - Adobe PDF library 10.01 - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 36 0 R/TrimBox[0.0 0.0 3840.0 2160.0]/Type/Page>> endobj 32 0 obj <>stream -HlVI9 +TK"cN(rh4P@A*n(EJ\A*z/ϑ>Lۯ-RN%7޾[+ELD}~Q_,RC)i%mR=V{uS¡,YHzeۓ Q!5nJ9P5"v[ uWvU7nێ,FP^$$5DDpɁd4ڋۙ90q|dDZ a1439<0}f0{ꖐhE#R 5Y9$ -zX]@~3ϋ̬3L>س|cΏs%sZNVuAcp~Rc阏b^Aй><\I/wP;bJ@|n[fDڍ^ -[D@Dňށ(TIfйkUE'Gx"/Þ!QLwBq:p.RZ[Yh=j{9 ACIY8w;vuu-ӹ2/;@r fdk6z1FMǯk׊x]*C1ylDTAœu&4`pv)5bǸ+ +VEC04,Tp9p)1Rِ9ֿmXѭxhPxʐke&ډAeL9Jl1|)Y|zf*ѷ.G%:o]~Ljh(eMBC#\fch\ij\mr#Jܢo;oَ?I >stream -8;Z]!gMI$9&4O4Loo+g]Y:Y;L9GQ$:@3.,T.n*;fRief@%Sif_3dV)Ok+/'6SR3bl -9q7Fhkme7N\oK:^?"i4k6BkiO2r#nub+]#^#o2T&%;/3"U%t=#DK/;5(hd<.rJl^nXukH^04p_5&"H=J0K1J -F,$ endstream endobj 37 0 obj [/Indexed/DeviceRGB 255 38 0 R] endobj 38 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 29 0 obj <> endobj 30 0 obj <> endobj 41 0 obj [/View/Design] endobj 42 0 obj <>>> endobj 39 0 obj [/View/Design] endobj 40 0 obj <>>> endobj 35 0 obj <> endobj 34 0 obj [/ICCBased 43 0 R] endobj 43 0 obj <>stream -HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  - 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 -V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= -x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- -ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 -N')].uJr - wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 -n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! -zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 33 0 obj <> endobj 44 0 obj <> endobj 45 0 obj <>stream -%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Ian Meikle) () %%Title: (Web3_70.ai) %%CreationDate: 27/01/2017 15:51 %%Canvassize: 16383 %%BoundingBox: 1170 -1782 2670 -378 %%HiResBoundingBox: 1170 -1781.6396 2670 -378.3604 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 -2160 3840 0 %AI3_TemplateBox: 1920.5 -1080.5 1920.5 -1080.5 %AI3_TileBox: 1517 -1359.5 2300 -800.5 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 2 %AI9_OpenToView: -1717.0015 636.9985 0.3333 2078 1150 18 0 0 32 191 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 77 %%PageOrigin:1614 -1476 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 46 0 obj <>stream -%%BoundingBox: 1170 -1782 2670 -378 %%HiResBoundingBox: 1170 -1781.6396 2670 -378.3604 %AI7_Thumbnail: 128 120 8 %%BeginData: 14636 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FFFFFFA87D7DFD7CFFA8FD0452A8FD79FFA87D527D527D527DA8FD %77FF7D525352525253525259FD76FF527D527D527D527D527D52A8AFFD72 %FF7D52527D5252527D52525259527DA8FD71FF7D527D527D527D527D527D %527DA8FD72FF52535252525352525253527DA8FD39FFCACAA1C3A0C2A0C2 %A0C3A1CACAFD2DFF7D527D527D527D527D527DA8FD37FFC3C3BBBBBABBB4 %BBB4BBBABB92BBBBBBC2C9CAFD2AFF527D5252527DFD04527DFD35FFA1C2 %98BA92BB92BB92BB98BB92BB98BB92BB92BA92BB99CAFD28FF7D527D527D %527D527D52FD33FFCAC9BBBA92BBBBBB98BBBBBB98BBBBBB98BBBBBB98BB %BBBB98BBB4C2C9FD26FF5252525352525253527DFD0CFFA87D7DFD23FFA0 %BB92BB92BB92BB92BB92BB92BB92BB92BB92BB92BB92BB92BB92BB92BA99 %CAFD24FF7D527D527D527D52537DFD0BFFA87D525352A8FD1FFFCABBBBBA %BBBBBBBABBBBBBBABBBBBBBABBBBBBBABBBBBBBABBBBBBBABBBBBBBABBBA %C9FD23FF5252527D5252527D52A8FD0AFFA852527D5252527DA8FD1BFFCA %C292BB98BB92BB98BB92BB98BB92BB98BB92BB92BB92BB98BB92BB98BB92 %BB98BB92BB92C2CAFD21FF7D527D527D527D5253A8FD0AFF7D527D527D52 %7D52537DFD19FFC2BBB4BB98BBBBBB98BBBBBB98BBBBBB98BBB4BB92BBB4 %BA92BBBBBB98BBBBBB98BBBBBB98BBB4BBCAFD20FF525352525253525252 %A8FD09FFA8525352525253FD05527DA8FD14FFC998BA92BB92BB92BB92BB %92BB92BB92BB92BA99C3C3CAA7C9A0BB92BB92BB92BB92BB92BB92BB92BB %92BBA8FD1FFF7D527D527D527D5259A8FD09FF7D7D527D527D527D527D52 %7D527DFD12FFC9C2B4BBBABBBBBBBABBBBBBBABBBBBBBABBB4C2C9FD08FF %C9BBBBBABBBBBBBABBBBBBBABBBBBBB4C2FD1FFF527D5252527D525252A8 %FD09FF7D527D5252527D5252527D527DA8FD10FFCF9ABA92BB98BB92BB98 %BB92BB98BB92BB92BA98C9FD0BFFCF99BB92BB98BB92BB98BB92BB98BB92 %C3CAFD1DFF7D527D527D527D52527DFD09FF527D527D527D527D527D527D %FD11FFC398BBBABB98BBBBBB98BBBBBB98BBBBBB92BBC2FD0EFFC9B4BB98 %BBBBBB98BBBBBB98BBBBBB92BBBBC2C3CFFD19FF525252535252525352A8 %FD08FFA85952525253525252535252A8FD0FFFA1BB92BB92BB92BB92BB92 %BB92BB92BB92BB92C2A8FD0FFFA1BA92BB92BB92BB92BB92BB92BB92BB92 %BB92BA92C2C3FD17FF7D527D527D527D52527EFD09FF527D527D527D527D %52537DFD0EFFCABBBBBABBBABBBBBBBABBBBBBBABBBBBBBABBBBCAFD10FF %CFC2BABBBABBBBBBBABBBBBBBABBBBBBBABBBBBBBABBBABBBBC9FD15FF52 %52527D5252527D52A8FD08FFA87D5252527D5252525952FD0DFFA8C2B4BA %92BB98BB92BB98BB92BB98BB92BB92BBA0FD11FFCABB92BB98BB92BB98BB %92BB98BB92BB98BB92BB98BB92BB98BB92BBC3FD13FF7D527D527D527D52 %53A8FD09FF527D527D527D527D527DFD0CFFA87D75BBBABB98BBBBBB98BB %BBBB98BBBBBB92C3CFFD11FFC2BBBABB98BBBBBB98BBBBBB98BBBBBB98BB %BBBB98BBBBBB98BBBBBB92BBBBCAFD11FF525352525253525252A8FD08FF %A85252535252525352527DFD0BFF7D525253527698BA92BB92BB92BB92BB %92BA99CAFD11FFC999BA92BB92BB92BB92BB92BB92BB92BB92BB92BB92BB %92BB92BB92BB92BB92BB92C2CAFD0FFF7D527D527D527D5259A8FD09FF52 %7D527D527D527D52A8FD0AFFA87D527D527D537D99BBBABBBABBBBBB92C1 %C9FD11FFCAC2B4BBBABBBBBBBABBBBBBBABBBBBBBABBBBBBBABBBBBBBABB %BBBBBABBBBBBBABBBBBB92C2CAFD0EFF527D5252527D525252A8FD08FFA8 %53527D5252527D52527DFD0AFF7D527D5252527D52535299B4BB92BA98C3 %CAFD11FFC2BA92BB98BB92BB98BB92BB98BB92BB92BA92BB92BB92BA92BB %92BB98BB92BB98BB92BB98BB92BBCAFD0DFF7D527D527D527D52527DFD09 %FF527D527D527D527D52A8FD09FFA8527D527D527D527D5259527C99BBC2 %FD12FFC998BBBABB98BBBBBB98BBBBBB98BBBBBB92BBBBC9C9CFCACAC2C1 %B4BB98BBBBBB98BBBBBB98BBBBBB92BBCAFD0CFF525252535252525352A8 %FD08FFA85952525253FD04527DFD09FF59FD0452535252525352522E7DA8 %FD11FFA1BB92BB92BB92BB92BB92BB92BB92BB92BB92C2A7FD07FFCAC998 %BA92BB92BB92BB92BB92BB92BB92C1FD0CFF7D527D527D527D52527EFD09 %FF527D527D527D527D52A8FD09FF7D527D527D527D527D527D527DFD11FF %CFBBBBBABBBABBBBBBBABBBBBBBABBBBBBBABBBBCAFD0BFFCFFD04BBBABB %BBBBBABBBBBBBABBB4C9FD0BFF5252527D5252527D52A8FD08FFA87D5252 %527DFD04527DFD09FF52595252527D5252527D527DFD10FFCAC292BA92BB %98BB92BB98BB92BB98BB92BB92BBA0FD0EFFC992BB98BB92BB98BB92BB98 %BB92BB99FD0BFF7D527D527D527D5253A8FD09FF527D527D527D527D52A8 %FD08FFA87D527D527D527D527D527DFD10FFC3BB92BBBBBB98BBBBBB98BB %BBBB98BBBBBB92C2CAFD0FFFC3BB98BBBBBB98BBBBBB98BBBBBB92C2FD0B %FF525352525253525252A8FD08FFA85252535252525352527DFD09FF5252 %52535252525352527DFD0EFFCA99BA92BB92BB92BB92BB92BB92BB92BB92 %BA99CAFD10FFA8BB92BB92BB92BB92BB92BB92BB92BA99FD0BFF7D527D52 %7D527D5259A8FD09FF527D527D527D527D52A8FD09FF7D527D527D527D52 %7D52FD0DFFCFC292BBBBBBBABBBBBBBABBBBBBBABBBBBB92BBC9FD11FFCA %C1BABBBABBBBBBBABBBBBBBABBBBBB92C9FD0BFF527D5252527D525252A8 %FD08FFA853527D5252527D52527DFD09FF5252527D5252527D527DFD0EFF %C2BB92BB98BB92BB98BB92BB98BB92BA92C3CAFD11FFC2BB92BB98BB92BB %98BB92BB98BB92BB92BBCAFD0BFF7D527D527D527D52527DFD09FF527D52 %7D527D527D52A8FD08FFA87D527D527D527D52537EFD10FFC398BBBABB98 %BBBBBB98BBBABBBCFD12FFC998BBBABB98BBBBBB98BBBBBB98BBBBBB92BB %CAFD0CFF525252535252525352A8FD08FFA85952525253FD04527DFD09FF %FD055253525252A8FD11FFCA99BA92BB92BB92BA92BBC9FD11FFA1BB92BB %92BB92BB92BB92BB92BB92BB92BB92BBA8FD0DFF7D527D527D527D52527E %FD09FF527D527D527D527D52A8FD08FFA87D527D527D527D5259A8FD13FF %C9C292FD04BBC9FD11FFCFBCBBBABBBABBBBBBBABBBBBBBABBBBBBBABBBB %CAFD0FFF5252527D5252527D52A8FD08FFA87D5252527DFD04527DFD09FF %52595252527D525252A8FD15FFC992BBC2FD11FFCAC392BA92BB98BB92BB %98BB92BB98BB92BB92BBA0FD11FF7D527D527D527D5253A8FD09FF527D52 %7D527D527D52A8FD08FFA87D527D527D527D52527DFD17FFCAFD11FFC3BB %92BBBBBB98BBBBBB98BBBBBB98BBBBBB92C2CAFD12FF7DFD045253525252 %A8FD08FFA85252535252525352527DFD09FF525252535252525352A8FD27 %FFCA99BA92BB92BB92BB92BB92BB92BB92BB92BA99CAFD14FFA8527D527D %527D5259A8FD09FF527D527D527D527D52A8FD09FF7D527D527D527D5252 %7EFD25FFCAC2B4BBBBBBBABBBBBBBABBBBBBBABBBBBBB4BBC3FD16FFA853 %5252527D525252A8FD08FFA853527D5252527D52527DFD09FF5252527D52 %52527D52A8FD24FFA0BB92BB92BB98BB92BB98BB92BB98BB92BB92C2CAFD %18FF527D527D527D52527DFD09FF527D527D527D527D52A8FD08FFA87D52 %7D527D527D5253A8FD22FFCABBBA92BBBBBB98BBBBBB98BBBBBB98BBBABB %BBCFFD1AFF7D525352525253527DA8FD07FFA85952525253FD04527DFD09 %FFFD055253525252A8FD20FFA8BB92BB92BB92BB92BB92BB92BB92BB92BB %92BBC9FD1CFFA87D527D527D527D52FD09FF527D527D527D527D52A8FD08 %FFA87D527D527D527D5259A8FD1FFFA8A8A1C2BABBBABBBBBBBABBBBBBBA %FD04BBC9FD1FFF52535252527D52527DFD07FFA87D5252527DFD04527DFD %09FF52595252527D525252A8FD1EFFA8A87DA87DA199BA92BB98BB92BB98 %BB92BBC2FD21FF7E527D527D527D5252A8FD07FF527D527D527D527D52A8 %FD08FFA87D527D527D527D52527DFD1DFFA8A87DA87EA87EA8A0BBB4BBBB %BB98BBB4C2CAFD22FFA8525253525252535252A8FD05FFA8525253525252 %5352527DFD09FF525252535252525352A8FD08FFA8A8A8FD11FFA8A87DA8 %7DA87DA87DA87DA092BB92BA99C9FD25FF7D7D527D527D527D527DA8FD04 %FFA8527D527D527D527D52A8FD09FF7D527D527D527D52527EFD09FF7EA8 %7EFD11FF7DA87DA884A87DA884A884A799BBC2FD27FFA852595252527DFD %04527DA8A8A85252527D5252527D52527DFD09FF5252527D5252527D52A8 %FD08FFA8A87DA87DA8A8FD0DFF7DA87DA87DA87DA87DA87DA87DA8CAFD29 %FF7E527D527D527D527D5259527D527D527D527D527D527D52A8FD08FFA8 %7D527D527D527D5253A8FD09FF7DA87EA87DA8A8FD0CFFA87DA87EA87DA8 %7EA87DA87DA8FD2BFFA853525352525253525252535252525352525253FD %04527DFD09FFFD055253525252A8FD08FFA8A87DA87DA87DA87DA8A8FD09 %FF7DA87DA87DA87DA87DA87DA8FD2DFFA87D527D527D527D527D527D527D %527D527D527D527D52A8FD08FFA87D527D527D527D5259A8FD09FF7DA884 %A87DA884A87DFD0AFFA87DA884A87DA884A87DA8FD2FFF7DFD04527D5252 %527D5252527D5252527DFD04527DFD09FF52595252527D525252A8FD08FF %A8A87DA87DA87DA87D84A8FD09FF7DA87DA87DA87DA87D84A8FD30FF7D53 %527D527D527D527D527D527D527D527D527D527DFD08FFA87D527D527D52 %7D52527DFD09FF7EA87DA87EA87DA87DFD09FFA8A87DA87DA87EA87DA8A8 %FD32FFFD055253525252535252525352525253525252A8FD08FF52525253 %5252525352A8FD08FFA8A87DA87DA87DA87DA8A8FD09FF7DA87DA87DA87D %A87DA8FD33FF7D52527D527D527D527D527D527D527D527D527D7DFD08FF %7D527D527D527D52527EFD09FF7EA87DA884A87DA87DFD09FFA8A87EA87D %A884A87DA8A8FD34FF7D52527D5252527D5252527D5252527DFD0452A8FD %07FF5252527D5252527D52A8FD08FFA8A87DA87DA87DA87DA8A8FD09FF7D %A87DA87DA87DA87DFD36FFA859527D527D527D527D527D527D527D527D52 %7DA8FD05FFA87D527D527D527D5253A8FD0BFF7DA87DA87EA87DFD0AFFA8 %7DA87EA87DA87EA8A8FD0DFFFD05A8A9A8FD22FFA87DFD05525352525253 %5252525352525259A8FD04FF7D525352525253525252A8FD0CFFA87E7DA8 %7D7EA8FD09FF7DA87DA87DA87DA87DA9FD0CFF7DA87D847DA87D847DA8A8 %FD21FFA85953527D527D527D527D527D527D527D52597DFFFFA8527D527D %527D527D5259A8FD0DFFA8A87DA87DFD0AFFA87DA884A87DA884A8A8FD0B %FF7DA884A87DA884A87DA87DA8A8FD22FFA87DFD0552595252527D525252 %7D5252527D5252527D5252527D525252A8FD10FF7D7DA8FD09FF7DA87DA8 %7DA87DA87DFD0BFF7E847DA87DA87DA87DA87DA87D7E7DFD24FFFD05A87D %527D527D527D527D527D527D527D527D527D527D52527DFD11FFA8FD09FF %A8A87DA87DA87EA87DA8A8FD09FFA8A87EA87DA87EA87DA87EA87DA87EA8 %7DA8A8FD26FF84FD0452535252525352525253525252535252525352A8FD %1CFF7DA87DA87DA87DA87DFD0AFFA87DA87DA87DA87DA87DA87DA87DA87D %A87DA8A8FD26FF7D52527D527D527D527D527D527D527D527D527D5259A8 %FD1BFFA8A87EA87DA884A87DA8A8FD09FFA8A884A87DA884A87DA884A87D %A884A87DA87EA87DFD26FF7D52527D5252527D5252527D5252527D525252 %5952A8FD1CFF7DA87DA87DA87DA87DFD0AFFA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA8A8FD24FF7D52527D527D527D527D527D527D52 %7D527D527DFD1DFFA87DA87EA87DA87EA8A8FD09FF7EA87DA87EA87DA87E %A87DA87EA87DA87EA87DA87EA87DA8A8FD24FF7D52525352525253525252 %5352525253525253FD1DFF7DA87DA87DA87DA87DA9FD08FFA8A87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD22FF7D7D527D %527D527D527D527D527D527D52A8FD0AFFA8FD12FFA87DA884A87DA884A8 %A8FD09FF7EA87DA884A87DA884A87DA884A87DA884A87DA884A87DA884A8 %7DA8A8FD22FF7D535252527D5252527D5252527D5253A8FD09FFA8847EFD %11FF7DA87DA87DA87DA87DFD09FFA8A87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DFD22FFA87D5253527D527D527D527D %5252A8FD0BFF84A87DAFFD0EFFA8A87DA87DA87EA87DA8A8FD09FF7DA87E %A87DA87EA87DA8A8FFA8A87DA87DA87EA87DA87EA87DA87EA87DA87DA8A8 %FD21FFA8525252535252525352527DFD0CFFA87DA87DA8A8FD0DFF7DA87D %A87DA87DA87DFD09FFA8A87DA87DA87DA87D847DFFFFFFA8A87D7E7DA87D %A87DA87DA87DA87DA87DA87DA8FD23FFA87D52595259527D7DFD0DFFA8A8 %7DA87DA8A8FD0BFFA8A87EA87DA884A87DA8A8FD09FF84A884A87DA884A8 %7DFD07FFA8A87DA87DA884A87DA884A87DA884A87DFD26FFA8A87DA8A8FD %0EFFA87DA87DA87D847DA8FD0AFF7DA87DA87DA87DA87DFD0AFFA87DA87D %A87DA87D84A8FD07FFA8A87DA87DA87DA87DA87DA87DA87DA8FD39FFA8A8 %7DA87DA87EA87DFD0AFFA87DA87EA87DA87EA8A8FD09FFA8A87DA87EA87D %A87DFD0BFFA8A87DA87EA87DA87EA87DA87EFD3AFF7DA87DA87DA87D7EA8 %FD09FF7DA87DA87DA87DA87DA9FD0AFF7DA87DA87DA87DA8A8FD0BFFA8A8 %7DA87DA87DA87DA87DA8FD3AFFA87DA87DA884A87DA8FD09FFA87DA884A8 %7DA884A8A8FD0AFFA87DA884A87DA87DA8FD0DFFA87DA87DA884A87DA884 %FD3AFFA8A87DA87DA87DA87DFD09FF7DA87DA87DA87DA87DFD0BFFA8847D %A87DA87DA87DFD0FFF7E847DA87DA87DA8FD3BFF7DA87EA87DA87EA8A8FD %07FFA8A87DA87DA87EA87DA8A8FD0BFF7DA87DA87EA87DA8A8FD0FFFA8A8 %7DA87EA87DFD3BFFA87DA87DA87DA87D7EA8FD07FF7DA87DA87DA87DA87D %FD0CFFA87DA87DA87DA87DA8A8FD10FFA87DA87DA8FD3BFFA8A87EA87DA8 %84A87DA8FD06FFA8A884A87DA884A87DA8A8FD0BFFA8A87DA884A87DA87D %A8A9FD11FFA8A87DFD3CFF7DA87DA87DA87DA87DA8A8FD04FFA87DA87DA8 %7DA87DA87DFD0DFF7E847DA87DA87DA87DA8A8FD11FFA8A8FD3DFF7DA87E %A87DA87EA87DA8A8FFA8FF7DA87DA87EA87DA87EA8A8FD0DFF7DA87DA87E %A87DA87DA8A8FD4FFFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA9FD0DFFA87DA87DA87DA87DA87D7E7DA8FD4EFFA87DA87DA884A8 %7DA884A87DA884A87DA884A87DA884A8A8FD0EFFA87DA884A87DA884A87D %A87DA8A8FD4CFFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %FD0FFFA8A87DA87DA87DA87DA87DA87D7E7DFD4CFFA8A87EA87DA87EA87D %A87EA87DA87EA87DA87EA87DA8A8FD0FFFA8A87DA87EA87DA87EA87DA87E %A87DA8FD4BFF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD11FF %A87D7DA87DA87DA87DA87DA87DA87DA8A8FD4AFFA8A87DA884A87DA884A8 %7DA884A87DA884A87DA8FD12FFA8A87EA87DA884A87DA884A87DA87EA8A8 %FD4AFFA87E7DA87DA87DA87DA87DA87DA87DA87D84A8FD13FFA8A87DA87D %A87DA87DA87DA87DA87D7E7DFD4AFFA8A87DA87EA87DA87EA87DA87EA87D %A87DFD15FFA8A87DA87DA87EA87DA87EA87DA87EA8A8FD4AFFA8A87DA87D %A87DA87DA87DA87DA87DA8FD16FFA8A87DA87DA87DA87DA87DA87DA87D7D %7EFD4BFFA87DA87DA884A87DA884A87DA8A8FD18FFA87DA884A87DA884A8 %7DA884A87DA8A8FD4CFF7E847DA87DA87DA87D7EA8FD1AFFA87DA87DA87D %A87DA87DA87DA87DA8FD4DFFA8A87DA87DA87DA8A8FD1DFFA8A87DA87DA8 %7EA87DA87EA87DA8FD4FFFA8FFA8FFA8FD1FFFA8A87DA87DA87DA87DA87D %A87DFD62FFA8FD13FF7DA884A87DA884A87DA8A8FD60FFA8847DA8A8FD11 %FF7DA87DA87DA87DA87DA8FD61FF7DA87DA8A8FD11FF7DA87EA87DA87EA8 %7DFD60FFA8A87DA87DA87DA8FD0FFFA87DA87DA87DA87D7E84FD60FF7EA8 %7DA884A87DA8FD0EFFA8A87EA87DA884A87DA8FD5FFFA8A87DA87DA87DA8 %7DA8A8FD0DFF7DA87DA87DA87DA87DFD60FF7DA87EA87DA87EA87DA87DA9 %FD0BFFA87DA87EA87DA87EA8A8FD5EFFA8A87DA87DA87DA87DA87DA87DA8 %A8FD09FFA87D7DA87DA87DA87DA8FD5FFF7DA884A87DA884A87DA884A87D %A8A8FD09FF7DA884A87DA884A8A8FD5EFFA8A87DA87DA87DA87DA87DA87D %A87DA87DA8A8FD05FFA8847DA87DA87DA87DA8FD5FFF7DA87DA87EA87DA8 %7EA87DA87EA87DA87DA8A8FFFFFFA8A87DA87DA87EA87DA884FD60FF7E7E %7DA87DA87DA87DA87DA87DA87DA87D7E7DA8A8A87DA87DA87DA87DA87DA8 %FD61FFA8A87DA87DA884A87DA884A87DA884A87DA87DA87DA884A87DA884 %A87DA884FD63FFA87D847DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA8FD65FFA8A87DA87EA87DA87EA87DA87EA87DA87EA87DA87E %A87DA87EA87DFD66FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA8FD69FFA8A87DA884A87DA884A87DA884A87DA884A87DA884A8 %84FD6AFFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD6CFFA8 %7DA87EA87DA87EA87DA87EA87DA87EA87DA8A8FD6EFF7DA87DA87DA87DA8 %7DA87DA87DA87DA87DFD70FFA8A87DA884A87DA884A87DA884A87DA9FD72 %FFA87DA87DA87DA87DA87DA87DA8A8FD74FFA8A87DA87DA87DA87DA8FD77 %FFA8FFA8A87DA8A8A8FFFFFFFF %%EndData endstream endobj 47 0 obj <>stream -%AI12_CompressedDataxyu' ;i`2cEo0ʣԲ-c0hPRc6`yVY7\ 4Y~gW_wwMo^;Żw?#.? MO717~xsO'?˿y_~ojO?/~Yi77~?+ÏyÇM߽9ˆ4=~ؾq2o'z͏ݽû'|o7wz݇޽~oC;^ >7wk~[׿|u ^IaEn?-/Mv߽oxv* csw7w}Wfa MygO_$fZWC bOϽVoNdWb)S?O~ȤÇo<܆D+ݏx;\-oB^7MpǷ߾}a0M,}|MY)f_q3W-|ŧOwuzhw-?|E/>;,8"Mz[̿^5ݯ>}>_ݏI7tiywAw7_~zowqvKzi}֯~_^w|{߼*}kv49߲z=7Tzċ^}?ہ˵ ?aywWq_;~{7 7I{ } ˿ޏ߽{훭l$~+?}?G/["rW|?߿{_]}f^ǟ|WaHM_~wx_>-1n_C}oiWXWGL4h7C"kH~=CvcΞOɝ=Iow O×b2Fp8o//?~ߪ0J @eYjr%5ۺF|8N11tx-x:Χssy:392?Um}G/?{>vhhBT!gic9I|ML{LOKӔƔSJ14=f;<׭l-qfpṣ<Ӽ̇4~%/2/rXi4i?H{{a:̇p8ta F#~3yv:BՆoVʝ.|;iG=L3<Ι:a~]iO4nMyJS)Tx;iގa܏(86|mamlvVVz=UzwUgno)δ43u6ЁJt&:b{:lG:vtCtG: [:oc]^xo{oKfoSFiIU Rb#D ñWt`CpޟX i?aOt~mGD*D!K !g?0 aĨiIoTpÉ-m!C -9b)a pp -pKdb1He sm~l`"\mfܹ% iUآm [۾|qۊT3>ofyyN43g|܇TGj왧{cܘA[Ж;ZMMX|y8|O 1 g!Jl%۲yK?i弔3aժmfgҕ?uM]rd&b^NѵeO ;+=vP CGەgWVM-U;6m7'"L4Ҷii(G{38Dfg y8vtDt>\^蘡! O/H N]jq]/9%h=sI0cMhH`J7я!L)WP=C_azWsdx3D "R -oR? / 1ӵ<ߐV{q+{('iç>/qs\>O26K!>QZ>=1X0ʕ=O2H)l7_cE/?Կ{7~ILF~OHi;zWtP,#dJ!Ap!-|l?kS,쬛unvMY/n.O7PH+ٻHiތy)Sq>f7<=cs}V/:i9W@/f A5[QN'@Sس}tcQ Bs{V%L@XR") (_:fJ<P8rPcvȎn¯3i"kGzLvM!4uO'TG`@S>t4Dϑ=@s a@,YYDi"B #i!t0pg~Y}AXuL z";K=K܁od\>M7(CYM^\YZ65hoQsRb_ҢjZżVW녻\% UK6UM8rH3%FCكJG AF,$AL%2|`  ( 4"bHqf D(*`Q -T,Gf zby{@ak m;g5Y<LpbKH$mh192P (İIC 㤉:^;C -8494d[7_*b}LB+l;2} -X 8g nb.2/ c6Ik~G#_ f#F?>ڻ S^ \G6pyˌ[Ŵ%ۣ獡Xay?l-0nɒc1w Է*f]EFt&C^j_:u ?WH-ݥV- Xf-mܴjz5tCpjZ$Ԍس;_mn-+}jc,5Zav+f0?Geծ_̿͠xfoUՂ%Vb(„Yw 5U:{hae.&2l8b]WܻhQU>vWlܿ+0wj ']EYy{z{ݪq얩I>ꊐPZ8o"ն-;9R,1V͗kͩKlWR ^p .pv}c6k[ڡiǪ[:R6򶨚w3[w8򳃓#όکLJ}P>d3$c.86#fvWZ\/uNGb6sj^fsmiX(+mܪ穜נwqY>tFA=Ǭf [5Po Le|~ytJ29=-Kuj̆2Jz^eN1Dܕ3ma|&\٨mz &.\> JTq)>I "OqV+j+oqXZrk̈́wXǤ{j 1OMD Ah,Boi --D"F`3ρћ39P+TXx̓2sjf.0v`%\PRQ*yú]4Ɗi׶ >i8^T&m`(2v0( 9(LݑjȧG#ҩ*j\4jipqe HZ.N d:H|Ҙ9-N?*l^^~W[Z߯~*YP֎^$E!"h>{өiD،j;KטCX5nG_Ա{ -^v0Ε Sթ2Nj}?ؗض%OmMۍ]nEll&/iKh$uPvv)젒VZ`VWQ+Fp$ΕS >U]?WşS >EԥԈ;37c#Dmui}uvjZ_5-l*40J{1͗ם)fq;ea|ϻ9;`c~b\lS8O^xߑ;݂g?!`I4HGfFI_ٴ7yjas -*~Im*fÜe"Ζ1[~x\0M&J81VYdkp :(s9rʩD;qHH8&Y{}f4ӌpf`VX f о ؝m728@[c>*K?BaJ R9}DѝFw69C{8sw Z -TȾ|aAP),B P uT 8y6ܺmsǹōt[n+[߅®^tʩ"+2A3\j~ %'uXYξ,DFwш١u/s2!uL1LU1v DfΣAyVf`"^,XqvX|jOy X<9uS[9h&Z''<͟l˧=gU̝W{gk4.fZ,^P -uE.dRjhmQU  u,OoSZStX,S[gqYI5$$~7qCO2; =<~褚Ѹ.%hwL*f}iƖy2ļļļļļļļļļļļļļ<_bb^bbSݽr MF -{aIw}(}a[QmNjP}4s͢)d3]Ҭ~a`S<#u<~{f`?;8f&Tl 6uz_0aYT"y*8`/lR#c^"MXxi{dwrK0*ykWf S뱊UaY Vt%_M*\GIUKEkqU8v*ylyTxSv{&YwQ3!M+'J5ह2W2ݥ_!ӷ5_ Ԅƭ- hh k˜aQ@;k8Z'k 46ߚukMxM 6 bU5uXMA64뒍`Ln$ȫ[֩imqYhSV)"0 JY(m* ;IMIcFxIč!MxǶKM#G^iZI==ko6 GNyo7\;ATnUr|,LX@u'dd>bauICͭRF:yRw^ծdu4 -{hiŊT8@COSyMDzCWBU-u+T iTkm8e< -/AMђsf=bȉDP[?Hmj[gx+z= $@4fipɚ W2isdD%m ݊{K,;%cN5L%â})W%~E' ÝYb9lXAXUg4 < (8AhugNp*IY2(>1O)pKړSfRXΜhcW681hEgOǶLDӡ#Cʨ6u\`߬<=wl%AKE/ ^$(zIP%AKE/ ^$(zʟ$(zIP%AKE/ ^$(zIP7To4[e(JQ7=X7VS箱*bfϝXYظWAƓYYI]_:gZj<6QZbx Fj^k Ԡx_X42>Mi#RhR)<雨3A1Ufz[$Hdc1N-mqVkTKU g)l.yoOH]=o„\|$1s!, C {T 4m -YSNhKfY0Кqv,ym*kkz2x[=sytmAW$xiKR$ǁQ}n4$ gp -p$k]Rٞ^pLuV`yX'*@n(BA?U0l>J _})5c Ck8WQl˥ZId&* +s\i 3ZkpsKZoÅdy=ƭQ+mWQkUW+hx]{q4{iy@sB_B;9 ,>+PB4‹l JkchEtk׽a;ָ]a^nWV]ۭ3' iu߬k*kW@+z*?WH:1n8ϙk iOo3ٺds@'ssߋ:[YuVYx8nӴͰeJu ݆X]*]5>Zg2kX%*a53kQ;ƱU{U;.VUڡb蘏+kuٵB%]\y|v.dI&%-\K=( -;SX&]?qOk7gS(;,E F1Q5S+]ccNi+vAg闌ho]_EV(\ :Ա9f>JҶβʣ5*'EFdu%l.S)쯺솵&XpawEl!!#1ZZZe6{UY^WYG,E] ^{c\w{n:|xc#'y3xšLz'6rcl:cJ:4j X.{ 6!C8$a%酬VKp>v~X*ҙ6ѷ?UnS꠹uڹn:Yesc-^iZW~v񧻼?HS ϒ/rf%&YV -z]u#N3KG0vzM^y&y/ hGFĝXȝªX6֡eM5%K^Rjv -s^c]9Q2YEQ}KOKҊ~vDtz#zn-zKMUAעn3Ukѓۇ12D۟FJ;tMhV6.^TNzU;]ŗk/mݗ?_Tu:Om3%ne|uKX݆+QV|NCUɷV|[E=8 bohQƣz^< -z\.k|l.~tW3́Jg\wC(U|\MQЭt5ƍ!PA-e5v 6bYqWA3!zYVz:aY 4.5*+ylV|nVE]d_Tm;m+%8$iݕ$(/m] Z{N:,~m@G?r~)$Z`=6 ᇎЕ!"' -a/3f8d8<}GD0Ý6_O* -qӢE"4EM4<: 6?ReRVs4^Z"@H}8~V@%B$L]+yJͼRz:y,@ -1hPI><<˶ .08k}y/iьk$t&\t'1iG8$/n0SǍOw;{d7^X>@l1E@Xkۖ=m垒X6]6jb]ݶ P;\x^U4hE9=ozjBt i97]<_V0[/º:=+۩-nUWzXWh|UΗyxu}&Oq>SE]k -u*WrKu6k~_ЯklJ:t-e%*/jmuiUl끵,'Z1 ;nbLg>V?ׯV^Ẏm2ӓruW-vYI}$X2Tm"2Xm9kFf l֌2lþXdb(;XF0H]Kć6q[Mp1ϯraY+vu.'kMh=O>Ng Mǥ=m-Zk}~^YVJJ=~ -3\fSLjvs"e5:D -i9c) 2HEd! y+\+Ss UqtW߾^U]oW?}޾T>i7&Դ./fX|CX;GqO~_tw}#`}GW/޴ 6/6Ͽ~ͧ޿Çw>|@Z/׿y_߽7_Kh2 $ -l(q)½!vUHL@DZ(9 #'t7L~Bt3;s2'bc(CeoJ -BS`rlua}F15 }<ѕ|Dm(Z؜S@_5bx>֑Pq$:4Z:AP4~>Ow8 L#$'&jؑ3:w@盤 -[UDD^GMD2н2Sh!";dE<أHfz)ou]#~Rem@O ˅viLCSDJyBI"s?ϐljM!Nȋf & }%/0yDԅg]N+e { /@#Lo t\%=1>~_dH#Qqjj~ÿ9Pfk`uf:ݞ:2.ܣS=mB[D|fkLEFle[.Sd˪qi=Y]gP:Q $Bj~iSk~-{gb/Щ씓x# jLE*21Ȯd)䱡K6Sr0'N z'٩!+o3J)wR 0,g,pC_N_Fe'aj2YHDqۧaJXǙvqLYVֆ-܏LZ -#tv !_٭_4 as3X1zcg%C54;|E𝁴F`9Ww!m4qq "F02)+cU0,AncaL0 ӘZ3YkMUWəăn4z8mżj&#Eb08e:C/] ?qq=wcJ'"j='pK0Ch45j0H++4ud\bj Ĭe J1Ft03C&2B?_ \"zN8uͨDr9`@hKk8"`Gfӓ >uCàr2:CqZP=CO򅠨)K}%MĔ$PG`Lm%͉7zO\黽H6oA#Wf;'ve*d?SwjF@|y6tp%b437lzI]./dD6,;aȖoÁiěu,6~ږwm(r{@=臝$1b=i4s='3t>C\b/ G*ȫf * h:YgLj@ F%9=&Coƶ`N,+zbl&8$K9/aPsym9?h s?ca v/pn9/yvʪҢC5ދ=Ǣ}*saGh.x+&`a1AtHx {կ7bj%" ޤ.Zqldf+k&lϠ P&[LYcE* =XɎ]0w9' ӆ-E\+R- kX&Dy;x+(.DWaҺs)̕0Rf8i bR=.̅\'cMG UF -|hܸBֵ}h$C: pEIFQLLE%Pפ0Ա7UC̓k: չV8zTSe }eF ^t4HM5ebi:k0I˕\60h$EpUs~w #%J"H p\Y]E sq+ؒjq"Ф3vF t}ʕ媏͠2~ChV0M<>_5jpMI<85TYnî|K8ĵ:s7#jfu7csk|~xas$V[G=@1Xá5)Q'U9P:Gi"k4ކ:$$Qc%-7h'QSp yDZ8(ܽbα ]w|w&`3Rgn=p]L\5a./M+FTLuU%7ƸP6FxrNϬ?.+Q-%Ʉ:74F>tˑnrY `DV2\ݐ­r.+bn|Bݞnv4} 2,A]Iqci̸It7ZJyrXnu5McWܨlf]t[wIub67k5xḳ`c*5HLEz)<8 KVkunA`2HC Dx g_Y0M\&a1mL,-CSc7 Rc$.RJO7,7 a}`Ae* ,*SVJej |7|WF|1 *mpإ^ו>+{CJ_{pThF|2+ Q^ ~ E}glr  L.٧6.ƋO|N 3̋ګIT_]ʿ!fA]5Yǯޘ.W 1N{}Kߴc0gb=gc/}f !5$NǩLG(vd/# -G_Wcȏ;\b'7MIGʨKyeM>Q_`Gqeb lAE ; 9(wI,Էi!>Yf-$O~VBV{t`+V-Yh-\.hmp1Yg9|{ sTC/axMOAzhp#$:O >(̬A x%*pvypP\^#: 1lB^ ` YsKcG܋r EyWBӾq`lGJ\l$u/tͼAvuϳ#! Zf{|3@Gl_ v!mpNz H뻼nhH yQ ya1aOU2`MI]Md2M+ l'u r~ea0\`7>촲%hv%,yNׂȺa -m"5%rҍe~lL~lvo+֦jr,Df[Bp t!^(]SmKzo6 V%(`RCW%jD7*!"?F̡C g[81JHlۤzU7U&5xpd6h.Nd!Er5P;3Ũ 6r%v n #jiL>Ǩl臄'3Yp&q`"1p -A'Na8OF2Gq` &G#H8"?8Ѵ||Ҡ%8^l6Xc`[8E~_nϰƼ^P#΍\ffY웯w,=0r-4OAdvOOgxE,&b/y?@>?$mGi4ugC9q9I9Y3~K˵vOr`,pdE~bo8pbb)~9)C$1!^]ѧ<8,z!Y0,w  ^|iJM%kZ{W ꕽj:0]a3B 2|f_-,ڃL_=pe O>bwGZ¶+itD&`LA2b}0VH]-r]l}ʬjYهaTV+o?'" ^MQӾӶXm2~ۭws'rl >]6a⇯}Ow߀,5dhqr@`ydcl1H -@W R#=v:$,Aӡ]D!eֵ J 0̆Kr i 4@OM@4; -ύ#Xf 1]y,O]yuu[{ʣ%\GI/C)pQ6x%Y!Sj=P^ͯhk }tXHWГ4N`pΓX,_O0NUf8I p[SӒ^Ri;DԩyE ,5^ȊBj\ly.oypVMjhevxj9p!5y¦\RAm-5 ~<&5':ySO<<Y-5f,ѧЛ~f9Y%恳MbxK3%#*1@ -ub0Y< {!7y~8y^tr)mT52i+S\1Y0hsdLs2^eB c&C82^V#|zhPd2ܖXl##a9E4d#xR_ /vo6PT!83k \/FWzj -#\|π<"W;]Zt$Hb d_:x>\/isuUF&1WMNJfL~K[Hdq F_G{] -%^5:i&1ҁ2=UPHVM wŗ1[xXFY[f!Z | 5"fCtAǴ@@r!.ꋙ&fh!(KQä -J4M' >fΐĽ^膏0ÙHiK3xX4dO[Ȝڨj'| bɒgC -M7:gG^PcPv}3'TQ.H]p`72{lV·26ۿfX *fZ'Z/ MJ ؒ$ $X2^:+|| -` )u0c`x3I8I*|X.D fptLe%kI'pj`i) 1R';Vˁ9BJ @ N3Lmy7١JAZflL: --IfciD%Ь$ZP}թM'8F0d* -XVMǂ --yمbQKS|kayqԒ Uhr|5EB e mB/u!*Kp= 6AvGB̄Pqx8F=]ayS>w]j lҬ=ő\->_l1 qQUƹt%eYBA |2vrМeIUގ9TGS۔XU-o$)P o0QE 31k3|dx,n' ^#I#v2os-|4x09©4@9JI{#!b^'Yfl5a[ShNLtb*p.A5!}I17@^=YpJhui27bF Ӆ@=_I+ ^@8%zPwWd[cmz&oG; %8RLC#-y0&`SnԣqzT7J#<ԈHItscV^YTѴ&E]B>X[4؃vN7F=ɽ PE;c/l_vnq,^-ѣz䵳&B۹qu2lTQU7񠺠BD81J^Z?FBRnﲔ廴*5&yZ\HuVdՈns-f.7Z-^p7љFw{ nt EW2z[*u홦Ԙӵ7VN]}rkXnm07ֺ\Sۨ}6S|-mѮ{Ů]\F\A01 -DG͡ہv8NS22ZW)V1x`h;,U]DCN4XB.Y|X4g%ҏA$:2: 7e )U?eR &7ק| *+mե^~% uH { Дpc$+# GNA3Z*{CM[,Eye$ [|i+ؤ)5L}$?bsy& +UFr2πqD-;Mbdu>zjo^6F%* 5$4PfRt=GoO!>%(GX&Bώe/kh(^(J`J`-CKM6w),詬5:Sn թT~VBV*X%NvQP@Yy@X_$%<榉Lpa̿ QYensX.<)4-]h9.os@CL/L2*`%aŶ$ZUI_)} R}'~Sd\gFL@ iyM"85y3x W ʬ"!j|4p,kN/?\z*Ʌ];D rywd F D$e` ޒ2$ŦҨIӭqXZ@mi`ʖL1ee|Y߅7kƷd޻ѼJϙNcu~h}`D9h& O_9 -:iv'.(抬$5#%{K -$4M$0+L$J)zb$JafNc^cFTeamvd C40])Ur>&Uh4DU ȩ2X $WFe6AK$rp>KTR. g{.9Җ4}AR֩,eBU(X_(sail nZ|(o! -Yu>/<;u|}6i[gwϘff -sf>9LIyMMw% *GUOwEl&R[ -,.X,,j~]QKzqh?"-J>q&VwSU]e]AzT0j{b -r_wHWBK+9o'#5,f3^r|dƅ#$`]C!ٙVE![4 S؃)9 G@$%b59Ұ+9p$Ufr(z/G4jD1dJLI-[աժ*DZs]qq"CM?L*y!jZ55̥fODZmtH9{vZOZL(FJVo(,QXf*Ъyo{'[ hOB+/fB- */EͩUh -.Vʼn4NbT=E}'*6םQxeJZ_*bZG{PKUav dUU_&>AJc"^>R)1g+7GT,[.ŏk25Z2FQJFJfb^ṡv^ کvYJ֋O;!NuCԽܵ +g;o?`//<΋7Ћ;BVx~0qi]\~jKw72_wYJo\hWw+7W/YzʼZ}#yQ{KxkicؤJ\dU P K,t=pu3mddmMv}=*d|'ó -:&CW@C^ `9Nӱa~;\]8eRR:L$2'!h0&((4&V#9#iNC{$AeYѤ>Hrh& 6:?i ?s2cD;`2q\Ye ec kƠ5&8tf -+oPPS1+(e-]$ĔręM4]@G#_c8/]KXBԆʇdnN:$@\\ -$ń1YDУ .&؏LMH+B ~chBqJ¿ δ%ϔ ]Ƞ$Wq\CzIY i$Ey\TPF -IU7LL%I0x(j mj5<:!n%,Xҏde)8I)U &L&x194%|L(d(hUq_LY,0%ba~ijc/~(dž >Dƕ픃l2Q4:'mLOb_g !0-Ś)$PRzQ?25p"D+ a8 ڈˡ"ɞ -}x_JrfODW23(MaQ͔*`/^:^$9M./ebeojOBڈnIu9I/rZv]Mqpθ7&jFFr㴫Zn6m̭܍pW` -Eܧ[]tK~5`Jn<\iA01VfVGztE}\:pKQ' nJZ Z0" x Q gMcE -oL,,C2d7PI җ.ϼif0N{ؒjPʴS^| Q-_Qʪ@v[W] R Nþ{'G H(8ƓK @3⦐EB> #h/zcx$:e7]jp6kYYqF NYUflCGOm~e[XڸM5|uB&-ɵ`%A ,:{AvB>|ko^vn% @r8|l;Oi5_M\x"7c['tBe`vW^'NPk..02S]YTQ,=}ߛøcN -hox" d?Z} 5XmR8nUv]3gQسhƼsD"F$B7o#kӃj30lpRagvZ9hz2xOP"P;YgV:ۀc?Q."/- -Ѧ9840., ^q0Sݕwl߈A6.8߰kS}"2׹BW }-V N֬#81-7B8,w8l b0sRqqzϞt.<\,Z)s92_yjDǨQ -!N=l%1+ڊ3Z:Ioc/&W9TzOT˶*|lItW}h^HVΙݎcTmU(@=Rjb+TN:q/DDw -=-A3/hM:c^))A(߿?b6>lY/{AٓV#9s' @L' %@ !s xoA]6z ( }Ϩ,݁Lh`_pHdT4 HR>c'gc\gSMc -9gI'qW(^=a)T4˹/}H<V$F>7[,Ilôr  $6`y#ٳ+PuLZ6rNԓ -/DQ%"g F~8vO*nۭ:&DqVDGQ|GʝC 6}RKeY\~ LN>J^P4,Wj:enbJl ->ZztMbb3ldM_@%٧VgttӨ3l4,,2XY˚_&H~ _̑ -14B(`;T(솳c3餏VLD=v)~2`eƱ[!,slyȒm)JOy7&+#XFoJ>}f%[*]Ki@ B"1]zx Bu{Dm V^:m-N6Xo>77ָNjn>Ku>;FaZ^t,<g\uΌq#ֈ_y>ȹ|suq9IY3}2ɟ9EC̀be? ~2Rѐ]HtHqRp>yR}eQE[sDN=?'hIZBJ{o׳;r> 03kǙqA HbACt2dY}x룪RKO&}"6<|bժq_O|ly??˾`7%ۨC]*~T,l83iu.EY۾Yb9j@"b!>aqQ5цi 9NŴsoi}8pܲô*' HN;lRm}ځS!vyQӮħS3YGjg$fnY4䩧{6C<_OIfrN%~~yohqȊ9of?7IZ,DC^z{IͪHQY݃J{Se_MX-ߪ5tTVD|Y -YҾr+Uu8T9w:ZDmW9ZFi+kʾ__-\KY@M -gJThg\]]VBDr&p,ɷtChĔ@mRB̘TWhϸc7ڎd - @p͗ܨk.jlb4}i_Zc#A DP'-2CMY[Ьd'?aA@BhP!_l=CCFqIڽU|6 ;Bھ$U@v?xkc*+R.4ۙK!hiM&C/N 3eAa1)`Ō$$2B M - {jNܛ - "'n%Eu  oM4O6/V2?m>5*O1+yF!e<#z<N"K]#׬|QYVX/`k;O$8EҼl8%v@֒$ !jIQMEUjLax*Vc jL\U"uq5!s5k1q)F-E^Xt6-ŬF5X&QK1ojdbگm-&} -Sk1Gحbi6K#8j,XK۬pZ!ga-L{> GZ+ukqQЄ{k1vZ*i>ŅJK+Y%(kc~3=RV3psb)|U|{Ow: (l۴ kWO~?`!aq/H1uX϶NgIJq1nĨ/Mc17-ͼ7 -b˚2/t˸#P}1VW#Ÿ"֮b1n~_Ř&6 cbD]׾_MK"d&\yOdz;+jV:K[2˱Q<1 q1|=nTF&c؉C7kZ H1cz΄l`C17R ӌ%X1ϟr+)Q9%IneTN3FTNb=.r*;rfNTu*!WQkP9˱_G199TN`$l"&ǧp1$tP"&+3&Ǘ/5H19SY\e_J<&P#(ǥѽjž|dd`z^I]mz|#0#2=p t GA 뿈w ~g߮gbcn -6 -j[}wi 2 -b^M[*zvC%!ZA~êLiwIrwZ<=mo Kd0Ry[eETRIeNyrJVT˕7',G]oń:U3\}/[ [1'No-@-))m^1ӗ7EMKM 9kIH^8Yt3Z:X,kʇ.dVuBCCNj=GTqc҄ rn,IG^\vNښ)D -;})5ޕe5 ~%U޼Dd_YX"?|@65푲PBދU?>/+.T-^ׂS }pg"!lP% Ӌ -ŧm@|iN}v9 \@l3m - -u%Ep(!P^}y-ADBU+Iq7D=$1ypٯ^m"-~7ǭ--R-}@shDtQFWWƔ%(会M'%PNzu׬*A@eXLIx^" eNЈ -XWxz;#;u%lƒ:n7͆m6FcGdVZ/X6i!-i'Cg̯5xvkM K܇U4&KTs1K(#TlrUUosĹ8YmZBE)w9u%R~ýZlfXr^4DN؄pY{=UeYWdQ;vRrʣrNp;/kgQA kY-)LfwދkkoPeA[n*|[]?ZgEⵋgz8?RY ~}{e2a*b;i1?'h\*a_I-հUiC}ٍ Qu)(SّQ23}2嫥cC )fm.Wn +I -wQ/kӭ$,7O^@V%-PP?p!:bOl+3_^{w4< -"3x[#zkb^J͝e?st3>oJjsB7r^:!5f /%ƪr}_ų!^ -MqUHvfaSty]>7nqYnl-Yؾʀ -q+ܢ<̺ --=t{1nGַtd޷2ddPBFXX CV[zB3"`9#+8L~\TgEХgg>NA Q*5iĄ݈Q޴1mPUNcH?}gwu x}CnYHg7eєq(lRF_uٹޤPqShU?$@5~eW{r*wF_Z֯W8(>) ־w{ l@M^;w9G|m|m>[ ?Ƭz]߫`LWb&yX\{~7~q0|r0)oHoWQ0K"BN/j7}[yKgj|MqBז;>= ⵤV@o'+ -FD -8s~#JkPC|8 ՘DaG~㏳S>]\p;^`U_$>=rn[(YPZ!'f0XJ) q!pK`;|G~\lLkD] J'},JkT;-YyX|Iw),߶|+_ooލ|D0ל0礒('Y$<yy1{|ϱ?9N{DwpZ` MϏ"?B>e ye y-[ȳ-[ȳ-[ȧ~l!~l!ݲ<޿@>eyeye  Sϛug[vg+[vOoA>}S[vg[vg[vO-oB[ޢE---S[g[GA~kC^mubW#e]W]W Ⱥ*K^aiϐW[#cA5W[)ljTgemWCSؐW[OwNy5>[/hjt5>j?}G WDkȃjK}5N}ue뫭Oؙ{Aڽ+\JAΫM5E֨ -[= ->sM`o ~J=.fC`S -g/y?OWX?y6j SNe|6,'$ϫF[A'EKLŌ%bFJiFJBb*'$(%b: -StS1TNG)15MG)1QkLQטkL|5kL|5b"S|Ub>*S1uq>2S1ucϜ,ǮhT"S5{G>L4A1EjaFզiM2_?C^ -FF&#'m:ߵuBg ^)NwiP:?K~ .*NwiJ!*NwiPb^=I~J~j*23=4?$Ӣ4U?ֽ)}|½w{=|jL:>cta?Cr&;455bjhES$l99>-_z:JX*]]&+IQ7,𵧟,๵k{ BzWvb4le. ʢqv=IOnmvIߪyFxPyet^Y_ꂲF_2lEv @١ .?p=g4Sey94VO[i i}ce yth][>!,iz=!~ątUI RwMj/㹤Vd]M`%^0R%u* 7i' b쳬ϽՉ,EZ*jY_lx4 X VIKşl=&d^j&bBaQ5{qj%R^ $.>[bVͫ US {ر^ޏuODNITSb;3%niDMJq_nl2XllrF5p;V#(YTa{(=jsְ$4v\3{ֹ|]&ġ+iPWc%\ҝ+O(+/k9H _^4?䀝$wf=gh ՜Z DN0m,pwH6rMR&~ZmCYn4&|޼^4T^Eq'f*HHu1?X;_ -HR|V# YŴ`D,`*FHYNF~yٍՙ_g³܎jyMwYۉuXf@,(l;L~WnYhsVWJ͂Kشƅíj^I޾'Ǒ6Lߙּ6fW5X1B~ew)6O^}S*VKM!zk ́qϙvZDyTwnǶGO1+nd{A4̔S1;#y\% f5 ǪH(VPBeJ_TtcգbL\kVi]]=KvZ=Z?G_LKNBH|2/iM7ZғT7qu3:|wBSK*B3mVzk-I[T'ot%Dw_K2ztQ6~wE&w;p/xݺNrZ$wvZm=l{Yʰ@-R-ŶDe޼찳 uyBF ̀ǼU:њ;*J_)۶7t‡mرy;B=w&fASdQn+HepYELK*#+btrv2iT %u0lV;F}$$7n,.sTuh;7 S"12Zb@(Alg ?}XݿXm592Z|ͣhs۴x7WPZeΐc5NG_jP;`a0M}`pܳ ڼ_f?GŴȄD 7ұbn;`%H' ˆrh]P< OuǷ!o{_ fò*% -ʾXmܣmOrc,5 VpU AQ -Qro3S}sbK@*b ] G*ٯ21wtf#12jE]~ŕ޶Up+y޿0`|Y}'v~Os P}e1Vc/ -?whyhFؑ6عS74MAk*|-!vN;PU\yhg3яXGLߙּ8+=ZEtvEgw?bH Ei~OWa~za~hP4ʛa|Hc)e ֻQ{xCG/`-sι*[uFڦsᒼ#vPq?nLl+CYEy<'QIAފt3C%VC̸fS@%MJha'_4҅x j8|$ڳfK|nK 7 ヨ=ou闎HN0TmցY ot{Zo{Gj|X.YG.;&viR5/V3xo[v;& i8h#[kO`8pH>/&|bc,/,a^|Gƨ{>W?Q3zl|Ϧcw{Ro~_Wo4!uٍ<¢qп7_?W?/_uΎkjE>ᄍ'_? }ϐ_Շ?k>W|__:g_|//~87O/{4o{ }??K?>s(W/d_7tſ?_dos ^³Ȣ/~bR3ަ֟mſ?/~amtm7}њW>m>?%ӟyX3~$/n':tĖ ^g w:fJ6|{aM)1kFoݨy5M{" K"4r e3 SAd;CV+#R2:H*D=b*,Ey 0s;VDH[jkJņBgLע߸Đ4-.|WE; ^`eJm|1b/{#3+BR],JM s("J-Vןr0u BXUϺ&ҮrD wJ}uso$`K@׭ Qh`5Uݻ2AޙxVUS|T+; D2=;#$G%$^74U֕xnCtJ G-Q຺lT HztrWê6%H+fi y|ӻ[h/ld/!{U_U3vw&u8Ԝ$7 ý4.j %k= mՠ(B>Gj7,J(YnuItNJMK-4tD[LhxPL@MF3ӔiC -^قtٽ暠e@Q- 3s^,*· w䪁_-pg<SGQ4l޸k񾏋8~|T$*M#i]G/75W#3ENA /*KjF>],z[|LE%ih8:ST)H~X(uSg,|uQ^1B<)?tw̯{ ^ej!?B5JՉR_Z0"WkcKfMJ$$RG!^24lf4 v| Kn=20.QԽlOF9:0hsoev;zOd7ZΦ5P :{KVd1YZ> >XR0.T yv)"A!۝Gݶnx@SxX>\{dڝZnqBY]86<ֺ3Py\N32E0h@NWt|#'0 -VT 0ovi|dg'E4u0pboD> w˝Na^XFW4KLB %q 3.&'6ĶpIT6^[/~Jdc0]J[\檩Nm7GX|g|Wx -"U.xiN/%8nm*m}u)HaCHujj4( ŎfPlhY%@j/5|P(s4 R5pmܸԽqjNW==Q6 k d@~xY$ܗU^LKmQp,oxμ\ y(%>t1-{7eu6yϰD=@K/ƪ UBEQwZ;6j۳.+t`%5P?#j,A G,74\f/&5Uv;y ೕbWmrS̶.!ӼY,?OAKW`J-fW>"YZf,_ڣ-[nSnY$D$KDӟ>ooPucVtc{]!e>Q*|wai[д_Um͕CZ>z408.YU#"PA^F}UdM҉ʊ40(>!Ij5L6Ym2Q(EZ!R(C"6\ĖOSQDga’zENRbp=ަhR;D~ -ķJGJUQӏ"eU%CI9>kK8e 8lnޑAE4IcgRnfU, -B@ę_#L{crL;Uc= g: -pQDA̰R?Zn직I氓GH]qy\-F J>ՇzO1ڑjK-DZ6v_q+7ahȱ=u𭟄N!"]*@>W¦n:mzz$jAz`(C3[ʿJ'ihLXw-Jř)G\LH,++PF,z3Eqx֖]DX-/Z9V;S?)hшvhE"Hȶ.NOoޭ,ÔHO)\l -reGwLgqU`WI3,njUie}C"&Lue) jP 3*Ӹ|m_Y,'TXa^tAZcT2ڌ8OTJ/);Y ןPTnW8GIW2(lmv8{~VW1\g!lϼ^:`b FQ\*dLgi/,N< + $j{srSWb4.x(5$J󉥳A")ǍlŒ>u+i5)k*RmSTQך#;"> -0釯dSjU9EMzSyCY-}l̛rqlӷY,Zkų6\)πZ$R5A~EY*0?ŷv}{XӔz #eRV0IZ7(̭JL1>\cmWVUD#`KˠOAbdogUN|7AZzNe&-LPB- &Vzq.fTuZV L ,$Zj=l+X>I\$g]l9&=^)1n(RuY)`(ݽTԔ30 MR觊, x_jҶַrȈ(3\|d Q줚{P8׶FpV vl#ekÊ%e4옘/1jӌrEBTnV> 5R': -)KlFt`"Rl%lee]qB0u<t@ 3L. \fZ3^K*ద"]\J' O+*qߧӨSJC<_{x DQD$UIVb;")b\K\F;mA.y0MX܇1ժ3i4|rPI^*b_[8CmPlU/p$R&^UtK9i7Ͽ DhVT:8 W<0oaR;8rgKwZx:2P 8%BY8%3}H|+YoE*1NQ>I60ьؖ)r pɶzsgj{Ж^mN"cLD'~e U-\bXfFڷQyEq(/%&jBҢv@?lb|MRqGg)jr\Ȣ,E9byː9UCN/L²J(+it{S$A;e(R3NʣԶC><3bPӯdΰUi>67_Qh͔1hakW^V\gYi'!*(b,pZ)7}"*py -_8Sf!#@Z*T)nDe&l'T -W/ fzH4ͻqEVҽ -YZcJN\;xת2AbΕݤ ۼ/zBMA tQ 'ޢԲm^dzB( 7&G"SIç{{TV hr^gʕn^k u=Kz r)3a+źSA毾ʍ]m6‚㝹7G]e)K̝30戤f$"$U bw:luO$,XC~%9/r(VUB yWrp7ETJ3>m]BXMnio+,x#wS4nRLlL*_,iL~ OIFo(Nd!Ҙel -?Ũk5>iE[ IsZwE9WS՗/#x][զ( -yzsbJScS+Zt$ -"QI0T%c,MqYf]8W'Z/u^ r;p;NuDԪD!u6YEp~Ir;x -׎:etNk_[*>>?!tՄuD -طn7'Gaz+ڗWVӃM@ͦV! b#"Ztġ#2b^_Umd=mAY= oB"vK4vBWcCeoW%hS:f#ʔHh|S>K=; ^k{VD.n.̲ YVIKKt,;SU0RdKMdYkAќR8JbޗwCN s=i*Vng1vnKڸ `b@qԤa;Ԃ> %1hW!r&R=^QXͫ*wYqea -#]][HKfUYdk"m_ .~}[Fj*DyYt/Nk'ɑaT^0 wJSIxbc)<iKA틗ՑYQU5Eq $WJr+/ʃp ]Pur`K՜bt>,Lb^$?`U4P @J c{"mjiԮi\UIhgqYrJ%ȁJ` [Cu I2P.e }Ϩ$_/Xz6%:_k7QF U(,-JpŬխW3BGH oBqlSVå."BQ/5/hS8W6/3GOdVo-S""KqnTʪF HMpV#جSD03/QNb,CDmWiD;Vvc6f]EK!v,i 2"V)0kWKJNtaNZ.tsi|"P[ M癕kQ#&f% wKVP3B.q6Zٽ4iU",V±mF1NltXC hK/71!RXb٤4 z=Q~ԱLBw'mCT~:` 96Ke/W"oVI -?i|+MfsTę9; ˉs^~Uq.ߌKݽ -Jǽv6}"Пn')S}/sKo-+SEMÅ%CjJ;X -}Qvvks| ZLXp[0U#/FEcJ+^?5*=83H)PUPFZ8vfJ"A_Rau s̲{wz<4Ji!u)ʰiæۊ7YlNtNM+_u Yn]/(i]{H -%n*qK5zU|W,e᠈rzT~=lTz2estVđ2ߴ[u;mM968Ʃ?6YOz+ê"-MTPv;X)L+=0*4t듷ue˄QBV*Y"'Z8QXvqZڏ,^Q2F>/ -GxrZfU$Z8e;G^2iJtWgqJ{RA6)ʥZtjҐau^nC{GAq.9-LVHߢi k"V/Z{G !h%&A6%#Lu$Rc -j'U?WjVp|'/fqu[f9rFy pYbe E4Vsڼq%Ra0wew; ?Z tB 48[#J<0@/>n,YPEvuɢAFkS\ -T4sXͅm//(Sv\z I1Jh~PhT#3zԶ@0L콅H -#x3zXtpMm%@N[ -h_MCDWkct†kbTosy) S_ܣ*)]1КKE򫧯DfjԄɸQjq-Mx(딑@j68MQhC],_,S -P[w{ PdGC%Z\)ȥmjZJi]+Dd< hV€tF4̧t!!ǺFy2if~b$ -Gz~Fl.Bջ`n*D¸:7ɒR|}ZYvÍh@wA=nmWQZ%PyȰ2,{: L։@&>@VR,dȅqI'l=@Fm& w5X@@FE [2ȸ@v`%Z0d\ eayȰ2,3 'GbS3l n {y{LrpdH[GVcd<7 9A&sf#LARf2 Ȱ2+Sx"PhdU2žoYYCi&'S A& à@&X0FrBU:'Y-uFU~҉ eBU?d AeFay#jiY-AvO *sBU5ZA& eDax#Ȱ2,3 AVigdUBA#(??d'd2l Ä ''6 Ȋ;\H +Tw2 AVz12 #@a-d& OYBpDtu[ԷH*w@aDugJ. c&dz( ddis~ǀ +2=dn3LwN{"ȊZY"d@ax!J-3Xs@uÀ Kc ABFY!h="0""IAV +Ba +lX Ɍ +W{#0Nb1"겼d' AV<#ȰM2F OYQa@1L,+U,/ AF΄ C 8!$4"$0Dd:iDc2v #D;&gM2mZl q@A/{ kdidi AVQy!ȪVAVNdoM2h'/80!0"2ɧ#kFUR#, #AVًvLk@mdR&y"dd27 0!Ȫj2iB [<"lL<dm̠PQ7zܻq@/#gB W<"0"vA&"AƳd8A4d`_ʦD6L2ędd&Y=A 0!AFrBU5}2m^2&3 A֍ b2yo`$a dy6tH > d#q"u@ KcȪ6#L/D H CE TH dؓ@H c20a Ye$u{rԙ@V;FYQa&;@v{3 7I m$a A 8d d2< d=02~ -H +"R7S{"i$adfd: H +"@FE c0Ȋ:, #,I r )BD /23 L +xȰN2 LGdEm#H$Z)_2 L Odd:s$_2~D + @@ OE +WdLda Y1}$^BD 6Ⱥe$ V'(tu~Ƌ@&D 2Ȱ dXg,L D R'Y9ۛ@sp|40Ⱥ5d#]@Fu&)8dD#, [@V2o֙@e& dXg,Lgd*wp&uH *Lr iydef`IY:l}$1 dpl&O֙@&D ә/H|$ayȸ@VȠM2Ⱥ5d(|Ȉp de;2KȊGNL #"qH +KXI@VJqT-O2Ⱥ5d%OA ;_2''@&ˋ@&D gM2L #R.': dȊ-#o@V5d^Y'dX«I c9@ "M c d%fYn L #" dčf78L 7L Cv&H$q"H KH K4$Q$q$х8^$AY‰@VA qI tO263&ʚ2 3 @8ȰL2^2 d/&ah {y* #@3ȈldX'd2YG' @\ @VL @F4i =ѱ<ǪO=3Lhq13 ?eacjcܞ7va⏁|ucb3L1?F0l握=ǘf?F:xfX?u2d!2ǔc\Ą7~n?VU<ǘ1*G ?c|1KU~idaL>k?ی?<ǨcD/1?ngQ'9ǰ2T3t u,fC޼,e3̶olP?FcɞcEO?V"'17Ss)f'c%+NJH^3.?~U;~L]I@1B #~ N2w#cE~L'~̚wv1E46?VR4c$oR~EcEnjSm%~ ?=q}?6[B+%*&~?& ?uƏjF7~sƏ)?X1Y' ?8ǔMcX1?eƏዼcEX?FgQ(jc:~̌2"Ό1Y\JN|0N1 }?1Sg9}acU>M:t',OXUsEcUԙ>> c*Bxy>c9Ǫk*>FL X-˃>ƙ3}‘{*]}=(|01Ĥ:ǰ1,oX 9e}xC1oN1]D>c;cc4!>cL})gQiS2J}Hӄ3x?'%^1YG>Vb)F}I3HS~o':l&.Ez>V2V15L1R(oΜcU1>GM*`cU^HS"IBC1z6fo'1h9xǪ(#}=aYH2ǰcXGz&,O#}Z#}L O?{.L1R/XR>1M3>F^}1g^1Rr>&>&B>Fx陎1F >{0ǪFc~T3Ǩ c,/ED|j6~p2&y>/+ʹ1#𱲭3|SW>Fh)0^q$SISj\1F[8dcv>c&|+cu;gS >?x'_/k|do=#{Lu"#{ Ë=&ads14'Um{IdILqvGgu5K;WLRF1ʑ=M1I+cE'z#>JG -V&,z̊Z1Y',zLDQ23x 3z[FYGX۝1c1tF/&F'/XjQx@ucT2(yǬNqDUncce @ͺOtFc*:zdc1 oXQsD5G7zL=& =fC+Rc܍=6X`uP'ro[''Xn 0o`FOc2:Ǩ}cEoO%3zD'@ǤBIq@IqB!:ǰ1Bf'ؽ]zinF>kB =6X%'1u1 3zLz̬#zL =f?+c3zl n XQ8aD=zz4uG{/Ȅ4cuxǴwcTnfz\ی'zdFB3z=fE#z,Sz tBU 71z111yBqq3z='< e ==@'zhB):QcĀg"z,-#žzLE#z=qBac8YOnDե4 豴zL=Vq1[> -$X{@1 =5x'Q'z ۈ#zL'=c21 z =uX{@q@JsD)DQO1Ǥ;Ǫg[G#BcKr1y <<֍NSHӷ=cJ1 yL'yLƁ<cYo5LjN1 nc)`d~T5O䱪‚yL'ycFX7 4yMc$1; 1էy W"AKcǤ7cg8yLcO1<^'yȉ_qQL޵&W{ P3:-$IjyR߀$D㍖eY 2M* y%J 4?F klg -c㸧r\\e>WTVV_=x&y >'g{/_w#!:@~QG6 Ejך1=ȯfY_ zvǸ2 %q̡|?0%ı{&~I;/1=G})m.wKnHϻK|%?W]b| Lgj|V^k]G9HɎ{-нt/;7^Lg| -.fںeOE#:ދ-{-ྲྀjx/z4Y^rq:F {O$bS}+K8RQJ{m5^z{s߽l*}Y9k rKrڋ:NnOd/^m%WMB9/g2(f׻^R.VSA WL'{2MAJJ"{m5^ .]g -KTlzGKLj>SԭK&2^wE%|FzaqZw$L%BuoD/ gxc_⦁26* O BP.==!uKXYtMd^z_uQ.F eܴ.R*ch]?BtM3ZW{=[~x-Ẻ^ %= J@G K&Еi] zȃ֥{B-`к -K8u1 )='TTമF[UcwZU[8 ᵿȸ.-SNEץo,K{PRBgQI|A@]e( X``4mGKoE%%qpЅn@C(_ҹ|.s]2|C0 <:Jw;ṡs;Id.v|r\/.VXW˅73FpU .AO*2EhpH~m. "cX,\(f2_?ں7o s'=ͥ+F,\ -Ruh.'ţ1Ϧ\Vd vsɲP%/( ,m3\A(v(;24\+ɥu\sNjMd=wNKwgISE|a{d.hFggYZi߽Ptzs5RY*ЉY ΙYTe\ ,Zi/ X̨],:ERռfe1Y8YaM8&3digo"1N)Y,T,V@ ENM"[hQl=:0Y@ξ)YpkHgJqrA+k d3_dUU)׆d]*,TbB!,d2$5 d5=}T=Ion HYsv&ɢ@`dRZ,)$Ku: $ l5"';#Km7`3,)ω !1:@cd6QtFΑfdn܌,oƋ>O`m;(Y5//HC@P.,uHegː,ސ,T[$T>nd5}nHVJDT%[dᒨ`@HnE2$ [юpFi@_I,))YkM2CCMצdIKbQLU[,TҀdaE YR,!Y͌dѕ|wCgeH[xwA[tVd>stream -87#K`pȐ,^?f*R!Y($GQ[PP9J:Lɲش-ij9FGARrʲr` ͈݋ʚ1$S9d)~eQ zJ256%AҟdJEؼvAɢ)+(Y~J"MDQP,qƦdq&LR8OPqS,RdJV{"',k)YJ]XFdq&d!,ߢd{غ$(YU37%-kd))w -LYG&d=tKժEiJz[4L h"Ԫ M՜ShJ")YdƘH7>(AZ YX!Y(%1dYB1Yt90%L~ d,2ůgm]AYeNqP>NplLϜ,S)n?6ɢCX!qQe -R,s2*KYŝUW}H`&ܚ-Vs-A1yUލҜ (͸iYPY(,+٩5q=XYYZo V` *뙾bpc@%j%Ё^zgdq>Di諅" 3*Iw5Gd!~➦i΃`dQ?e0W%Y*Fq⳴O FjMYY< D[gq%D SS~-#4c,lpW39#ڌK$PYT9# Aٜ`d9G2$Knb -~ KYXVeFVg3Y[H-:# QuL`[0"V91T,͚ȒYtY԰Pk`dIĒY k!kA$rdsv|^YK(=ddu\0* k ȒY 2 @dIdY),,Y@ûE;LB=~e%"!;x'%BQ/=_1 di/J-Y̑L18! ̬8hS"dIhhքiy'hH,KɚEXZըf,8!f*%3! Q d!沈a9 Ȣcftq2K{pbҥ>w?C45D$Ṉr>wc/6XTTuޒKjౖX[|:DGzc;Ҿ!bv" 7 -& c9E#=2 : c -2NO^E\'ca]imycOj븼+XIIu [ 2mb^B[Lfca@L~hCsX[ 6|s J 8Xf)!tWL;5@pݮM1lj:fRp,6^}E2vLBm=JmִXDN  e:jͺs\@ AȢl<+yFbdMmD:Ê,X['8yy]X4:=40aYk-uP "lPb[baD3Ԟ%f -$m(ҁXn\v'@mn%94, X  XXau; LBa)QF. k#5Z: /Nai^lYv0C?4: -)W!c牺дpޛ{E^m%sܫAY"Y}^A/x -롏mJhu 1JV 9J:vؕBf3XgGLsx -4gЕJ-+ fRxgW-^qux=^ML --V,bj+؊0?_(T-!V[`+Sd mH;Jeg`~Q.)P+2: -SsċV+Jz΃h0Xt.gu-qT"pVjhe"K8arr^読{K*%X8/VbWx6ʟUhn4UfxwF¶H!.MR{YUPǝcLCy -ŮP" kxwt - ܁cWpWyœˬdaP\4-OX"Wa}rUQh3O\Y'8J#=Wѱ= pۮj+\e,p z\_Fk \Ex]g*V[%-}pſFl4snj -[8[*AVI.U8}'Utk*Ds[Y^ԋtWOlýA3EV1[ RRX$8?FuOHP2jARI~=c0{U[GG¹UK-:^]"Uh89ʖ zŧex$W!U[ v׽TZَ6ӫSW'ZZJW-1UsѫX@VU4)0B7U-ë`Vp(\kYJWhA;S\mV, WIU[ XU^EGk Eҝc*]a1[<Į -)U[ %t'8JEF'tFJ坍wAWXy - ]#,*3%&vbw2*]! u1{aW+ibW U߉]eLN"EnBWYGzuJm2 -Q:stb,2JG1.:$ATHQ]P2:yeeU[tv) v*dC߅BP'u]瘱!e2 -#-]ڢzvJ(plذ$]utK*DN2J-uXɃU ]ZaQ<*qyTYRp\m'q[WѮ`UԼO's}[hailPwָĬp//@V=Vu(@dU)|nv):*]hUK ZXkn_XUjx帿R U}BfUMs:J -mRf\SK;&U |`aʪWEA86jno`Us"rc`O; &59jbr1+&{;1?DV:5>WM%im Mk ]%aR, `5T!g)2oLJV%ZVn9JNvC%q$U3 P[h@XLvg aCj!XoGD=F1NlMWJt|mpjGh⓺vsU\,=sXZZK)oQƒU*5RI J8IgM{>ywVl/ʙVKUg Ic Z DbrXؕcЗxm|GBKU fZ -@E k(ɚn8=OTG?~ -wTD,h^N =QN^% U#g}2UkWnf WX)=*vV27}>JEPImQ8,X廉05a Kc/f)á+j(bueՌwSXx~_2i?Zsb+ܛU-9b#XMb\:U}>Ng1nE˰%󓰐b7}/!K5*UPmцƙ|yUƾ[*[@ -N -ho~KO_硷^\q -'434Rz\բ@sFEl~Oa7:d -}ch[ifl%4AS8[SZ^hK'av#_q[{mMuL߮/BTafF\"b0嫅9DZR[XlUcʇjݽ \J)VJB?=D$aŮF~Y" -։fݡdauFw!F1]?;YS!!ZZ#e>')Rj-BQV$ -#̞,n …jC++΃([2ymRk'qWB_qNU!MFxI"aY@'fFSY{iFqID=Y(D9PXۨ0x\Up&Q*dY1B.X*ٜhۮ۩ѭpp(MyvEwqJp}@^oRӦB9XA]D;e.%IȥmǤ,VT.\[P{Sd+(R^qrDyYSe ^8"ݔz,qQ=R,t*2ч_Y-OumJQ RwMnvϴ =+܊)r46ߜdUk}IXZ iszwbv鱺#-v ]%%you‹#ҮJ<,] -}֙Y8][UG4w8JcP p[zZ>NQWm"dKnR\RFDŽۖTjAZÔo;;i'}uFO_яdq\cC5# 8-f߼{3mBeSgN9KqXMkaλr[ݛ쥙uh/ͽ ) +͜NT!;r"TWLjp|cyʝ ; {Xq ;S<><qC>2R/%[Uo֕R{ -2UsE\^2*Ÿ8_Sg,ؠ/e㖦ID..(7ʹZ P{cN^f eRWfp(EEyRk -jT)R.[wNOGZO!!m)BV\÷]y|l'"uxMQy4 T[Z)2o;7c!MȍFŰBt)f[) lU'rWlFfLJ 3iQ!Z&NFz]G}G@qELZiˣLڄ0E^PÆA"lFRO31)²ZhEwbfjSԔ5%rԴ})Bϓ&7L@~+\Қ%:[d)i Ykgx&8N~Ra |ω)KcH;a ζaazs`.RWw g4!$7.%oEH} "˜*5)_8IKk;)* 3f Im v'l -Z^L*]ߍwK [ib_WZ^O'Xi6_e -ӈGއt5;<յrWܒil.T؂Ʃkqn)8*w͙D`@zXam*JD(IU T[uyid6LT}I"@[PMݕ=*`o/mQ6lL.H50c6ZNSmCǩ;0!,;1&542-iDeo2vKవWe((6HeJBrL@BU56=I|,~k-ޘvC;^LT{ -V"RȤ2@VYpiQs+BUm'P*f[ f봤౓z~ԴϿh{+ ubR1c)7qJH ~ UKN딆)K!=1?{%3'bߘR{핂F(2`wF(@]L<l!gw(Q I6 Qiinwnp]jJ'μ6IY=ķd&\&(+pQёPP*SSB}Zo\lܑKWў}#'F%uy5/j{Tg9[kLD=gPui]cӦ%+:5AUpIܫYU(**j Cn q| PmTAIy)_E֭Z,8R$Q  ,DMO/7^30B4)C;pJS(TTj^T:Pp_YL3AA ,FCA2=5Ǎe`3]ܵ]\0k3xW: F*LC;gT:Zu5$H5XQBi7aŰY?y^7U=\VO/T<*I8u)iu0 -:.bhrza*7*xg:!4~Zl%X-j#@uou?LQXZA : ;AMA_yyHC"W5)18ޛ6lTv8BKd )QOMtb鳀t;fs8S7Se./jG\N禫 l10."k.yrs%c/ Z_~z _3q97ӈT_[ DtK++KM^ٓ|c.tX9Bch'@:=?†==H"BZB%zBDrzRRtV,_E RB{{ aOUU̓C&5Uvf΂1_$ԫې|`ؔe0 WlU bhrAݷ\K4^|8larvJ"mo0JYp - -F 9vU@RK@.z*u1VJNj_]:I[ɒnU Qs}`n9HTD<0Va;mPCM Rh,PlS3 Ħj -}z3)gjIeFǻ`K9oyCn+!'Z;/6P 籓gO Zk춙>WRdܙTP -M @6U>A`-BdvTBiBv$& k %հ5j BUx(?}4ф93 :tU(WRT=v@&i+Z}Ipڨf`* EdNž7L$2=0<vEŜav̊ydd7cQ(k;[x?hYՇ[j\&ؙУ?v\]_Exvk\6-p]7b咽,;#͗X-y NS^UYr$Xi#YӅxކaಈQ kl>;n}>m˻Ϸ6NlZ2a}UW[ k4REC+vzx?¼RNH4_n' {–sX+l; $/vv;9p5 -ڦ ֵn,-A<`+~l㻝r rT`^!o'M>Fc1Po~oFhCà^A }w/"S5$zQ| 7=Nl;zےnjETUb~ڇX f;0PmM15*S`=ƽMr2ք (v^LڝgvOJŬZ}y* %M*Lzu !Q(}#h5b5!/KAS_KEp_ojxQuJP_ oJ8]T%ƽApvB=\4UvߒO8BMXхYskBzVyCRN`ɘݻϴ]i]DA9_ 2@ r[7u?lo0gTWmv˥oT\ h[,Oe~7 $E3g>n% i4] 4QTd%g9o+}ٰyl_:pEx…O },TkQ<81כGTCęktzQ'^>cćO϶|0f޸ uUΣ_Ec[hM{@"?p]uKYZNxj^ -XN3ŵDx,g47_ b (ww!T?i$TXn9XT$\B8kf]Ji;anZcZ>F/=_aV4RK.PfiE)wq`JkNV b*cݴrӚ=he& ʶ" l^Ui - q㚷*|O1R}JKS -;Zџӎ _+ $J2'ۑ7U'ף'afPbrZ=ꍏvI5ˌ)WW m)e5{r -U!*[#=Nv_J<TȬj+41-{5NOmWT{wk>V۶0'imP{z$x|=0@.JmT3?SZET7yh/bOׇ71t]6 m(8Y*eC6dn }-űr48?yqU[6۾_.R]JavP sK]670TP4D.: -<7onIFs`[mǽ6'Sn`7x -7'8rN'\j=|cv#>;\q[饔 TlO@)af -͜3k&`uH^fFS*] Ι;Q[I.E -GX5KW3E3u:o?=yLCyƍά,7VvՀ͜#ΔjfGtN^|9vN4~v^ۣ30F!ŠE!,{gk#*  47uN9L8eeZFL!4;7M R̷ږ(scL} ֶB[U3>,L 8zGFV -qk!+ɸ&'n^ey-T͛ns=}>]DŽTk $*]؅V^e1%#tg̗6 -jyf:Vqzqj'R xs*,Ҳs gw@!y}L(f~s%7dhn5cTJj.H3"WP3/ [PeÅNۅ+ʦ_u.\#qSx6$[շ%7=Hy{ɩ;}@Cm##nvėPup]귿+x>$BeD0yMSR.ˑ>TU6I蓤(w{&{Xn* Bӽ=K]ZJF%%,`Q^E0lDZkm:c1SXxhX<|pVf|heFNZÐPr}T\mY!! {mn24v+Z^*5R-[8ubzX)-4^'Na赎,/*QibD6)7rKč40JY:TZiS( 6 - A em9P3Fz%ncxv -u&{]JQt'ceh5s+6;F:f] A'_^Z+ԁAQ."ye9+pvgV!O6wAUG=9(QJE`Ki׆%^ |(=ᅿ}x6؎̾EY"nBBr+?/bnу<o0yIaÕ="= wI=݌de@:V>U;Kd$O.e.j4.Н>YeJ/{] -l`mqHIKVڴ^s4E r -”7 5cC#Cr7Bcb^YZVS8{@z}jؖ m( (ډӾޢZqZMQ*Zz)iI}Azfv^*v_,5albւê -BEã㪻8D< \2"^xbDӂK#Ux#+rx(K/O";E$/2Cē{=KAT%!)Do"/D$"V*Hw"J?o+D#2܇J!⡌+8CēZxL&I(-D< -o+T'/T"Vu_"=ej_x[D:O/x` Ou%m[x8~xdi -4}xR+OJ% x+P>DN$4 U"wR%:_"RRJēӗ'p*D<\>DD(.DO&♝BēRxRD@~^ģأ}x )ǙD23Sa/O -2/) u̝3 @<|xR+Cb ( (M[Q:I-@< /83OTSxK@%3e &t@<\2OCJſ3/iWx_  -ijxII@G1q% jI@<)_ ɠ|xR++/x{^Ъ񶒁x[ UxM ˖O #fZx[@ GGqQWx= -3+ OC^Q\x[@OD O -%IVV nSWx 'P -3?@<{3OJU J+o+Ɋ~xz+O/BiV & -SaG42@ d ^RoSp7?@<+|xg g~x+ J/)EuIGxxZ}x8TxV%g%%@<*;O_[x[@OOSH Uc)@<)FSxjK@<\?@<L Ϭ2o+UqxXx ?+͎87F;xWx~x<t@<7 Óq/ OJU2\SldPyx}yxBg=ȗ'8,$|yxG|yx9 -oh;A(<<ť*_4< TixVK^ixLK70)E 3 Cã. - ?4<-b* O_?B|CÓzQ48< - cp/8<ݍ#,)Pqx<tYdBAGDVqxtQOߤ?%j!u&]ÓVJXT;B5_BT,_G%ZpxA p"2ѣ'9f^UuGIюã'?8<* p"9_öPT^`"CQ iiB~i4cUefgOiS(4 83\/^ᑡ8< ?8<"X2 -gF8<g^8GN)[qxTS}px:G#ZpxjZ8<;3_^>qx*>8+4< ]1ixԡ~hx* .c&/ Bc /4<&1~hxAÓOY4<) ŅlЬhx8SѻEo\ /GyS᩵ Ek~ix*64Nti^/(4<~ix6.dz.@_X}hx$ _٪u1hx>4\.4<)_*'4  GBf!|XxYxzF+ j BCa - OJe :[~YxcGKaiX4?TS ۗuBe 4?_£䥠|QxRPx|/ -O›QxXXTh;($VBP]`Ap E!JAIf  -oೠ|Qx7ƌ›Gl KjXג(<Qwk@yRnRg8Ix72XSMxD&b$<vN“&!$<w/Hxz,|$$<W^~E£C3,$<å@u1^h`($<$<ۼdueD۪I}%=2 BCL$$}\&4gBJ&m5HxZT$<,D - 6&m!$<2 oD"!M³%e" %I,$PHxfuGC³.L{-$iVvVB7 K) <GZTAx|T᭚(* $^R7V+wlAx'˄/e[Jm5@x[L c <)+ϔ_V3c) eQIEdEt(~WvZqG2rdѓGg(}%"+Iv9 J-S@vڃ]9vl#9ŎZobsyotr8O"ر7OR\FGbiॎsj=&@t{/z߅AˑNG7NN7H~ȘnM݅,Şkuޅkޙ@,F6ŬY@(ao%5ճ<ǵ tR tR|@ה0l@7mǒ@)8z6d`Z.94ʅ?»i @'\,+\fe&- @.? @װKsj??qkohInٶs͢gI=@'8tmPuV]ï!E3݉ A:!ʮ ˨ {簒 ؜9ɽ =}N>}?='aԿp4乓6{.2uwnΉ(wtnc!aD!i{P{3#nnkF9U9Q\9B z*WNlJ+Goʡƈi:83">Gd9=Nwgd9^B&K=7Z{==/{ۗ0X\`9㰱ÒRWOY>ٛLNCog嶒r[  Pž֔]k.ub?,xklbr q Um%`9bf*k*Xt0#s, jy85Mc+qi͓8Ї^S:+_-jPGБjuȝv*#9ZN -6sZr+gD -3Īt!R[ ڗmTSx?-z7'mZ.) -@5B2xgEA`5;iC r[ > q -V *1M3S0ja;J-lw4Ng~m3`9)8OMO ,X E1@Ym%s\9nӟ -|`99X+"V̙,g6AD9-JV"ˑcz ^VE,LK:od<IO,!tfEbd96YW Ʃ[><؛ue7 ,V0 5~d/T3m&5XYoDr͈fN - dPR>o t"L۪Q䚐#*RLP>"'9㸗VomUdMNCyJ3Z$ %AUT[P䶒)r[ ^dZ3Rl} -,9Dn !%g?gjP2F{J99q |)zwm[IUmPNGa̙2@Uo5qf9)kJӑI V2@nk2~ý5*Xp:Jȟ+; < SeZw{g4t^^8|+_4w߶]D8puTGm!Q8eN潑q Uq;l`+޼RIQc"VymXC+'_L`[ؠ9't? O] KLpwg%D69'fiٟkᶐpK 0xsߢ];04 Jm5p'npb pʻY=@pl*3-$-3{)ؼp:=Upڱ]{cᴹ۱]&{ީjoi8$ -@ ۪ᬚ,>j[e0ݖװ#;K}6 -kÌ qd/0k S|`8l`8]~_ ->pIMT2S#"ISep賒Jp -Z`qV2!ޮM#(?C󚷴]p N gi#P(8|TE)d8TM Gq6pVwW4'&}khxV3d[ I^ᰔEG8!c/#:/UǬ\8l}/.JͅLSps gf+n+̅#^Ow hX8 , j$ ~e‘)^aQD%p$I*o˩p.+T8T,*6c2 -Gy+YIPPT}\p7kS%.p( X8;^5p [p6N c(e(w߃YN*NM͡pn@l˒3AAeDf,(f>BX1*)Oi:9ΓGl-NaV8s_φ` 6ͦ41FQ{ߕ̦% !䴟\6 -M1fo %R F[ 1xl?Yql!9͌Q熱)`ib#m#0[N}D2 ƦĆ?c  7MgKUg[p~/RqZIتٔbkQUXlKņB5Xl ->kؤ^4(~3Y)LYl JV|5S[XlzM -FbwbkfnYPl,Ql (6)Z&V+4\XPlLMaCMF{].AJ[=Pl*rؔQûbSQlņ,6TTؤZT&hlRlcvɖW'kt Æu!|IT" AooX+I/Pu3b'5xƆop 8I M*Ecq2M"yظņ4YN՜Ŧ\e [#;b0j4^GL,6XL2{st&bkғ0~~eBM5~DGM{b1 {t'<3L5pM|ih#36͔YlbCe,6)fI1f5k7XM/}VfشYl| bk]YlT+ pvؤlHb2'2ϴI|snJ|i$WE~d DnnYϔuE=7My33gM#;=fm۵`ltoK`l -^ ~? | c3rDVal8͇5h -wpͰUal(` 06dalt=!06\<c[all - -S [YR`l [#rwckdケZ%`l=7ԲBcShc -%p -c÷,6 Ʀe hy0k:czˊj j_i?(ؤZXlT5 휷c#M:hlZ'~ p86xǦ(kc345h86}c3cScӓnQG=Sz<6Z -[`Y5&Dd֊H6- FlGe۴*dӂ&dn}^=ld/DBi3^&nt͂֠uD~oNdSBpd1-eLXK#*hլ3MoRP?HlG޼ 6W: .kDbC(6q -Y ;Ŧ woXcw{h&VPl=EF%%(6zgoWZFj ņ-Pl(/tv:ݭ20DXo8 -kƝHlzbAlf>< 5f2-9U۬ߣsؔxshU8ll m+^,58l֌?qؠ}sXa pP2ob(6z~s(Un"9XauV,F pȚw<=z O+"Q6{8cVx1> 62i s bLŸ -M*AHrDR- b-S@ljaQfJFY bCe  6ÁmsxV9sؔ!6J`8DҴ}EPt?lӯ|ZV$SV)lpK e:э9+Mo9@l -Z(@lWM6#:&Xv^6FoFԇetC9#DmWW`ۃ勫vxv뱙j[hСjy"3 T#="Q4OM||SNSBB(mYjfD'I HGn?B'h*;g4NCZSiK)4Sr ~v.P9i"E,FnT<4z{wSϫZLNSX*rǜ#̚ig4l\v~24,KT<9i[HĴ%0F^R-j2.M_pRKS h1 -M KCJ;n/kW%ѿVm洖yI[bPhpF)X_GHSQ&HP`A ocTgB;Z*Nz/uZs"ѓK4k.DE#Ԯ֬!92 ywg7.|4mY ` ; MlLˏ;rr;u-@ -0@/#!HO?"d5!MO|4y[,|4ml >ЬNI|gѤ! >;/ F_BH+ -exDenҬjHSGSTܼ"m -lѤX%%LG5TB)Пh~u^hK\hRh=FqW:D/s<sc yh]!3x4%Ҽ1TƣI5_ѤLGGbŌGC89P+)JA5D>`ゎ֘ZNlњ$+y:]|1%Ѷp4m,mg:8vqVNGjx 爴 hݖ֦T$M`=#M$ HC it{~^~ݹ93$m{a}fHJfm5i憤iL%3N2HFG}HS,zNdFBn FThJf&iCٞ#PzHj#&z9;# XfInsICEs@Hǭ-Hnd:$MWqxؗ"-EH#~0;i&U!1r}'IG#m!Җ -%wA>8x[!Ѧj'l3 )K`AI},rXMBq"/@Fa8./D2@g -F9GG- L;,kψY!t"ɩy~޶/@Pd=3!L BB~2!M4B(eDujև2k" DV2"-Hu 6i狐FU#! ƙjbGYgBYEw5FsM'"(A3i4q 8"-BH[bdcztHao0..>)O48gG qq/KhࣩviMLG1;h*~fBɯ hwv#no, sM%8m Ā ϙhӹ SE5D{e\q_~w Mu!iR.U -I#O>vL0Բ">Zo?OS "iSZ⛪yE=&ڎ䠳8n;ڤ9Bm;-茸4⌎w*{蛣6?)gFZǂ -х׽Yjj΃uenӮ>Ԛz`sZxj?smÜ,,%՚Q:QM&Bq>+л<h|\?sռ mo,Gn-ޠ -Win!gκt*cXU>J 6ΏpZGVTXq{QR -qdh++TRR`wΨ^rmSfS唵sR8kKyz"mސVLH!OW\69^B#!^dwr]pWyf4kjm_<#M ͭm(lq8_,ը-L0FzKx\6` 1R]ö o)cx11 @OC”!.F5U;F.< b~]mP:T"m5N#0L3_"mRY8Wt!鍦Y _€jQ =Oʩx2 -O"%!mo;|`)ϰ2NͳլD"}UT'CUzԙP? o_ u"t(K+gEێh>'  -x^)*XAfPy~<ޟ -A[ ?gzM?7䣼 s2jjͤCYQ*BL3g޷iACh5˜67{Px?qȤ}VH)-ף_Ri91:P8e~8enTV퍆h[P{C߇LfEYJ\ٓzm*eUDM6~,tx-"RM* T u&t)OX>vjT6Z}3ls+v#Z襤n!IgE- isc+_ 8ž{_V6M׃ŻVc` P^):?޶U%عs_i%M:%tƳq†~uUq"Y.: j$Բ|Я ͤbJKc_RXf1)cf'5WR -hK7l:Kn=[7mi4|,㬵4՛uD]6 o1|SlCA3- 4IUۚJ:g-yWԬlVs43ٺok"V+wVT*{u$\S*Q9eB_VqPX&Zh<0c5ɫNPc7N-T 3`Z[ pV,E®oSH4NK۳cI_Ÿ֒Kљh+a݅`uw)'~ =iP%Ym8P& L8@*vZ6 U"wEq{?#~H9muz,ػL#M՜ٶJfډHySbF`J*[N{tШa+l -RJQ~G0ݴZGOYukۤU(".~yy?tI x4t3`K!G}<>T"+<=^a{ZIҙIp}^0fUG/)4ڀƛt7Ѫi7eݤ oXK6QvC'ΙWGlֱ_>iϒc * AM='dSx&6_NzJ,&̟iM;C_m)vQAqOWb[iqX'y6O6۸F(6RW %2$4>yKǖB.(Zz [L7,l=%~F5FV222b8YI(%˻p"ĻT-xv zە)))jjk5W*ⷚy(yx؃qKAKo#&%ʖ2FmUn#ݒfu)tm!ݤ8ni[)Jweз~s_xXL]ؽrg+ϱ;/UI\z'fYnoL=)+q lf+*!+@h9_wkzcne=udDq){7\NLY_-T"hq`kfk|n_`>i ?}@W>g^ְj*֬yD9%2鮿P. ';maR6bvm!pv3i~6i*$lCH-ndAwg FFg<⡀Gsubz)2WG>։g{]?>kxpR͖eQ,>lKatlYQf$,(,`o+սA*7"[܏ؒr~I4o xŀ禐yUNqTCHUEI(ϹU.Du;7V m <Fd>Y,&O1û$):z7A_=zNV2Mqao![WK0M*iAʣp%じ Po;zB/7)Q"BCQz7I"/ġx2jKZG1"(xd(X -8#*9]u3xF+EN*P3o'Q>OJ'C9B$I>[tACEJ9. *Fi-T5ڈqX{,aa,;]8=P5/#Cxcz2Q|Ukc)6#K涹C( :,"!]$e*'uY3,bna443,>jٖgBe|Ի sRvU>f'I(px lTwʅn3oV>.HѺia,78eޏ +YkK!=1k^, 74Jtͻ#[iCIJԈeJhFYL8feZcR_y yN;fqP2JM=WzU|;z˻=`a_ږ4h=gU4}$ S(߾6K8"y̿Fʂi=cgQ~:TU7+X:Nv͛M4--^❳Dd'QIDыXG]7a?ӌ};9N/b7`}px021i!\@7lCEy2FZy T h"0#}>Opt?YxE;(她r9A90'!F9a^fz% ߞV'͛Z -bE,hfxL "!g8(9t(?2`ڙć=(WEӉf±Ht-YV97P,Sc~"(T98v)Z_m6^;O}=eƆ|عˬqOT&E6F)8ۤ.c!z!v>_:IqϢC.Y̨<6qD {09En3ĆΝS f9 J21〝eNƞsRy.Nn4V1"4B1荐 -|N5z,s(ݎ+YA;U-'r%څ譥݂O$n2ӗ´vLzIǦ/F\(Xs$yw^C=kU| ޤZYk|J^2Zk"3^ HSUŝ^sH2>łE5C4G" f*xt 0v``We)TfkJw<7 E\L# *fEI -R)խ$$h!QhՒMi:2rDsئ6vC$a,]c^NIa9|ˢbwHa.%(;->f2}}HG7=̈́7ܡֵAdN;;9ԎfP'Oj&MXݶ0Ya9o~6NǮvTQ=#$F|Gy序nAʛnCd߈+LS#O\D:TV9X "F])V`h6bj:/6j&TOt-۔,"au'D BZ -"L[Q <^AcC lԒK@WC/{ޤ Sf US Rj$C.2B4R&Ȇ'wB>2ѫt3rtfj^EϾ!"{?Hg{=a4\VDL|wЌAT]9h} IR 6(+@:ɞXSRROD2qz4^UxS>ئU j[E?}n HGFnA,vh8*L,8D $yu,ŘeZ^qv Go`Àظ3c- i sQeFЖ1ptJZjI[.iec|{{4 t)mngm hT[^Im3}bDrXq3TiGΆB=JF}c<)ȯ"II! X%ۣ'ŠEQIOzV飉&ڴ2$.n;\@:Xw=VP_I d0;ClϺtxCż2kwMRfImvo+14V {ѦI*eQ2c.;feYFQ@w[dXL:l A*g*Ըl(mzJ JKh|ֺJv\P:-hCMp˥CTXXFKh_@y<$eAPOddRs:\5]mN1;;tGql+/?_ؙIMBs~bj)YC%UEM*F!jB10I{ۏ YW;R=׬m!'EXB5U&lٶ}#o 9i=ZKU]2Ewex*NNrB}R10!L$ >Z,W/$It-6KsCe> 4* EkJ+:( #qEB-(o'(Y\(y<5PN#3k.fcҀVcc9ɦ`PXNٗ[ĒχM-#w)dbl͸wE@ʴh>PD-KRoƨ;[Vf6}g합h>^;"H/-Ef=L*DCgwq|72,U9g*8<=4;4mrsHv7|ԮdJlK_"(G KA*jSNl֮{Lˏ&[\agmWiF7;2L r4;<w~ޮtx]x7y]睛i`Sގ{쩼GbƎ,䝤H'+Ǎh!6N\¡9iYUG<° [S3\s48W.[igmX -}Wt=ljf'x -1m"+ɸKw=1'K5gew,lϡa&R2pz3N7F|unMjX>EB0N}(mu1hr!7pZF>gZ~9ޫ'= :EB]c[;6w[춱~$gU(mkj H)Tm g\8651Y(H# V?|a]P"A"~(%:2 g:#Xw ~WXo8+)rn.ia;1BT iuY-C%??p1758 -0-3* IsWw>Rid+vi)-7BI$ɉJ{]/֙qy=unqOe h0}Ը}@{k`萯v}mS,x #n)"Dvʅ?cz0t;ކb<(%hFtR5*eBͪaUz~ ,+Qi̴lRoB@ʢߡjnJO:˜N{)kWғ|$<ޓpB.VW pDo8yBf -ik1/cHfc|s 3m|Z0+PVUK w[UnO@|5"sMArkV-5xF,-ᅐri?n<U]Y ְ&bgvq4'xiwQ8w^8f 5Jy)<n)Y\fZBcB0;[ӊ'B /\U`N x1DoAyOfk~-w"5"ϞxR+cDN+/"pD [B jX2P Ǡ"HHςj AHHE1$3B T$s G̳ T$W$c,HExguZxKD%3e"^盈ןQxR2/xDӋe(D0aYxK)D\!"J֣Rx[ "JSESDc\pxo(2OqxR͠ 8F/ru Љ9dD<<<~7On똽+)_yx=2dq#u -2/vxnCI<<ó{.Wx:ޟ#yx]oΫ<<ݍSSx$2O7+ZxxU^?U>/I*<<75 -c.<~óyx7O_cU<+뮒ׅ+<<^o r…yz^ -ì<<+WxxX OK7O7OjuZ@gO5( B4q4eUf/FÓ)oRyx7W^gPTxxi`u:ge)S#yx][9jJ;xx OQSãH'<< -<g8MÓXhx O|1BMÓZixR - Oʛ'𸆅Ma OJ|+ cuae 4 ϔL+'.jI4<)oX7>틆wMÀZhx|Bixzf O@iة4<4<:ף$hnhx<7($yP3 OBIx6)4VFC"Xp%/jAY{/Bh{:H³c}JAq 'eZ/ǂ3 -O&7 -OMD* -r£@C-(<B)SPx -_gETf>0d_(NJ08QxG$5$QxTjQxjF+(< ZPxR* -OG]~A-( -@A :'cH/(oRha:N/rrL/Ndu ͙g)fy [GmciA7*u5-n&Ub S[ΫUk} { 1icJb5sU״~ڳXu.WF53uC.kXSQu\FIFIkF5&|NGL2kj/IuMkcMk'T!zPx׃T'窝T'疜T'ynRuSIupoR]ҹAu2 -:y6^NJ'ěIuRv&IWۤGPakgb5VwBT_MN 稠:{ks9T: 'nͣb}S͸{CNRHOeԩ-#wh5.y1Uϓ{mn+AŠkH l~%\<a,ςj 9v-'GE5!fV{#Yt4j^;JƼr8X<@'&qy]@dz -.=9.QtlTl蒒t[ ]'=uE'z%Ex@'Px+t,bŜtk#8v_J:ML( -&_[n+A@u6W_ax5bxO:ȩMb Zh̳AGé{py4Z)ȇg{νD!ΊR0B5oU` #aZ,] 蚡gEi׬frش9B*ߥ8p: C@'͆R!0?0Cpdߜ>'m$4,.=홆Ö"FWKsC=msXfΝ9d3QJkcn蜖z -sBqoN#sܼ9ͨg?7n#Sisf߬9Ijn 4C@=8s3mȘ9=f䘹&قkT\cc fQ.V^q\ma$h p}3e OPP暈G&xY)saE3'5Ze*q,U3fN?;0sz^%d3טkbD2g)M{Tnm%9m׮6EɭP6/m撒hs[ \3n[9~O5P6mN -E2b6'pPϹis(ZeڜTVЋ6/{k[KI\9>&0DN涒is[ ڜ+n56טG>NO ?_;.P"#yhqs[ɸnyDV*4Z nN͝ ܜtn - jGP{ngSqsM#&7h;m%斺psz)&ők -)>-aBZ(ZeiPFkJ99ҏ8Is\VIsR~Uۤ9sw4z&I9[9)4 NkJ ˜4Bj} =5*9>-ǫP՟FA`W2eZ2wE's.!o1w]]8kS?+aNmuQm? W/ۢfigA) d9yh>kH+'X9}CQP0;mA)L9Wq&m̀r{6%N~O]Ca8r2Fd}9oơN3B(%AN{ޜX窕V΄[Jm5r'nb rʻY\-r -666?NQef8Ell~N|Xe~+McK8 -u评 r[:AB,Yߪ<^](#fA@?KkV9+A3AY7{䤐]+EI䴷=m9]~7$*} X$r9n'#f  s}V"|Akl r -7#ύS>XBq\!(5&BN bF!׭r )v;^2A.PrJ,? υ!GBbșsj!5j[^rP-4Bп!Gaž!`@cbȩR<r9+CNu$C_D G290I ҽr>ir(7@EW>\Q}cX)ne?ǁ¸Ώ7gW~2y?\B-8+,|\jAt^5^sl|beM鼂 e=.|'oPX8 ?K`[dL/`55 -~\͏ӐHߋqrnzC N{1~:z>gi .FkOv?L8 -G6G[P2"[Ҏ\-zf֬GKEc89)q4mjAa=)}4cS*8]EkF(c"3Z^$(MqyOSVayX 8}[}/ 9>'z^8y8,V'_iE]OiuL0q#6]gVh)O85҂j!N ?DϳqZE<yÿ#>_8iZ,X $ذ8箬8}ymT4Xޯ>}̤`zjpNrQWN-"8qZOk`. NM'ʉS9݁')1)Π836(N -CQPՅޛ8O8}ӱQqbdG,>:˙@.<1*\)N}A{߁gPlNϳ~a&) qg#%#4snB]v}'>p-*N5')3o2A}XBiEs2ǩsޘ_yw$d G ;܌Eu||L8@ N&@ Ahĩ -bCip|)5l6% -N TmM@p(2yfƩ1Td$Vij#w)N#h{|YnpBDBO-bn*㙑h$&\}<(xetzFp -M\&?(sp?~SV~Sal~4[70if"Dq^sakr{57M嫟)4|lYo/MIn$o2ue,TBiߞdM#F}/rb@C3-@=J%.QQUs8A{1%ZӜÓqo{h+:M=/۝鼵 z?X1op߼:;z`e|>H_C6 9Nq SQ-)?QooooO8d2g]|76}ۜn -c4 -n ߲$Iv33ʨd6sݎauSK8+v6jW{7nC )@ay0Ώ'U+ -w.@scv9G*MDF+ʍýAnR)vB7Dt@ܔnJ!- ։wথa?nf6=rm AQgbF]ٵmjn_AYmP!8:MmS'?C"9)A"mF2ڦ!iQHM:9V ڦ3M'[5mzmԶ|R-Զu6ж.mCe hnقIcI= жS7MUSeh&9ǽm$-s5c-6T= &Q@$\@$V 631ۚ-Ge5ʷk3ۤxlɓHZlk.H8M{&kؠ!1ۨ:c3۔{\{0(6ffxv^ m }Wf[نB mIlI%,mRX5M<)6W/ 5jr6& )DEmd6."!Jm4^@)vwʏΖm6=%=hrum:ӼmkIR3A<,m*#:m}m56i@ۚ|FIԶMW?mkHMDmHYɢ27m,\&PhbAۚ -mk#oh[.Y6Yچeo-ָPF#Ma'6?~V -h\ ڦqǢqm+ mcBw@Z,h[fesۖhX WV鱉m]`6T -&c3ۤ Ɖ m@3m" aqVjl3RP(Tmdf6jS۔8#cXmt$G6OܮEmΘmQmY6FCXxPۈO j[ekچ՜0mT0Umm(683Cwچg6mXyK2gpQ@e -Gڦ̊YK23AmkDpMfQM_*Ammyj3Mٸ++m@`TqzUqYcG*xuH0#km>QE5tY1XжNgϹmRM0 FYE>چr;nQH`S6v&„mۦ7LmSnf@jL1nG n fj)NI-Ep(ëmJۂ)m%NncXݦ5Nvn#LRa鍠۴೵I4|_|Wd %ӽm ?m]j@50Ͳu ݦnSF -sg5 -imZ[e۴g۔ǣ:&4:C*l\6! f++#z6Ql ن=TlC=SRݙmz6d6$zh %&"8lCQ b1W,4 -꒝&bl۸0T@+ǫMcY2M-8٦*k 7^Ai@l󄋿m(8/#se0"&_abq f8fY>*M->w` ֩w{1:Vm=Efm%C’6gf\of[gia`ۚ نH`%f+%CaI5B0ۺb<MlS+nJF& %!۶61d l}}%%ߋͺ'` = lC-6 l!`lQ6DrL)OmGc Q)PSE/y_Dl#fg")IkElk=ɤyVb4ubƙqbTAl#zy9;TD?U6g;Zg)p=pMa_<ĶX+. l>qm[û`XT$e7BjòVc:ܰ4pHkapsS0aLx;m:m%yMv&r4mTfLZh%d257M=AЍec](fDj32p? :dޔ6b%՝kl۵ kj}k}#lI|;S/yXGWq -],KV9jKh-BV;)JV ޹jǽ{̂U9SgC$0S_֮T-NTz-2OmS# շj. 8ǦWS>>+05a 6aj،4c|VeqۉԶ_J{;7@X!RB8KMIq;IّIj+Hqiho:^'j9۬$5SG㎱Ij\aV]*Xj(22Ks-MVcԴz -RRR6z$Tn 5)'Rk($5rV9 )po% -mRSTܼ"mݳI][Ԓ@j^Z*!@j4Fw gܛN]55%.5^5IO^@#pZ4qQrY_Aq#G+dƃDGM2G:I֬LtTwƉs]hMTFMx -QF1 禨5EyhwIEM3( F FMcx?8jII IM0tZ 2K 09MM6Zd4چ!05}S=Ђݹ3Mm>m%Զ05sԴOfajr'Y0/T>ς)m; Sk Skdk;B5dVp`jRwԤX3g!05>v8M ASk@%˶hjEFSU%R[ZH)QjLz])xPj[(FZ*H8xRQj 2@gF99Agm!L=,뷅H#f .7ϯ)}>V'bC+Kg@iAB)Ȋt.FhvHAWvʯ㚻HK-)`ẙ,5R#ݮ}Buz?FD(5T;K.gD=RèD)PjII(J̒#z-n(<>RS/*L(5T<ϳSccYjK(%Ih9;zxn R3I,5@jtd4@N#9R >n] 5kXm~dǖ1jC=EPT "3Ԉ"P n7"MM2)b4TB}MO[B-1i#:1$gR .Iᕱ;GHGڿI:͍Z'WX~H՞Ll٧x I:*y5#g t[52(qy~#`ȭ/rd{B),P^2ڢ {js:f8''I㰁{O.[^;B - <ҚQ;Ѱ?6 6EP- (Q dV`Hzƹ:HQPbY:ȚM$`路d--Glĩ%OJ>QjT DF1FU(5y:j(ԁұ^`Uc¥Zn! '5d'32}lnat MW. ,΀K$tk6d/"bHʔYoB~q1AzP$VEL-2$ҙ+C`ɍJD֬}O./dRJ>i\#!3g,K'D+1J4D+qTب}2XEGE,<)udLk_L5BÅ]ekl9*~s,BdK! `BYZ-⼾P. \,w d/+FET.<Q^"zO2l ⺤6 (Eg+1Z -R֕ rFyة,D<0,L|-ēwNN/ -3>%qK} E}mCȐ \Ȭ~P -AejSo -lOd\q.x<gxz <"Dz'r+*k t z0DL&.uyԫ pr- D}z t t7V=M5 "rUm渦5OyLu6J'я7Rj'7t:K?',9Yc?7PUJ4Ԅ>hԔG'ֻo֎AC2Bu'0 a! kT< Հq?T*A#N/xׁ y&%N"󳥁JN2> Ggy"JX?]a:Vb6lѕǃln=[G (~H)D[9Vl'k ϊX$2׻0h7X(JM=&D6>1Ь_cK\-if6m]1.,'ZY2Hy z67&gE?#f0:ĝLNP,W(<=|PƯY7dCRY]Qz!r"=\FN٪s. %zKp@Y`Mr ?Ǝ=}zYCkZmSD܄j ds )5&^`Ļ:S,bvdIbNK :kGm{$Cs DG%ਉiEvz ZE]HpIĎD곾 V[u֭ٙlY57J5sˠaPbDڠ\ .ƍ[؃덿Җ &3iZqlIT[b7X:$o<H./Bٶ޲'fh$IbtVi%[L| b3lJEG9D#UÐg!!X TG>m' ..܏i}VFEU{RmSowmZZ[r)nSAC}eOKS`}qX1⠞@^:K\-e#̅2C uZĪIRèWS[/Hԗp MQOH9!9 V\蚮u0Lk/.66?A_e0vi(1BNql"9|l{35y}yړCszzه?%˭f)XƒnM695<+M?@;oB5F۾{?kBdxaKt,"dz6Xё ׈)lXʾ_x6jIBIm;f 4vAZp -(!JpznvM<Ǿv] :\)aFlz,EJ(bmt~  -Ju4fnjs#: /R?FY[MEvSR2s蔨d\ܹE#1KJɦE0= zܖk1k-VI(i; õTg~v*v.vrl7"붨(z(V!u'T! ST@hT \QcxW}K3l,(Zy&!SEC#YSVJTGAaeį^Dp1N-$X+%Ypf%AYv uXw`ny^&N1qQ6Pgf ǀ&"=7Ŏ$|#Rdj6b/3kyU* T\v&MŒx䐛Zv`]Xy}a9' ITDDKvZUĈpٖT 2SȱorTbe .)Q5"ϬT @~hP/4 vɍR}nqAvb՝:(TW]RsfY9kHmE;n# -$ 1H*% ,>ܨǛn9O1 -[uҀ7ԇ@LC(8nE>"Y3'Ņ و6J<Bk@O$lQY[Qwe:i5g.Ԣ Eͱ fm>?5",x^~:]WLQ`Q|;Vt[!6'A$ص԰1|c]< -'y ) ?g0x}VCa.ЪrwFi` Ć_ܺ5r*1N҇%R /Eڀ\PݫKFm1%+- wn)IF4B#$wi *g)|4X\u|TZhoDExaX#:CA@ڣF*xC/̚jЏ{ǃ}To t%YPdLA@t*|jNO)5aAg?"J YYb'ggpv>Kg/jҔ>Q|`qk+^!`F c{쫔m{S+6&{rf1=fOSf凅d YM2m{Kj/{ñaQ.Y1F"\) h$ BX0/Kcdfjևm}x"ǒ롭ݠ^PJThC&)3h dJEOdcu?ނ~( @#Y29t ^?!͍^ L]94%)h'88:YN23n2u℘r͕\' Vz#Rz*;ownTth2mdh_16u͑RʄrȦJQ:C+jAXjM@.XJSNw(ƔHT=c {6+2z k %6k "9J0a{aPY*,I 7W:g"$ѢShцxCE1E&"˙"D\׃чl^7DR`M*5O&KSÓ,g JrWKVJgYUI@F? jQEogAAH/StYiQS\U8pjɭ"ntEBAҲͺfʰ@h )b=A!FղDaAVG3l -RF?_u9d۫9M-b D$IkkD 9Lt2$u=G"(/-yީ͔$ED(`ْ'=(xU'u5FvQbV"݅B/vRe 1fODk!ҕB0dJC3bY<F Nj +/xoO ,&Ӝ^9 I2> -U[K6 7tr0ZΈ}rj6.b֬7M"rcm! a )XE;pYX.}Ja$8RPQ`yYg!lϖdaTU6m2q7Ф%7(ۮrڋP3;Fl[?)6[2Rva?bTRФǓޖƎQzLRANLsb ͫaU7ӝ j֧w8bԞe~}6rQn@|Vx $ކZ"+`zu:esi+4'X0nwf&ƷP=F`jb  Ύ Bf0b6hNO ~; f$BT#+xuԫš8&0O_7?1ީB-B~D(6ַJ c6w*ͶZ_iH;hbg@HNɣ΂e{ dIb{?g0ԕh?_\7O*BNARAX!sK Y.E*[`7l#ZVpb4o 7|7e cPNiԦPhpE-bfmhs_6!do w~L]&IZ-ev!gNѸǍmqmQ9lq4*HUL{E5[<85Z9ŨeH tߏxQR*,2z@̔,M*J TfEp[r^YPKɒNkyry)GB̹׶Fט &ZfB -L[}@RTLj ?j`Dg\"QYM;QBQt5qp״3wBd`B deֽn,9Dm{6kΠmQ2rM`5~G%m+-#[dlf}&s:uCrXJ<z<4a\l.m>(XZ,0 $I/-:VLE(*޲-;z9ng -%])ٴY] Nqf[EBز$,Vnn3E `Q}O't;;_Is)8M -na(n -(skk Lqo-ePMJO5`m<d qPHXC-mҋp-azmPi?8 O5ŖcL8Ks[ΛN77tq|s--#9C']nzl۳ͭ|ٷ e ߗ. [޽BbAKRV/QE3G1eLa*V*kQ~̶umH"ŒLװ`y?[2r4QV [&d~>r c–z$SEq,a"4U MP,C +۫H!xh[M+=s;.Nso;2wl~=Ǫy~Lzdt6 0C}Ze''nBg,χtrwiyq|"*|nڔ҈01DB18~Jd+Qhr|`]~i1:)5 E4ͬTb0:*.7Pc3\n5 nrf{okTV'v4V!h$=`P6*P'k?Y6%+( Ė_VXezkƏ h`}6d/fftZj"Lm!&oԻ[~s?h#g^JlWf3K`yA*?E3 ) 66mE_AV, XƩgoGoy^:̐0: ʂ'lb!QHYKe^c`20b ,8*ۮoEyIw ּ3`شl t| ԧluA6l7-+wL~¤NF3^ö&㭅F4Sk0< R -͹PLłAVj̗}4k>pp 4ػk!/g2[O C#"qLM׾If[@S]r:b'S*h! 1h)6ꍈA7zfNZc (8Y9hs$ _F`1Va5 5Cg@}ѢtF6 ZAhyY~K@5z ـIE-9;X$4h,-2'[ AS~ѥcxط[[9l1Q Ie9qpu%Dc4cϴ6.oњ_˲,2Ibʳvᶢa \g{.k|x)Ӛ\Kh/.*-`z Y)oeɀ])8~>g;R)o nQ˵;3[rH$XFq8-ܓbC'{FNO50rne4{SURE}7Ʌ1"}Fܐ '%.$\y]H9 endstream endobj 49 0 obj <>stream - ĘI/MZ"蹛8;7FrߛiɚMDeO=ii-,G%i8SK>~5[ iiJ69LUG#s%һTh1[nn=ng}dN)ɵg)~Dz?&Z`^q*ol"fk͑r -G9Z3RjY)NFt>6^-ojVh $;FXWe=K(hP;#x\ĀJ)l^nj˵ 2jc -unQݙ5?VՍ]ov+< m`y=7hOwO(Uz5`K6;(&+}z,X#f+Kb ;gov=+'PjB^30 -3ڏgj +%B,HR74kI 邋A9 sCr/PQFgKGBhU8zViy-ZM~ K}~!6xjO dowq`魾@z y^tXC;FrJD2hPhut>W8k5Rp"fQb"$ۆ)/.`>`Ճ RQ4e:vZROVVe\l)Qz?H]`5%An'CfZX6< -\w[!=ɊcE]01پm\|~_g( lc{DA(̔ E,C<ᡟXRk>"O6KJ -l --{ET ۑ5^գ*ݳSMn@d4^3CkP;;ީ8V& hQwk8Oym$֮\r?4䪺}p;?͜-l~PG:LeY0% tMQʢUI@T횗(5X .$+/63̦ --=4"W& -м2'6".,2j8)Pnvkp 4NǣzzL%DH*сJrpݒ%4dΤnb1 ,!d47^'}+Fy]c.I"2WZq3*YN \u֐ꮥleW^ n+|U@n\Ұ䒡&j~&9lr hT:8lrDюVGһQ':YJ[zoc+ MY&Im-)k3p^zr|Yjږ֟KjA pFO/XN67vD($ro)2& $'ldkh)95Ÿh񚎨Dsb,lc+0۷<:Tj8ƮvN#'* -&P3n&Po)R>D;V<vR0]b Vܡ@nUB,QhŔt,Ze&4B#d\KG4qlds 6[z" K+0"'MP?3eA$6fSRl︣hWdQ-ؖ.]9R7GZ*J7J5H3 %Dg$u3 '03&[ܔ}] -(Q")o|jA`Jo1r1ٳ!GJ.;pf -T6(%Ch!'S5UBdV8Qo7XvMhyl轑 \¯L %kǰbj3? M[.=]uNR3*a}"Ѳ`i,-NbKŏ¬’ ]7lg:QxJLV^|Mh}0ePV8L0[fdŖ@oNL/o:HzU @]?KB(} /*3` c:)warRZvloN(N ! ZI.]G: -l0ciE:\jƖ8ž]r fj r>8člArEKLJAoSE3MҀSN!潷QuuȖFg )(-hPJjI]KT\kfnTzg jvmXs]nt: #S, Ne#vGjbhՙXIV͞ΖVidfFlVN( GDk͌li-}%AEj1g|nQ+A/XT)G9-]qd -إ} IYII:׷zq,[ ̅4 o;ʭ+aS4H14 gt h{ۢ-g Sa_6[6b%)zBGz沚g̢)~,&NRZnE -Lnfé.ECP.G0ֆlC-8-E$6 ѫy8b]²,Jlu9߸4s2eFɃv1B>^1ƭMj4 nnp?Yz8yh|UZM $姬oEP.Ys&VFn1^zl+bHQ"g?7^~ jK,vUO)R%k mNɫ)"O{|-U< -}V6 j_`NIm^>G =_=H5mXn$-46# =hVqzgD^GgznՑփ)vlum\9Xe& 2DaJ㇧ő3m {zkdqD_WQj9m ۖFwk]-Q]j;3B$Gܝs{1TP/۪wP*0X{ UXh@WE@ӿτ)2{ƼD?m} dWh2 7` ]0ώs??Z9Me"e{)Ecj :HM5*vI]^h>ۛxezc⢷v7 r ; юjCޏWW_ -Gq鳿\]f~~<_w߽ďx=W?mI.__]/{0 o.񷟻/۫J{ߞ_gz? ֮kGW_?l=${Ǵ` ~7_՛##3>/ӻwoj>{}IQV}xZѮɇw_vz-žv_`48o.‹mo^=<3w#ܿ}ˋwgwoo_/y(on/?`>k ^]w_?jN]o8֧}[5޾j`7#Yjl;!\K Cq{ʲ<1BnVOq08L\خr?tW)"KlHxl}~t qM^ye'+~r_=|}s z}\8#tؕ'Z]u?[/ɏ׏zxvyu\鐂m -;:ջnoϷ K)voA._|A>\TOP}<[sپJۏh___wߙts^:ڷRwl=^~vi{b|kވwm!>vQ=a9v|lRv=zD?ؕ@S_^]_?[tz}u{y5yG;yCߝgm>?i|^~_ҜvHo\=\}F_x~zپb<1ͻ+Uym[I1Al;Rޚ#MG=Lonl?R~;.^lfKyb2'pخlf`3ۗY?̳_m_ΦpyAnmWp槨`>pgѾGYKe^1p kl?}}{ yrVyW~D"~O!/{\ boY/ۇWS2~ki^Wbɴ'Œ^eg,R"V-փ?ȷ|;ȷovo..vnOn  ^t>Zp Dp*JxDOD姼a64;N[ezp#yy}$ŭ3pv'n+$_5in\~yu蕨S,7~B_Tvl;㚽T͝W\m_LP%˻ljlWw.~UGGyɅlvEzwJ>'\/OO4a`WdFv=qiQϝnrwj#s/$l'vc=t %lHn:ydq{" }'7kz(_Q?ZC>ğ~Z!C>ğg|;_χcc;ğgۏ3MD}'zvAv9b·dg>{Rwuy}}ݶ㻾 zv7/߽TW9.(?nWwݯ|_ݟ>g?8[:[L#7CN=ܘuI/ cg~-fJeny7l3c (AOoM5>`/>b/'~)޲+98sΜ398s6gnętΜeΜp漄|mL}>uUfQDؾŽ~ ;rw|ݵ9x~Xpr® -Wv -WO_~z~I}8Aw=TzUVЏëjo?7wO+,\uɲCR;@<"xm?;Wv]}7O&l_Wl, -KOK(PSK!i-rp쁅oR8?vI^?`=?$t0ڄwWۣ-gƾC=)RG^Vg+u(*da'N?x]&=ҏI/]9CWx_><\vp~աО0}Am?Ơm?G'珔180^GaKmoOB>ۀO+`[`xw -Zk9X{mV G;p* gn=x0f <k4Wg>aDbb>e$;o -ﻻ7_ݟo/qv^ہ:uCUݰpT=`On -7C<Ƌɴ^s{Z+fձ9z׿?O_ۻ| 4}SFܿ-xy2~ -FSP泋'( k<;}-΁=+}ksP=}p]}Sp'-oɾi< -<}9z {n=!ٞ[k<ɵ>yţ%(֯x ZJUWمOV/?Q/t݃"V?ΈۃgAyєTDBnl7:b^P/y#v ;=GӁėg#ON^yeHݧw*%:r߶~k/ʮۯ>'B~ ۈu*qR8_?x:.p ?9O}e('XIM[vGiPIi)%jdf8CRs8щKŅ|ߝTr}ޝyyfΧr$ơt7iUJR׃$9MNC (9Ncr0Vh(.xC >ߗpїܺSWrX4FL }8v$Z4vpuz~̡ΕT)ݩ˱2)9ԏf%auT c0?;c:aX:ޮ].ǘ}4%c}SV;,i.e,w.]t#a9\JJ填0@(mC-WP8D|+ C*%r$-WY]v# Kal>+)LjĒSF+ O.V:%h央Jq~3Rv[ckG/rU _ ĴL\w5cx])WAd*>zLVtk®X຃:OAkpr W;0>kKsN߫jIQJߩ֩NXקJwFW | -qLh~@ﺁSZԅq7-bf &rN5n[U_ -,2aNVIX4>-:B:H|{=]9P¾FIu+IؚSN ҔjMQ5&~g*ac*3ݾjwHUU&ͣ#-nUkWz:= +L :_=1%%Oٙ_%$N/7} k:}k=7lB4$ec Y'| -HԡX Ef`Ufj4P -9Oشi -?nVef> wX\be`(T72_-BՕ)!AbBR <$qDKNb}/*>Cupvv-CoɾvM z(GrZ"=vh{lO sbg%),; 29 lرi qن/U嬎_rtKUçKaW_Yѓ&r7 ֽ$'!u Ӊ)Zd/AzIxegʭ8Y/wpfi;6Z|7p T{B_><cby,O|{4y/>R%_86l9?7G=9#p t4>zA7+YPHGsZUeURxӦ*6įJwWT7E{I15DCJXHXu?˩)'Sㄇ"E #?vYh{_8Aje {:|_-|7$HluAz8ѩZ#:]z -W. $_`*rE#,<3_bGXbV/6Nő1Xl^msEmt3u/"bV箣I -S0h0"Y:u`: -+"Z<E"H+% _8]r&jU DW`63|{ R,PWP{BC:1lE5_3V1~?pcb("Ai!VwH3@?X<p£q_]mr,b!ʷPt6<) R24t!=4WĤϼofYZpSLJD$*B@Hs1!`y8O{qs$UhODj /z9 -vؚT.pB+V.!b{pW xF[_b #l tZZ3iGpʆ;>ZeѡB}L0xci -(|<ίۑ hONyITUSPC@@CC HOWSeA$q Z"!l3O9,-?T;%_Nm',vuC{2>xaVu,BEꂦ0ohHqttr)ӆUxe )$J ^du8C1؛A=,]Tg Yg $VK>pܧ ‹ <àpB-\@58"xqj'/pixh&eqL]\g³QPpPu4jӰEOk=&+Ug~Um@YLY;/4@ $Wł0@PaE4Ep]G ½hqT{Bja]g*J$'P-'іŘrs|T#o$uK 8X†NFqA')ϏH';5S߇+w`AܻNŪ|aMmʤ"B+^?T;wf=ItΔEhO⣔@x%&ߡ _ -20im91k\EՆYNц \N|%.Ԋ^JJS y; Zyh` Xɞ)M*${ AƳz~lxP4_.Bu?K'D=MȪheW-o;6b^( E$qq8V ltM!zb/1@HN@~{ºGK)ObSXrȢ 9l#\dhcHcdVfȅ%aWm|fxQE]̞-qS#7kWnGt.2Ⲅ3LZذ?ROsKwBTFtesA"'R`-Ub ̫a8 t6@SSc:=Ѭ߻Z.b/6d CΘNc =D Txh]X$0a˫_ -M>z -U3ѱzRpO/RQ7 ցf8(AtNi@h ?hAֹ+/08X$`3]4m棇/dяVI*{i4S0f Y(H! -}u x@TQR <ͼY,|U 0  wB;њ`9z> @ 4$M2D?zCZYN&JGi9IFw2I=g%pLrs@ -5X9,j60lT d#nG8$S4Иx@`cz A9@(9Zi@<_E-[ 0{j AsS=$N(JCY#MbghYnP(Po<>J'DV`脂`PggS΅B˘Y6'WV0knNݵ. :?EeaWwNq 5Ԧ(OO V1M}؅AMUq}#W̥kۈS1bvM84}i"@g*LIp- 2ɠP]~@;AHO\"?0NDNR =F4x*P̰fo5Df0*K,ޠzZ HMj8LMь~ɘTMGxxOn1* Je@q`ȋ: -osXyY ꉮ_/6! -)&lZ rG̓Mx27|%+5_KThOCs &9GQ,/3깣 -VARvq>5Mf4xF1sL 5ɕ %ԆB-A;GAރ/&1jlp^6zauPD!(o":;Pay>&C >?Mz-zv A.Y7C83`G :r<[LAq!UNj!!JR`iǁ2,0/ \Eݲ -rcBwPP#fD28Sf9Bd ~%J3(Fdq-Vy)?@ha$fq9[!th" 8%h ݀% 4.@4#1jhEY͠^xi[f,|[ ׂ!s]0l=Nh@`@:ͺ,uT  ADY1G@4KC >DN$Ǯ3ý '% a/6`hK xYz=uNk~[ˠ2= gJܤ !m( xr` 5 AN%P aDP! -{ -v+zl$nqXRr4iQ }E_,&vXT">KH-{:jSQ5 IUiTSxy7Und%SI#M~D AcLưA|tNGrg(p3Sqq\qrdǪ8 nAړ%h!kP݅UgƂJ+@.`rtiݜQaUo[dAzuĴBz תCӜHIp`+EhYylHP,CBXLH&*fF`4uڙHUE̜ 3މ*sQ, -q UAO$A%J|m#6վ~}(趴VaЬSZ9q 9 #ᨔ554gR&L"(Ŷ2C@@DQUEOIYɋj7]Y O1WGduèA߲gbK6Kb<1/pȤP !M^?[yXNr=aԐ1 -륝:$\˚$FM_k_Ym6m˴p$P1EUJj|bwoj IW1jWWOͩG`tD8k&ydʞqVm<۞O_ծ&{"@z:*)T\SM 9yў,Ϳݐ|!~'-CnJ](OY D[*KeWSAzb{Z~p,L> -w f.8u<ٳf{>Z~S 9WXbw'E*Ws'8e v{kXmAĕt"iֆlU{ (RPusJ=K怒/4Lij|+\;)#)4SՆo26}Oj_gzRizC^_=|sۯ.P73HԀ sӊFz(3/wzAOLQՓeQ>`iWҢM:?-*9q #%O:ˮ=9n8sfgQL,ۼY`3ӋɫFa~zmjp+6+W86c|*Z㧟u6w)0lƴQ;yNN6Mq^= 5;yc}:On/;Ir&KU@G^B2ucfX"Ba&߾C Yk^~K桖}:$ٿ'I"C#1kzh#uiE֟rǓ'>qɢ-ps46rc-wl~v4775bNq6Jtѝ隮yFWRu$izGs/8}6^<|['Mg{O> 8>%9Bj]??<\?Y//?^ 绫7rӍ?]\}{ˋj\mɶ k KzWM0R$*K4I P;1L)J8;"K"eF -[M:=1c>ӤXW-R+S8&dOq]GDN{bpG^b >>64`:lcsr~.oϞ[2^7|Dn3=ӯ7E|d:`@GȗZ9w(S jF.˺*=͇[yk˖"d 43ku=n)Y;%/n_"2CRr=Cɕj>8lZ-Hjx ŭP pPW,/ $Ylw/DLRF^Kօqh |aN OUVbRNK -R֬EFf=Z2A<{͡lP28!x+W$.W6՟Ͼ>7uK~_.G OV?}zݽ= p<|§~rqOwdӺ5Y;SQ7rT{VVE9GTP$dS\-,#KZ UyJF+@@ǁbfyKA H$=񒼨\Z[o@SoC~'ʀs$u0)Ld>jvpJD 0]ND*#nKRWF9d-Y]n#Ln#6 %,9ϺBߵ?-X;8A Ay;0}Ctu)'uԣ<$ r#o&q񰉐(I% rchIW~Ah;bRr !1Cܢ Hfc* - -X ӌhVnB v^'Cxl4^wȡ$R.y Ĕs +XX%γ TbQGA }Hl)[ 0 -0D9%bI=,08'p1 +VM e'%Rxc$KTX8,FK%6PTc$uM<ʊcJ"ꍝrPK- б0^,N&rc2|{rri/tQ$yVӖdLƱT^DM$-s5<ݑD0W/iX(⬥lKܬ21UqkO9;9qUp,xDR[̟Ex{bqBxw*$Yj %)xˀaf' ulE>#%E.FZ5`B$sO`DN xsbNTZt.K ^!˜6-2yD -ٞEMzy ܱ&^ R,Idb[NsP"f|fD .!jXAHBaINl"u`Q5sJLͫAn`LY":LvR Y)g#7ZE1ڎ|!ɝ`BBgq >} Ǣ2‚es8-,\D,%e 'UJܷKӫZ;JG]U壐cr5ԤܿGy!p!S%IcͲ-Ł{R8Qrda|trI:5k*dD/* C,ZvA4S98Ѓő !2O_Gp#a`m+;(x͔j -Q3%N2@`9 - 3ZFl$(#Q=ePͧZF)=臤 ):pn8[HfAnₚ;z#P~ofC:ۑ=;я`K7G,UXDb:xskXdU ŢgV d@I=3DQ -#cסgvv= k$ka#2:M5OK2)JH ۽AB"LtBJE٤o)Q{:JL,-CU鎽pݡ]"bl;]aQp$^ot)3&{# ٳt0+%&!/L%b O@P)GY;lȌ-IL*8;Yv/"ASp# --dubc^ 饤 -\-zX -LK/R efpc^ -ӱ\B 䇪dvȃ(q/u`dHV=$HL!Bz TRׅ] - QWJbzu@wxraαD%mnє[Ga˝2T2Nqzi­̌i'?{_T,C8ݧ,슢"M"!INBzKuum]]8bY :,Z|2MJ9|f,:kZ!I!{FK*Md=J' $+py1g$mdp䞷fz.l TP!=`,.|ܘ i袷,{mt4 *|J",sXw}wBQCrsRg֝sqJւIz٠9{Lx=VL'f?W8՗;#?>-.䛷k_~SIq<5JZI`)t&lNU~:@? %"K|onLV^)mx|?{9<y".#f,Q8v#f0!̡NOppw<"6~tgx0'0E/Y#KPhdq<6~#kE7 -pp @lϧ<84;?!)œ( cv+<npw9sp̓ Om`DQ?7DySJHy%u7 G?Ӥ(0TK69{$)̍XH\h -M9rc< g ƗpE$ԤJMnq~YF?()V0Px΃*oI~@iL)Ih4vhD?.k|o_€^}-p`SMA_p62d$ @1oDP`f A j H1.,]qQ?Pz>CM*;mje҂J$W4N[јdwH[_>HtN( ^0e{!(CR%GZP/P-Z ʒ܂ -£=4-"PcʟbyB7 !hACHp'4?\Q.hMNMcRʟ:`TdP0_B8b&KIrI^ BO\]R~I.rƱ 1$yvK5R% A]ĞDʢ BrD,Hh]A`8|%JFmd1R+;lR@$ agZvL;# φDDJUѧ4J|Y'!dbzByƽ&muK(i `"~ߜ2]uY*HJa;;17jT4a"𜶁BSjtrg)AJbA*{xK7] -lp$T!+SLfZҠxI(q5X7;"D9 hYFGN:&}]PDzGtɝ&hlc䫧)ۓp7r8XaqtRN kԖAV~Q>yr"-=$.q AJyʖU+/+]:`L* dA+.s:IC dz];aaxg(#E,&L) 'R*@ &J0Y!F;`B~aevP4D5B] &z%҃,3 [iQNL[qMiQkL[1.lRN%ҡmnF`:];kw< 6f Mel{/![V @* (aaE+-?zQ;)*}IZt - ȂijO'7pv, Ћ2{"̇+ Dv$@O'FAj젷$BV[h]qD( -8)OcwLTW/:Պ[EjqYV鷐p1)`?IT$.E1aP},ävbuŨ Axt!U[XD 4yIPMrR)X,Y V("Ԕ %'XD -Lv''Ɋ">ҫ -B7"-B -,?^6BhNL5JVšNcU #SӺ_=ojzsܪY ($q<(gYЧ^aYe#@9s(g;;xP4ٜ#'G$ `i 䗅,9˰%B8Eg>M0cŖT$#遙vfqBTr(7PQ9j -cX+PGF,j@Y,h$Εq0{<dފ2ʄď$M -1=9Y-QA yL -Ld#DeTiBbrd\TkH@<@QLV`~pH63;(Il’kh *y4ƸADURpʋ%!(4q" -Ǎ. -,4 "`vSϮP#@tVER9hX2 pidUxÝ#؍n.UVXDJa15k _"{_QXE9,vB5J]U+=H}qnu9l6KhQNX?j]T·werN_ ƷZ&.ݭrZ -Hn Y Av5"ȟla9>JkJwVT})ub.{[@RT@Tң iIz4pYu `-!%NϦ rRv#^p)Y @%M^p$ .i{e /{ _.z(WWɂSMq;ɁC8̙{%#hK"ˁ+;. !|/-BEՕ&YSQ#K$E-.@uivOQ7** b@K -im 0R= (JQШ[##;z+i1\ .C!$MG + .5vB"[ vUn]p)~*jS1AHfIi Ω]\ii,van?qjsspi6 { K]* f] nKRkv^qQٿzHr#VI%߂qx=5Z-|e6MI4! +"yt5 Wm5?>#P 2I S'INcA)]u! V$ZUUb/a> J -`<žՅ1OYD~9uI<@I6-$ FEi $N-3<2)TG7()Jv`Of ,| ؕsddpNbi}]$|~ 2 4oHa۹ z˲6^xuJa986#{\_ܬr i7?XjR5/>H)FIv4Z$:*6Zdlԥ kYfqmְ7|HnTQ.!%PJTJWʎQAV:mE迴ـZQq! O{gr@OyD#2^DHǘ$ѱ;(ņ@t=r ?VQq6F=>ۊ5@vCe/m,$q0QU`D>c&O!Yp(-Oi3@ -3V^@(wS(HP?()epiAᭅ:_ D}NvU.E2 -W@ǜ(&F⍔\Z9k(Վ@ѰKP_Y0 Y@Qs[9OHJ_櫧26L@<!, hδyp!cv݈nf5bZrfNʣ+D*}pW+E8e{~0 -̞2 -NSK2GcQ車O\V܁1@I(2YC zSa 11ihQq;4g@P†:|Ү`gGMrc#!5Įպ6 -L?)G4ƒoʹ>HF: mQg$םZ84 Q5-* iD` )* -&:8jGcZ% J9OOI\0sb -ce恞ވ`^ѩhY -*gl?=ر#@4nLEg{Or* |S;ȷ&|dmˋO=IhwzB ]@1]>JНo6J$ڹA[Yl.1!< =X)t 0ť.d)Ι!3IYjA1ҺD8.yWI V pC3N )Q,,EhC]g>ʤ0ܘ({cD;+ i02dEʴ UaiD|֐r;̃L8 g^y18XV2# ӊ+(Sf ^Fc{a)FTF9D"+8)ԧ!9<)Kw\ (HٱlzU -A@Uht9ɺ":qnL+GB ;GJMV!b'ݙe v療C-hgs^ǘ:!"  & :7TWN/ql6O*zz -A'!1rۙEp0߇`nv_* !9I"E (C^I7() `TU$I$ $ ¿~L{쯞 -\z4pEGWdH] \z$pE1+q-\zL#+RH=&pEjJB+?Ͷ)RH=&pE+h\"H#+R \ej -FNJ#+RH=&pEGW"H#+R \Q#+R \z$pEH8WH5&pEFW,zcʸ \j$pEo9pEFW\DHH[j$pEFW \ GYQiG+RH5"U5pE1+RH5""H -詹 LH5"HTcW \HLDSh6pEFW"u5pEH="HcW \z$pE1+ҿͶ+RH=6pX8 a<Ʊ1kXK5b-U!#V/ΪVTctVtJJJ>&+=TȰl`ahJx -:Xέ썵ң$+݂B+1 &ҭ(ҫ܊Ί.n]TbjbがtX騿V:JFQ+ -$٣Gt6qzU+[J+VzbkG[a`ˬl-(#`+Ո^iHz_ye`F^YZjpA#V:8q'b+Z%[BJYX;YݭZbUt'żSΪVzܪVz Q+Bd[Ͷ --Y9-P obte(;)z ;DT~Y§>EH$ X -r{K]SɌHH_:K]3O!y+ߔ;dĘ]cg|BtݱYॽ g@ݗZl@[j"]EȖ: Z4eHN5ny4/WRWQfc:K]s, ,Y/\)35:A35Gc}(/t'RgPQoPEn=-ƭi`ېe\!g$`N,OLd$;=Z;=ss>Q ܇gngg!.dtK[/rv:\RyriTD4O菁LڗP@P׬-u,{xgA9§(9RT r+JG PPlÈPa&0ʠ*L`t:$ AAd`\2H"3a2`aE~&\dNﳁQ3J}ng$3JeA%*`ck7h,DЬ@ O ,KF S#Eó7&Q` f!SG5(,¨Az"¤KE(@5H6A Ŗ E -i}`9s!`ԛd*v R,$H &KN'Sq0a/yAF)E)1~vt&¬`60 -VX+ -$PZœ0)s8+({AI9'=kcj9~Dși3GXg7:Sz. -7҇ BѬOvDح :P2VBH,#7i| 5j4QiB,*+X{sp>hPckŅƒwTqhOA - -Ov FM\C -./ɜq):=qf0z/| rr=0\YkdRڎ_UfAdw!4zUےGpB -)9<$p@:nPL^HN䄤iqx[&6JSNPjh י6UgD(87GNb%AD>p -&H. l wOxe_=({`a_WRHUrM(].Ti.+( Ȕ08چɗP *>sd -<_Y_.2\V9-|Gldϔ%GB& `L?. g2 ^z K#xP:t2F7gù IukO)"XwgvIaסhnDXׁ]Joxb -A#!1;uc`)mWܖ -re[yHNe0dpsYS٣(8<S\UbE(!$Ny3UDXIc xeB\uhPJ0rLIm2: '|>lLI"DA%E⑇6!1p$I1jR3C%9,/(K6R"`V{C|BW/R]%h7(CY\ dH f{hU}ZZGfрJ2Z $~^Ŧ$ɷ ՊBO8/ Ei*d!!Ial\iXcM`eJ0 @ #%&e(!Fʇr h}XM &zxspDlP| -GA!t3ߑEǺ!le;Eƺ '"+l;*cL+@gRX$F $u3E^yX A!Rœ7]%S*~k;n E4$yHS 0O kBS~ GC=+C[Fi!+岉kQyDPM=2шbd\AbPC!Vtk^E1ôƔ%& Q $EE?0ʜk9X 9Gg~r#o TgMeI)Ʀ:ԁ*~MFBVP9TGe>,#nK,|*Bl epsP: R@M`+Y`y0?xy,>A1h6 APqW 5^xxJg L ( T( L$a --e*҇+SD`ZMboq :5xn$f2% l&zT^IFr`31ËV JΠs"3Xtxp4Dzp9>B!XլC Dc*"h8586g./ WJ\A%%9čw< XWw@pf%)?Ģ - c2rVGTg9`H,\Pd ᅙ.,-PI/~칲Q~08/(_ 9ȱxz0g =*:a 22fŏqȔ 2eCN13lU05r,YG`OҷĐL&>`N&+) @XI˚.i| NbƇmr;o2E|RI!Ls NжR45 R6{9oΨDȦX/rpM|`-utPN bzy8S/SI*G@@p\!cJq_eF{AK,S$^5$65Q!X/Xу9"3̤SPr1=!(BI/CP&\EۇLB%D -z -/TjA:AGK)T Oc='`~y=5x(b?=7mFBdMP$n0mzhxQ!f)jECo.QbFPB/懅*C10R -Gp` 䰠29P)m:'cN)>)+Q2̎jȔ)zIIϺ΄q`R2:xx.T6aw7 -2_Q9} ^y-,`  @'D[,1fFe {ZBҫ604|cabf7pct }RLЌo0 D=9jTېQNo1R1!d\r@hci$Msș4,901A/(h]UL>Kjc=(#s@-`:&Z0D2H*LaU4[ hX0P.9$R<M<y< -3SJjJz)OXA-) Xpe?fQ]PWRit=1r( R!LYcxf; !FfSiF!y0@=ӧ"/U,e{(VƯ0 7)`$Ü15)12~rJ _eX4bZ(YYJ>WC-ꠀH2j1gɒg``0ABsPRRQ0rCdW&1K1 Ff 3Vсm!ӛP&H<Z RYI2^p§pFA b-Ѧ}n19rR39?O5b!9@S3|@fC>%316h$é5 !dvԾH!GH~z9@0ߍP*fR2e2 oQfQ@n[0SA -6ު+I*Й$ٲ,8d -F?<㞂6N$ځ Asn - c`kҗ贂Жt0qMiX ~`ROubΤ -(0|p3Ʒp)'CK _a7@ LXwecʜaLDɾ0G2DoOБ(92A씂߁ [a4ø"s9AJ,$aeJ68JbF+SnF"GBׄי)cIZrT -'/m[fTMWP*VK.rCDUVlEaD*PeT.*G Τ&mH92 )@EoDFITJ] &5궀#x$\-R=Z䮣g RwЋ?T4LH)>+m]ls0Ǵ\$,x4NH}<` !YJ[X},ڂٜ[}n  -k)kR\?"ᧈ50^ wҡD mr(<*Ypw_BN;d\ Gkb+I3wN0]pA.'2|(D= دĪ)'lr€?#EFaIL:!55'r:0Iic˵-ppMWR~0ĂFBJ,'QE) -~ -=5i&A ^4iMu+YQqɄFB@em"ŔRBT.)9:7sR`T~J&i"ߕ0$.M"67;=D4XI b=t(9p8``?7p#ѓ^kGjf`g1=z$t\)-9KxH+P1KV `:uHBڢV -d&z)9nʶQL ޞw9? g[,^1!1L%f31R 2+,>(;:3|vnOLB8OiJ.AF-spsAsi.{CtVG0 $]i@3"VTfh%f^ ``뛦^''|%ߏER>yZ."M#QvB0~P6ə`=˱[pxq2Oe+6@"ƫ7<CDq#.F)@Ώn%gk'jY:x1)|B>Jpsu}@q=6Ë0͖P2*  m4LѨS`0惾5XIIC:ݕ+Hx!il*x$8l\R"*'sg^茕 -o@ߨ@9M&|R]<\tS@)=1&P1hȠ JIO,9wIisA[ӂnN/Hs^RBO=Ww`F%*砗47Kb891hئ.Aă]KNo ܁ 4TrI.}:7A r*^lz*b52'HԒ5蘞9ΐ;ΔU+])%RP; -$I?!/5hH #Q2N ]NT›?TFj茛 -xn),s4C2)62I@PxOfzɭс? z=x!~4HE@ekX`0DwJpq~4`NvRȹX}E3=sEDb[r4 JF/*fn34< xnb1OoH(*B7/^ -` |'>\H6eP$Ø^ -z8 0 KvX/ #).^ɩpAΚ:pax?鼠S C,XRx$UBJ)F[!'4Iz :Dѥ RT::(|$:ŐFA4Cb -^+dM@6R - -Hx#W D,W8H٤;.m7֞9WvLK6Pqo 1+ ~% =IsKCZq`To2Nx|a=ƚU4[+ *p \quwi`X﷤qke-Ԟw:~-[j.Qx옑UDMLfP2cfcܿVla;'?l뚊bwڤ6 WhjLyPUV \ 7X:Hpu=@Bn= ,:Zo+@~W9w)Lmt*rK9IR3s|.&2!X[W7by7k/A qJzo =|}Askgsze@J 8D~<)ݢ_~4ߛa^dΧw^z9ЎtxMNVnN|2Y@fgʇI%9=YZkuyzzφۄlu>0ȂfѤݟa}Yi[mD۫qjl?tcx=Hӡ ;{`fFdV2=2?Zꂲ8)~Y( x@",,(g;@A/t{* )ڱ$AvvK ̝b}-b&PGG'j,TPRe2 -`z5sm$VC脺Bz@2 ]Z -3)J3 -b. 9\ۑ(s-RXeaWLɄ;iЅXp+qV,T<ѥse(:(U ze[^YL1 -|P j"Vk% -R2C8rl0~ܺ b*^ir *9i̡&K) -$5^сwO!9uM iƸQ# @7>Cg^*}?}s>5(mgLkHFhv;糿&qT\߮-~U^5Iƙm~kB%(q"ѤdJ3o(!8QmzM (| -J(ȴc(甞ӥ 1dDQie1 ǕSV٣[%$}@IzȔ8FA@rhSM[+a AW;UĚ):4*^WKR"mV!g lr4mjcd斢 3ڡӮEV'FQ(*KzaSA4ڡtJMH;f:~P)v[J(FBܟq4o3J.\ЦfӮ=c~hw*XlY3# eP3Ghk+dD*9ף4 -|`7YCXT$}`9%2 P0(S7* -aF -/!.z^i,Vi2?BWXZ&Md}(`1"HEg3ֲ+Z>l 54h$+.xJpk'W -9DU gwL14:@ShB`K~unۧ'N}ܯ0 q9zxP{7GkxT+Y@Dko1?ol%~*I3\P=#<~sofS4,q:vO~,'~txsP[[y]؁6/`i. Z}}r~Jyy:j}uٖ?xa6uFl6O-c\diE\zBGd13uj\d5_rގe#|ʒ1 16C `zw'eV9qְD?A~s0h~!6j=ް.ye%-yXYwT/O~'Htbl/luJ O _Z`'_ȓDn /-\q_sFĚď s} ^ipǏIsX߯wߜ}y 8J^}¯O0jU za9|fS({ymn&Q[:vk'AKBkǝn{:M[n>l W^6x>N~51[ýn_kx.řmjM i[`6 &pn[7Atmi/YW냝mYm9AvW֖x)<";5rq n'xPl|ЬmAY4칶)|4sf\Cϡ/sꕆ9;q{G|mg}X{i9a~S=C_[!U:4ڧFzxkFD}oEݮ?_[mlax9`T9n/Zy`ϡ$<<33Z33x2ѹ J2^| KykUg}jajk0ww!JQgNw|e<zNjBÀ>Nаrw./ EJ[7hi;n ρ.d.j#[}n ; սvc./lX̥Q ,7,`6B%9)$|nD3As'N YD۰ծwyd{8+۳?+2q5 f= WWEhUSyղ1 &/6B:;HӧvQrV]g-[9>$jk[;G4>OEmTlnyq秃aȓ_RNc&?G #9$q{~oz'΅'ۿpd}1n{>7 c7ִ  J* YrmŋvYC-~"ۆ:chޗjhTɛtB3:P賺3G;4 -#&u!1kqai9]}@|>ڎU']yV cwB˄@K'x(z9uۇkQ$G6:U}hG=H|C -Dؾm5v\4:IDl >Oz|

/hq-(ڱߎ.U'l& n0둹~Fn1`_|>Y0f|N; TBma);;VƦc|es=fv^>z7[]ci|)dtSٷj- -\P[puwqc<+Qe*hj׳ݎۯz4}I3FǦSt~SZSkK6]fᦔIa9hfmxԬXذ?ڀd{B ׀ -jncX;;= #u;5s\/84uwEQZ@7jf0iǬ6Bfz]f0j ΃LoF95[i -'O>vM׍~wmd9IRlo71Eޝږ[FEܘ"ږI0IHa5ɬ{QjN/Dw;Q{\5A)X8]?r.C%8f 磖 hFw$9횵FC('vcClfE޸aP=:=[6peA=agnR3B~G 0lXAl1\ZNxhЫat^❣rؑɗ'q"7d]p8:XP(a=W9Qj' -cAO^c>^uʩ;hw o[32<ϊ.2/v(dc߰A^|9,|#+j ª.$Rݫ7__S&/r(gIH3\T4!;.qp~1,scxI_#TT75C\qIC!ær˚K;+^m$+o~y+OOnv.=\tcJ>?5{`-|sս>^65J]Nɯ>_[}7X< SӋ6/m6oJÑ6_O՛K'՗Sӫýgo-̿8{а/̟\_1}>s`j9_GÕەՆx՗ԏ`ᇮՍKsŧ_v.whS姙덵~6r>޺4^oW>__i^[F~j]_;5vW?]_=Xxy^r.5K[6/ReW;u("ñh {]=YG|n^vz^(XV/G/]q}[~2^xw'Xjj;3m<7?s7.px:Nx `}o-Ut]6gfW7k{k~FܺsMᐱyCv{u8W7>u:GKO?,?^_9xX$kdcr; 7Y~{NeSfͧfgä͗V5O7{[I#6݃֠{%g/o<ռyĜY <|zuz.̬SWdK/v7kųWSӷ'k:zk7O+Z;vW7 {suiݻ{V`Uo]_zz35p+wE$2]Y=X!g/2 4͑{ߏ#I|}ݵ;^wd)uibgzKMvW=z0~{M_a-:|ra2{֟ϼ׺_4\_m\KG/=g|iϪflyg;O&[]X:V vZ[o I}^!};l i -MMƐPXYد~zq)[up2}hkoy߅y؝{ߕdɲȮ9ù{4oFQ{zu땅;7ybygOv^?xb^Iӽd^U|sleݥRy󏖏_7ց?7aX޹vbT<lc[ RǶG7v|֣׿Rӥ̾J܁;3 $w0|7|fCt;X{_dRupiiyf;Y;o-|؉ - >w[ n-Z|^m.5?a1/O5R,R<姧kA <)e^\,|uWaWıv/Qb߾:{}[&3N6=Du".L>}>5ޯkՃՃǧKzqZc=[Q3y8}ljK>Xxbiwsa97:3tik{ևkf_ѝC1׌[G A'f/-~h?^.{y -6glObosC.|)?[n$^dwo>}xWѥq;2/u{{{@ݷb͛fV^ug+;f}߭}4lrk{fo>]ݽr)"{MR1Yl;@\^_YzoTōWgH-vrT-E.'g6APSivscשgwRc%;^}v'2eSW/RV^f(O ]i|f:lL7(.=Y}5\zZyduY._bߎtpR1OVʇսkrvtV>\|nѣ g;sk`f/vC_οY_MF==[7ﷁί>epݾqz}1~4{[t0&s䤿cxM̒qt|H>qT{ry}utOy.Q,d~ --;W,ھs=y]i8qzoB@BB׏?I6nƔkٌh4ͭyu8-Y,-ns6H1l-R|5$I n͢bf*OQY{"Sz5d~ /c)3#SQB;++Oj#^&cؽ rV"Cg9]Q2k +c.fAFZx}wWXi_Xy3! oTcYI'=gظ>Mq彆=HOymbe3賌[^D7.z -ĜuLyEFwod<>%Ny{rԙKVcvL <F -F1k.5~i,XƌfPuVWDž(pzʌ -E).opZ15mlr8pdbyCxE0A,1gF?=m۩oGXuY*M)fHh,4t\^wx5 5{39Y?O+?i=^_i;Z "8V59W&uc8LTf/aI,C@Q -~j̸ Z2Dkڄǒq=6 yڒy1\fx׌oJcodgY̐ k)m$~K8,bX{?cv`Erh;F:>2gwdt}-O.t5ӫYLm3 ͵w{}/o okGKBPEٗef`C#I5~ndO0^ч!I;WrT#@ -i7e[Hg^dL/h2K`7 FwTRZ)`a*slk-gLYC&bE`;SïON3E&LJk?ګ=BC)HF`9;lcq4Bf·7{@~/::tX`3li˅#91c~ GLckM5/TJgfܥpcw`Os9Bϩ/BHxK!c/)d`/w|QBB\䥙yA__ħp&EPm'3 -,M*g;g\~|q Yl}˂'˧olhaX#P)W%e&}8Q*JT m3s`;~2J@be0IaVc{Jʿky|W|gyǸ=`gL&5=(Z_n||O5Q[_d ï`ʚq;l/i߁Q : 쭆 ~E 8=~6WGzٙ $t@˼,`. -k3`=sRJxcw0d + xm`jS5D,C̷̤u؂L2Eq.*b;!bϺ yO{6Bנi*A6G2O\k}HZzOߜD6xϢDڥs߻-YMǚM28vݟO8 g.3OL?aTi.hKKlRKOZ`>}gEW2@߳[#Nk%@&esV=)jM9?*`}%ZT顭@ͥ 0SH_8wSD)="Ys}0,a>aSˌ:bV$h\̌57bn޶o?|䀲1qt'mSSx웂x3Gz%]`bȉـ[1a\?a _Ukq1Jwcԩ<놘1La; }~ƶD -, -c5aAk -Kt#,mLurmW:VU41͂U6nxش^fEJb39bK#VTYlaG;bI&ZcBgԚ֖Z0IHKƠ Zɬ }m4yݝ6xk3â[~n_mm[ mt?vTF -ʓڟ& mm՟MMN[uFwtL:GݛTׯ)οtЗ.K*\JeXWܺoء,& &^7tdWcЭߓ k+/ɞۆم>Rbd0sTܡ/ַjU*ǬӀNa`;o%ddm61bH_uCvQ[ŰP9c1 ;kʈ&ni9iC`c?q`z[Ec\F{QNm{zu4xh;LcrNSō۔gj?5[(]iUʏLe, -)ί@ xhNgBshEsc]7ɧyVؖ k>&Z)1W*E,iRKչY:d2`EOj!Yƞvhν(Z3n&f>N&}gг7bHfd S[j?[&ڃ[;mGOcG쯎MϞ>d~σT)JWeۡ]7!bs#k;_Gӧ~X:%ze8s[P2ҫ9)6sοϥ-P.<)7tUG, ]@=]u8+N5uKQ| % y3تěEeĔHnu" 8IM62IKv,9}䮤3QT}Myݖ1T՗(P>Fnmk n1is_}FwkӺ;V=?xlKhl2i4]{vvk&^?1y3 Wx?w}־ XfeŎ!~cfpm)W\n/&nG$)~J b50Zz`_AO fYl;_mD#B&Nf3Tt5RRh.B ~:k,Z]|_'u1;d8bYogxۂس}$"oEk>2(яlƨÑ\F#oA-U=o'u> XlZnpSO<=~i{o"P;-O Y]b-J%d)4J;YWy; -35h/\Oto},S |L+C ZY?-oYl}TuuHneH>n曽d7,'lzc1(,ZH\a>9} T7ŭE[XI$ˍYM7{{ommOULd=+T%]5ퟪX_?*Ac}ټwG_{ޚknlֳi}XlokF5h4_Ӧk&z`5вVy)߶%Qwk W7hH ~;9^?M G?GpQ~4*m)Wp[ŸX?i8 ziiW7`_9r6QLFmlqOXD'X=USZޫik֪N>)'3wVUg g^ $}~Uڝ+F}S$ԍa-:Vrq-Z3Y~}w/ƿٲ5]uO|"k}di_s7,-Wtj}4nlXAcϮhcAk?+ ppwx=7"nVKeir8w[[ 2Y0JgCB%?kXA9%[3٢ w[tq'Z R =Q1 -d9{x»)i {ʅ1Lq[d --̾_`[q -1{x]U@ʠq;ZGP,ύIa֛iܾ}+ĊCğ{m;3w+੏L ß5[3P-鰾J^g_*С*qNwk9l6fF\l,fDGZ:]߅~u7%5J':%+߀$S+}aKWZ%n-r3`2z扩m^o鞂MX\t_Ix&QT{KX|չJ—6¨!Yi6G6dK~DcT)iZ8m S\K Խ`*LJ=hUI2]h?X2&^_FOHV:*i zKtt%ӯJRBW)(Ytn7Jo}EV*`WgXIJ'x>nIW㦹Ej bu(Sia183MAx `VQAo m[}Ld*|Yf(Wi -/[T):5 ~oC&JNRB9ȢA[zd-[6J򢯽,*n_+-Qf&t[JU -t25j2 UvI@AeG岯],#SiߏJ~JO*jGyZ{C݆TmUARC@xҜFS锲&4JISĜ8U -jŕ60S1jOzD }hF0P yWPix -sZ/]i(:Dоu+ &RX S~LװR\T~o[D M,.IǧӒm%N+_!c^]E9ڟ3^ii9_6xP_K=\ʶ>m.Li? 9&|lOmNE&j PנIGitG:3|ܯ1߷>Mӹcy9$zjkQi*8ks]K3S/蟱>2CF1;$(`ۀ,SIoL}Y)\u0sXDG +47N7#\ePZ#땭O O-@;i۽VcE;J:IW~V -_Bdv:%SRwyu^3QURJ^h= *t_aRRdT -r:0Zj _Hs*UZ2Vl -R8B!y\= %1[yoxZs_Mn7Lw*W,cEgW;<M$s3XfGs"[l֡NuR4#@NZ d{)&iX3ũ&H7L>Wږ=s-^µ w*)XKq!@UP`zm3׃Q@<-%I5jȋod[(܁@[N5?LͼDLl4ǯ>~:VFƤzצԏ'P,b5%Q#gf7I'Wlw;%F<gPX.U0-T=\t?3mFZHn6 `v;b-ͻUr$5*:GE[5VgF4A!)WU׫yidFBA-M0@vv-; r>A:)aoޔCmw2_[,9LOF/rE jȶ'W=!&D}wÞ>=0uS| -dlI!3AfpKtw*Snp4(/j@Sj3`Fuؒ|}yx~PDzprA 'ٓ_Pj9Rb).A$YGK8 /).]RU!Q%.Yqk\"ɪ e6]kČnK(uo$qS -'|{DB*~DkGcPҭ -p庯O -d5;^UӛOV`JNbSȁ3*iؔw=cPnZmL"nZ"KYv]΋Ǯ/wxE'!AAҁ{@ih:ƌ85NΖ-t!-K*?~ -YǓ$h6e;uNx*Jy[靅aI>@iTn$ok s&NytT$G嬓os% No[D&d]B3TrDibHg|2F崪b% X vXTh4II0&{T59v޽b]h'H  Fy:k Mq<~(fǥ1HYEQAm]o <qXy}2ՐJ, y(5imjka7)YAV -1P4u:L{Y*<lE'U%Ng jJXd*9U5JD\L.fE.E<΂;|cumtLc85q DЉCwctH'?C'[)Bɢo)#hG0t:NA'@ >SF)o)#Z :l+@б;1t:d] fUSFږG]T4IӛmUʈwæ֯s@ /%ظO!@\XQv7kN18,uCk9y.zno JIR9ؗ@stMZ -: -BǏI6sWu:iT݄:$1cLmk`7O[A[kې @ -#& ".OlQΚdnY)R!7ALux}o%uckå+r6%f8ʚ](0$Ɓ]5TNboM_t<4MlJ_ \bRM:`z0%O-ϿQat:$4;CBī ǮDwhwqL%CK ٲ>m;ߥx9 KpE 1&3V9=vweSٓ# QĵQ8j5B#r6i]w2h]&{% -Yő''핂<\SG,睌Io6V.<"(axnc;0;q|Z\4hD[ y##h EPhp2__V$8&p4$<,a - sw:xdx@q Zq <2rkn\LE6 -aP$nωd] __ L޻t|"tA-x Wwse*թS -HNТ%U˳-Cw2 .<1ux']]=ZG[/+^ -* vhTez>1rT^H=ګ x/T0DλH'^P|*BnmMEpFT5n*کh\LQׂSyлgfJ;"q -R&p+hHt' q}ג)+Id'Zk@5ӯݥ@8%;OD$64}~[tRs.T N'(/餰t"tRxHGt0sVtRrF49 V> M'ҩM'k?g`Njth:);4NtMZ-{tRƩl4IDC=S.4m\4z=? MwnF)bV?M'Ed4i( h:) ܽ>MwdIh3tRg!{|6b7]$2I87Jd0߽es&)ϳ[tn%A$$d^5,T zkIjUrƒ9uSe&IRj>)]QpD QJbse-K)ix\4Is'] -2͝KNUr|2vj(zTQy8c('{8}NѶ{hPD8BEOSj50:yVҩh\GqZo"ܑu %Y]-P$KSe,u7yO%Bu%\u4 u5~Lu4 .[9龧 ? -gF_%U]"Ϙ])|ˎkK`m}[!$2F2ZF.YV6Xy5߫R H".#wr1)-KRӳ2U#bsySj7xasy'@y4[5M< n8-Vp &1 [* <g;+r1 %+[}[;%,hLdʻ'R)Q<)iNKR'ÝRW wjo5ǁg^UkfFC离X+F>zA|aY}=WzH)x2n/v<Vb\f˻.b⟊BaAP:}S cRb2(oScv#Ŏ,)hVPWܶ2hV3+ՀLw_ٹ $As'*"PN k)ܿܚtXyWSuۓ0]٫na=^ɔʛl -u+hjԳƕ(;~ 7RK"p)ݼPRQ[ތm^)[EL6E/<ȵ3 ;RNc8Z*U%L2x8<o Npϫ-9^_RmfK>S\6 W)\JдgR"IU1@s `x1kUR~K97R4W>*Ey9R\RbKtDvjĀ0OְK82QI\=>[qm1-]dkopL*مNe$`ǂNY̮NXtC"I mdF%@̂W2$Cd"3 ~KNt+44ItukX5ݜeQIQZ7Eii J$-㴘\ƊU -ӗ9SJyW__Ϻp^V{3L?r-I2.MZwzhBࣗJ'k+Na$HN27;0'ԛctbu=}eb?u'Uq.L'S#8x"iٔL7a7sk2*Z&Bjެ -ԫrR^Ki|eY:PG0Kfص,:&1VhUycW<;)<|cWı/C.,e29* Bt -Z ?Z Qj1k}7 -P * -;Lqm(@@ȱQ?cu+ -P-#߅i^IW'S푤|]x'Ied{NR>3l||j@Lnoո-X^?c"z< R+p^?e3GFn맜[~TS{}B^?~7 +Җyjy(ߥ+O[)wV):|Jw^V?{o)'}y8%AQ^?Eey,aH^ eV ;)waJOm+7Yʆy8$/pе2S:⠈| ^]ÇViJG|Z7*JP*Ut1&qo,X!12|DK}# ,+{GT;qs}nj(d"@i5;VSbsoqbɌ1˕ݻg43gѹ<{x_6z^4o]<ҷwWx/.zII7fIZ8C}~j5$bLaW7B}+>k$4[y]jM!yRy%L[r0 ee5ݎQCu$9/6tZ3Y:}-}B%lz_m$NjȖnurp Avz[th焻f0:ҚqΟ3ϊP@k؎4V$f\4Y9ܖNs.'*pWgA $JL\xLɰp~tpG3z~g+s3c,@elDe6e#NvaPAw~I;]F< -doO9GswjVdO?SUZ#>3Sк uZlEL6nDe0q1ӴFw?τF%B~gSpD'r$0g=@Sh,>h}P-LdgeʖZS+37ݵ%Ύ xttyYyYSsY_ j\ uWoq`W6nlspsg٪̱8hf=#vd$5̂eYvq,`{R CeBτS²@t]PLb5a$Z LL`*CYX OX,rBx0/OgW,v_:񱗋- 1lιΛ첫o w9xzÍ }a -fz0b^ 1_fhyג! 5=sE<7w3Fy0hރ&zN@c`}ggWmm cAd l6e1:$Aѽp=(-]0 -+$!m05'CWΰw7'+3Ւ.2V}ǡ";T;4Y4XrvTnʼnj~-_Ʌ7SIu~V493\r>]I_x8G 14N.|m_#WLCag sk Mp=vð, im9'r%< C{gktBC-7ӟ+irS|} -@<~8Rɫ1653i%۩1q5&huռes;z.Ov)TԚ--jcK}k;:4=HfffH ON` yF$];h3΁OCg$QC'َ^a?b+q'#,!Nd|O3ΔdV5c+cDBC[Όqtᅬ  KPnq`Կufo @);S -U*YY Z\SSNXK:³r-d8Gz\aBGP[mY5ڒ936@eiGSd~:G'}c9coEM\:VZ ) ҫ@T2[ƈ}c8w)hq5{"4CM4{s2>FDhE+O6ZcƭrA@s/#2QU:-=~5?޺;熟|`IT/Y;_77\MRGwBjt) Wԙk#@d:Y2 ̴N\?fP"HeݹwT6.980/L~cuOtynw!/?Ob2agr21,F_7?Ywɟs2 CC#f΀8GLL18$~@ *⦮ t,% nF3(rVA1NDǵnL^8TQ1}%pGO m6;4koOxof; f旰Id`|22=(c@1?&c%# +c$1Q3-̏Șj% Nels>2ȵ$EȘZْt&ĭBOn)JYru4yu+F-ojYnE%*kn6#."GgGb:4<Lm66P -mB%j3ŭIħ#XӖWV"> oRr˶R[~FQ\%ZkƙbASpP[ӝFi-%W= DV8vyh -`{y?BE`bO?IYCvl]Zo(&[g@goRسR[*ǀC6F0n6&#&l٧2[{yC@!rWs1h'@Y̍(1Dc!!sER%vOZrכ.)Jahs;^?*:o0v>R-[>VXUQKB5v hOp&ή6:RGm C+/vId|' Z._{cXNRh@nیdl@en LM-3nu)ߒɤ-iЋ=Yu zAm;M;j")GD1@I}~Pހ!qA TC:^KWCx}8% N -O8N9) -6Ƈ;Al%zJv7ѐ, µ祜'kfJAR/Art)J? -!|$;>/] ->{I,9 wxyN p(*>7>Ḣ6q$`p/jxCadZDYF5 5ދ.q5I?/陉f LII(n->4$&>x'5!# MN@jq l)K^o=ye@Ddđ+&Mƒ,@wӇS$K3  ^ad#\).7m#NV2BBঘ_<>Cd'f7/$d=g܀ - endstream endobj 50 0 obj <>stream -ā. 8AB&H%XJ 7` X˜W@s%x 8h򿒼Fc@A8h//Ts NISXkN pe@hA!ʅ_L|Sb-4"⨘]0&!酑_B+>]/}:ZbTy$Ey|  -Z{8~_ Cډ8m^>7/T#7VR0T'~}3כ8߂'/_` u1d4 endstream endobj 5 0 obj <> endobj 6 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 16 0 obj [/View/Design] endobj 17 0 obj <>>> endobj 31 0 obj [30 0 R 29 0 R] endobj 51 0 obj <> endobj xref 0 52 0000000004 65535 f -0000000016 00000 n -0000000185 00000 n -0000047379 00000 n -0000000000 00000 f -0000266555 00000 n -0000266625 00000 n -0000000000 00000 f -0000047430 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000266816 00000 n -0000266847 00000 n -0000266700 00000 n -0000266731 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000050006 00000 n -0000050077 00000 n -0000266932 00000 n -0000047801 00000 n -0000053181 00000 n -0000050498 00000 n -0000050385 00000 n -0000048830 00000 n -0000049445 00000 n -0000049493 00000 n -0000050269 00000 n -0000050300 00000 n -0000050153 00000 n -0000050184 00000 n -0000050533 00000 n -0000053249 00000 n -0000053489 00000 n -0000054522 00000 n -0000069362 00000 n -0000134950 00000 n -0000200538 00000 n -0000266126 00000 n -0000266964 00000 n -trailer <<64A8AB8E858948269A0BCA92EF85B468>]>> startxref 267136 %%EOF \ No newline at end of file + diff --git a/assets/logo/web3js.jpg b/assets/logo/web3js.jpg index 3b4cf23de26..d3f5a12faa9 100644 Binary files a/assets/logo/web3js.jpg and b/assets/logo/web3js.jpg differ diff --git a/collection$ b/collection$ new file mode 100644 index 00000000000..d31c9b089b7 --- /dev/null +++ b/collection$ @@ -0,0 +1,13 @@ + collection$(document).ready(function() { + printSentence("result", "Hello, CodeToInvent!"); + }); + function printSentence(id, sentence) { + for (var i = 0; i < sentence.length; i++) + { + (function(index) { + setTimeout(function() { + document.getElementById(id).innerHTML += sentence[index]; + }, 50 * i); + })(i); + } + } diff --git a/danialzivehdadr.js b/danialzivehdadr.js new file mode 100644 index 00000000000..7b74e7f0c4d --- /dev/null +++ b/danialzivehdadr.js @@ -0,0 +1,188 @@ +検索ワードを入力 +ドキュメント +Release Note +Overview +ログイン +ロボットを動かしてみる +実行要求とキュー +ワークフロー +エラー処理 +トリガー +ログ画面 +ロボットタイプ +カスタムアクション +パッケージ +クッキー +変数セット +プライベートログ機能 +ストレージ +利用状況アラート +コンテキストメニュー +Task +タスクの Yaml での記述 +アクションタスク +コントロールタスク +Actions +ArtificialIntelligence +BigData +Browser +Cloudsign +ComputerVision +Control +Data +Desktop +Document Force +Excel +ExcelOnline +Fujifilm +General +Github +Google Calendar +Google Docs +Google Spreadsheet +HubSpot +HumanIntelligence +kintone +Marketing +Message +Outlook Calendar +Salesforce +SerpApi +Shopify +SmartHR +Storage +Text +Trello +Twilio +WebService +Zohocrm +Search +セッションの検索 +Connections +Apple Search Ads +BigQuery +box +ChatGPT +Chatwork +Cloudsign +Document Force +Dropbox +Dropbox Full Access +Facebook Ads +Fujifilm IWpro +Gemini Pro +Github +Gmail +Gmail for Google Workspace +Google Ads +Google AI +Google Analytics +Google Calendar +Google Chat +Google Cloud Storage +Google Docs +Google Drive +Google Spreadsheet +HubSpot +Kintone With Password +kintone +LINE WORKS +Line Ads +Microsoft Ads +Microsoft Teams Message +OneDrive +Outlook +Outlook Calendar +S3 +Salesforce +Search Console +SerpApi +Shopify +Slack +SmartHR +TikTok Ads +Trello +Twilio +Twitter Ads +Yahoo Ads +Zohocrm +Integrations +GitHub +SSO +Azure AD +GMOトラスト・ログイン +OneLogin +トリガー +Gmail +Outlook +Slack イベント +Webhook +ユーザーと権限 +組織ユーザー +サポート +補足情報 +モバイルデバイス +Security +セキュリティ仕様 +セキュリティ機能 +AUTORO Assistant +インストール方法 +CSS セレクタの取得 +連続した操作を記録 +サイト上の情報を CSV に抽出 +繰り返し作業を記録 +既存のワークフローを実行 +AUTORO Sheets Addon +インストール方法 +トリガーの作成・編集・削除 +設定メニュー +アドオンのアンインストール +スプレッドシートが更新された時に AUTORO を起動する +AUTORO Desktop +インストール方法 +デバイスの共有設定 +システム要件・動作環境 +ODBCQueryアクションの利用例 +Zapier +セットアップ方法 +Zapier から AUTORO を起動する +Marketing +マーケティングに関するアクション一覧です。 + +GetGA4Report +概要 +GetGA4Report は、Google Analytics4 からレポートを取得するアクションです。パラメーターを設定することで、カスタマイズされたレポートを作成することができます。レポートの対象期間は、startDate、endDate で設定します。取得したい値は、metrics で選択します。ページ別、ブラウザ別などの分析軸を設定したい場合は、dimensions で指定します。リクエストで返されるディメンションまたは指標を制限したい場合は、metricFilter または dimensionFilter で指定します。返却されるレスポンスはデフォルトで最大1000行です。 + +パラメーター +*は、必須パラメーター + +名前 型 概要 例 +provider* 文字列 google analytics4 からデータを取得するのに必要なプロバイダーID ga_e7502c3b8b8147410ce2 +propertyId* 数値 プロパティID 12345678 +startDate* 文字列 リクエスト期間の開始日付 2023-04-01 +endDate* 文字列 リクエスト期間の終了日付 2023-04-30 +metrics 文字列 指標(定量化されたデータ)。カンマ区切りで10個まで指定可能。入力可能な値については こちら をご参照ください。 sessions, newUsers +dimensions 文字列 ディメンション(データの属性)。カンマ区切りで5個まで指定可能。入力可能な値については こちら をご参照ください。 date, sessionDefaultChannelGroup +metricFilter オブジェクト リクエストで返されるデータを制限する指標のフィルタ ※ フィルタについての説明参照 +dimensionFilter オブジェクト リクエストで返されるデータを制限するディメンションのフィルタ ※ フィルタについての説明参照 +pageSize 数値 リクエストで返されるデータの数。最大で、100,000行。 1000 (デフォルト値) +フィルタについての説明 +フィルタの作成方法 + +metricFilter や dimensionFilter を設定することで取得するデータの値を制限することができます。以下の手順によって 公式ドキュメント からフィルタを作成してください。 + +公式ドキュメントの「Try this method」の「Request body」から metricFilter または dimensionFilter を選択し、フィルタオブジェクトを作成する。 + + +作成したフィルタの metricFilter または dimensionFilter の内側のオブジェクトをコピーする + + +GetGA4Report アクションの metricFilter または dimensionFilter パラメータに貼り付ける + + +フィルタの書き方 + +metricFilter, dimensionFilter の書き方についての説明。 詳しくは公式ドキュメントをご参照ください。 + +基本のフィルタ +キーに filter 、値に条件を設定します。 diff --git a/danialzivehdadr.json b/danialzivehdadr.json new file mode 100644 index 00000000000..9e61fca5ab1 --- /dev/null +++ b/danialzivehdadr.json @@ -0,0 +1,185 @@ +検索ワードを入力 +ドキュメント +Release Note +Overview +ログイン +ロボットを動かしてみる +実行要求とキュー +ワークフロー +エラー処理 +トリガー +ログ画面 +ロボットタイプ +カスタムアクション +パッケージ +クッキー +変数セット +プライベートログ機能 +ストレージ +利用状況アラート +コンテキストメニュー +Task +タスクの Yaml での記述 +アクションタスク +コントロールタスク +Actions +ArtificialIntelligence +BigData +Browser +Cloudsign +ComputerVision +Control +Data +Desktop +Document Force +Excel +ExcelOnline +Fujifilm +General +Github +Google Calendar +Google Docs +Google Spreadsheet +HubSpot +HumanIntelligence +kintone +Marketing +Message +Outlook Calendar +Salesforce +SerpApi +Shopify +SmartHR +Storage +Text +Trello +Twilio +WebService +Zohocrm +Search +セッションの検索 +Connections +Apple Search Ads +BigQuery +box +ChatGPT +Chatwork +Cloudsign +Document Force +Dropbox +Dropbox Full Access +Facebook Ads +Fujifilm IWpro +Gemini Pro +Github +Gmail +Gmail for Google Workspace +Google Ads +Google AI +Google Analytics +Google Calendar +Google Chat +Google Cloud Storage +Google Docs +Google Drive +Google Spreadsheet +HubSpot +Kintone With Password +kintone +LINE WORKS +Line Ads +Microsoft Ads +Microsoft Teams Message +OneDrive +Outlook +Outlook Calendar +S3 +Salesforce +Search Console +SerpApi +Shopify +Slack +SmartHR +TikTok Ads +Trello +Twilio +Twitter Ads +Yahoo Ads +Zohocrm +Integrations +GitHub +SSO +Azure AD +GMOトラスト・ログイン +OneLogin +トリガー +Gmail +Outlook +Slack イベント +Webhook +ユーザーと権限 +組織ユーザー +サポート +補足情報 +モバイルデバイス +Security +セキュリティ仕様 +セキュリティ機能 +AUTORO Assistant +インストール方法 +CSS セレクタの取得 +連続した操作を記録 +サイト上の情報を CSV に抽出 +繰り返し作業を記録 +既存のワークフローを実行 +AUTORO Sheets Addon +インストール方法 +トリガーの作成・編集・削除 +設定メニュー +アドオンのアンインストール +スプレッドシートが更新された時に AUTORO を起動する +AUTORO Desktop +インストール方法 +デバイスの共有設定 +システム要件・動作環境 +ODBCQueryアクションの利用例 +Zapier +セットアップ方法 +Zapier から AUTORO を起動する +Marketing +マーケティングに関するアクション一覧です。 +GetGA4Report +概要 +GetGA4Report は、Google Analytics4 からレポートを取得するアクションです。パラメーターを設定することで、カスタマイズされたレポートを作成することができます。レポートの対象期間は、startDate、endDate で設定します。取得したい値は、metrics で選択します。ページ別、ブラウザ別などの分析軸を設定したい場合は、dimensions で指定します。リクエストで返されるディメンションまたは指標を制限したい場合は、metricFilter または dimensionFilter で指定します。返却されるレスポンスはデフォルトで最大1000行です。 +パラメーター +*は、必須パラメーター +名前 型 概要 例 +provider* 文字列 google analytics4 からデータを取得するのに必要なプロバイダーID ga_e7502c3b8b8147410ce2 +propertyId* 数値 プロパティID 12345678 +startDate* 文字列 リクエスト期間の開始日付 2023-04-01 +endDate* 文字列 リクエスト期間の終了日付 2023-04-30 +metrics 文字列 指標(定量化されたデータ)。カンマ区切りで10個まで指定可能。入力可能な値については こちら をご参照ください。 sessions, newUsers +dimensions 文字列 ディメンション(データの属性)。カンマ区切りで5個まで指定可能。入力可能な値については こちら をご参照ください。 date, sessionDefaultChannelGroup +metricFilter オブジェクト リクエストで返されるデータを制限する指標のフィルタ ※ フィルタについての説明参照 +dimensionFilter オブジェクト リクエストで返されるデータを制限するディメンションのフィルタ ※ フィルタについての説明参照 +pageSize 数値 リクエストで返されるデータの数。最大で、100,000行。 1000 (デフォルト値) +フィルタについての説明 +フィルタの作成方法 + +metricFilter や dimensionFilter を設定することで取得するデータの値を制限することができます。以下の手順によって 公式ドキュメント からフィルタを作成してください。 + +公式ドキュメントの「Try this method」の「Request body」から metricFilter または dimensionFilter を選択し、フィルタオブジェクトを作成する。 + + +作成したフィルタの metricFilter または dimensionFilter の内側のオブジェクトをコピーする + + +GetGA4Report アクションの metricFilter または dimensionFilter パラメータに貼り付ける + + +フィルタの書き方 + +metricFilter, dimensionFilter の書き方についての説明。 詳しくは公式ドキュメントをご参照ください。 + +基本のフィルタ +キーに filter 、値に条件を設定します。 diff --git a/expressions b/expressions new file mode 100644 index 00000000000..73dfbcda2e3 --- /dev/null +++ b/expressions @@ -0,0 +1,20 @@ +{ + "andGroup": { + "expressions": [{ + "filter": { + "fieldName":"sessionDefaultChannelGroup", + "stringFilter": { + "value":"Organic Search" + } + } + }, + { + "filter": { + "fieldName":"country", + "stringFilter": { + "value":"Japan" + } + } + }] + } +} diff --git a/framework b/framework new file mode 100644 index 00000000000..b87d9fc7fa7 --- /dev/null +++ b/framework @@ -0,0 +1,17 @@ + + + + + Hello, world! + + + + + + +


+    
+    
diff --git a/notExpression b/notExpression
new file mode 100644
index 00000000000..e2663a0d1a7
--- /dev/null
+++ b/notExpression
@@ -0,0 +1,10 @@
+{
+  "notExpression": {
+    "filter": {
+      "fieldName": "eventName",
+      "stringFilter": {
+        "value":"first_visit"
+      }
+    }
+  }
+}
diff --git a/orGroup.js b/orGroup.js
new file mode 100644
index 00000000000..930944da1b3
--- /dev/null
+++ b/orGroup.js
@@ -0,0 +1,20 @@
+{
+  "orGroup": {
+    "expressions": [{
+      "filter": {
+        "fieldName":"eventName",
+        "stringFilter": {
+          "value":"page_view"
+        }
+      }
+    },
+    {
+      "filter": {
+        "fieldName":"eventName",
+        "stringFilter": {
+          "value":"first_visit"
+        }
+      }
+    }]
+  }
+}
diff --git "a/\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\217\226\345\276\227" "b/\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\217\226\345\276\227"
new file mode 100644
index 00000000000..402e2af9da4
--- /dev/null
+++ "b/\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\217\226\345\276\227"
@@ -0,0 +1,38 @@
+# ファイルを取得
++get_file_1:
+  action>: GetFile
+  display_name>: 'ファイルを取得'
+  provider: local
+  filename: rc_36b0011677688bf489d7
+  private: false
+  meta:
+    display:
+      filename:
+        label: 'sample-card.png'
+        icon: text
+        type: chip
+    action:
+      disabled: false
+# Document Forceでドキュメントを解析
++d_f_analyze_document_1:
+  action>: DFAnalyzeDocument
+  display_name>: 'Document Forceでドキュメントを解析'
+  provider_id: documentforce_03f3151d6f9accddcffa
+  endpoint: 'https://app.aipuncher.com/api/v2/analyse/****************'
+  file: +get_file_1
+  tags:
+    AUTORO DevOps:
+      - '開発テストタグ'
+  wait_for_result: false
+  private: false
+  meta:
+    display:
+      provider_id:
+        type: chip
+        label: 'Documentforce (AUTORO連携用)'
+        icon: documentforce
+    action:
+      disabled: false
+# {
+#   "document_id": 1027
+# }
diff --git "a/\346\244\234\347\264\242\343\203\257\343\203\274\343\203\211\343\202\222\345\205\245\345\212\233.js" "b/\346\244\234\347\264\242\343\203\257\343\203\274\343\203\211\343\202\222\345\205\245\345\212\233.js"
new file mode 100644
index 00000000000..bdddda67d3f
--- /dev/null
+++ "b/\346\244\234\347\264\242\343\203\257\343\203\274\343\203\211\343\202\222\345\205\245\345\212\233.js"
@@ -0,0 +1,175 @@
+検索ワードを入力
+ドキュメント
+Release Note
+Overview
+ログイン
+ロボットを動かしてみる
+実行要求とキュー
+ワークフロー
+エラー処理
+トリガー
+ログ画面
+ロボットタイプ
+カスタムアクション
+パッケージ
+クッキー
+変数セット
+プライベートログ機能
+ストレージ
+利用状況アラート
+コンテキストメニュー
+Task
+タスクの Yaml での記述
+アクションタスク
+コントロールタスク
+Actions
+ArtificialIntelligence
+BigData
+Browser
+Cloudsign
+ComputerVision
+Control
+Data
+Desktop
+Document Force
+Excel
+ExcelOnline
+Fujifilm
+General
+Github
+Google Calendar
+Google Docs
+Google Spreadsheet
+HubSpot
+HumanIntelligence
+kintone
+Marketing
+Message
+Outlook Calendar
+Salesforce
+SerpApi
+Shopify
+SmartHR
+Storage
+Text
+Trello
+Twilio
+WebService
+Zohocrm
+Search
+セッションの検索
+Connections
+Apple Search Ads
+BigQuery
+box
+ChatGPT
+Chatwork
+Cloudsign
+Document Force
+Dropbox
+Dropbox Full Access
+Facebook Ads
+Fujifilm IWpro
+Gemini Pro
+Github
+Gmail
+Gmail for Google Workspace
+Google Ads
+Google AI
+Google Analytics
+Google Calendar
+Google Chat
+Google Cloud Storage
+Google Docs
+Google Drive
+Google Spreadsheet
+HubSpot
+Kintone With Password
+kintone
+LINE WORKS
+Line Ads
+Microsoft Ads
+Microsoft Teams Message
+OneDrive
+Outlook
+Outlook Calendar
+S3
+Salesforce
+Search Console
+SerpApi
+Shopify
+Slack
+SmartHR
+TikTok Ads
+Trello
+Twilio
+Twitter Ads
+Yahoo Ads
+Zohocrm
+Integrations
+GitHub
+SSO
+Azure AD
+GMOトラスト・ログイン
+OneLogin
+トリガー
+Gmail
+Outlook
+Slack イベント
+Webhook
+ユーザーと権限
+組織ユーザー
+サポート
+補足情報
+モバイルデバイス
+Security
+セキュリティ仕様
+セキュリティ機能
+AUTORO Assistant
+インストール方法
+CSS セレクタの取得
+連続した操作を記録
+サイト上の情報を CSV に抽出
+繰り返し作業を記録
+既存のワークフローを実行
+AUTORO Sheets Addon
+インストール方法
+トリガーの作成・編集・削除
+設定メニュー
+アドオンのアンインストール
+スプレッドシートが更新された時に AUTORO を起動する
+AUTORO Desktop
+インストール方法
+デバイスの共有設定
+システム要件・動作環境
+ODBCQueryアクションの利用例
+Zapier
+セットアップ方法
+Zapier から AUTORO を起動する
+Marketing
+マーケティングに関するアクション一覧です。
+GetGA4Report
+概要
+GetGA4Report は、Google Analytics4 からレポートを取得するアクションです。パラメーターを設定することで、カスタマイズされたレポートを作成することができます。レポートの対象期間は、startDate、endDate で設定します。取得したい値は、metrics で選択します。ページ別、ブラウザ別などの分析軸を設定したい場合は、dimensions で指定します。リクエストで返されるディメンションまたは指標を制限したい場合は、metricFilter または dimensionFilter で指定します。返却されるレスポンスはデフォルトで最大1000行です。
+パラメーター
+*は、必須パラメーター
+名前	型	概要	例
+provider*	文字列	google analytics4 からデータを取得するのに必要なプロバイダーID	ga_e7502c3b8b8147410ce2
+propertyId*	数値	プロパティID	12345678
+startDate*	文字列	リクエスト期間の開始日付	2023-04-01
+endDate*	文字列	リクエスト期間の終了日付	2023-04-30
+metrics	文字列	指標(定量化されたデータ)。カンマ区切りで10個まで指定可能。入力可能な値については こちら をご参照ください。	sessions, newUsers
+dimensions	文字列	ディメンション(データの属性)。カンマ区切りで5個まで指定可能。入力可能な値については こちら をご参照ください。	date, sessionDefaultChannelGroup
+metricFilter	オブジェクト	リクエストで返されるデータを制限する指標のフィルタ	※ フィルタについての説明参照
+dimensionFilter	オブジェクト	リクエストで返されるデータを制限するディメンションのフィルタ	※ フィルタについての説明参照
+pageSize	数値	リクエストで返されるデータの数。最大で、100,000行。	1000 (デフォルト値)
+フィルタについての説明
+フィルタの作成方法
+metricFilter や dimensionFilter を設定することで取得するデータの値を制限することができます。以下の手順によって 公式ドキュメント からフィルタを作成してください。
+公式ドキュメントの「Try this method」の「Request body」から metricFilter または dimensionFilter を選択し、フィルタオブジェクトを作成する。
+作成したフィルタの metricFilter または dimensionFilter の内側のオブジェクトをコピーする
+GetGA4Report アクションの metricFilter または dimensionFilter パラメータに貼り付ける
+フィルタの書き方
+metricFilter, dimensionFilter の書き方についての説明。 詳しくは公式ドキュメントをご参照ください。
+基本のフィルタ
+キーに filter 、値に条件を設定します。