diff --git a/Gruntfile.js b/Gruntfile.js index 5deef80..7f2bdc9 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -16,28 +16,35 @@ module.exports = function(grunt) { }, js: { src: [ - 'js_src/Shape.js', - 'js_src/Svg.js', - 'js_src/Keyboard.js', - 'js_src/SettingsWindow.js', - 'js_src/UpdatePanel.js', - 'js_src/PrinterPanel.js', - 'js_src/Help.js', - 'js_src/d3dServerInterfacing.js', - 'js_src/verticalShapes.js', - 'js_src/buttonbehaviors.js', - 'js_src/canvasDrawing.js', - 'js_src/previewRendering.js', - 'js_src/gcodeGenerating.js', - 'js_src/init_layout.js', - 'js_src/Printer.js', - 'js_src/Progressbar.js', - 'js_src/Thermometer.js', - 'js_src/utils.js', - 'js_src/sidebar.js', - 'js_src/Message.js', - 'js_src/main.js', - 'js_src/sketches.js' + 'js/Events.js', + 'js/Class.js', + 'js/Button.js', + 'js/Popup.js', + 'js/btnMove.js', + 'js/WordArt.js', + 'js/Shape.js', + 'js/AddShapeDialog.js', + 'js/Svg.js', + 'js/Keyboard.js', + 'js/SettingsWindow.js', + 'js/UpdatePanel.js', + 'js/PrinterPanel.js', + 'js/Help.js', + 'js/d3dServerInterfacing.js', + 'js/verticalShapes.js', + 'js/buttonbehaviors.js', + 'js/canvasDrawing.js', + 'js/previewRendering.js', + 'js/gcodeGenerating.js', + 'js/init_layout.js', + 'js/Printer.js', + 'js/Progressbar.js', + 'js/Thermometer.js', + 'js/utils.js', + 'js/sidebar.js', + 'js/Message.js', + 'js/main.js', + 'js/sketches.js' ], dest: 'www/js/<%= pkg.name %>.js' } @@ -57,8 +64,8 @@ module.exports = function(grunt) { } }, jslibs: { - cwd: "js_src/libs/", -// src: ['js_src/libs/*.js', '!js_src/libs/*.min.js'], // source files mask + cwd: "js/libs/", +// src: ['js/libs/*.js', '!js/libs/*.min.js'], // source files mask src: ['*.js', '!*.min.js'], // source files mask dest: 'www/js/libs/', // destination folder expand: true, // allow dynamic building @@ -106,12 +113,12 @@ module.exports = function(grunt) { }, watch: { javascript: { - files: ["js_src/*", '!www/js/<%= pkg.name %>.min.js', '!www/js/<%= pkg.name %>.js'], + files: ["js/*", '!www/js/<%= pkg.name %>.min.js', '!www/js/<%= pkg.name %>.js'], tasks: ["concat:js", "uglify:js"] // tasks: ["jshint", "concat", "uglify"] }, javascriptLibs: { - files: ["js_src/libs/*"], + files: ["js/libs/*"], tasks: ["uglify:jslibs"] // tasks: ["jshint", "concat", "uglify"] }, diff --git a/css_old/_backup20131010/d3d_btns.css b/css_old/_backup20131010/d3d_btns.css deleted file mode 100644 index 1e60daa..0000000 --- a/css_old/_backup20131010/d3d_btns.css +++ /dev/null @@ -1,179 +0,0 @@ -/*.logo { - background: #f5f5f5 url('../img/logo_full.png') no-repeat left top; -} - -@media screen and (max-width: 500px) { - .logo { - background: #f5f5f5 url('../img/logo_small.png') no-repeat left top; - } -}*/ - -/*body {*/ - /*-moz-user-select: none; *//* disable cut copy paste */ - /*-webkit-user-select: none; *//* disable cut copy paste */ - /*overflow:hidden; *//* This chops off any overhanging divs */ -/*}*/ - -/*img {*/ - /*z-index: 5;*/ - /*pointer-events:none;*/ - /*-webkit-touch-callout: none; *//**//*disable callout, image save panel */ - /*-webkit-tap-highlight-color: transparent; *//**//* "turn off" link highlight */ -/*}*/ - -/* http://stackoverflow.com/questions/5348092/prevent-default-press-but-not-default-drag-in-ios-mobilesafari */ -/*.btn {*/ - /*background-repeat: no-repeat;*/ -/* -webkit-user-select: none;*/ - /*cursor: pointer*/ -/*}*/ - -/* - - INTERFACE BUTTONS - -*/ -/* -#btnNew { - left: 10px; - top: 10px; - width: 194px; - height: 170px; - background: url('../img/buttons/btnNew.png') no-repeat; -} - -#btnPrevious { - left: 20px; - top: 180px; - z-index: 10; -} - -#btnNext { - left: 126px; - top: 186px; - z-index: 10; -} - -#btnSave { - left: 20px; - top: 240px; -} - -#btnOops { - left: 20px; - top: 450px; - width: 146px; - height: 144px; - background: url('../img/buttons/btnOops.png') no-repeat; -} -*/ - -/* -#btnPrint { - right: 15px; - top: 15px; -} - -#btnStop { - right: 20px; - top: 200px; -} - -#btnInfo { - right: 25px; - bottom: 90px; -} - -#btnSettings { - right: 25px; - bottom: 20px; -} -*/ - - - -/* - - DRAW AREA - -*/ - - -/*#drawAreaContainer > .manipulationBtns {*/ -/* -.drawareacontainer > .manipulationBtns { - margin: 5px; -} - -.manipulationBtn { - cursor: pointer; -} - -#btnsUpDown { - position: absolute; - right: 200px; - bottom: -75px; -} -#btnsUpDown > div { - float: left; - padding-right: 8px; - background-repeat: no-repeat; -} - -#btnsTurnLeftRight { - position: absolute; - right: 20px; - bottom: -75px; -} -#btnsTurnLeftRight >div { - float: left; - padding-right: 8px; - background-repeat: no-repeat; -} - -#btnMoveUp { - width: 65px; - height: 61px; - background: url('../img/buttons/btnUp.png'); -} - -#btnMoveDown { - width: 64px; - height: 63px; - background: url('../img/buttons/btnDown.png'); -} - -#btnTwistLeft { - width: 59px; - height: 61px; - background: url('../img/buttons/btnTurnLeft.png'); -} - -#btnTwistRight { - width: 64px; - height: 56px; - background: url('../img/buttons/btnTurnRight.png'); -} -*/ - -/* -#displayTemp { - position: absolute; - right: 55px; - top: 334px; - font-weight: bold; - background: white; - display:none; -} -*/ - -/* -.disabled { - opacity: 0.3; - cursor: default; -} - -#btnStop.disabled { - display: none; -} -*/ \ No newline at end of file diff --git a/css_old/_backup20131010/fixedPosInterface.css b/css_old/_backup20131010/fixedPosInterface.css deleted file mode 100644 index 881dd30..0000000 --- a/css_old/_backup20131010/fixedPosInterface.css +++ /dev/null @@ -1,93 +0,0 @@ -/* -#drawAreaContainer { - position: absolute; - top: 50%; - left: 50%; - background-color: #fff; - width: 65%; - min-width: 500px; - max-width: 650px; - height: 60%; - min-height: 150px; - max-height: 450px; - border: 4px solid #000; - border-radius: 15px; - overflow: hidden; - z-index: 15; - display: none; -} - -#canvasContainers { - display:table; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - width: 100%; - height: 100%; - padding: 0; - margin: 0; -} - -#mycanvasContainer { - display:table-cell; - width: auto; - height: 100%; -} -#mycanvas { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - border-right: 2px solid #333; -} - -#previewContainer { - display:table-cell; - width: 150px; - height: 100%; -} -#preview { - width: 150px; - height: 100%; - float: right; - margin: 0; - padding: 0; -} -*/ - -/* DEBUG THING */ -/* -#preview_tmp { - position: absolute; - top: 0px; - left: 0px; - z-index: 500; - border: 1px solid #f80; - display: none; -} -*/ - -/* - - Buttons and logo's - -*/ -/* -.button { - display: table; -} -*/ - -/*#d3dlogo {*/ - /*position: absolute;*/ - /*top: 15px;*/ - /*left: 31%;*/ - /*width: 399px;*/ - /*height: 139px;*/ - /*background-image: url('../img/logo_full.png');*/ - /*cursor: pointer;*/ -/*}*/ - - diff --git a/css_old/_backup20131010/settingsPopup.css b/css_old/_backup20131010/settingsPopup.css deleted file mode 100644 index 95b407b..0000000 --- a/css_old/_backup20131010/settingsPopup.css +++ /dev/null @@ -1,74 +0,0 @@ -#contentOverlay { - background-color: rgba(255, 255, 255, 0.65); - z-index: 20; - position: absolute; - top: 0px; - left: 0px; - width: 100%; - height: 100%; - display:none; -} -#settings { - background-color: #fff; - z-index: 15; - - position: absolute; - top: 50%; - left: 50%; - width: 835px; - height: 500px; - margin: -250px 0 0 -417.5px; - /*padding: 25px;*/ - - /*overflow: scroll;*/ - /*overflow-y: hidden;*/ - -moz-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); - -webkit-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); - box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); - border: 2px solid #222; - border-radius: 15px; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - overflow: hidden; -} -#settings header { - margin: 25px 25px 0 25px; - height: 44px; -} - -div.content { - margin: 15px 25px 25px 25px; - height: 388px; - display: table; -} - -div.content > div { - height: 100%; -} - -div.content > div.settings { - border: 1px solid rgb(187, 187, 187); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - - width: 660px; - overflow: scroll; - max-height: 368px; - overflow-x: hidden; - padding: 10px 10px 10px 10px; -} -div.content > div.manipulationBtns { - display: table-cell; - vertical-align: bottom; - width: 125px; - -} - -div.content .btnOK { - width: 85px; - height: 86px; - background: url('../img/buttons/btnOk_settings.png') no-repeat; - margin: 0 0 0 10px; - cursor: pointer; -} diff --git a/css_old/_backup20131011/fixedPosInterface.css b/css_old/_backup20131011/fixedPosInterface.css deleted file mode 100644 index eb071f2..0000000 --- a/css_old/_backup20131011/fixedPosInterface.css +++ /dev/null @@ -1,329 +0,0 @@ -body { -/* This chops off any overhanging divs */ - overflow:hidden; -} - -.button { - display: table; -} - -/*#landscape {*/ - /*position:relative;*/ - /*width: 1024px;*/ - /*max-height: 768px;*/ - /*background-color: #808;*/ - /*border: 10px solid #ff0;*/ - /*margin: 0px auto;*/ -/*}*/ - - -#verticalShapes { - position:absolute; - right: -56px; - bottom: 15px; - /*background-color: #fff;*/ -} - -.verticalshape { - width: 50px; - height: 50px; - border: 2px solid #333; - border-radius: 0px 5px 5px 0px; - margin-top: 4px; - /*background-color: #f0f;*/ - cursor: pointer; -} - -.straight { - background: url('../img/vertical_shape_icons/straight.png') no-repeat; -} -.diverging { - background: url('../img/vertical_shape_icons/diverging.png') no-repeat; -} -.converging { - background: url('../img/vertical_shape_icons/converging.png') no-repeat; -} -.sinus { - background: url('../img/vertical_shape_icons/sinus.png') no-repeat; -} - - -/* Portrait */ -@media screen and (orientation:portrait) { - body { -/* background-color: #08F;*/ - } - - #landscape { - display: none; - } - #portrait { - display: block; - } -} - /* Landscape */ -@media screen and (orientation:landscape) { - body { -/* background-color: #8F0;*/ - } - - #landscape { - display: block; - } - #portrait { - display: none; - } -} - -.uiButtonsContainer { - position: fixed; - top: 0px; - left: 0px; - width: 1024px; - min-height: 500px; - max-height: 768px; - height: 100%; - /* height: 768px;*/ -} -.uiButtonsContainer:before { - content:' '; - display:block; - position:absolute; - left:0; - top:0; - right:0; - bottom:0; - border: 2px solid #333; -} - -#d3dlogo { - position: absolute; - top: 15px; - left: 31%; - width: 399px; - height: 139px; - background-image: url('../img/logo_full.png'); - cursor: pointer; -} - -#drawAreaContainer { - position: absolute; - top: 193px; - left: 193px; - width: 650px; - height: 450px; - background-color: #fff; - border: 4px solid #000; - border-radius: 15px; -} - -#preview_tmp { - position: absolute; - top: 0px; - left: 0px; - z-index: 500; - border: 1px solid #f80; - display: none; -} - -#mycanvas, #preview { - /*border: 1px solid #08c;*/ - float: left; -} - -#mycanvas { - width: 500px; - height: 450px; - border: 0px solid #333; - border-right: 2px solid #333; -} - -#preview { - /*border: 1px solid #f8c;*/ - position: absolute; - right: 0px; - top: 0px; - width: 150px; - height: 450px; -} - -.vertImage { - margin: 0px; - padding: 0px; - /*border: 2px solid #f0f;*/ - max-width: 100%; - height: auto; - width: auto; /* for ie9 */ -} - - -.bgTop { - position: absolute; - top: 0px; - left: 0px; - z-index: -5; -} -.bgMiddle { - display: block; - position: absolute; - top: 30%; - left: 0px; - z-index: -5; -} -.bgBottom { - position: absolute; - bottom: 0px; - left: 0px; - z-index: -5; -} - -/* PRINT PROGRESS DISPLAY */ -#printProgressContainer { - position: absolute; - right: 30px; - top: 370px; - width: 110px; - margin: 5px 0px; - font-weight: bold; - display:none; -} -#progressbarContainer { - margin: 3px 0px; - width: inherit; - height: 20px; - background-color: #fff; - border: 2px solid #333; - border-radius: 5px; - -o-border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} -.progressAmount { - margin: 0px 5px; -} -#progressbar { - position: relative; - /*margin-bottom: -20px;*/ - width: 0%; - height: 100%; - background-color: #4c4; - border: 0px solid #f0f; - border-radius: 3px; - -o-border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} - -/* THERMOMETER */ -#thermometerContainer { - position: absolute; - right: 5px; - top: 360px; -} -#thermometerCanvas { - /*background: #59b2b8;*/ - /*zoom: 2;*/ -} - - -/* The code below is for resizing UI elements as the viewport becomes less high (suitable for tablets & smartphones) */ - -@media screen and (max-height: 675px) { - .bgMiddle { - display: none; - } - - #d3dlogo { - width: 399px; - height: 74px; - background-image: url('../img/logo_small.png'); - margin-top: 9px; - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.94; - -moz-transform: translate(0px,-5px) scale(.94); - } - - #btnNew { - zoom: 0.94; - -moz-transform: translate(-5px,-5px) scale(.94); - /*-moz-transform: translate(-3px,-3px);*/ - } - #btnOops { - zoom: 0.94; - -moz-transform: translate(-5px,-10px) scale(0.94); - } - - #btnPrint { - right: 10px; - top: 10px; - -moz-transform: translate(5px,-5px); - } - - - .btn { - zoom: 0.94; - -moz-transform: scale(.94); - } - - #drawAreaContainer { - top: 128px; - height: 350px; - } -} - -@media screen and (max-height: 560px) { - #d3dlogo { - width: 399px; - height: 57px; - background-image: url('../img/logo_smaller_wide.png'); - margin-top: 14px; - /*zoom: 0.8;*/ - /*-moz-transform: translate(-20px,-15px) scale(.8);*/ - /*-moz-transform: ;*/ - /*left: 34%;*/ - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.86; - -moz-transform: translate(0px,-7px) scale(0.86); - } - - #btnPrint { - right: 6px; - -moz-transform: translate(10px,-10px); - } - - #btnNew { - zoom: 0.86; - -moz-transform: translate(-10px,-10px) scale(.86); - } - - .btn { - zoom: 0.86; - -moz-transform: scale(.86); - } - - #btnOops { - top: 350px; - zoom: 0.86; - -moz-transform: translate(-10px,-25px) scale(.86); - } - #btnSave { - -moz-transform: translate(-5px,-13px); - } - - #btnPrevious, #btnNext { - /*top: 200px;*/ - -moz-transform: translate(-5px,-10px); - } - - #drawAreaContainer { - top: 110px; - height: 350px; - } -} - - - diff --git a/css_old/_backup20131011/fixedPosInterface.css.BACKUP.99789.css b/css_old/_backup20131011/fixedPosInterface.css.BACKUP.99789.css deleted file mode 100644 index eb071f2..0000000 --- a/css_old/_backup20131011/fixedPosInterface.css.BACKUP.99789.css +++ /dev/null @@ -1,329 +0,0 @@ -body { -/* This chops off any overhanging divs */ - overflow:hidden; -} - -.button { - display: table; -} - -/*#landscape {*/ - /*position:relative;*/ - /*width: 1024px;*/ - /*max-height: 768px;*/ - /*background-color: #808;*/ - /*border: 10px solid #ff0;*/ - /*margin: 0px auto;*/ -/*}*/ - - -#verticalShapes { - position:absolute; - right: -56px; - bottom: 15px; - /*background-color: #fff;*/ -} - -.verticalshape { - width: 50px; - height: 50px; - border: 2px solid #333; - border-radius: 0px 5px 5px 0px; - margin-top: 4px; - /*background-color: #f0f;*/ - cursor: pointer; -} - -.straight { - background: url('../img/vertical_shape_icons/straight.png') no-repeat; -} -.diverging { - background: url('../img/vertical_shape_icons/diverging.png') no-repeat; -} -.converging { - background: url('../img/vertical_shape_icons/converging.png') no-repeat; -} -.sinus { - background: url('../img/vertical_shape_icons/sinus.png') no-repeat; -} - - -/* Portrait */ -@media screen and (orientation:portrait) { - body { -/* background-color: #08F;*/ - } - - #landscape { - display: none; - } - #portrait { - display: block; - } -} - /* Landscape */ -@media screen and (orientation:landscape) { - body { -/* background-color: #8F0;*/ - } - - #landscape { - display: block; - } - #portrait { - display: none; - } -} - -.uiButtonsContainer { - position: fixed; - top: 0px; - left: 0px; - width: 1024px; - min-height: 500px; - max-height: 768px; - height: 100%; - /* height: 768px;*/ -} -.uiButtonsContainer:before { - content:' '; - display:block; - position:absolute; - left:0; - top:0; - right:0; - bottom:0; - border: 2px solid #333; -} - -#d3dlogo { - position: absolute; - top: 15px; - left: 31%; - width: 399px; - height: 139px; - background-image: url('../img/logo_full.png'); - cursor: pointer; -} - -#drawAreaContainer { - position: absolute; - top: 193px; - left: 193px; - width: 650px; - height: 450px; - background-color: #fff; - border: 4px solid #000; - border-radius: 15px; -} - -#preview_tmp { - position: absolute; - top: 0px; - left: 0px; - z-index: 500; - border: 1px solid #f80; - display: none; -} - -#mycanvas, #preview { - /*border: 1px solid #08c;*/ - float: left; -} - -#mycanvas { - width: 500px; - height: 450px; - border: 0px solid #333; - border-right: 2px solid #333; -} - -#preview { - /*border: 1px solid #f8c;*/ - position: absolute; - right: 0px; - top: 0px; - width: 150px; - height: 450px; -} - -.vertImage { - margin: 0px; - padding: 0px; - /*border: 2px solid #f0f;*/ - max-width: 100%; - height: auto; - width: auto; /* for ie9 */ -} - - -.bgTop { - position: absolute; - top: 0px; - left: 0px; - z-index: -5; -} -.bgMiddle { - display: block; - position: absolute; - top: 30%; - left: 0px; - z-index: -5; -} -.bgBottom { - position: absolute; - bottom: 0px; - left: 0px; - z-index: -5; -} - -/* PRINT PROGRESS DISPLAY */ -#printProgressContainer { - position: absolute; - right: 30px; - top: 370px; - width: 110px; - margin: 5px 0px; - font-weight: bold; - display:none; -} -#progressbarContainer { - margin: 3px 0px; - width: inherit; - height: 20px; - background-color: #fff; - border: 2px solid #333; - border-radius: 5px; - -o-border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} -.progressAmount { - margin: 0px 5px; -} -#progressbar { - position: relative; - /*margin-bottom: -20px;*/ - width: 0%; - height: 100%; - background-color: #4c4; - border: 0px solid #f0f; - border-radius: 3px; - -o-border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} - -/* THERMOMETER */ -#thermometerContainer { - position: absolute; - right: 5px; - top: 360px; -} -#thermometerCanvas { - /*background: #59b2b8;*/ - /*zoom: 2;*/ -} - - -/* The code below is for resizing UI elements as the viewport becomes less high (suitable for tablets & smartphones) */ - -@media screen and (max-height: 675px) { - .bgMiddle { - display: none; - } - - #d3dlogo { - width: 399px; - height: 74px; - background-image: url('../img/logo_small.png'); - margin-top: 9px; - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.94; - -moz-transform: translate(0px,-5px) scale(.94); - } - - #btnNew { - zoom: 0.94; - -moz-transform: translate(-5px,-5px) scale(.94); - /*-moz-transform: translate(-3px,-3px);*/ - } - #btnOops { - zoom: 0.94; - -moz-transform: translate(-5px,-10px) scale(0.94); - } - - #btnPrint { - right: 10px; - top: 10px; - -moz-transform: translate(5px,-5px); - } - - - .btn { - zoom: 0.94; - -moz-transform: scale(.94); - } - - #drawAreaContainer { - top: 128px; - height: 350px; - } -} - -@media screen and (max-height: 560px) { - #d3dlogo { - width: 399px; - height: 57px; - background-image: url('../img/logo_smaller_wide.png'); - margin-top: 14px; - /*zoom: 0.8;*/ - /*-moz-transform: translate(-20px,-15px) scale(.8);*/ - /*-moz-transform: ;*/ - /*left: 34%;*/ - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.86; - -moz-transform: translate(0px,-7px) scale(0.86); - } - - #btnPrint { - right: 6px; - -moz-transform: translate(10px,-10px); - } - - #btnNew { - zoom: 0.86; - -moz-transform: translate(-10px,-10px) scale(.86); - } - - .btn { - zoom: 0.86; - -moz-transform: scale(.86); - } - - #btnOops { - top: 350px; - zoom: 0.86; - -moz-transform: translate(-10px,-25px) scale(.86); - } - #btnSave { - -moz-transform: translate(-5px,-13px); - } - - #btnPrevious, #btnNext { - /*top: 200px;*/ - -moz-transform: translate(-5px,-10px); - } - - #drawAreaContainer { - top: 110px; - height: 350px; - } -} - - - diff --git a/css_old/_backup20131011/fixedPosInterface.css.BASE.99789.css b/css_old/_backup20131011/fixedPosInterface.css.BASE.99789.css deleted file mode 100644 index 426497d..0000000 --- a/css_old/_backup20131011/fixedPosInterface.css.BASE.99789.css +++ /dev/null @@ -1,323 +0,0 @@ -body { -/* This chops off any overhanging divs */ - overflow:hidden; -} - - -.button { - display: table; -} - -/*.big {*/ - /*background: #a6e19c;*/ - /*border: 1px solid #222;*/ - /*height: 64px;*/ - /*width: 64px;*/ - /*display: table-cell;*/ - /*vertical-align: middle;*/ - /*text-align: center;*/ - /*border-radius: 32px;*/ - /*-moz-border-radius: 32px;*/ - /*-webkit-border-radius: 32px;*/ -/*}*/ -/*.small {*/ - /*background: #a3d5f7;*/ - /*border: 1px solid #222;*/ - /*height: 40px;*/ - /*width: 40px;*/ - /*display: table-cell;*/ - /*vertical-align: middle;*/ - /*text-align: center;*/ - /*border-radius: 20px;*/ - /*-moz-border-radius: 20px;*/ - /*-webkit-border-radius: 20px;*/ -/*}*/ - -#logo { - position: absolute; - /*left: 50%;*/ - /*margin-left: -220px;*/ - top: 20px; - left: 315px; - width: 400px; - height: 140px; -} - -/*ha {*/ - /*background: #f5f5f5 url('../images/bg.jpg') no-repeat;*/ -/*}*/ - - /* Portrait */ -@media screen and (orientation:portrait) { - body { -/* background-color: #08F;*/ - } - - #landscape { - display: none; - } - #portrait { - display: block; - } -} - /* Landscape */ -@media screen and (orientation:landscape) { - body { -/* background-color: #8F0;*/ - } - - #landscape { - display: block; - } - #portrait { - display: none; - } -} - -.container { - position: fixed; - top: 0px; - left: 0px; - border: 2px solid #333; - width: 1024px; - min-height: 500px; - max-height: 768px; - height: 100%; -/* height: 768px;*/ -} - -#d3dlogo { - position: absolute; - top: 15px; - left: 31%; - width: 399px; - height: 139px; - background-image: url('../img/logo_full.png'); - cursor: pointer; -} - -#svg { - cursor: pointer; -} - -#drawAreaContainer { - position: absolute; - top: 193px; - left: 193px; - width: 650px; - height: 450px; - background-color: #fff; - border: 4px solid #000; - border-radius: 15px; -} - -#preview_tmp { - position: absolute; - top: 0px; - left: 0px; - z-index: 500; - border: 1px solid #f80; - display: none; -} - -#mycanvas, #preview { - /*border: 1px solid #08c;*/ - float: left; -} - -#mycanvas { - width: 500px; - height: 450px; - border: 0px solid #333; - border-right: 2px solid #333; -} - -#preview { - /*border: 1px solid #f8c;*/ - position: absolute; - right: 0px; - top: 0px; - width: 150px; - height: 450px; -} - -.vertImage { - margin: 0px; - padding: 0px; - /*border: 2px solid #f0f;*/ - max-width: 100%; - height: auto; - width: auto; /* for ie9 */ -} - - -.bgTop { - position: absolute; - top: 0px; - left: 0px; - z-index: -5; -} -.bgMiddle { - display: block; - position: absolute; - top: 30%; - left: 0px; - z-index: -5; -} -.bgBottom { - position: absolute; - bottom: 0px; - left: 0px; - z-index: -5; -} - -/* PRINT PROGRESS DISPLAY */ -#printProgressContainer { - position: absolute; - right: 30px; - top: 370px; - width: 110px; - margin: 5px 0px; - font-weight: bold; - display:none; -} -#progressbarContainer { - margin: 3px 0px; - width: inherit; - height: 20px; - background-color: #fff; - border: 2px solid #333; - border-radius: 5px; - -o-border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} -.progressAmount { - margin: 0px 5px; -} -#progressbar { - position: relative; - /*margin-bottom: -20px;*/ - width: 0%; - height: 100%; - background-color: #4c4; - border: 0px solid #f0f; - border-radius: 3px; - -o-border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} - -/* THERMOMETER */ -#thermometerContainer { - position: absolute; - right: 25px; - top: 370px; -} -#thermometerCanvas { - /*background: #59b2b8;*/ - /*zoom: 2;*/ -} - - -/* The code below is for resizing UI elements as the viewport becomes less high (suitable for tablets & smartphones) */ - -@media screen and (max-height: 675px) { - .bgMiddle { - display: none; - } - - #d3dlogo { - width: 399px; - height: 74px; - background-image: url('../img/logo_small.png'); - margin-top: 9px; - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.94; - -moz-transform: translate(0px,-5px) scale(.94); - } - - #btnNew { - zoom: 0.94; - -moz-transform: translate(-5px,-5px) scale(.94); - /*-moz-transform: translate(-3px,-3px);*/ - } - #btnOops { - zoom: 0.94; - -moz-transform: translate(-5px,-10px) scale(0.94); - } - - #btnPrint { - right: 10px; - top: 10px; - -moz-transform: translate(5px,-5px); - } - - - .btn { - zoom: 0.94; - -moz-transform: scale(.94); - } - - #drawAreaContainer { - top: 128px; - height: 350px; - } -} - -@media screen and (max-height: 560px) { - #d3dlogo { - width: 399px; - height: 57px; - background-image: url('../img/logo_smaller_wide.png'); - margin-top: 14px; - /*zoom: 0.8;*/ - /*-moz-transform: translate(-20px,-15px) scale(.8);*/ - /*-moz-transform: ;*/ - /*left: 34%;*/ - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.86; - -moz-transform: translate(0px,-7px) scale(0.86); - } - - #btnPrint { - right: 6px; - -moz-transform: translate(10px,-10px); - } - - #btnNew { - zoom: 0.86; - -moz-transform: translate(-10px,-10px) scale(.86); - } - - .btn { - zoom: 0.86; - -moz-transform: scale(.86); - } - - #btnOops { - top: 350px; - zoom: 0.86; - -moz-transform: translate(-10px,-25px) scale(.86); - } - #btnSave { - -moz-transform: translate(-5px,-13px); - } - - #btnPrevious, #btnNext { - /*top: 200px;*/ - -moz-transform: translate(-5px,-10px); - } - - #drawAreaContainer { - top: 110px; - height: 350px; - } -} - - - diff --git a/css_old/_backup20131011/fixedPosInterface.css.LOCAL.99789.css b/css_old/_backup20131011/fixedPosInterface.css.LOCAL.99789.css deleted file mode 100644 index eb071f2..0000000 --- a/css_old/_backup20131011/fixedPosInterface.css.LOCAL.99789.css +++ /dev/null @@ -1,329 +0,0 @@ -body { -/* This chops off any overhanging divs */ - overflow:hidden; -} - -.button { - display: table; -} - -/*#landscape {*/ - /*position:relative;*/ - /*width: 1024px;*/ - /*max-height: 768px;*/ - /*background-color: #808;*/ - /*border: 10px solid #ff0;*/ - /*margin: 0px auto;*/ -/*}*/ - - -#verticalShapes { - position:absolute; - right: -56px; - bottom: 15px; - /*background-color: #fff;*/ -} - -.verticalshape { - width: 50px; - height: 50px; - border: 2px solid #333; - border-radius: 0px 5px 5px 0px; - margin-top: 4px; - /*background-color: #f0f;*/ - cursor: pointer; -} - -.straight { - background: url('../img/vertical_shape_icons/straight.png') no-repeat; -} -.diverging { - background: url('../img/vertical_shape_icons/diverging.png') no-repeat; -} -.converging { - background: url('../img/vertical_shape_icons/converging.png') no-repeat; -} -.sinus { - background: url('../img/vertical_shape_icons/sinus.png') no-repeat; -} - - -/* Portrait */ -@media screen and (orientation:portrait) { - body { -/* background-color: #08F;*/ - } - - #landscape { - display: none; - } - #portrait { - display: block; - } -} - /* Landscape */ -@media screen and (orientation:landscape) { - body { -/* background-color: #8F0;*/ - } - - #landscape { - display: block; - } - #portrait { - display: none; - } -} - -.uiButtonsContainer { - position: fixed; - top: 0px; - left: 0px; - width: 1024px; - min-height: 500px; - max-height: 768px; - height: 100%; - /* height: 768px;*/ -} -.uiButtonsContainer:before { - content:' '; - display:block; - position:absolute; - left:0; - top:0; - right:0; - bottom:0; - border: 2px solid #333; -} - -#d3dlogo { - position: absolute; - top: 15px; - left: 31%; - width: 399px; - height: 139px; - background-image: url('../img/logo_full.png'); - cursor: pointer; -} - -#drawAreaContainer { - position: absolute; - top: 193px; - left: 193px; - width: 650px; - height: 450px; - background-color: #fff; - border: 4px solid #000; - border-radius: 15px; -} - -#preview_tmp { - position: absolute; - top: 0px; - left: 0px; - z-index: 500; - border: 1px solid #f80; - display: none; -} - -#mycanvas, #preview { - /*border: 1px solid #08c;*/ - float: left; -} - -#mycanvas { - width: 500px; - height: 450px; - border: 0px solid #333; - border-right: 2px solid #333; -} - -#preview { - /*border: 1px solid #f8c;*/ - position: absolute; - right: 0px; - top: 0px; - width: 150px; - height: 450px; -} - -.vertImage { - margin: 0px; - padding: 0px; - /*border: 2px solid #f0f;*/ - max-width: 100%; - height: auto; - width: auto; /* for ie9 */ -} - - -.bgTop { - position: absolute; - top: 0px; - left: 0px; - z-index: -5; -} -.bgMiddle { - display: block; - position: absolute; - top: 30%; - left: 0px; - z-index: -5; -} -.bgBottom { - position: absolute; - bottom: 0px; - left: 0px; - z-index: -5; -} - -/* PRINT PROGRESS DISPLAY */ -#printProgressContainer { - position: absolute; - right: 30px; - top: 370px; - width: 110px; - margin: 5px 0px; - font-weight: bold; - display:none; -} -#progressbarContainer { - margin: 3px 0px; - width: inherit; - height: 20px; - background-color: #fff; - border: 2px solid #333; - border-radius: 5px; - -o-border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} -.progressAmount { - margin: 0px 5px; -} -#progressbar { - position: relative; - /*margin-bottom: -20px;*/ - width: 0%; - height: 100%; - background-color: #4c4; - border: 0px solid #f0f; - border-radius: 3px; - -o-border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} - -/* THERMOMETER */ -#thermometerContainer { - position: absolute; - right: 5px; - top: 360px; -} -#thermometerCanvas { - /*background: #59b2b8;*/ - /*zoom: 2;*/ -} - - -/* The code below is for resizing UI elements as the viewport becomes less high (suitable for tablets & smartphones) */ - -@media screen and (max-height: 675px) { - .bgMiddle { - display: none; - } - - #d3dlogo { - width: 399px; - height: 74px; - background-image: url('../img/logo_small.png'); - margin-top: 9px; - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.94; - -moz-transform: translate(0px,-5px) scale(.94); - } - - #btnNew { - zoom: 0.94; - -moz-transform: translate(-5px,-5px) scale(.94); - /*-moz-transform: translate(-3px,-3px);*/ - } - #btnOops { - zoom: 0.94; - -moz-transform: translate(-5px,-10px) scale(0.94); - } - - #btnPrint { - right: 10px; - top: 10px; - -moz-transform: translate(5px,-5px); - } - - - .btn { - zoom: 0.94; - -moz-transform: scale(.94); - } - - #drawAreaContainer { - top: 128px; - height: 350px; - } -} - -@media screen and (max-height: 560px) { - #d3dlogo { - width: 399px; - height: 57px; - background-image: url('../img/logo_smaller_wide.png'); - margin-top: 14px; - /*zoom: 0.8;*/ - /*-moz-transform: translate(-20px,-15px) scale(.8);*/ - /*-moz-transform: ;*/ - /*left: 34%;*/ - } - - #btnsUpDown, #btnsTurnLeftRight { - zoom: 0.86; - -moz-transform: translate(0px,-7px) scale(0.86); - } - - #btnPrint { - right: 6px; - -moz-transform: translate(10px,-10px); - } - - #btnNew { - zoom: 0.86; - -moz-transform: translate(-10px,-10px) scale(.86); - } - - .btn { - zoom: 0.86; - -moz-transform: scale(.86); - } - - #btnOops { - top: 350px; - zoom: 0.86; - -moz-transform: translate(-10px,-25px) scale(.86); - } - #btnSave { - -moz-transform: translate(-5px,-13px); - } - - #btnPrevious, #btnNext { - /*top: 200px;*/ - -moz-transform: translate(-5px,-10px); - } - - #drawAreaContainer { - top: 110px; - height: 350px; - } -} - - - diff --git a/css_old/_backup20131011/fixedPosInterface.css.REMOTE.99789.css b/css_old/_backup20131011/fixedPosInterface.css.REMOTE.99789.css deleted file mode 100644 index e69de29..0000000 diff --git a/css_old/_backup20131011/popups.css b/css_old/_backup20131011/popups.css deleted file mode 100644 index ce17655..0000000 --- a/css_old/_backup20131011/popups.css +++ /dev/null @@ -1,74 +0,0 @@ -#contentOverlay { - background-color: rgba(255, 255, 255, 0.65); - z-index: 10; - position: absolute; - top: 0px; - left: 0px; - width: 1024px; - height: 100%; - display:none; -} - -.popup { - background-color: #fff; - z-index: 15; - - position: absolute; - top: 50%; - left: 50%; - width: 835px; - height: 500px; - margin: -250px 0 0 -417.5px; - /*padding: 25px;*/ - - /*overflow: scroll;*/ - /*overflow-y: hidden;*/ - -moz-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); - -webkit-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); - box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); - border: 2px solid #222; - border-radius: 15px; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - overflow: hidden; - display:none; -} - - -#settings header { - margin: 25px 25px 0 25px; - height: 44px; -} -#settings div.content { - margin: 15px 25px 25px 25px; - height: 388px; - display: table; -} -#settings div.content > div { - height: 100%; -} -#settings div.content > div.settings { - border: 1px solid rgb(187, 187, 187); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - - width: 660px; - overflow: scroll; - max-height: 368px; - overflow-x: hidden; - padding: 10px 10px 10px 10px; -} -#settings div.content > div.manipulationBtns { - display: table-cell; - vertical-align: bottom; - width: 125px; - -} -#settings div.content .btnOK { - width: 85px; - height: 86px; - background: url('../img/buttons/btnOk_settings.png') no-repeat; - margin: 0 0 0 10px; - cursor: pointer; -} \ No newline at end of file diff --git a/css_old/_settings.css b/css_old/_settings.css deleted file mode 100644 index 7c6112c..0000000 --- a/css_old/_settings.css +++ /dev/null @@ -1,96 +0,0 @@ -form { - margin: 10px; -} -form input { - margin: 1px; -} - -body,th,td { - font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif; - font-size: 13px; -} -.settingsContainer { - position:relative; - max-width: 600px; - /*min-width: 370px;*/ - width: 100%; - height: 100%; -} -/*form#settingsForm {*/ - /*width: 100% auto;*/ -/*}*/ -form fieldset { - max-width: 600px; - border: 1px solid rgb(187, 187, 187); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - margin-bottom: 20px; - padding: 8px; - /*padding-right: 8px;*/ -} -form fieldset fieldset{ - max-width: 580px; - margin: 15px 0 5px 0; - clear: left; - float: left; -} -form fieldset legend { - margin-left: 10px; - font-weight: bold; -} -form label { - min-width: 150px; - display: block; - float: left; - margin: 1px 0 0 0; - clear: left; -} -form div { - float: left; -} -form input[type="text"], form input[type="number"], form input[type="password"] { - border: 1px solid rgb(144, 192, 255); - margin-right: 5px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -form input[type="text"].small, form input[type="number"].small, form input[type="password"].small { - width: 50px; -} -form input[type="text"].large, form input[type="number"].large, form input[type="password"].large { - width: 250px; -} -form input[type="radio"] { - margin: 4px 4px 0 0; -} - -form textarea { - border: 1px solid rgb(144, 192, 255); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -form .startgcode_left { - float:left; - margin-right: 20px; -} -form textarea.gcode { - width: 252px; - /*max-width: 262px;*/ - /*min-width: 200px;*/ - height: 150px; -} -form small { - margin: 3px 0 0 0; - display: block; - clear: left; -} -form .button { - display: inline-block; -} - -form #passwordLabel, form #password { - display: none; -} \ No newline at end of file diff --git a/img/WordArt/WordArt Copse.svg b/img/WordArt/WordArt Copse.svg new file mode 100644 index 0000000..3007150 --- /dev/null +++ b/img/WordArt/WordArt Copse.svg @@ -0,0 +1,102 @@ + + + + + + + + + + image/svg+xml + + + + + + + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ + + + diff --git a/img/buttons/btnArrow.xcf b/img/buttons/btnArrow.xcf new file mode 100644 index 0000000..d521847 Binary files /dev/null and b/img/buttons/btnArrow.xcf differ diff --git a/img/buttons/btnEditOpen.xcf b/img/buttons/btnEditOpen.xcf new file mode 100644 index 0000000..47d67cc Binary files /dev/null and b/img/buttons/btnEditOpen.xcf differ diff --git a/img/buttons/btnHeight.xcf b/img/buttons/btnHeight.xcf new file mode 100644 index 0000000..c83e23f Binary files /dev/null and b/img/buttons/btnHeight.xcf differ diff --git a/img/buttons/btnMove.xcf b/img/buttons/btnMove.xcf new file mode 100644 index 0000000..832a19c Binary files /dev/null and b/img/buttons/btnMove.xcf differ diff --git a/img/buttons/btnRotate.xcf b/img/buttons/btnRotate.xcf new file mode 100644 index 0000000..8b3eebb Binary files /dev/null and b/img/buttons/btnRotate.xcf differ diff --git a/img/buttons/btnTwist.xcf b/img/buttons/btnTwist.xcf new file mode 100644 index 0000000..98bd0c8 Binary files /dev/null and b/img/buttons/btnTwist.xcf differ diff --git a/img/buttons/btnZoom.xcf b/img/buttons/btnZoom.xcf new file mode 100644 index 0000000..1b88ad3 Binary files /dev/null and b/img/buttons/btnZoom.xcf differ diff --git a/img/shapeIcons.ai b/img/shapeIcons.ai new file mode 100644 index 0000000..921c538 --- /dev/null +++ b/img/shapeIcons.ai @@ -0,0 +1,864 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + shapeIcons + + + + + Adobe Illustrator CS5.1 + 2014-01-16T17:07:56+01:00 + 2014-01-16T17:07:56+01:00 + 2014-01-16T17:07:56+01:00 + + + + 256 + 104 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAaAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FUg0T z35Z1rzHrXl3TrtZtV0Bo01GHbYyrX4DX4uJ+F/5W2OKp/irsVdirsVdirsVdirsVdirsVdirsVd irsVdir5Q/5yR/5yR9f615K8lXX7n4odZ1mFvt9nt7dx+z2dx16DapKr5axV2KuxV2KuxV6p+Rf5 6av+W2r/AFe453vlW9cHUNPBq0bHb6xb12EgHUdHGx7EKvvHQtd0jX9ItdY0e6S9029QSW9xGaqy n8QQdiDuDsd8VR+KuxV2KuxV2KuxV2KsE/On8yrf8vfId7rdVbU5f9F0iBt+d1IDwJHdYwC7ewp1 IxV8N/lj+ZmreTPzCtfNbSyXPqSsNYQtVrmCdqzhierE/GK/tAYq/RbTdSsdT0611GwmW4sryJJ7 adDVXjkUMjD5g4qicVdirsVdirsVdirsVdirsVdirsVdirsVfKH/ADkj/wA5I+v9a8leSrr9z8UO s6zC32+z29u4/Z7O469BtUlV8yaZpmoapqFvp2nW8l3fXcixW1tEpZ3djQKoGKvsj8s/+cR/JFh5 bjbz1Z/pfX7mkkyJcXEMNsCP7lDbyRcyP2mNd/s7dVWW/wDQrn5E/wDUs/8AT9qH/ZRirv8AoVz8 if8AqWf+n7UP+yjFXf8AQrn5E/8AUs/9P2of9lGKoPWP+cUPyXvNLubWw0eTTL2WMrb6hFdXkrwv +y4jmmeNvcMOnh1xV8afmL+XXmTyD5km0PXIeLrV7W6QH0biGtFliY9Qe46g7HFWWfkX+emr/ltq /wBXuOd75VvXB1DTwatGx2+sW9dhIB1HRxsexCr7x0LXdI1/SLXWNHukvdNvUElvcRmqsp/EEHYg 7g7HfFUfirsVdirsVdirsVfAv/OSf5pnz158khsZufl7Qy9ppnE1WRqj17gf8ZGWin+VVxV5ZNY3 kNvb3M0EkdvdBjbTMpCSBG4PwY7NxbY0xV9Yf84dfmp9asZ/y+1Sb9/Zh7rQ2c7tCTyngFe8bHmo 8C3ZcVfTuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV8of85I/wDOSPr/AFryV5Kuv3PxQ6zrMLfb7Pb2 7j9ns7jr0G1SVXzJpmmahqmoW+nadbyXd9dyLFbW0Slnd2NAqgYq+5/yA/IDT/y909dX1dY7vzfd x0mmFGS0RhvDCf5v5379Bt1Vex4q7FXYq7FXYqxL8zPyz8t/mF5bk0bWY+LrV7C/QD1raalA6E9Q f2l6MPoIVfAH5i/l15k8g+ZJtD1yHi61e1ukB9G4hrRZYmPUHuOoOxxVln5F/npq/wCW2r/V7jne +Vb1wdQ08GrRsdvrFvXYSAdR0cbHsQq+8dC13SNf0i11jR7pL3Tb1BJb3EZqrKfxBB2IO4Ox3xVH 4q7FXYq7FXiv/OUv5qf4P8kHRdPm4a95hV4ISv2obUbTy1HQkNwT3JI+zir4z8i+TtU85ebNN8t6 YP8ASdQlCGQiqxRj4pJWp+zGgLHFX2f+cf5E6VrH5Q2ugeXrYLqPlaH1ND2q8gRf38RPdrgDkfF6 HFXxL5c8wat5a8wWOt6XKbfUdNmWaB/8pDurDurCqsO4JGKv0i8hec9M85+UtN8yaaaW9/EHeKtW ilX4ZYm90cFffriqf4q7FXYq7FXYq7FXYq7FXYq7FXy5/wA5T/nzqmnX15+Xfl0yWcyxoNc1EfC5 SeJZVghI6K0cg5t134jvVV8saZpmoapqFvp2nW8l3fXcixW1tEpZ3djQKoGKvuf8gPyA0/8AL3T1 1fV1ju/N93HSaYUZLRGG8MJ/m/nfv0G3VV7HirsVdirsVdirsVdirEvzM/LPy3+YXluTRtZj4utX sL9APWtpqUDoT1B/aXow+ghV8AfmL+XXmTyD5km0PXIeLrV7W6QH0biGtFliY9Qe46g7HFWWfkX+ emr/AJbav9XuOd75VvXB1DTwatGx2+sW9dhIB1HRxsexCr9AMVdirsVQ2p6lY6Xp11qV/MtvY2UT 3F1O/wBlIo1LOx+QGKvzj/Nb8wb7z9541DzFc8kglb0tPtmNfRtYyRFH89+TU/aJOKvp/wD5xD/K z9B+WZPOupw8dU11OOnK4+KKwBqGFenrsOX+qFPc4q+hsVfDn/OVf5V/4T86f4h06HjoXmJnmooA SG9HxTR7dA9fUX5sB9nFUx/5xG/NQeX/ADQ/k7U5uGk684NkzmixX4HFQP8AjOoCf6wXFX2lirsV dirsVdirsVdirsVdirsVfAH/ADlH/wCT28zf9GP/AHT7fFXoP/OEemafP5j8yX81vHJe2VtbLaXD KC8QmaQScCfs8ggBI7Yq+vsVdirsVdirsVdirsVdirsVePf85X6Ppd5+S+sX91bRy3umSWsun3DD 44XlvIYZCjf5UblSOn3DFXwZir9VMVdirsVfMH/OYv5qfVrOD8vdLm/fXQS611l6rCDyggJ/y2Hq MPAL2bFXhn5GfllN+YXn200uRG/Q9rS61mUVFLdCP3YYdGlaiD5k9sVfofDDFBDHDCixwxKEjjUA KqqKBQB0AGKr8VYr+Z/kLT/PfkrUfLl5xR7lOdlcMK+jdR7wyjvs2zU6qSO+Kvzk1LTtW0HWriwv Eez1XTZ2imQHi8c0LUNGHgw2I+YxV+gP5EfmfF+YXkG11GZ1/TVlS01mIUH79AKSgfyzLRx2rUds VeiYq7FXYq7FXYq7FXYq7FXYq+AP+co//J7eZv8Aox/7p9vir0v/AJwc/wCOr5u/4wWX/E5sVfWm KuxV2KuxV2KuxV2KuxV2KvKv+co//JE+Zv8Aox/7qFvir4AxV+qmKuxVj3n/AM6aZ5K8o6l5k1E1 gsYi0cNaNLM3wxRL7u5A9uuKvzf8xa9qvmPX77WtTkM+o6lM087b/ac7Ko7KooqjsNsVfeH/ADjv +Vi+QfIUCXkXDzBq/G71YkUZCR+6tz/xhU0P+UWxV6jirsVdir5R/wCcxvyrKSwfmHpcPwScLTXl QdGFFt7g/MfumP8Aqe+KvKP+ce/zSbyB5+gnu5Smgarxs9YUk8VQn93PTxhY1/1Sw74q/QRWVlDK QysKqw3BB7jFW8VdirsVdirsVdirsVdir4A/5yj/APJ7eZv+jH/un2+KvS/+cHP+Or5u/wCMFl/x ObFX1pirsVdirsVdirsVdirsVdiryr/nKP8A8kT5m/6Mf+6hb4q+AMVfqpirsVfFf/OXH5qf4h81 J5P02XlpHl+Q/XGU/DLf04v9ECkp/rF/bFUF/wA4o/lX/irzn/iPUoeeh+XWWVQw+Ca9PxQx+4j/ ALxv9iDs2KvuHFXYq7FXYqgNe0PTde0W90bU4hPp+oQvb3MR7o4oaHsR1B7HFX5v/mN5H1LyP5y1 Ly3f1Z7OT/R56UE1u/xQyj/WQio7Go7Yq+uP+cT/AM1P8UeTz5Y1Kbnrfl5FSMuatNY14xN7mL+7 b24+OKvd8VdirsVdirsVdirsVdir4A/5yj/8nt5m/wCjH/un2+KvS/8AnBz/AI6vm7/jBZf8TmxV 9aYq7FXYq7FXYq7FXYq7FXYq8q/5yj/8kT5m/wCjH/uoW+KvgDFX6qYq85/Pn8z4/wAvvIN1qEDq Nbvq2mjRmhPruN5Sp/ZhX4ulK0B64q+ANL0zVdf1q206yR7zVNSnWKFKlnkllalST4k1JPzxV+jn 5ZeQ9P8AInkvTvLdnxdrZOV5cAU9a5feaU13+Jvs16LQdsVZTirsVdirsVdirwb/AJyz/Kz/ABN5 QXzVpsPPWvLqM04QVaawJ5Sr4n0T+8X259zir5L/AC289al5G85ad5ksaubSSlzb1oJrd/hliP8A rL0r0ah7Yq/SDQ9a03XNHstY0yYXGn38KXFtMP2kkXkKjsfEHodsVRuKuxV2KuxV2KuxV2KvgD/n KP8A8nt5m/6Mf+6fb4qn3/OKH5meXPJ3m2/sNek+q2+vpBBDfsQIopYmYqJa/ZV/Upz6Keu24Vfc IIIqNwehxV2KuxV2KuxV2KuxV2KuxV8+/wDOXH5meW7DyReeRVk+s6/q/wBXd4YyCLaGG4juA83g X9Kir135dOqr4txV+qbuiIzuwVFBLMTQADckk4q/Pn/nIL80X/MDz7PcWspbQdM5Wmjp+y0YP7ye njMwr/q8R2xV63/zhz+VfJp/zD1SHZedpoKuOp3W4uB/yaU/6/tir6sxV2KuxV2KuxV2KtOiOjI6 hkYEMpFQQdiCDir8+P8AnIH8rn/L/wA/XFtbRldB1PleaO3ULGx+OD5wueP+rxPfFXrv/OHH5qEN P+XmqTbHnd6AzHvu9xbj8ZV/2ftir6rxV2KuxV2KuxV2KuxV45+f/wCQGn/mFp7avpCx2nm+0jpD MaKl2ijaGY/zfyP26Hboq+GNT0zUNL1C407UbeS0vrSRorm2lUq6OpoVYHFX0j/zjd/zkidNNr5L 86XVdNPGHR9Ymb/efssE7H/dXZHP2Oh+H7Kr65BBFRuD0OKuxV2KuxV2KuxV2KvHPz//AD/0/wDL 3T20jSGju/N93HWGE0ZLRGG00w/m/kTv1O3VV8ManqeoapqFxqOo3El3fXcjS3NzKxZ3djUsxOKv pv8A5xu/5xu9f6r51862v7n4ZtG0aZft90uLhD+z3RD16nagKrN/+csvzU/wx5QHlbTZuOt+YkZJ ihHKGwrxlY9/3xrGvtz7jFXxPB6PrR+uWEHIeqUoX4V+LjXatOlcVfV2h/8AOYnkPQ9HstH0zyne 2+n2EKW9tCs0PwogoKmm5PUk9TviqO/6He8rf9S1ff8AI6HFXf8AQ73lb/qWr7/kdDirv+h3vK3/ AFLV9/yOhxV3/Q73lb/qWr7/AJHQ4q7/AKHe8rf9S1ff8jocVd/0O95W/wCpavv+R0OKu/6He8rf 9S1ff8jocVYB+dP/ADkP5J/MnyidIby/eWmp20q3GmXzyRMIpOjqwG5R0qCPGh7Yq8L0XWNQ0XVr PVtNmMF/YTJcW0y9VeNgy/RtuMVfo/8Aln5807z35L07zHZUU3Kcbu3BqYblNpYjXfZvs16rQ98V ZRirsVdirsVdirsVdirxz8//AMgNP/MLT21fSFjtPN9pHSGY0VLtFG0Mx/m/kft0O3RV8Manpmoa XqFxp2o28lpfWkjRXNtKpV0dTQqwOKvpH/nG7/nJE6abXyX50uq6aeMOj6xM3+8/ZYJ2P+6uyOfs dD8P2VX1yCCKjcHocVdirsVdirsVeOfn/wDn/p/5e6e2kaQ0d35vu46wwmjJaIw2mmH838id+p26 qvhjU9T1DVNQuNR1G4ku767kaW5uZWLO7salmJxV9N/843f843ev9V86+dbX9z8M2jaNMv2+6XFw h/Z7oh69TtQFV9X4q+O/zH/5x8/Pfzx5y1HzJf21krXklLeD64pENunwxRDb9lBv4mp74qxn/oUP 85f+Wax/6S1/pirv+hQ/zl/5ZrH/AKS1/pirv+hQ/wA5f+Wax/6S1/pirv8AoUP85f8Almsf+ktf 6Yq7/oUP85f+Wax/6S1/pirv+hQ/zl/5ZrH/AKS1/pirv+hQ/wA5f+Wax/6S1/pirv8AoUP85f8A lmsf+ktf6Yq7/oUP85f+Wax/6S1/pirv+hQ/zl/5ZrH/AKS1/pirv+hQ/wA5f+Wax/6S1/pir2X/ AJxv/LD83Py61m9stcgtm8s6mnOURXKyNDdRj4JVSnR1+Bqf5J/ZxV9C4q7FXYq7FXYq7FXYq7FX jn5//kBp/wCYWntq+kLHaeb7SOkMxoqXaKNoZj/N/I/boduir4Y1PTNQ0vULjTtRt5LS+tJGiuba VSro6mhVgcVe0/ln/wA5X+bfJ3lyPQb+wTX7e1othNPO0UsUQFPSLBZOar+xXdRt0pRVlv8A0PHq v/Uowf8ASa//AFRxV3/Q8eq/9SjB/wBJr/8AVHFXf9Dx6r/1KMH/AEmv/wBUcVQup/8AObnmOfT7 iGw8t21leyRstvdtctMInIoH9MxoG49QCaYq+c9T1PUNU1C41HUbiS7vruRpbm5lYs7uxqWYnFX0 3/zjd/zjd6/1Xzr51tf3PwzaNo0y/b7pcXCH9nuiHr1O1AVX1firsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVeOfn/8AkBp/5hae2r6Qsdp5vtI6QzGipdoo2hmP838j 9uh26KvmP/oVz89v+pZ/6ftP/wCyjFXf9Cufnt/1LP8A0/af/wBlGKu/6Fc/Pb/qWf8Ap+0//sox V3/Qrn57f9Sz/wBP2n/9lGKu/wChXPz2/wCpZ/6ftP8A+yjFXrn5Df8AOLF9p2qDzF+YlnGs1nJX TtDLxToXXcTTtE0kbKP2Uqd928Cq+o8VdirsVf/Z + + + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:F77F1174072068118C14C9642E852E9F + uuid:dca83221-7373-7c49-92cf-03ba2fda54d2 + + uuid:495d734b-595f-ed44-baa4-f7b96906a5ee + xmp.did:F87F11740720681186239FE77607E6FE + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:F77F1174072068118C14C9642E852E9F + 2014-01-16T17:07:50+01:00 + Adobe Illustrator CS5.1 + / + + + + + + Web + Document + + + 1 + False + False + + 18.000000 + 18.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + + + Adobe PDF library 9.90 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 18.0 18.0]/Type/Page>> endobj 8 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 18.0 18.0]/Type/Page>> endobj 13 0 obj <>stream +H‰LQËnÄ ¼óþ›‡I®›®öUU?!R›C¶Ò*ÿ/ÕÈ"$ð c{ Ãç Ã2Ü>f0ÃüM°ÀeÁ±þ™á¡Ôïa^J.A¢ä1¥8Áú4™~Ðy†¼;ØdBÇI±f aÔ0â4†7¬’KYƒVèT“F›ù1_¥Þޞءgõ”:?‚âRI´ÌåZ=É(=QϽ©-KñzžYž:QÅ­Êf,¡„\ctÚÓ#û6¢w“ +*Ô$v©Ûäöœ­#&LÂ]FÅ­à•Púµ¹/úuÿ ÆYn endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 12 0 obj <> endobj 11 0 obj [/ICCBased 16 0 R] endobj 16 0 obj <>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…åÆ’°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 10 0 obj <> endobj 17 0 obj <> endobj 18 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.1.0 %%For: (Peter Uithoven) () %%Title: (Untitled-1) %%CreationDate: 1/16/14 17:07 %%Canvassize: 16383 %%BoundingBox: 55 -17 96 -1 %%HiResBoundingBox: 55 -17 95.2305 -1 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 39 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 78.2305 -18 96.2305 0 %AI3_TemplateBox: 400.5 -300.5 400.5 -300.5 %AI3_TileBox: -192.2695 -389 366.7305 394 %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: 1 %AI9_OpenToView: 39 3 12 886 225 26 0 0 43 134 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:0 -600 %AI7_GridSettings: 28.3465 5 28.3465 5 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 19 0 obj <>stream +%%BoundingBox: 55 -17 96 -1 %%HiResBoundingBox: 55 -17 95.2305 -1 %AI7_Thumbnail: 128 52 8 %%BeginData: 4560 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 %524C45FD5BFF52FD15F852FD68FF52FD17F827FD26FFA8FD3FFF52FD19F8 %52FD24FF7DF8A8FD3DFF52FD1BF827FD23FF52F852FD3CFF52FD06F827F8 %27F827F827F827F827F827F827F827FD06F827FD21FF7DF8F8F8A8FD3AFF %52FD06F852FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFF52FD06F827FD20FF %FD04F827FD39FF52FD06F87DFD13FF7DFD06F827FD1EFF52FD05F852FD37 %FF52FD06F852FD15FF52FD06F827FD1CFFA8FD06F827FD36FF52FD06F87D %FD17FF7DFD06F852FD1BFF52FD07F852FD34FF52FD06F852FD19FF52FD06 %F827FD19FFA8FD09F8FD33FF52FD06F852FD1BFF52FD06F852FD18FF27FD %04F827FD04F827FD31FF52FD06F852FD1DFF52FD06F827FD16FF7DFD04F8 %52FF27FD04F87DFD2FFF52FD06F87DFD1FFF7DFD06F827FD14FFA827FD04 %F8A8FF7DFD04F827FD2EFF52FD06F852FD21FF52FD06F827FD13FF7DFD04 %F852FFFFFF27FD04F87DFD2CFF52FD06F87DFD23FF7DFD06F827FD11FFA8 %FD05F8FD04FFA8FD05F8FD2BFFA8FD06F852FD25FF52FD06F8FD11FF27FD %04F87DFD05FF7DFD04F852FD2BFFFD05F87DFD27FF7DFD05F8FD10FF7DFD %04F827FD06FFA827FD04F8A8FD29FFA8FD05F8A8FD28FFFD05F8FD10FF27 %FD04F87DFD07FF7DFD04F852FD2AFFFD05F8FD29FFFD05F8FD0FFF7DFD04 %F827FD09FF27FD04F87DFD28FFA8FD05F8A8FD27FFA8FD05F8FD0FFFFD05 %F8FD0AFFA8FD04F827FD29FFFD05F8FD29FFFD05F8FD0EFF52FD04F852FD %0BFF52FD04F852FD27FFA8FD05F8A8FD27FFA8FD05F8FD0DFFA8FD04F827 %A8FD0BFFA8FD05F8A8FD27FFFD05F8A8FD28FFFD05F8FD0DFF52FD04F87D %FD0DFF52FD04F852FD26FFA8FD05F8A8FD27FFA8FD05F8FD0CFFA8FD04F8 %27FD0FFF27FD04F8A8FD26FFFD05F8FD29FFFD05F8FD0CFFFD05F8A8FD0F %FF7DFD04F827FD25FFA8FD05F8A8FD27FFA8FD05F8FD0BFF7DFD04F852FD %11FF52FD04F87DFD25FFFD05F8FD29FFFD05F8FD0AFFA8FD05F8A8FD11FF %A8FD04F827A8FD23FFA8FD05F8A8FD27FFA8FD05F8FD0AFF52FD04F852FD %13FF52FD04F87DFD24FFFD05F8FD29FFFD05F8FD09FFA8FD05F8FD15FFFD %05F8A8FD22FFA8FD05F8A8FD27FFA8FD05F8FD09FF27FD04F87DFD15FF7D %FD04F827FD23FFFD05F8A8FD28FFFD05F8FD08FF7DFD04F827FD17FF27FD %04F87DFD21FFA8FD05F8A8FD27FFA8FD05F8FD08FF27FD04F8A8FD17FF7D %FD04F827FD22FFFD05F8FD29FFFD05F8FD07FF7DFD04F827FD19FF27FD04 %F87DFD20FFA8FD05F8A8FD28FFFD05F8FD07FFFD05F8FD1BFFFD05F8FD21 %FFFD05F852FD27FF7DFD05F8FD06FF27FD04F87DFD1BFF52FD04F852FD1F %FFA8FD06F852FD25FF52FD06F8FD05FFA8FD04F827FD1DFF27FD04F8A8FD %1FFF52FD06F852FD23FF7DFD06F852FD05FF27FD04F87DFD1DFF7DFD04F8 %27FD20FF52FD06F852FD21FF52FD06F852FD05FF7DFD04F827FD1FFF27FD %04F8A8FD20FF52FD06F852FD1FFF52FD06F852FD06FFFD05F8A8FD1FFFA8 %FD05F8FD21FF52FD06F852FD1DFF52FD06F852FD06FF52FD04F87DFD21FF %52FD04F87DFD21FF52FD06F852FD1BFF7DFD06F852FD06FFA8FD04F827A8 %FD21FFA8FD05F8A8FD21FF52FD06F852FD19FF52FD06F852FD07FF52FD05 %F85227522752275227522752275227522752275227522752275227522752 %275227522752FD05F852FD22FF52FD06F852FD17FF7DFD06F852FD07FFA8 %FD2FF8A8FD22FF52FD06F852FD15FF52FD06F852FD08FF27FD2FF827FD23 %FF52FD06F852FD13FF7DFD06F852FD08FF52FD31F87DFD23FF52FD06F852 %FD11A852FD06F852FD09FF52275227522752275227522752275227522752 %275227522752275227522752275227522752275227522752275227522752 %2752FD24FF52FD1DF852FD62FF52FD1BF852FD64FF52FD19F852FD66FF52 %FD17F852FD68FF52F8F827F827F827F827F827F827F827F827F827F8F852 %FD6AFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFFF %%EndData endstream endobj 20 0 obj <>stream +%AI12_CompressedDataxœì½ùrÜÆ’/üõ}ÿp„=qºZì7¢WϹŸ¼„eÏøÆÄ„¢E¶,ŽI¶.EÚGçé¿Ì¬¬hôB-¶(¢Ø]jÍÊÊåWY_ü¯Ÿ^Ççë׫¡eñÅÓ›Õòv}óÍ€Rÿ¸¼¼{{ƒI_þüÕ@æ£ ÿþâÿcuóþb}ý Þ’tsoùÓêvu3øõâöíúÏÕõWƒ/¿‚[¿\Ü^®àæ¯×·øé|(¿òEB³å-Ü”_Ëâki²ü&+©FËë?—ïß_ü oÚjH›¬ï®Ï/®Ÿ¬ÿùÍ ÏCYªþÀ½¿øyõ¾õ|¤t–»§fë³»«ÕõíO7ë³Õû÷Óõåúæý7ƒé‡åõàûåïpg9ø¿«ËËõ_ƒÉåòìÎ_-..Wо«åí@RkÇÿêÕäîâòü‡»«×+h¹®0U¿¢}YA®ø“ËWÿ¸‚”—«Û[¨”‡öów“´H×—ÿõóê÷ ê|èœÿþŠ³½Y¿»ZÞüï–Ö·ÇBãÝçÌ=õËêêÝ%t'5ßdÙžÒô'ýÂÏB›è¹¡¬ÔHÞ¶Õ@ŨÄòv_ëwiûó{y†Ôw3˜Üܽ;øe½¾ ÙÖo…Ü9™RñùÓ(ã'záúÇk×A›%ñÍ’€ùœ\)ðôöàæ)ç>]^^^ü~³|÷ö⬭€–û¡$wï>„õáêõúòâýU¤§$å§åÍíÅÙåêå‡÷·««]¹ao¼¹¸>B$îk»¾z‡ÒÄàåÛå»åyûvAO¾ 毀§›Ïfà³ølœÍ@A£ŠAk0ˆ#,z¯:ÌqòþÑõ“.·¼³êÅ ;¨·µë¾£ºMfÌ=µ¶ð«õõàg”\ÿqñû5H1+ à¶T¸Ê@ÃyU"6›We‰äWÉRã‡*“ÒcV¢ÂÌ”YŽÄ—A53å©ïïbªàÒS3ͧÅt+fv6žMg³Ùb¶˜gs9WtiºòyAWÉ—[ÿÍ+ºÆáozM’ÏÍ{15¼/è£Ýyùò ú-¨^9_†/Wc¨»€ÿ$\™¿°itÍùr?S¸&téªè²t•Ð1xåp=¥éRÐoxe³lº€kŽyLÝÏ®1]]–®®®.—ÆË Š„+›,à‚.£ŠL'ø3†«‚ËNJ¸ŠI—™hñ¿q41GüÍiL1í²áÌæéÿ傲ÅOÈrBYOù/ü/¨W–åÒ +*ÊœHøU“ ~åxC›Áÿ3hã~'ô;Wô[Òo!Æù¸€_=6ð«Æ’~³j¿Ð¿søBë¦Õ¸ªè·¬ +øÍ+C¿ª…«Êì†}#1ðßÄŽm—µ%\…Í­¶~¥UV–‹r´1ƒÎ‚ +ÀøS”æ‰.e™•Y±€¡„fãƒ.Ê"‡o +Ud@@ cìã*/süѹÌUžIÁ°ÃACŒ50Íà2Fi¤^±MõDWz,@ýÆ +m4þ€Î©¥Î€gð;U5¦_«*ø¾‚¿4šÔ؉ÕØRŸ)šOØC´{FÓ•áEý=1¦)éÊé2ÐJà6³õ‰»&Ô/•{ú¥ ¾ñ½ƒöÎ*¤S쥊®²€¿úJÒ]Ð[x͡ϤÇtUP’{»IÑ•™]؇S3^¬pU, äH] Ý…i2“QwΨC'z ýéz4§•Ô› èÍô&Ðôc}㧌PÐßJ©LerΪ‰¬¤¥¶Ñ`“f™-pÒÂ5v™ÁàÃeðE¼íDö€MèCäB’Í”J ìC#¿N¢â™«`~ºYéÁ4ƒ 5ƒidaîhaT049r~zvP×i 3 ÷)Œi ½£Èô]1aK&i$肆ÃóDÀXè|CŸc—À<ñz²R'[èà\׿зÐ4èÝ1ô.¬BH ‚ºWaC÷.ÕROB'Óô ]MCM—¢KÖ®‡vþÎyÐK8šR'—ÚrmûÉ6/ÁDØ~Í·\³Ö ûx*ÜŸÚ5Ùr·\Uz‰ä‹Ýr•[®¢í4ìm—Ùré-—#%ü‡pµõtm:óhBß`ÇͳÝ—4zȘ=Pr üÂUÃRÜcJ‹üù ”!þh˜fCŒ§TVÀô_Ç¥ùüB-ˆïKàGYp/äœ%ð2äácàl¸öψ×- µÈqAB±Å槅Y:~9®9#ÑfA†«ä  +˜ÜÈø+âÀàÅ(«ÀjF=/ %€=â"OG¶k¬€càÈégÀñÅOb‹€àªÃƒøc»T°nLP~¡õu.ÊP€¤E—_ÅCž°ªXZœÇ°LO€MÍHd[áZŽ­Çµ½ uÅu‚ümJ"×…¸PTP$8ä$D”´Î¡t1&Y…´¹M7Ž2Œ¡Á*ŒÞ<Œœ£fiÈ&~¸h°ÜPå"Œ“¥Y!åF‡‡Æ Œ–E†£òC!x$d„" ÀÄw>w½ÝnC—c‡»Þv}‹ÐÑãÐÉ‹ÐÁ®{ËеÓЫ2ô¨ëÏÊ÷¥€g¬A‚h§IÜ+H¬@2œ€„8™q,E&ÚJžë3XѬGhÔ$HË%È' Ó„ŠyP(4PqN»%©äSÃçóŒfPT&ºq©ä’µËñ´ErEå‚…ùñTdå.÷S‘œ…JŠ…^Æ$àA'i’WQZ•ÄpÍYC‰l*Hp`.UÅZId“èjˆÔ‰°’ÖìM'´MjR,NTCb, +m’Ŷ9‰²8éœØæ7hsÛTÙf$°¡Ö‹k9‰k(IXt¤!¡¨6 bZABšÊ•$¢ÍI@›Ð¼"ÁMó%iþ8.;çkBòUE3­ä9çCâf¼*j^nÍs+Ù‚Y0ö-Ÿþ0¦5¥ŽåVäs-9±ýœÿÈëAËyƒ½?îç4~õ xÙ[FíÕÔØ7®¯&Ôƒ`}bï{ë»xßCXŸØÅûÂúÄ.Þ·›õÑL VÂÌ……(Çzö?';À"Hr4ÏÈJ œÉ€˜°!FŒW!ȪP}¡d[CÅ—³Bp)l kðlw¡íbÁÒ¤³hH1#‹ †/’*ØâUJg!©ørìÖ5…KqæÁÆ6¾°D뉪Y™œýÆÛs€>œ:µ¨_ÛDçpÉÝ—X¨—Þs™æ% ùΫØsïøßÖË¶K$_Æ{®IýJWæÃd=?óãÜo™ý"™þQöi9‰8N°SæD’$v2k´;ÑÓÐúìÄOÇ(*ZÃ'Ä.¦A +ÅkádQAR€G51Ãb©c&%Ë‹§ã iLYP%a5\À­ìD6ØJd-ároÇ?'’¡_Ë*gÒE_°šèl^Ëtšé˜þzÅÖiĬC;-›Õp¯¸“p"XRñ¶!gÇpö"Ï–œV©è-/åd¬s+s0z[©!9U’4:'˨³ˆZ0½4#aÒ™>ÇÁ¸— ‹‹sÇAHÌY>”,΂\ešD("¡—½4x,H¦:K–:ÐKÑZ¤Ø^äth3²d5r&:Å&:g;š°õ¨LìGÒ[uø˜‡¡ &µ!9 Ò„G¸¤Ñ7dÑÊÖ´ýË?]2ÿ†ÿhöOLÿ"±ýGë¿»¢ +¢w¨à l”Y8—€à5vÖð 4ý©‡ äÕ¼àåÝD_÷(– ¼¥g<ó I¸RüÏ8xª Žp"XRñr‹“bêJW›¢5gõ»¹Vì][Z§t™Ú½¶íZñÚXLE#a÷ʼ±°7. {±S2Ø-WlFâ—=rMSjè̆EÏ’eØ*HšÓ ].X•—‰<éeI/D1Š 2Jó 3:¢OEÅTHLÅCž]Q:t?óVÑЋ‡›¢a" +öI–u¯äŽ«ª9+7\’¢ÅS9©?Òðvn:%Kb6$˜ 9î3#O€%6bˆex_À˜f»!o€òê·ó9Oј=GSçIr^%RÛPq+ÈCb‰£â權ΦhÈYU +`â(¸L‰sÍaEF¯É~X€”3Ãe„6E E‹.cb3RÔPVÓ$«‚mƒcÓœ×má¼pì‘sÊZ*žÍHe[°ÒæÜ{†Ý}¥ ¡¬b_à4èo3ç/d%Î+rš}‹;+v>NØ9G£Ï %,Òð${.Ó°W³úž›/øÿ˜\1ÎðUñ· Í©`*YÃÒÿas“JÓ´ÂqÌÙ7k»Ù$Ù ÛD¬3ω÷Ï‚[“hã-1Î:ã¬ÖÐPõ³bƒõ”V.² 'gp”dÉàs²Ècþ:ÐPS’•S|2çòäýsÔUÛô˜–42 ÄbyMQ°ŠàœŽ6NÏ‘@°‡R³ªà¼—–•…1-f~±vª‚âË°[Ô=\±Ë”…{9œoÕ[å͉Ör’푦€˜NL¯;:œÈJò²f'Š£gS³ÔRg;bëQ‹ýÈô¢õˆlG‚ŒGÎr4 ȳ´!¡8[HAV¢Ià4†ÄÊñoÁìÅ1Õ¸I‹ÏœFÎï°8J4@ù ˆ$ƒA10í-LvP«h>ç(ÇÐ4…–)ž}U‚oÑÀqK2PLÉ-i9)6Gs›©ékR±³›—`3eûµÍ Öê4sªŽhñ±móÉU[®š«O$_¶y 7ý‰S&›–KlõYn3Ïlëhþ^Ôm^×Ä3ëu³ {ÙÈï ü&˜õ³ …Í‚%¿"‡”·â³_ >ÆÙ|›ñ>ØîeÐÎ6-÷Š’‹`º÷ªš7ß;mÍëkNc«ÙðƒÞæ57ÒÝDPßœÇ*+q^óŠœm€.”ƒ]0Š5º©`¥Î«uN±óªSî¼zç<¯ây%Ï©y^Ñ[B ÌXÙsêžWø¼Ê§2Ã9º§Þî7ápJRXErVAªžb՜Ī ém«•“fæÄ+Ër"V…2m™HZ2 £¬Ê‹v]þ᪼h×å®Ê‹v]þ᪼h×åw«òQQé +ÉH#WGÍÌ~ª 쌡ɞ‚fNÊ épêâ7aFjåÌ!Ë&$XÆ–å„°qø2å'7ámÊlJˆª)ÉÑ9W’\Ó¼ {¦‡W¹éî!hd5 ÓÞM|7ùqŒ=ð,ÀàŠéù€ç æSÞ7¨HÔ)l2ÿ‰ˆ-Ä0c,›­!rå€kù%yg4æ–|~Z ›¦¯ƒU• ¨j“w½X±d‚%i‘ˆ*ÂJ=£ÉíÖk·b;jÔú)£Š6›Ï¯Xí_%ª¸7Ø«`¸wxo‡wætÿÉ# ¼·¦»Ä²fƒˆ–öMûDjƒOî‰`¾¨3Ò—·[*Z¬b§Ý¡aTHÌñÇkßl¦Äi' Ônªá²Á‹ÀgìYG=­ãýf$?O»8!}®äYçÝ㨄d8û€E¢¹~Šù˜m’Ñ-qËŠôÇ‚fc:#ý¯!g€ÿ•a–Ò/¡Thº6§lœ¶cþ­H(i +[òB©+è׸ΘĆœè²ÈZ§óŒÔ–1aðât.x:Bå…™,ÐIBÖŒi@žVŒŸ,ȵBèIíÍIÍÂÎ+Š,xA3vFÊô€ õWk ÜyAÓvNV<ìñ‚l +9Iôl?uvÓÍÅtL–l“ ¶ +·˜N»hÉX¤qì0ÅAvElòŠEhu0`ÅÀßiûjøâ +YÑHç4–µ:4.õ¾¢®žRÇZ⌊àsb€Èøåyóµ_ðZ—°º¸Ð‰ÀÜp#|.õ‘9–Ô?†d—tY G‚5xëôÜ!ï&ÁDíÔyÀ¯5¡i]*ƒ™Øæ)úýE7˜§èýÝ`ž¢ß_tƒyŠ~Ñ æ)BžÄ¡˜'FlÓ¬v*RíJST¶ªHl$J¯¼vµ‹$!ÙòBR{zUµk\»>M9—`Pe¼æ«fo¨ÜõÆÑPñG×.S»òÆUÔ®2^‚¦Kýªj×Ø]8£âuUßÕ¾SË€+­BÿLºt +¯ŠÐ_i_=_‡6õxÓÉæÔ£N½e'w.|ê {€êÍ{SZ=È`LSÞCQ=Õ™¹Ï#R+A¦äI°ü145€S%õ¯¨zˆjÁ†@KKœªNØHI² 2bÕÃ4ɾy”´˜V¼êá«3g% 6j)Çêa9Iåe \@6ÃÔƒr(ç=˜Cï¼+ïfSRjN2Á.”“¹‡L>‚,<6±ê8{Þ¸Æ@<Ãð¿ô?©×Þ”âÿW"™K,Á‰Þµª½+ƒs¦¼kªbý»d?©I6Ieq{”ðª8{:ÛtñýÚ¸+H­žõݺø8Ȧ¦…“.º¢ Nÿ&íÛùfœ„ ‰?áôÒ„®hŠa£‰Â§­&N'šðØ•´áÄ°~¤3)˜>áu!!"€R6f{®é®KПÉÞ«mSá¦Ã.l.l»v; Sÿ^íÉ—¢y9Jéh‰œUt ´DF(ºZ¢¼%v \Ô'uPWm#f_÷ZöÖLÈ!½‰ê"L—H ]~GÁ˜á\³È%YŒ› +6·^K8¸'㲃;=¨³d(ç˜EïYOýêѧNuÁˆÌ1ËŽ5zº1,òâú#•0pÉì%°xþM¶ + Þä6á•"îèñ»zÜÒ’³Ú’׶ݨ°0…¥ê£3–¿ ¦bOÃ’T𺾯#]G8­d+ݶi %ù<1ìÞAj‚hÑêšBÔ‹ª’¡rÞ¹éŒIí7ùmFÂí1 +Û‹R·dpLnl,šò(9á6n‡Á´¶F÷dÍA¹WrSµdȉÓ%pZʽ3ËJ‚ÇŒU +°° Mšít&¬J6÷8zy§tÎÎýñÞªcPE»þØP Ûë*$’ü”ÖŸ©ƒ?!xAyF1 +ÊÐ0x‰fÌ@uŸÀâä0P††zL+Ó” zè• Àƒ¡:{$Ê<÷€¶*õµÈú<ì­É6Kü©í²µÍ»vJ´Á%[¶=xg*%º“üëwèÍy“Pt2MÈRfÃöNX’JŒÔ¢aሖo ‰Ö‘²ÕJ’‡·è¯ >f·\ú1IM=·öM;×BÕ…`#1.]^Ñx£Îr2ˆ$ÌÈ”í ó†aáì ´É8Z$SG4r8C†‰uðÅ#oXBâKYø¥,© W‰`nl{™PåKŠ^HMÌ ò ê‚1yMgO< 'ÂÁifì«/(ÄUê©7¼Ÿ•‘,_%-_Up-º%LÑfBdâ1¯b3†}{©ÆÐL·"j¢wÞ»óàw~xö#’QÑg8¶Ã˜‚SŒ8<'#¶æP–f.pÎk„K L3˜bšÄ òÇÝÏ—îõ÷.¶9ÁÅM˜c S§}å€p‚ÁœÁHÎ¥V1B²8€ÂÀŒišÜhèšuqhÝè:£ÞÁ~A¨Ûœ#"Xjý‚š]P“gÔ`CžÉ yÈ\4ôÍ(Ή™‚˜LÉ2ªiÒZšN@O Á¤'}Ôb!ï÷ÜßóÿfÀÙ¶]ëUºÓºaÓº_üŠPß³®6¶¨NƒéÜ›ÍÉd.j[ֽɫSõ뺶c}ŒbÞ£DAÉ›ÂÆõàYªïW/ƒÉ{˜¶ZúÛmýÖ~ÆMs¿HìýíÿV›ÿ¦ÕßýÅ»«å‹í‹õ¿Ýþ_óxŽ×ú]ò{—|<5hàsø\œË€sø\>>Þ¨ÌGE&óA©G  ¨ä䤮svç;=*בu2Ùrd¶ºªl3[WÓLc­³‘4 àX>(2¶ +è3vÇFá#UÎØ‘ÌMډȄj¡*X%dx¯ôGUA«ª›SY£¥‰iÁÛ0÷ÊX…çðð^¨FªÌÌ#{3é„jbž…Q¶;²iäÛI]ñX²Êå[Á×ÊÝÕ·%o¬3Þª€ç¹!ÊTáŽk­h)Â4 )sã,§JŽ”Õq°»È‹ú1³ºØ“•¥bŽT K€*±+¬Ì <ÙÖ“/á+ˤӛѣ{HáQsy7=ÄyuAiU†1v9_==¢;†Ú–w'uV8V.[3Ò (tWåͬ©Æ !ØÒ`¶ee0[-!¤ÄsŒu–[ÊKUõÑ2P—"!ÅòzÜÜ€%“ægô°ò™#ÿÑ=Œº’0äâ!ækñ.ÅŒfÞ¯³ï„ +H¸ê¨®õ<ïsúåO× ~†¯Ë˯Dídªø°K¯µû–v¸P—MÕ{Z³i$yÞÏ6yÁR'‰Y^‘>n‚E#î?HÏWrþð1a¥ç㪇¬ôû +¢1½y’RNÈçzœÊf@{rtnLuîšhRÏjÁì 2ê×ÃØ'!ìEmãcÝ/Óæ›I=3áÈ‹è—‰žÃT£w¦H騂¦é¥‰s!¶žsáÿ6O¼H-“Þ«“~!jg`ø«ù½~BFË•Úd€\û0͈šá,–ZLÍ&x¡Œ[ð!6fÁ{í示Mm2 CLðâÛV˜x¨‚`ëÝŒ¢“€ +ŽêåçÕÕy¥,#»Ç²ÓM·¦„ ÃDí(²>RXBˆ"LÖ¿9‡°”SØí3@ݺ4}bä‡æ®}ALmïŽÅ­cöOÙl6 ${w$CCMØ€`6Z&AcyëAŶ.¦œC–7ÐÄàšGáÃ:¹\HãÎq*8䬿\œÈæµã‡¼Yã«/óÅl1¥ÈêÇËi_J܉2ã­òÛÑêÁ&‚¬é«;ÂRWXp†µÅh‰KÌÔv¿ÍƒÃj²±ó­mßÇâ‚=X]oI<Α³eß´¨ªå÷¾ùðœ‡aŒk(cѧü|À/û+9¦±G;èsgLËD@z²!{ ²#{@ò8À’«NöU]¸?d‹O¯¶³ýrþ·Qà& z +l£Áà‡숭»bU=LÈF—lÜ?Á^Y³ít¸‰¢mÆ„mP¢ð§¼íÙ©-Ö÷`nP£¨d-šä!Y§IƒÐY&ð÷&]¦”ÙF›D¢A M•1&qƒNSZMèUÔˆv“xÇ­„¼qE‹è 6 á©è$+¢ªåHW ›jP$JôÞGYoGqK¢œkY¡23@‘W+Ð*P&×u‰WfYª¨ßÿåûÈÊ¿^_/¯Vçƒß9i AdnI„üµ“œÿ.Zâ‹Ìê('Üø𛿚‚@ÿ˜ÛªïóÄÚoÞÏyï} ¤¢¨pbÒÅfñ±UüÎIf9õ³<š!0ñŽôHª‡…§sqç=Ê*àXqKð,Z¥€˜‰™6V±jm%AKüöÂ(¹×¢•Ô@åh%n4üäAõ¢Šä×ò|ìIˆ5q'ë¤È[¾eÖ¡pý§ÁÇdH[C +™qg@—ž[’“# u6!÷‡‹Ý0G‡cs%csýñJŠÄÇRôMõiE1=Êãçú“¥h<šfž†dßv×pχO"‰ðè'Gó=}Ép˜'’ã}ñÄérS ÊPâ'۽Δw±¹©ïOgòç2Õ‰Å]“p“­ËÑK¤óˆ°Ëczh?Ô† +ø!ŽOjCµã‡è!Ǽšy[N÷i Æ›ÆËŠûó“¨!-1­ZCTÅø'q6áÒ‚O§IÊRÉĸ7oÑ84+œU[–G²²º@ÃQ–U §âPaÑ‹„F-´Å2 æHY ãªÔGgä\b@ôYNïŠ?XX œ{˽CÎ g5¬0WsA1A¦vãŽòs¦Pc‰M£5‘”•æfE£*)¿í²Çãszœ Ò.‰€(’yQ™[«yɘjàßš¡I†ƒãyªla‰‰)=CuÒ''¨¦V¥ +ö §ã¡=À&×ã›T Ô×!¥PÄr1M”;¶=€{ùØ“Øëa½Ô;‡*©púÉØmÊÿaÊ@}lËFØ ŸŠD H7Ãnn‡­oˆÝØë©Er[0Dg1…"ŒªY;ý§ qXüÏ8¹&É5K®4I&’sUÒ½å:¹L"áÀÏþ*Ãå$?úáÒIbÀç†ÓHÃñ­ñü¬»É%ÂY¥u“¯©™Ãù¥nyŽKrÙsœDõÜ495}3M8Ü íÿ+i`]„AªAšÉé„IÔ2åm:H'q“΄Á.¦‡$ºp»sJÏéB‚) ¸ {'´ƒ§KÚG9©íœB¯Xô +‘w *Új3¥ rÞ ‰áó0@ž“’‡8út×}rèN-„MY,¥­©HŒÒ)¦„Y%WúI:±+ŠšéÑ$Wj¯Là ¤Q’Ä|œŒþš%×4¹&R÷ïâá!ÈÛ÷¡‰‡‡ o߇&‚¼}¸_ò†e% ™ògÚ­ΔठøPBûåvCÄýßfûG‘ëL:I«*ù=ã7yÃk…áÜK ~Èë\2L¸ÊßD;ôëÒ˹«*6?µÉ‰y÷q⎮ZåHN½–î’tmµZ!ô ÄA]ŒH&Ûb°j<åz¬þÄȪ6RØñÐãúÀèÖ>€äØì5“ì/+8j\¯\H¢ú–Õ&Ÿ¨q Âù8rA4¶©îâ ž3¸ ªÌöoNõa“'$ñjÅÆ)ä‘9xöào<î7CÕâÔŠ`ü1ÉN‘v?í,Ù5’xjƒøL´Ú²á¡õÂó®=tÑùê®t4,o…lìƒä]Ñ*L£Uy‚˜Õö2×w3§û™ÃB"ØNtŸµdç®fA35³ÃV“Öõ¤æúþ°ÊÖCíãÞ÷¶èÇ­‡Ú×·Õm¢êÚÇèÇ $@Ü )êfÅZä*Ð+fùÖǾM7bV¼o&Â.ƒ’vLh—AF‘FèÌÅ}¤P'†tk{}s{º½=;‹Yظïwì{’¨ 5¢[öºÏ›[ê„Q Óð"ìݵµÓ +š†eñÆåÈnBÇtDkœì6ÀÈ&±´’‹`z‰|h“^šÄãeO„Q%3w +Òˆ¥”SÚàåŽÃuÄQÝo;Î?O’aË™«[[‹V +÷¦ñÆÎbÃ$=®™’£VEØMdØäàBò¹óœkç¬&ǬÎÃA«n[ÑœwS•¸tjçáœUŒ?º Tþ”ÕíFäP£tÄ*Žè˜WõSÝm)šã®7´öt6Û”e“£mŽqõb±Û³¼Í¯¼'Ÿ¸ÿæÞÝ&÷>|r[ ¾ûík|¤gb§àHóq¨'…žzRèIaƒv?H¥¡Çcä#>DÞ[d™ó‡ v¶"üF•;ðÛŸRü:b£»åþ¯>NÙÎÛ•mHŽ–^Ùî•í^Ùî•í^Ùî•í^Ùî•í^ÙîÅê^ÃêI¡'…žªlÿ]ÐO}ý VãÛCiMP[ZÃñ¡Ì:eÍÇÃic8¾: vRÛr†Z¯ŽÏ0E4ŽRó›Ê6ö”9¡<"ÙÈ“’ŠI{jIOPK)&Æ +fŠ[IÆ¥cÄ`›Ä n£¦Á„ÉÄÅr²IMê¨ÓFŽG{4#ŸGŠ @ç.6cE!é0]F!Þ=ÚˇxŸñ¬»¯â9x*|ñ<‡·‚—†QŒcçwaµìÃ<Í·mÄÚE“î¾jž„WŽEƒ„!e6ЈXÜ +‚¯q±•à0ïg±¦Ä†²„”)ÔÙBsª…1$¬IY7ÎyECïbMWá?§áÎÂ@OYaÙ¶ÕN¡jÜ6Ìq’Ö·ÛÅQÞºáN„¡öƒÝ˜´¹ßô“ +ßTü&ø£ÿ{ÿ‡®muá}$€ÌÕ"~&YÎÖ|ⵋP2øXOfÌñ¬g|üuÆ!Ý î@áÔ.l©©Qt´¯1˜E¶ÆÔ¸ º°5ÞÇ´À†·]p‚NM’=éqzèÁ»þkûþ;ÿgxÂ4lý¯oþßÜþ_;ã±±ÿ?D-!6ƒÔ¬–u»e#ÀXl$²ã(‘Æa"‰õ’#q‰Ä~Y?P¤f s:·ÛÐPV“•ïÄdu‰ÚÛˆ"±±|I¿Á5O³)HƒMsµ8R6kM‰¦)ÓԤф‹$}Ô îyÊH$0£úÑjc¼ÁLgä‰(«x¤gk5 X«mh+·ŸÄ;‘Àhš@švÄU]ÒÛèQÃò• ˆÆkO >S¬à&#¸Æ%ȉ‹©âÇz,äŒǺ ±ÅzXpÐË‚"\ú³\LQ +óàOnóA&|\›IŽt‘͵Â#] !x¤KIGº Ôq>|ž‹ ôç2áÃ\ò‹r‡¹äÀO+ êha°tíâñgdÔe ±S¸8à„Œ¦d!9!cÓYᎳë´iVÜÞ´©7OvH³ynä:8ß$m èâ|“´yâÐóMêÍkX°D\›@A© +ŠòmÊJÑ y®4í1ç%4s¾ñC}‡ym ì,GZ–óJKÊÔ.à¸Í=—YîBðd.B=@Rh~«úWêö`G]eø¨åºuµ®/Ö¬¬ö ódΤЃÌ{ùRèAæ=Èü1?=ȼ™÷pÒONÚ“BO +=)ô¤°mG÷=<äuþ^¯ml˜Ö‘ZÝ®W×C¥Ø&¸öAhíƒ@¿[Œh-0ÏC€£ÈmÙ‘‡öt aKBrvill”û ù^rMç„‘ªp>!ç}ÙüP;ÙO׫ò$JvgY¶…ÜS°#O‘i›"f»é)ZfÁôä¢5G•rNb×›†'µAòÞ…Û‚k3&ˆ%…R.v bêGÓ£ ŠCÏ”(2™è©É€Õ?±á3j7lCÂl¸ÓØôÔ®ùÉä·-U2Z%€ê|á ŽU0'¤GBl?ƒþ­a¤ÇaLˆ{MáûÂÈr ­rµ£0d8Ã1†£0øÿ2AÅTtbaŠŠÙExPŒãü#1 Ø^YÒZ1æ3à<2fJ®p:ü ¸’ €1½ðu²Â—Ž­˜Ñ(MÐ#‚;<œÃ8"jƒq 2c&Àœˆ¹hƒå¨–³qá#Dëy›'rÈrL"G4NäØ<“ÃCq"§y$G ‰#¶q g¾ÃñûÐÒ]„ŒÁ‚Çg0\B£5 cÖ„èlè47jÅçlç´ž$"vbs¦-Àœ=爈CÙ ÈI 9bûA"[á8ãp…hø1fºpÈ°º¤’réÄ¢ªä3CþÅŠEí=h¶áA«ãf‘É“iy›$•×$©þŒ¬þŒ¬þŒ¬þŒ¬þŒ¬':#ë´N~zô©V)Îõ±9=jí+ÚÖ¾¢fgë×¾~íë×¾~íë×¾'ZûNk­9µµøák_Ù¶ö•=x³oöàͼك7{ðfÞìÁ›=xóÓ÷öˆ½žzRèI¡o~wjkD%Û0­®T³²$KÛÆŠ ¬&ËC°"֊Š˱j¿¡y+@, oäjäÍž2 “éÓ"ŒŠ‰MU³þí¬¦fSM-®œÆ6ÕÎXš ”]ŠÇ1´ý0 Û¥ j‚€ÞN(ZA@Ñú×5,®úrð¥Îƒ´´9þF™)ÙA^fÊÙÞJèÄ–YnÉhò¬²[Sy=·j=™¼ÚÏ­¦ nU7z+OT~%6¬;›üjkðÅšY‡õwA:Òt{øÅí n;‹“ÙÔÜdpžª$%ev1ÒZž0º:Ë+œ)u¬ÙÖj”ùÈ@hbŸHµiíc[Œ+âEâÛØ_Ü`^»ÃŠUm>£”ÏÕy]×Ûä~m|pÒ®k“5n²Èö@^Ì8‹–+°Ï:k4H¸ä1 +$M±>Ä…õ ¶ª@\Ûžø˜L>3üÏåíêøŸû /çžå…¸LÎnÈ&’3rµ$ëˆ%ëxEò1Q y‰"‚õÆÅôqÜɼ£ÂÙ§dEô6D]ºX;Î9\&~ˆÑ»F'z®È–M¼bÝÔžÕ´h•Ì\¢¹–ÍY,à4<¸»™†*CåïQ¢v¨PéA"!¾Vðe4¼ªáÍ(B¨­fkLÞZúäá˜wXp8*„æ +ßÉÛO0cY[Ñêåâ9yã"Q;§E Õ©)y®Üå‚ xØÉm„Òœ»G.T)~?D²T!†¥/oZs†HŽ$•‹`üÆ5sò1¬°LõÓ8Út:Öq´S¥9su4gÒÝ>*{?ýþžÚ}J`[¬MÒpb5MŠ­©Ž…š‰†ç¯\-ºÿêÛfÆlyÀ¹ãõ¢á¬{§TÖ‡•õNÁèä”ÞGxP¬Ù.Hç¸zÍŸ‘µ5w•|U,OÌvPãž¹I*Ý™ •V†9’·=ÆKóVHÍ(%‡Pr—&?dz5tÔƒ›÷Îýå,xäæ÷wÅÞ×óàgk©OøîÿjÁ ãžâ]˜EK•¸·©jO1ñ8CUK±›e€ýxèO ë @qWŠ‡90ň± É^ìUýૈJCÉú,1¤¬Mã¡X“0»«dcK< ˇš-·ðÜC'»]”` ƒ¢jùÓÄÿ4Q@M,Pm£‡hAmîúhc­¡„X!±±¤¹d3Hk}oHc‡ˆ¨oI f7-:pÍX’ ‘:·£ ð[IÓ‚ƒìÑ 3ÒS-¸$ßõ¸Ó¾™tRNE‰“ Ì$öëUf¬o~;¦JtàhJó€NÉðI ¥N<µÌ¹-ón§ ûËŸ˜£;=™ØºH‘OÙ®:c)×&Ÿ:Í‘a©~«æœ扠TúÖòù"NUvm ü”Ýue~žè¸u…¾ª©§Q5-Û¥¨ëö¾XWïÇ5œbÝ>Ùˆ.§‰\e^ƒ‡Nk "r‚²eÛ" ØÜ»Øn÷l·|Ötþ-*>õ—¸_pî­VЄçnG‹n‰Ï-Ä(EÓãc4…0(  …TƒleÈ>z—‹=¢U6‚JWvdˤŽ rs§sßÎ0'Ù’B{‚–•A1A1”Un¤,1­ À×1¯²å0’šu“ò.Œ¡7Ó[ +7ZjXh¼)¥Âè£ä +³¼Š™äj¤L©Ò`ÞËÈÅ/!ÊÒ+Ðǹ*­ëäÊfšì92/°ãGÀ”m–Øsr9n‘ Þc3:–q^ý°¾þéæâúöâú÷á0±¥7ÄïðŽvw~ZÞÞ®n®¿|9»X^­¯Ïӻ׫÷_‰Æ÷A1ÊaÉH9ÒÐêÍD¤”Õ(}*}G÷®Ìß>Ð×ÿÿÿ˜Á÷ƒÿúïlpNé¿ý Y^Å$Îuð’%ÕÒü«/6säë–ׯýÀÊ\S‹~ä ÷’(dwaçGÊZͳÆú ó„—âÜ‚ƒàíß–ð®ÉGw#\–¨žº‚ÊTr÷L‘UTš*¨ëiZ,NRÿî‹–ü0íM’®Í(« i9JÁ\ƒ§å¤i¾ÿî‹–ü|9E>Bù-¼åäLa]Ö:Ù¿Ÿ¦ÁÄ…å[ÕÊnæ×,Ç÷GZÕ©l©'§ùrÒ¾læçËiö–#+˜Ò¦ØGGR¤Ò{{÷MË覥¤5çRÒ$.e­¤4@Tl‹ ˆW™Úûiš§ÿî‹–üšcCïkS›}´êÇ&-»™Ÿ/ÇÏÊtî”vTšlÿØ–j$Aq¨•Ý̯YN:w|9ûhÕ—“Γf~ÍrÒññålíNóå¤cÑ̯Imþý”ÚÒ¶3µ¥ILmû¨å_2•Dg‰¶­Ô +Å’)2­£ŒÝ™ °¨¯$Îxh-åŒÛê¹wîñʷ;C9‰.«•ÐöD“‹Êãå½Ûxü¡kÖ¡¼wÛš•r;nNVŸp1ÝF6ÜÓFdu¶q³m™$éhWxò¶µÑNç㡼¶™ß}yú¡¼ö ž®¶óôCym;h]ç<”×n[וSüsY­„¶'š³ñÐU£M*­$)‹­Ïm[5ö­‚µ÷™ž}9mÏmÌFngJѾÇRj9tujæwßU°­ž¾=mÏmPt"æ—ÏÿÚ2{Ðò×ÈÆçþ«˜;u ô3V¶¤¯Ywgrs÷þ­Ï'Ÿ(uÉ_n9†ßßþw¢¦µëb¤‰ ˘Di+¤™aYÐC.åE=%ÏQqÉî­Ízë*€UøQzŒÖOMZ1(ÅXV•~‡(hÎ +WéTfXõ³ÁÏdAÈ$¡-J4_’ÁAVç´ÙUe¤LI Ù`J8ÜKR¶¿Qéü…ÕWŽ\•-FYi];K F¨yšü¢‘lG Ÿå®’L¶$‡L^׳±Ú¯*×¹ñyŸÜÈI\fU³.[’c&¯fèÅÖÆ\mÏwK-¶4½µ£^‹_E5øò«Áoÿù ‡Òr‰Ñ§ˆüà¨Rà5“$;Ò4#£*…]aGº²Æ%ãòU¹J“7óv£•ä^ÀDF;Mc´|r£C€eU†ºh…\°‘¼‘÷–ÑjÉ Y‹4ß-¤´¥é[:J™zXpÈ+˜:eµ½)¯8¢e…p*Y5F´„Á0†µ>¢%Ì£"·e£¢ðm¤”͛ɛyïœ +µ^¼â|5Ú^ë é£LJÕè—mµØRçXd:B-5yDç&™%”›ôKJ¹[[ÛR£Ö¼™¹mÝÕ¶ö¾ôËÀãØyƒ5Ôxj’ ²Õ…£arUTÍù±™ÉÃ{¿¥èFjÌjËŒÝ_ÑЬ×íݼs>…ä´wÊ¢„®­ÌvÚ¬õÎ㯥À«ÕK’ÓêµÕ:]sÒO$5˜U“™¥ÆÔ¤)9¿;D¤’,RY` 1V?;¢pä¿Ø™…g-á…-ÉA®Ê\U¸œ +h4SnԵι[!¢*t’ü¢ž ½Š—ò˜É–ä˜Éµï‰¦tè«X+`¶U¥šm°•2™gy‘ÔÉ%Zøœ$žqý ,egc[“\ÓDªÁÙF¿ä%hµ\}gÕjàÏD­¶é³é „\7úàL¼é”žË†vpOzA!+Ì=è9¼°%9¡g.ÂŽ*ô16I9΀)ÇùR£ÙÉ–ä#“r¬U”Óä@tÀÌÊ\7ȳÙL« R¶#£¥Ú {ßÖÚ‰‰ )§ýˆ.äZ'O®A”CmÓgÓA¹nôAפlDÊmÚniA•7‘¿ÖR¬åÎÄ(|#%¡âÈHl¡a¿gNæV%Å^1S*¬ôÉÖäÌ””5œXN§ $LÓ0Îe˜šÊ+í’+i<9„$XýeF‰X©-'¢>pÆõÊQPrÉL‹h¾±NZ\ ŸTU¾|<´Á½.A´VÊ%gH•îY_¾BáóltÒ¯¾ßÜÎ.În/Ö×Ë›ƒo éË¡úÃM_ ¾~y{sqýûàËÉd|vvwõóúv‰Ï~5ø<ù-üúÞå¡v(¸-:É:Òù]ÄœûÐJkã –®iœÙ" ¢¤ŽÍA2!±pYŽˆ ™Œ¢[/ +hdåGQsb®ó"Œ¢›ùh amé“ ™‡Q4çÊ5 q,¥«tDƬâÊ*Qù¶j3hm×c¨¹dS?æ(*í³ÌU2Š¹OÖF…ig9ÑÈ,$/’ð[&£¨+V mÃ(zVößYéKc’Q4Ì€GË0Š^Bñ5 Q$•jPiU$ÃXX®mH”•ŠÛ•ÛÀ ê}ÐñH†+¬òGÒ¸‚˜=Æ‘T¼j*ÜèêG2çDbO~$UéVb`:I—˜ÛÊøqT%Ë0ö0Ž†×›8„Ò¥ g,ýh•Ö+s\4 ¡ˆ3Æ!TÜ$Xâ–¾AV"ª7¾ë!ôÍ%Öz¤!DE1×¼Ô€¤µ…²àe­ÈµfYF•/UÐG!_£Ä‰ß 8~..åÅ1˜‹•ã0®@f 'V& +ûd$¡d“¹ñF¹Ë*N 5€ÄÊøä*r?¡¶e®øYÏ 4¶Ð nõ.èp1o.*‡5>â825æ# ™ ¤òÉÐ)a ^­HZòé$Õ$//`Ð@JÖ¤•µýl(ƒxAØósd0‰Ã¨|²’rUV>O_>£,¹ü²ÔÉ0j^Du–ù | òQ•)Oèx•_àK¬ò1DZô&äTè½¢âµxžGʼnÆf!±ÈØ|Z•Re5Âh2÷Š”Ê7¬>ј2$‹íœ—& ¤›ü+®’~’Z뉗Ɣ^»Q… éW\² ·vA×éK¬,y©3èÂRÌ-AñRNŽÂ7˪0¢n µr&ïÜ9¾8Ñ:Õ Þɵ×=!¹tÜ +JЙægó<ãD£lɪc¦J`‘~Fƒ„šåLÊ&gR(F•3qS½sŸ©4®7òT@w,YóäCi¸bn[ªÂgÚè‚.2Ï3Wsçˆ<Ú@÷-ÒKRùdXìÂ@z´×h5‹«HÉ@zÉTåeHã%Ó"7: ¤áy^6ORùgËÊ™­*N 5À” Ì*WÉ@j_[ÃzŽdÁ”PåN`Þ샎GÒøõÄb•5’ hÍ„ +£ +V ®ÈÉEåØ ¡ âåØÑ°fÍ(ë<óFíûÔý‚ŸÍeæ5—Êr°FNË¥ô¼Õ€Îì©&W,,†‡È>—©¯$–ÆW R$ÛÂW¶Ê|[Æ5«2>±Ñ]$dÎM.¼ƒ¼ëÜnïº7 DfîÖËÿønqq Ùˆ¯ÃG¨ä׿}ÿâ‡õù +?Žon–¶¤};øòŸW—×:<{{qy~³¢š]kñƒ_L‚¦Þ\¼¾»Å-_Þ~x·‚Îûõúâ îú>ôãhêsÞݼ¾»\]ŸíyáÏå彡_ÿãú¶~Ó•÷7¬‘ÿx„V½¿½¸={ûËÅ%~?¨q×ë—ôN7M«•”^ß]ýxv»üóàªnZ––{”†½^¾_-nVÿïíÃmÃHÝ4¯QúQZx³zwy{I×MÓ|±ÛQµ7«_ÒI¾«fíwCeäÎÊ<¢_0 ×ÆËõÝÍÙ껛廷gÝŒÊÅõ‘¨ìâzÏŒ?‰Q™GiÍúÝêfy»¾9°IûFôÐÅbwÏšéúêÝúýÅí‘'ÍSMʇ¿è¦Ûÿy$*:x=é¨ÇZAþº8¿Ý#©„¶È¬«Öp©GiÑÛÕÅïo]»k’/ö8ø|7ørüWãËwo—¯dGü÷üHMyCê ÔðöPqsýúVg·“õÝõ9<4Yïa!‡¶°V‘<™<&;þz¶z3øöÙj{on– ç_þ°¾xßë{Ÿ ¾gžµ¾×ÃìÕ½^ÝëÕ½^ÝëÕ½^ÝëÕ½u¯î}u¯#Ù¬W÷zuoZt>[ýyÁ~Щ6ÔK>’Äs/1ŽfÞ‰ q÷R^_Þ푺U¾[Þ½±¼ž¸r?eáüPa¨£‰s~,aèüPi¨«†K:xÞw7ANc¯߼y¿º|äiÿ#•úñ'ü)1CyÀ0ϲìyèDC +Ã}ÚzÑ¿m‹ê®-ÿÚ7_~Z_\ß¾`õæÞß~¸<Ô‡p‰Ý€º³õåú替Þ:“I'ò%Õâ8΄»›7˳Õ˳åÁ í}T/ù8{·:»»\ÞÌÿùn}½º>\洞ŵ•ÓõõûÛåá­ì¶‘±ô^êRÂþýñnÏÓÝJA/yH_0Gû| ƒ©¬ÓQ9?ÉÌÏØ]òò„ä:%fðÇž2ºTº,ï(´õÇ¡\ #‘àcMý?ôGnˆ>VCöØ:'-óÔbÙó„t,œÈ’¹¼¹¸}{µºíj Nié¼¼¸ýiy±OIz6kç)­§óŠ®m¿ŽQì¡ïW7¿¯°¹Ÿtsðht;cNf,‹põ<:>¥ @=TTw-9 \”y~¸¨Îšôô¸¨ÉêÏÕåË·Ëóõ_Ýn†é!C÷”—çw‡¢¾ä¨£]å¾ÔãàABþ‰Ãòž!âéžjØùÅå²+â)©` Óaº×÷ë›wo×—ëß?|>¢ýçÌÖºÚíñäl­gfŸ3û¨Ø>Gfv0”sxòX΃yØ©ï?ŒqâLì~S½£a9m(êSÍóçº[ÿðYß‘v³¾+þu¬ißGPØh`G Î ÐÑÔ:¹ +]ñŒ>~ÂVVq`ôtÊÁÜለèÓ·ËëëÕåËÕåêìpímÜ‘od£ô£4òŸkäϹ²>N#—+:"Ë^®è8Ô™°w4ÌÐýÖ¡Žhì°uhvñþÝåòluµº¾ý~ùîóYŒî¡#]-ánG Ž¨Q•Qý±ÊÙ`°ñQÖ>vÓn_¹'æߧ@ãpþÝÕJtæ ŽÆåP áåúæ{?©?cᛋË˃íD«Õ¿:²¹bBuonÖW×îJJÛΖ—g߯ÏmÙåÅõjÙˆ?½KPZ^_\-Ÿk¨ÊD8ëj“ÿGˆpv°>Ô8}¨+Íî4ô¡ŽÆ¥ÐÖÆ>0ÌY†9ÅÙÞÕ°ô`˜VaøsÃœ=0Lgü«Ã<´…÷ÃtìDÑ0ÏöüÈ®¸F‡ÙÊ,î‡éHíá0=¦KÉâÙÀaN^²8Ó™¸wp˜®h¬‡Ãt¥%}pù9ÀaΞ ¦³•è4 BŸ¦÷ÿ<)x6þŸÎXÙi0€ÏÈÿsJ\áprëjâ\ïœ>œÞGp_÷£ðˆQè4ºÆ Â#û­fˆ>óü‹ŽL^GZŽ„ñ¬‚Ê>˜áÖ&=}0Ãéz}9éhߟóÚmÜ­”Ü'ºYW†Ø£Æ6;Thù”bèŸHx°"ÏGŠ¦õdÂð!ì{FÿªS§XÏÑŽÈÑŠž£õ­çh{9ZGó¤çh½ŒÖs4z|u³Þ·ó«ghG`hsì÷^BûdøY/¡õü¬çgûøY/Ÿ=!?{’¤#¬BIr>þ“ž/i7¼êýÖO›£O›²Ÿ6§0m:†~Ú9d×Íêj½/xÔ „ìºN[ä·*ÈþÏðû-|†¿ßÂÁ'ÍîCzÕÚçæøÏû†¿çu +ñ¼dWÍézõq°ëý;Œ„ÕMÛÒ8XG¡Æw«åíìà vq}¾zsq}Ñ•«+)ÿÉã|’ u:ªÇ“ÆþêîLø'ßýñéœ[z¿0` ѧ°äÉ4àƒ·t7cž~›øQœÇÚ1~Ooľ}ˆ+â©yÁÙúêÝú=È?Þíy¥ëÝ¡\îçÃþسÓ3êwÝ –wûãPfÐÑÖÖ?Ž5ÿÿØã±ï¼!úX Ùãs蜴ÌS‹fÝó­“Y<;•7Odé\Þ\ܾ½ZÝv%œêúQCn>ázJëêƒxF§™vâIúÝ¥÷ªãѶ•íuÄã ²AÞÑB™ýtûÿ~ºøçêò§Ëå‡W§¨¹ß¸Y—Þüɹ“‰ CYeßvÈLzrïBî]ÈmêyïBî]ÈOîB>ÖQJ½ ù³1÷.äAïBî]ȧæB>%ñ™«VV——뿾ýýfµºþ¨põ-¬M¿¯¿ýób}¹ºýöfuþíúfyý{Gíîu®§s]b ,¸=<ÃÐÁ½âõ (^ýa¼½âÕ+^½âõ©+^«K¨÷=´®¢#“nRîq¸Ä¿.®îãi;jV(v·T?»y}û‚ãr>C×ãû»›7 ²½¼Ç™\Ÿ®—|9áâÍ›»÷«éúš†ñãb©6 +?¢R|ŸáërÌÑ»´ÝP¿ºib³Oktbzz.v§OT~/ƒS§Ãsè¡]Tä &ÓÞìô›ØÈäÌNlƒ"ëSovêÍNmÍìÍN½Ù©7;õf§ÞìÔ›z³ÓÇ7;=¥*y¹ÿœ™Î¢Yõ6´vá“1¢½·:ƒEífþÏw°RnE명ŵ•÷µvÄ6‹?“¨ŽŸ’=ís5@yúÈûä_r±Og…z*¶0¥u>2ýNàû4ª¢ñT¼¡¡qt7ÜÓÇÐè*bÓÇÐèª!} ÏñàˆÃ—În¹§²l>ç—·?-/ö)…ýÚù±ÖÎ>þÔ©­}ü©S[;»åY'°lA‹î—ζtöq§>þzzo^ÑÇœj«ç Ô±9u/º¿_Ì©= ГCjû˜S›uùcN= vBG¤ù1b'ôñ>£xO5…Î÷p²0qˆåJúá#7äÃSÏûçæn_¿yó~u‹ÓïfuÞ!;;lúÿH¥÷êÍ“ÕÉè9Ÿä¨͹sÒ+žÔÎ^¾]ž¯ÿêÃ÷ªÙ©ªf=ß«f½jö,ÖýƒU3û\T³®Ò«f½jÖ«f½jv:£Ò«fŸ§jvè>”ùÝűñC×ðîZr¬Uü¯‹óÃ÷©š¬£Öp©GiÑÛÕþí§±Iº«&ùbŸÎåÌFÞßüy5NIx~Q’Þܬ¯ÅvŽ:Ú“ìÊæQóèÓëtb=•<äêpP÷¿¹YžÝ./X_tµwÏ|ÊP@g§®~xr§èõ£8/nÏÞþrqy0æúzý’ÞéÊÕ˜””^ß]ýsäσØUøœ´à£´ìrh÷êF£ð§w°tÅ4s¨ürwóúîÚÞ›êÈ¿Ÿ~ƒ_Ræ>ûv͘´ÿíÉ&ÇAÆÖÛeg*{Së'bjýÔˆÛt5;m%¢X7ØæçDåÕì¹ +¬8éz‘õDDÖî£Z{¡õSZÅÖtwxjdMWí8 \Möüp55ééq5qµ}µ'^U¯ðõ +_ï7êU¾û¨|íÀ?Q•¯£Öõ_¯ñõ_¯ñõ_¯ñõ_¯ñ}<¯#“u¯ñõßÍèÞ!":’­?FˆˆCá‚nrÀà§tºDðâä´Ÿ>áCr´€‡r±µÑð,øX¾ã9„ïx:¹æÃÁ§Ö¾¹\¯ÏÝéß¼¾\žýñíÀ%­ß-Ï.n?|Ó™=‘kõÄ{#ö’úä\â~¸íîtØdZ u|>sé`ÊzO‘¦Ÿ}Dï°1Ooä=^\¢glë}jöö´‚Cè uÄêÚrŸ8šmKÊ= +%.ÿuquw¸ýXwd— Å>­(DG·wºUt×Tš]¼¿]^ß¾`ëö3ô ½¿»y³<[½<[,|wDPõ’cPpœN××4Œ‡N™Ž¬ ͸.Ýgø:=혣GSê7<@¢ ­ûëmga šå?-ãëö°Þ'—ÒŸ›­¨Óá9LΛ¹"_0™öÒ^/í=Ki¯özaïÆñ±¼ó¾[_¯—ö:b›Åµ•O#Ón–ÞK~½¨tOQ©óó³—^r±O'/=™7àPJ;ÂÉæG›<=Jú9ZΟˆ7<¡Éü©˜Â{D‚®E,ï(ôõÇ¡œ #AïcMÿ?öìí¼!úX Ùƒ½è¼!æ©E´O ÁyøÒÙ­ÉñT–ÍåÍÅíÛ«Ug1¹Niù¼¼¸ýiy±O+ì×εvvÅàž|íìJxòµ³«†ôkgWkg·<ë–Í#hÑýÒÙ/Ï×w×ÒxŠBΓ2ð‹GvßG9Ÿñ”èå¹F"z†§–÷Á•6ø¬€x¾ñté8ˆuc©ö~µ„»‹8"c§*Ì_mŸBJ7ö5{Úõ¬ë¹uèƒï È÷ûP]+z—ë›ïý´øL8ÆóTòü¤Â{M£§ÚÜÖ‡øØ9,ÃgãcØ‘Èz¼ ‡r€cÙ«žšü؇Ç8Es\ÇÎ 8TŽEh'ãWyŽH>ômàýò‘ã†p„Ú²«#AOIÔîžäNc¡MÛõQ<}Zaû”¦Ø=¬_·Ë×]­½G4~Q-ÿã>05èÈD^+zOئ»ë³Ÿ?FÞSÙ—£r ž„ξëéìs¢3ùDìlr¨…^==‚„öÛ›ÕÍââæ#û®Ünã_n–×ïß7Xúiñ°{iÝŽÍ ˜DŽ²á¤·†•A¸1{ÑcLïÅ.º©O ÓøÔs…úb|yù1gÉGÀj>Ußì:”Ïåü§îZr'@åÏï¨Îšôô'@ýçz}þûͲ+¡¥?þ©Qãc2e>þé‹ñ?döj~}ŽÂ¤S^ý°¾þ ò§h@C—ÓÐF.7é_µøHÙÈ£¬•2Ýh/öÁ¿ýŠ£Y:«j”c4öƒU|ÊQQ•ªÄ*V£"¯¤¾62¦‚l@e%0F“ç™MR°9ºÒTOŸ–ò +¦ä æTŒŠLf倊£¾*G:7Àï ²ÀÕd% Þ,´…Ç‘^²úWèò,“1mˆå”£R[Å_ +¾ƒô-)mAï*lo&+¤^ÎGóm,Ç&ÂÕÖ{ÒÉÛ#›[œ†*Ó…ÄöªJVØ…LåÁF—N‘û$•ΫFÒº¶ûöd£ªÊ¥,é­BW”T¨¼*Kʸ„Å+ºÐ:¯¨h%g0Ú…Nj7Ií_׶"¤$íN:^J:ë…HûÑçjš6ÆË.¼`p‘¤Ì,-“PMSB3!­xq *`ФLHd@몊 ÙÈHX·òðÖÊ +úÄ-³š& v©4<€Œô &À°@µñ¥Þ çž1 C"„VéL#eËjT)Cô2Ê,.иœÚá`-M|gš´5UÚVDÖr›Ç”…„å7¦½ möÑ”×f蘚f…¶šf¡Ä9oŠ“™,ÊâbŸY›& (¬ ̹˜tS–9rŸ—$*CùÄèSÎp¸ŒÁ¡ˆO™‘Q¶”IN!%)0¤…z…œ|Ý›í;sÜçWñÅ+Âokrö¯²Áדõúr:€Ô?躺¹ž_£/è»»‹s'Â~ñ +ˆÎÀðh`?À4+ãòÜ×?¯–—nKþE¡Š>ÀœIn§ïñÓ0Ï(ÿ")3yÆUoêëùBL^ ¿Égò¸É—¿^£ +r>Ýïüb}]|…w¨`ªÜ œQŠ{Äÿ?ù]ÀäÏKë†þË°,+9(m Ó?"ž\Ñ´›L ¬ñ5r0T4¾6Òª”Ö¸ÚŒ2+ ³QŽñ60m ´ê …¼ÜÃ’’¾ÑÂÈßé3õ†âÞP/y;AùÞ ™f¼3t㨩0jIyÃôÁ!WoêëùB,\k%©ÈJ‰BÜ',µåô™~ã7.Ò ¸Dø@÷è~€eî“ïù†Ò½ŠLœkò…p-¦"Tç  ²"ùsQøéô +n½#.1ÃÙH¯_ñ§­K&aé‹W\ÇKúèëZâ¥ç¸Ž—áslª¿7ä<ù#>î‡WøÙ³P?|ìÚU‡àËñõúzÚ µ(ÃöàWé-AP( ¬¿W¸êÀÚë¢OB¹QW9.”(`}œHPYíM:‘$Ú¼ª’|ÿr×K§Ÿ…Ûé{ü4 dRÊ A•0¡XIë0ÅiÞ6·Ë¯p¦•(àÂœ­hrë´Ln\Ùð…΄F’½ŠAL-Kša®Ã4.¡¿]…W$ɹ.óöW4 8w&g÷.erp) ãƒôÂÏä¬Æ€jœ¹¹ÀQ‚5ÅÁ+¢SfÐÝÕ€nì’<õb[ï*MÝ[ã’Ü¿J<&SÔ­˜DE +TÚJXM•ënxcóAl\ø¤P!Aq8k5*K6 uÐ[.èvcAOÓ ¹7Të» ^šå:yzæ¡ÅN,¶,-Ð$Š +µby@Zå‘špðõëÛŸWgë›sèè¿#ÚÖMAd:þÇw<2¿¼Yß\ùm‹$3W8_¿^½ÿ£zux‰§c¾Š%»§¾á,™º*ãÝd2>;»»úy}°Â,ƒú +¢îI!SúÈsb‰â‰_2®„òÌ[ñJ0L?¸[×í,/ÿé⟫˟V7oVg·N@ú÷åõùåªÙ¬-£´ØÉ¡Å–È‚y·Fέ=ÙÛ9OVÌüLíœ/Von{³·söçg&q½³·sn‘:ÑFèKü‹fËâ`ýÿdÅÌ*š¹ÒYê2º1ŒwøÍû7‡¾Ãe¡Îkmd ¼±Å1 +cûKø–Ú !¹‡€î•P)ÈPA²±fÛ‹øf“Õ0Uõ€B'÷* )¦z¤àÙÞsG8$p~ffMõyš5¦½r½ÀÙ œ½Àùy œ¶8{s›™“%Ρ9‡,sß([¦Bç°&u,vîè{/øµˆolMØLÞÊG¶vû[¹YÜ¢TƒËšÜ§¬CÌHvŸ´ö™z–}×Ë_½üÕË_Ÿ™ü•w%aúÓy˜óP‡^úêJú"ÂAÇøLä?ÊCéÓ0ƒÙiT©ˆhº!ª(ÝŽmYdUŽ¬°äÁ ÉȦUù'âI>ªœ™FD2Ëk~¡DjÞxÕj˜KFéüÀdÄÑyH±“ËÅ%e³Ró«t=ïèÆ#õ: ÖÌÞØK¡‡K¡··° ŒŽT—Cï+‰"ŒOKŒ„CK,†¹F“û`h wÇŽ¬RÈR}B†ûðý—a¸íßâË>[ü2ô-£ &@6ô rR6ä0àl|â?û{þExÏçHÙ§ØÊ:­P+“Ë",[XJ±e0,°®–#SÈʯyH¨ª¨P=ÖW(SƒIáÛ%†ÕØû2²Så ÀÔ}‹ž< h[æ£ÏŒv.Qup2·ÍQ îd•%4QYªÜ`Î,j…D1;5†¹Se©éŒ¦â¡†N·6$@†0ˆþ[Åwý«»{HYí)VáŸEHp%„¯¡ám¬_B³ø4º©d^—ÃS:¾5"wU±.ÌÖ¥ eÒ¨$ÅW¦ô•-Üç_'-È·±LfáÒ’§(ê1—ƒÿÎýY†îvH«—6¤9=wŠòN†OÆ`”“,k)Iã¤k\h<Oǯ/Ò¯C|ž:+©ì¨645.©‚KÂl’fø”Z.¡G|)¡Ã(ÇøíEòÍ· Ö¾H\›Z‹jOÙÐ/ªÊAX=ϼ3r@S+i2ÚbsQCÇM(Øã7›(nÆ¢Ò8ãÃW’æ¡ŒÍül˦…a„2Lj™xJ™U:Š6t&’,AëŽs'J:ñ§¢6™’iJ-™‡ ¦ƒÈ—LT•óêâç +(3š§2¢%L]™¹W(¬‘¤ú¹)…íF…ÖŒÂDa¯˜ÌõX­û¦žÌ[h<}pdªR…'Ýí‰Àb¯»ÄÐõ%É`:v½£±ÐíE̵J{Y“Õ#$2šôxŽ±°Ò‡«´×é{cj¸ÄÄþìïù·›øïÓ÷l Î]9=*/+ÞÅên¥ZD%]Ð6·wƒ¿Àʯp4 ´Í†Puc]‹&á6 +4[y“ _ wšF&ÿúÏþžÛ¿:¿OqÔsŠÉ)¹…–Ѩ»üwÌÝEû—‡Íü‡±€dáOi‚›W(è>Ú§ÈIyÊpÓ|U ô•s÷üÛþå„&¸tè«`|ŠU¾ƒ\þ;už +=ënú—‡Íü‡±€¤ûXñbéWÉ·fñÛZ‡ì¥ÙÍŠ½‡OotîF÷o4_Û臞Š 9k_’MX’Ùè‡ÁÕru%•çºîà Ui÷%<ö í-ê:Fg‘%©š‹MpP7Dàªl+êQ0O”dÅ9Æö¬ö¼ Ùéܺw‰“”haÕÈm&[µ›—¼VœÜ–è-a´Ý +³*,¨´Á*cŠôŒI¦e ¨0šF ªiÓÑÊŠŠÌ¢ôX]ØwoVºÈÑ°GOW:Ïñ)P©T’Mx¬ù-OíÞÂûí<Ø"Ž(ïH•V—H¿²Ê‹Øþ‘؆–×¼PÚí†ر±![” Ù¿¬eÍŽ?¼ÀÒí J>¸[ÁøuXhÂ1G©ŽìQrD’¥4Þ¥¡ãIøÌ—A|$¥Î'8{†Ûþ]ò™ølK„¾•»[èAöÁmd“Ò¬•œ£ó¾%ØÊú+çFQÀË¢=*Ëó8Š¡‚" òV+#Hlͬ£Yç T­îPÑÒ¥î{[—PŠÉ¾•û–=yHÙ?Yµ›¤JU°–X[ä,—Jg|•Ac¸`4G‘ +ÍQÉH;s}æ‘Ö<Ò†VŸ@ö÷ü‹»Gšt¬<¯<¹Ö²¦ù7J﶑«÷§¦¨Ð0 +'_ðê¶UYT·]YÈÍ`(_Ÿ’±UŒ¾àÝ,w5¡—É&æÛ—'Ó†ÊHžjæf¿QxZµ´ÓZ“4C…Þi¾0ÑEãÄͦõsz.}‘~Ý«ì³LÆÇ¥LÓê„T2D +L›9nZ¯c½ŠÍ5[I4V®™ö¢­ÿ¶&6åb^>Ë»66´’ò¶Û’©“?¼ÀŽ>ÓîÖÉø’Œr+ݹôÿán¥'_žË?×7xnX}aþ7^™;=¾h¦ÀÓ†:›Ó˜%ö"&¡ýJÐ…;Ø¡BCg„ %xT‹ •‹´¡Á%%è!4Ævêã'| +›"Ç:¾„n|Ph((7¼ 7è Y)ïKÆ ç¾n¸r&·ðåR–!Šöî qÑÞC-8T¼¤S9¸¦Cj ¥pc(<>›´˜LÔÅþænRÏé<öܺµ×¤¾¥‰ž‚rË +µ.EAîó¤è‹/ÐœÇ6p”mÿf„{ßã@5Ó™Dfq”¡e~”1Q1É"»±9•¨$4Aå"èIJpãŒl-Ô!{€4ÆÒwhb# ¤i}C*„¶éf‡ø”)“ -ZâSÅH"P@Q¨pM î€=BË&½¶zcx\°õHáÖᯠ·OQ×—§áá¿/þ÷Õå»æBÙQŽÂ)®héNN´zZLU¢?Ýz€¬+£ÿQJ‡Í7†ÍL1‚îè)O ð á»'¾â³õ¹ú2©T$¥ñðFnâšÕÙ¬ñ„:f8ñý_è±ÑM;£"3Wé$iØ||ØÌáN'½ ËñN†zš˜]|Íg= yû‚‡T™!ÕÓ L9ØxÃç–d»Qv³v›   Êp0Ç*Öh)G™Ã[ÁêUi<a4ë­äÊÜ’¤Ðy ÒUÒ§áq+ÃMQT’,'&ZÑyRäš* +×j”íL‡tž~p"2ŒpGWaJ)q}@ã0*’S:bFçCW¨•È™ ýQ¸¦þÁÓ€°œ!âÕú«€Mj#ÝÁ2tê$p䜌K:v¢ O‘ùI“& +«œŠ)gBÒ"%c’™J*—àîáºÍ5Rº¤2 ÛÐÝ‚5t,®Ð1xT'ÁÈätÚ—o'ðO‡@) +Ýéf„PíNì(³ +õeh_^X:ÅLK'và©aÔ Tçt@ +ž¥QæîÈ›•ê×yi”¤ƒ@<Šå‹.b*L‚aÌ*êÄê†/á"C 2q<—Íã7˜ë9¶e*’$kMIrŒ)|¨%оHU‰@‹‡á`x$¨W9 ÜåÈÐð€ãÑ"8\ÐA$4á*\:‹ž–‚$¬Ùyà ßth‰)UAž¨²rŽÀ^»1ÇHBØ •5tz˜FJ¤Ve¤I$Z‰fî +Ÿ`¹Óé%—„%híq''ø.d\ ¡1q’¢€`IdšJºCpPFP! Ū2‡¥ãg"ð)&àÀdÖ 'A/ 9…L`^'µø’8ø +¥F-ŽS  Çy„¯¡” øšn4ÙÅ™-ˆÙøDe†õÕêã;¨é)GÒZTÚA”Ün/h6ˆeÖÉ”b³Â› W£d5ú…hì²0.[•ÑIZhDTxŽ>T¹$ÇyÈêç¾ÒñMÉ_w?Wˆ4WÉÛ5–#”®-ÛWÐéÊb@†?~íbؽჶ^~btIŠú-ÿF´QÅ\ÎöAjNIþð?¸S©ÒîÖɸ`ö‚æi9,¾¸DœÍÀOQ —Eu³è¸Ö’o^·92¤÷þÊCg)^$½O¿ +)Z»µ|¢"r'bêÃ$iHçññàsÄÙ'á<#ñ3€‰IgRfáÓ™hÞ 5ä—›5>;–¢õW¥Š«²l“WyFÆE;×@þCÅ–<T–rlå\“e´ Â“é—Zà)^•NÐ)ñKX§î”ì®õHý¤Û@ûµnÜtû'(ý»ˆDhî@ÉP¶¯”¶¼¯Pf¹ Ix‰LtÞ#’ŠOÀãÖHFz +i±„lP·ÃµÆ j’‡(Þ,â›ñ{ÈÝ'ùø|cýDɺ³LC5¹µ g "zÙâFƒ¥BJÞ!0ô_(œ-p;úAv¯Š&$ꎡªÄÎA%3.èvn-sÅŒN:$/T “ RiõÅÞ¡ÓoAe*¬æïй¥ÎLÑT¸·ð”D—DT^|¨¿•¾·è“;n³*J’†ôvß I IW#äãªé«_CBabÁ¦Jcèk`D8üÒCR’9 -M.²ç¡QÖ¦FùOSÇ®òxϳ'ÿ²ÿžöYHâZø<†ÎŪ gvÔ{`ÎûÀOE_%‰¾~ÍúǶ¹Ž¦ovÎFÒ{›=„kmwLš¾Ñ/ pاˆð¡tq‹#訑ӠÇ•BEà–ÓBHQåM#¾4Np-®Rx(Ô:dÔlÛã»–‰W‡|å/ÅjHÀWÜ8˜—ISÜ_´ ú –~“*& O„æ´Ž_¶•³Vi›‡×S¨%Ï !^Ú$Nð%ýÿì½Gv#I0¦ ðA€A€å -<Hè-LÁ–03ßôBï?†–zOO+íuC-µÑYU(X‚ÝÍ™îo8óºU•622\FD—ìW íËf¼kE›w«Z=Y/pi4Ã2æx‡­ŒÍéÇ!‹f ­^Yë!‹f räÃ+sGrÂëèúŒþðF£gšý7­€.D“̯Ñ^hÌÐh¾@›šh‡vÐ+اºÆ3cªÙŽã•ÙY»ìwYQìxJh¡vwÖ ´²šC²^ §a¶2>¯®ô•$àZ ë'p _Æ®œ„Â!ÂŽV™ÿyxÓ•óæݼ_hnCäj¢!‚1Õý!À‡¯xTÝÑÏjÅ~avD«c¿AãËn„GaŒ ‚fGÖ ´ ™ƒ±^9'@­ŒÏè'Pb@U²h±ù€0= @p9ZGNtº>[â0¢®éx‡7¢“ÇÇuŽÌÎ<¡5ò_‡oŠx³¹Ä,jv)Í^(Ú-Ùo¬þŠKÃw ߉äÏl·„&d¢4vÖ:º0Ge—²Gn·41¿ŸA‘‡*fìEb­ª¿$Ng3=”T…'1 GjÚ¯ð<@`£Š¬“­“8žgJèNÀYœD5Ϭ7,ðD6a¿°»Ád•Ö; ±hE¶ZA1Y˜ud¿(.Yc±_Ùã7™˜ÏO@f` +¼ÉæÌߘ S†*¢­+xñ·““â8F40ë^8 ¼dÞOWm£}š,òžMèL° ƒA3%P+ª ñ%”mxB/¨Vàºi%…ªE"ȇ²ˆ>LâÀ3e•®x’è˜D7P´KãAE¶`)W‘BH½ržè`Šº‹ˆn‹WTÌM/ ¿¥ƒMIÇ 7x%Ò'ÌŒqçU…CªT€ Ðq–“Ug‡ŽÖ¶f—ËóDÈ\ãp+ÎòòäeæáÏé伎PDÛ'QUäDŒâ\@ž4òŽ·S8XÞ§ë õc×ÉêšlÞ¬@ÎæS*j"BbΟT<¶ð€U]bÑVÀ(e¨üÃ)`?¶(Ÿs啪ÂH †ÌË1ýæ[šè0lH)ð<| aH†Ž“œ~tIcîÌeìôdÖs¸µtb!»\äéqhÈŒwÆWÈËËGÄóK|ÖÙa">£N‰Ï<¡@ÂÓYº#ŽIÊt¾„Çâ +‰€ÕEäùùâƒ#°ƒŽÙÍtÐÂÑñÀ&.â -jÍîwÅNpŠD<4&À(X_ð,ìË¢L(˜>6–8„ƨ2 ¹ï£˜½@Ñ %u]¡IKàðtȧ +ÌH^_Çá^€ZšË¾vD%ñK!úL§ +9I°`‚.˜‚¦Î“ I×®˜Îã i˨ơ·—>i8YŸu]¾v°1evÈc²‹*ѱ)€hë)HÁ*Ó“] +Ú›VUWë%MZǵ}`ئ&®0ãÌü`éïY¥Ï A V…žŠ¨N[l'U0¸ufªÆ èfž¨t3'GJžüî`ùPe“L!™œïšΓkeT¢Rº‚iEDò†f™ènŸHÒ/%´eà@¬ E’W˜G$ztRÄ2÷ši„l"à; ä$GUŠÄRx£Â$n4z,»ˆ‘&‚¼Òi^ð¬2Á…<ðG‚=âˆPr˜BÑÐüGÕDaS•™Âä¾›ˆÈx¢‡h)ªÄØx^dÞ†’肉sh>ǹBgaR˜z*…MË´’Ó'jókgÞhÄCETô‹a÷a꘼ł˒ˆ>±ú”Ú¬…Âœ`1€Ì ÐqµtVN_¬ã9½qåe’'êáÝì :PÚyÌBDgÁñÆ*x6ŒB‹&R@ýÓ/̧ä¥M‰ã»nó©?B3Øa?ÊІ.ñR4É£*^ +…6aƒ pñЋûIЙíŒ,Él‹ñ2s3cŽYwJ ËLÇÁ’Ä*é¨p“f'×ú:áÍ5ôº#ß1:,WXr=d–VÓä Ò†¨1ë’iDE‘™1ôF®f¨R0z‘Èy1„Pª•‰ˆ¡_£JxŽÂ¬;ÔAÌFµ‹‘CRPÈMìC•Ýi6 ÇïÕZ4‘DbYf>ôô¯ùðT +‹"ù±óºÊ&Ä™G’™,“‰PóùçS˜0©¯ +zŠð"Ë·«¢ó/ +!*ë°ÒP ÅH€‰Ú e§|'’†6^‘¢ÈHUŠâÀO«:­ããM‚¨¨Ìç‹…©Uu…AšÈÌ D~3Кt‰h2’ymÞé/]žÏ‘>DÿY:B·Fk,·Å´£[f5“úÀfÙ30ö‚1xÚöè5/PL£}vŒžŸð,£ÕŠépKcæÔ‹ÑSªˆ—¦ª¨› p 13™DX¤‡H.:Ûª"û‚îŸGž¦(ðæù•LŽ˜ètɱ=kœÕ°é7ˆïL*¨2Â7ºÌ³R"‹9á0l…]¹BÄ)N¾µÌÂÌ•S`ðÌc$’¸žkpß-mHä:fIrÂx,Ô³ Š&›v4ô+JÚÐÆ¡c<P î¿ÄöÐu] DÒúao)ô~䔨è*ê븲º™Pd¢2,,šJú°åTI±l:’%•}Y\¬×;)džô=C»ÕdEåèbV9²¯Å.PôõCC$žp:§ý¸¨ñ±Uù NÑœ*þÂxÊ_Âà1´2¢¯`À©²l-eÕŒ“™Ë/¨:s¬Ð{Š\Ïeæc‹ïtrTÙÉ’(04zCSiVDÑM›ƒŽ 7#EC·Ì%O¶t¢˜JˆLÒPÔôã¦ð…i2!†c÷! ?y`6DÕô³×M—vP³Ñû †NçÞ˜ÉI¥äË,F¤x¾ÇS –-O tbæY/:Ž#%#ª3Äï,(<—cþ£ø¥Ru¤D’¦€L„FP‹ÌX9óP””ÑŽmf–X›1?Qg1 +°a $º* +eF]`Ê š‰ÑH ‹"蟜2£¶N'Dè © + +šXÎD›‚Nj̸Aâûb}ÓõV¢ªršiÝÄYU1ˆ@'G«Ä«LIYpÜX]àÈÏ@ј ûÃÒÅ×èˆeÂÉêŸVRFLº)Ä£‚[-ØÈ]aŸ ZÁ’Má>,™€çQêNòS¢H‡H‘ÇJžJÈhÅøv¤ +‚_ðºe í&^Àu—Ì  Tñ_Í^"ÅDã§ÃQFù“34…b@uÊV<Î5x:þ@z#šaU@)_ ˆ‹ R²4Úëž@Nè,ì†âqɾ Ô ‰¥P>O€.лqx}·„¡Ë…Kʧ’sžÊ"ux×g@°ÇÀ]L«43hà¡ G ¨Q.¼íM˜œHäŸds€‚ÎÒ¤ŠŠÂˆF@¢MÓ…î@|åOV$:ŠC5‹GêA #8Jx‚'e˜òu±nqÏK(q`è +ŽÓ*b +msÙQJ%3@Ç/i@ +drˆüÑLÚßµ4ŸbÒÐ1Ñb¶?ZØ.äãn»°U悆^äÝe¿B7+:ÐÖÍ 3`o”'ÌúÉìëºéFA¯BT[²kŸ­˜æ`¾S-+Ù Foàù7üI±P,nÎ|3³Y}b3w³ÊN´ÍôË [Q"/Í„ +èHX`m¦"bµ€Q…ÖýéÃôƤfáQ“’¹’;R‹a.8¤nÄoiÄvžÎ ½Y¤9µU P …±8ýѼÌì:öÑ®5É<½7¯70÷àå¨YlÒEu‘/@%ôJýdbwt|`XßPß›l!üú¤€¡K­4–rlF ÎGãU.²Ù‘@;MáÏ c.0 =ÝEóž1ó•¶PD”$’:tg¶X =ý­EJ’€ÁØÃ"êhö³Ù ;±¡WNF +Öv?Òõ 4—(‰‹YÆ«ÝÈø|p›MÇ®›“ôåa0Ë_¬u‹°ÐÂsÀµEáG®>|t,¸fê|¤Pñì€ ˜­Ê3z…7~€x%ã±2žÇŠ*;ÅÂL‘¨RIÌ‘EWX¬¾NÙrÍqŒÓ)q¦i‡¬ -0¯}ì€ã‰#)ŠÆŽÉÌW! êA-M^4fFr<·)óc¨tÕ >ŽN!>1)ôž§eQDÇDÉÔ­:K¡#+Š/è,¡qL»”4–B,¬i*3T™o0°YSÍA³wš¤—+—ŠŠ!ßÔ«Ê㱘@ðbHçN|b€éŽ'EÈ‹.‰Çü*<ý‹+D¯eæ»öÇ}”|d|·XÈÙ÷¹ÈÂ'ê¥0'ú‰ÄÑ*Ë‘O_ÑIƒL,Ž. ¤&Ð&Ç}€F3óqòðîjÐÖˆœŸÍlÓffP´dEf/è‚Cô)@ÏuŠ`YÌ©,,`56I”d"%ªB÷(âù,GVê“ÂL1iúË«&˜3<©HÀÌ¢Àa:x…·$Q.Î|¦“l<ÃAR©‡i'¡Ó tˆLÑgǨ Ì?¸t¤©/°xQ2±,ì准îí_|ù‹Õ&—^~ÏáÝ`K„/?¼HS …-!ç¸$ÀÓŠxŸ‰ê>¶h~Û ð¬N3ÚQîb ?Ôá–¥M4Sûc$‡ ©ì%ºT¢ˆŠª·ª™Çšœù²LaNÖÀ/‡¢‹Ê™̧¤ ÓQýæ ŸÌ‹Ó(&D–‡¯x‰Kñ…€HˆvØCTL!ha$V< ”õƒ¥~½–Öž¾È^(óŒCÐÙò"4ïbŠ<3F7!tÅ¡¡-ÃzŽcYVû„¾#­‚ âva~hxú_B_ +"¢ëJ"d•VM'uk!¬gJ^E¿¬7xþ†¦zXº€ƒš9–ÉDÊw%(æ]bþ£YÎŒ=â™=3¶17f9,+Uȇ¬n,f•ù&¢1KB ɼ̀¼™åÈ2Lð•J×q¥á5&ºŠ…ŒO…á’Œ¯Z|bíL[3I£n#ò‚þ=‰¤4[—ªƒ&©HßUÌÖ¥#& åçþ-å¢~¾;=¡±´kÑ”Æ"‰¤X÷w†yÍž"/I0·¿bòÌ4;Š¤&8d–ÒQ§ˆFÊAD * ÊÇ–^šü<¥‘É®&Ç3î‚×¾rè¾7€¼*ðìZ + ¦]úJÒ‚d†Yf”“ÎËæÍè~÷S®¥`ÀfG:¨Ðm²t9‰HÖî4¼Ré”+4Ì-¤b–<E¿d’–P²>žôý8Ìû³aª@(Èî&™€Yð4nS@w@ž,ËeZ$: c&ACi Òä{Œë YðÇÐSUfYU&¾‡& MvšMhrÈ¡) M™h +˜BS é€vz,fa¶@×¢J< + ˜b›Œ0æ•‚˜¶C7ØÅ劌%M{FCg ³ ‘ÌNCG?ŽÔmwJÏŽ¡=,xd^Þç)ÍÓu²Žµto¥>åÒ·gÇDêñ¡±FBãLƒñÈpYNßá%ŠãÞ©Ú 9–]Ë ½¢³e´Õ*äõba¹kꦔ@yÖòrÀ\_xâƒÓ$òiYüþ¨šyF‰G_q²vSd6FÌxò: ¡ã¯Fáú +E¬óÌŸìèàGÙÎÈížäbG¢S^cGî”ZT(ZÀQp²9ŒÀ(ÐiØ)610Ð16 +iBo`X™ž„Ø̤ïìî\HTvßÞB7¢´‚÷.ŽÓK%!ôÆPRC!QÂÃ!…¢:5Uffc¼gCÂ{WtTÏP ¹Á@[t§Æ±S"ãé55‰VTC4æ}ö½ÆìOšT²rk@¦0Óiåž%ŠX,žsÛÍN{Ð*¹zÕ|Çp5Û%'—Ÿo%Ÿ‚ÝÌî=†ßì冓ú=8Î ñcXŽcÏAyœ@M…&qØ&±ç |‡·Óš†ó¦9 ë8Æð~ +4ç\!ò%´UOYùqùô¤Ã\~j’¨‰…¨E’TÂcXÒìIf! +cF†^ž.³â8 +…!³®ó©™£dÈÙDÈÙ:†*Q§é%ëßdJ&2…—QÎyvXlj˜sÅ7Úb W™y6ÚÇZøËœ×L¢±Rµ0‰oÓë(Š) ?ÞOlñ~4UÀ`JeüÒ‰Ò˜õ†žTë +…·Óa¸–š‚²vǤŠ~Tñ%E6—@¥f¹6(ôë+,_ªkز6ºÀLã™!CÎ&BÎÖq]§Ù£5*jDÖØpGæõÎUï"ºŒÉÃC[Y×ç_õΓ‚Z5ò:8ö’1ƒ!>ÑËÐDÛ¡‰!Pk£eÍOj®M»ìQVG.>uFX=±dOšfŽŠ“’[ï$3éMO3·‹s+Å—F7–s_Q3Š£™á ³/ÜËö`†Dô¡à¡‘¡ÌØ¿s¶`W ‘­{ùñøÎ5FQÅ@ò8Jµ1ÈuZ9‘¥Ôó›Œ-ФŽÙ`…‘è*sOò£ #&wå@„âMû…>Š½œ$¡AÂ@(ßÉ®Ñm$˜BÝÄKk·Û{ _Ž 6?‚XŠ¹QdžK-)¬Ü”W„s¾œÄ»!aP4ûyŒ0 ›× M´š# “c_iÉ€î)ïÛù”NÊ‘œ;.äüÁ>ý2÷Ç`()&Õtý@ºÔ< *¸Sïsû —rÖ˜ô‘øÍ>š}4Kþ$ Ctí–.ví&óq˜G!Ñ1_žEϪ ‘IŽ\ÓgÐJ<±ÐÆèåûÄí@çèBÔ)"-¹¤2fê$„¶\9¤€ª“…ÒbØ,Ô|2Y¨j±P'‘sÒ7ÖçÂ<ósp"dâ‹]Î`—ª6É.Õ©ìR`—ê»d82Æ./mv©Ž³KKµÙ¥%‰Ž°Ky’]N5É.ÍÙq”²K†gcìÒñrÈ.5Cm‡&†0d—£c_¹ì’¥ætbLÌI·!Á•¬.9º:%íx#…ÉÎPg—ñªcºêè.SMÕÓ.šh'4Ú5À†‘^²þ«\bpƒnê–˜òÝÄæé–¢ˆ±Û”XK`Žä£j("tÉ qñÚø˜NjÉüÚz¹(Ú˜ÂùѾcßÓ·¦áÍ'êÄv¬‹m‰0ŸˆS6¦aºè®^•ØoŽÅiA(“µ:xÁVûnl6²—t ¨g…ÙÛƒ +9G;2­w ÅŠ_Ùz[fám·ÎºµV† +±×$@;?,vð‹Æ¾œ5ðw¦ð +/1ÿqW¬;èU]'ùV¾bt]™nÉèæs±ñ|£QƒÝÑ©ÖŠfÉLqÃ%¸:ý°+óG~O…]M8ËËsËO)JM¤ùþ»åE*VþѲÔÄ” +ê¬ +“eÙDxy² c¦ˆPi:–oµŒ®U¦„Ÿ¨‰ÑRÎi™¸4¥­h·ÛþÓåh"Nná=T˜­7 ÈÈjÿd¬)±Ñ Ç`+ÿp.r„@ ôCÇò®¡XÀ›O´ñ²3!L:#ÿwMkíDÞfO›nΚ§K’{KóœSA›úVÝ üD“Ÿ¸ˆ~:€øø ³/VÜXoiã¸Õþ³E =™÷koœÂ€A Ùˆ‚dõ‡a}݈›ç©Z`ŒåãÕ|­åbØ[fÆØ0‹¬ƒ¨¶qUëÕ@ÊÁ'[ÈöóÅúZˆå{µâ°:[ôl¿Û®®L¹Ü3€…ð³ë›ùr¶»á|§Sf …J†9yÿH£®4•,£è¥sµ>5'P?L×, œè?lõjèm`»É&j½N#ÿ{ °Ñ2‘µÈz·ªAóìµ¹$0Ï tM‘îÀtISLî„·(²KaNÄ2.¬s˜ÝÔu]ØAžg¦š„Qvm¹–¬QQ÷8œ-Í×µµÌwûSV(Þn•µþ"‹;§„ò°dÞ"Њ ø1oÚ9Ú:»}ZûÀš“å)ž¨¤U jAj;–\öŒäF+S*Í€ôpÅF«ô³àE ¶ °†ÓÖŸ9‘¥äŒâÇ@¨î4â„–Ç/õ»¨÷cvf‘¤°,cÖ$zýK(ÓP àç6Í U_4æûhŒúEcþE4F”0‘Ôù¢1Qðž»/ó{јÆ€Í 8—žµ¨že§w×*4º°„YÃÙõ«Š€!F_ +×Ï$TÒ¡ú"T_„ê‹Pýê„Jþ"T_„ê‹Pý¡âYÔ•&É:]#Ȧ„£<^œ–Uá‹býÅú²eQ¬/ŠõE±~Šõeÿ¢X_ë‹bý>Kû¢X_ë‹b}Q¬ß„bQâ¡_™býø¾hÞ(Í[x¿þ0õúݶÍÏ&Ã?w1B>z8ñßÏ!Þÿ5¨÷ÌIøǹÐ/®éq¡/.ôÅ…~;.´P>¿/ôÅ€4…ÿµÐûø§ØÇï`‚áLjöåTý·ÒŒ_Ü©úKhý”ÐAA‚.ù•TL>ÁámÃ,± fî1ã`ñâTx;Ë\Œ¹+>Ã`ü»m·/a÷cÂî{¶s<€¢äK¼$áñÞ &2'P‰×ÔO3žÿ×àáÑœ>ÂÊ~q·û/Vöû +п۶ùbIcI3ì/؆iwÁ g¾øÎ/Èwþy³Ë/n÷ÿâS YÅ›Bñ6VMåUÊùÃáÝJðCSé"Ì0§ ¢L7¢Zî3¼"©œò·ëC¿ƒõæ§P\A¤DïŠÆ±sW–é]$î+ð맒,¼$úóHÖT‚Ciü\ñv·et{?‹àŒ5j™¹k!°Üµ.?¢Ý 7kþtÂk¼…ëR~™—g¨ï…ÄMYœ¦èú/nIþƒ&Å ™¡‡.¦P9žìÀ‡©øÐL™¹0æ8—tÊ…HVá¯\ˆŸ"ú0“§¨Kxǽ­tªäuö%ùüD*õ‹ ¿¨Ôg7|¨Ÿ™›à7ÎÒEª.q,¶Ótá‹`ý\‚õ•£ã·"X_Z×O—¸éí7¦0üø]oÿùÅ㧾hÌ—PôS¦÷¼VH(Òyï(Å«ÓžÉD’ }Å{þ4zÕíæÿr´»µoíV?ßp=øU¼è!ð[Q°/Sð?µõS0cJ¹n¾Õ+·»ÍŸÅÁ .vbO¦oÕ4oꙬ‰–ôŠù†qõœÊ¡wúÂqcßÎŒnHᄺF¹ìófZƒ±æ©L»ŸïÏ £Ò5Ø僒yk`§Ö:kצwp;9ØÇ`Ç[¿ªg3´?5Ûà$ú½Ñöó­R»YûF ¯ +ÎÂVaÝ`kÐŒ·;5c´LºÖ2f5ý(÷!Þ’åÚo´ÿ¤» ¿Èõ¹þ Éõ‹çÓëD·ÝÉVó¥öŸá|m:¡v6µðÁ5‘™B£E-bTh º&ý£•þ_Àt±—3%ÐŽ²©Œ²â¥•æ8Ú|ñßLã2À,*†+füa4þÅòßå`ñI4µ¼ñgÁq¤ÉÅ (Ù¢F£Ö$áÃÞfåÉ@=xmõ; n»ÏÕ©¹°,º„7çiš(«ÛŒaYU$•èxüõ„÷ýî©3'ò%œŒÁçßè«Î'}xQÆ+dETùoKÀˆajðíÛ_®“|¯þ³HgÊ¢‰0_Œlò¶>w1û|*Â|±‘_cGÀÿ!I6ïSþL°ÿ6y—i8_ªü·ü×d‰˜NêQÝwY»áí#m-ÈóL +^ìu‹Óõþ°éÄ)hŠH7>Š,žê?Äžim¦[Êwëø&$„yÅzYmw¿œsvò5ªç,ô‡Ñí;–•C KÚ¸¡cA£Ã¿š4݈ +Ñn± +#;¨Uª øó{Ù]’Æ6y<ßvój­èŠu½ª+Ø<óJT ÏÜõ“ÿ€ÇØîT#Ë}ÙªÛ%c¦óÁ4ït÷æu‘9ð +ˆOL‘çyQðÊX^Bñ9‘p†Âñó,°‰H´UiWùn-s4?Q /Ì P7×v~JÔ”° £[¨—©Gv¬–ÑëeZuGúÔGÇ3bqµ*Œ´bw21â‘^7ö3…× €Á¦kd¥ÞC3k ²$hC“i#™È?lŽåÂògø7ý2ôÆQd™GÇý° *’íŽ#H*GivEP%Ü7º‚þ8?yß,f\ýoÖiC|Xø jí¿Î;Åé1¾ˆùÇMÛ\XÒ?•˜ÿfúèOw#õ“¯?EY×PüªúÚˆ CÓD^øS‘è»\ð‹!ÂÔÕç’üÙæÊ…"|oóƒFÿÑ¡ùfkÍNÃÖ|g–(Mf‘É`¢+:¢¬ªé²¤ §3ǯz|n¼i=9rÖw Ø=ÔŸ“­R´Û§!õðŒožOÛ­3àß}`á¡{3€mœåF¿oÐ°Ï +‹ ÔIp=h®7ß–Æß/'á¿®Öúû¶LòˆJ ø[…uI‘E亨ò¢h£–¼Ø¹.Œ’Ù8§‹ºÎ"uQXÖ?*m•½5è2Ê+2»¡a¸W¬bû]Ãh™¥d•Ó%•åEI${vVéø_y«0T]¥¸gŽç,úÄ9ÊÆ "ü‡^ÞNÔ{ÃÂ'ù +ìë¼YžW•ÁAâu`(Ëì§(Eb«²Âltì3ìôœšÜ­Üµ¿#ê®ØŽ$; Š9µ§iœ€kÂqœ$¨”>>bŸ¼ÑÍKx o¶'ˆ*´'hО¨Øí© +J§ödÉZ¦òìí4¯öw@ÌiHæežÆ£ó¼¤k¬!˜ mŠ[5„#âáoh‰³[AR±{×–ª4¬£“²øPp:©_ÑjIÆ!ác;²na˜*ˆˆ&«²$˜-a²Â:üÇÄàfµ$ ”D“h¶ípl%E1Ûd@ÒTÓÆ:ÚOÐ t´# *'ò¬¶¢h8’ŽfÀCH¦2i¢ÄáÔtb5Øe¢, ИHpÁ°% -Ö’LÐÖ€Ã쨒µDEØØE‚Š¦ó‚"Zé¢Ù…l%€áËšf6GÃ’âŠqM5ŽpTa™`sÑjqÄB‰h)NÞñ¸œ­q-Y¶&))¢.SE•áÉÜ×æ²Ù“4 TÔ kŽŽ’ÀƒXMÊfCCM’ (¤dNÀ[Â`ÛH²-gÃÀ$DkœšßdçXxÇ¢if :üÔDÚo°T–‚7ÉS˜×¼êpṉ̃(Ð’D“’¬¡è +Ï DÓ1õ&²Ú¢ÂÑDqFø†³°\d ›XNHŽ”aITD$¼@T‘å˜À‰ ÉŒ‰ÑÁ9Üq°8(ÙÞ)°öÔ†,s²ÙÆŠXtI6,æNQ-‚ÉKÖN¡'vBPP¦ÆÁ$Ù‚Áæ0q\4~±–@\ÝßÁiéV;<Va4²ˆ]UF‘ZàV"‚ä¦E VúÖé¼.1ˆÌT“ÖÙtœKè ð“!ã"Á\à-¥¥hŽGøÌ•“ +l–´á›Åè„›a¹5UIZ 2*@BIrÅx—Äœ¾²I$D{däZ˜Äw µqdQ ô2ÒÂ{U¢Í ”Vˆ··1®˜I E'ÓÝŒLW³Z…Å—Hu\¥ýËn*l{+ÄkE›p™K"0bËÚÔp¨´1 ïY(=ŠÄ)@q  ”Ѫò€3š“L+8<ìE냔 +´),Ê(Ê<#z2Èfî9U¥ &2LWÌéKŒvàØYJnÖª‚;—'v¢ V£º"Óæ„r2µ®ê* A¤iX¼E´ø§É#œ¼…X‹Mã &[Ü7šÂŒ¢J¬H¯¹âÈ_LŒâG× +Q”˜±% À’¨ ;ŠŽsÌYÐzxň¥h‹ÂÂP@…J4¦°h”SL6«Z<\`-Z˜ÂD â¸êPs\Ô“œÔ3yšÊ¸Ø¶£g#Ç €|Â3.6ª/YYa§øÅ –ª6'¶ÄdØÐË$ øjZ"TÆMÌrª­¼¦Ñ‹gÅl£eûZƒœf¢¥Ó3(Ñˤ”®õúNS˜íº7³2¦77äzŽ›É„U‹†ð®akÊTxŽ}ÊþÕ,´ØÌÿ´ä?h7ëùŒFþ‰å{uÇš5ò02à?`ÀÈýÙ,4l®pNÞðE¢ýgËùœ6Ê#ß/;Χðò?óÝ’ó]ªÝ5_eº,C"øÞï«{†/rùÂȃãS¶ŸïÚO 6'fƒÒ\ûD»8h­~"ßÏ/yŸ7¬g×&=9l·ø|s’>m— öÀ–üïx¿åòÿ§ÙhÁ—P±Zk”ºrMÐQ0ßïwk…AŸÅÓzŸýàùX¡ÏvŽ «0þ…FvVtú÷?òf*`9Ÿ9?÷ÿê˜_·ØÐ~t.Ÿ + üð> ü¾Vï¹8èõÛÍ­…PÞŠÕéOλ“Ûüc±éZô~Úä°Óõ÷ðp³—ǃÜqY£ÿ7¡ã¯vv±n”Þ_˜V»eü„5±ºûtŒ$‚¥<¥ ¼7·B­U‚ïüO˜Ÿ³ÛwÑÎ$YLƒôïÁ¸ºŸJ >´ ÿ0KúÔè5jÅ/žK¨ø.dÛsô»qïo v½;¯þèDþú&òg­DÞ„ó'#Ñ Ô¯ŒÙÙ§Oªj˜üóg5Œ¨øÞ Y}úŒ +mЈš¨peº5PYÞŸ›åæò½S›ìñ=bNT.Ût‹F ýÒ~QŠþiàS ÖKþ'_|§¹]w»£÷–»ˆö±rïß„±½/”“ÉïwáÓï®M¶Z+÷“-øôwÉ¿ÆV¡ìl<Ô-¾Ï¦x¿Œööé+[kƒ’Ïw˜›ó§“ƒ±þþ† ön#_\@Eþ “öõékµO0[ јϟÚhoŸ>¹æâSó{RôßOÐ2›çóƒ~ûÂ( Šïó»^=g_Ÿ>±n»ÑhÿatOò=Øæ¡ÉçÏqF·Ÿ¯ñâŒvFÍ÷':1‘)=ãý}>¥Áäš I2‚¬üàì}ý BZ¯·Gÿ¡™½|úlJ5LÖmTðø­Ú|Ÿn–jåò 7›ëd’ÿMÓ]tÓQÜZƱþ>ŸŠ"¹ÆÂXÑŽ®Ó Ñ/é´¼§Ãí¦Rín3ÿ¯2‡—k cÁY¿  ,³ßOGÇ~¾[1úYà©èÿv˜øt²9Ùá{È7ZãÃÀyoƒ.Ô¬}£8 _tø¿ÊyR¯üçßxœ½ýbë0Wg2úùR¾Ÿÿ†ì)™®1?>fý½5wô…oÄaJüè¡îÊ úAßuAʃ¹]F¯Ý ¼Ë‚$hV¼;´Ÿïö í|·ä"ó›K€âã+4Yltàw§EÉUéÖJ®ž™Td|º«“>6¼Ã:ã0i-­ÿÉìÓsUp…x3Ýpa4rí fþÇ%õŸµ{5l¾ +f-M’]ª¦óŽŠTøbÐ0ºÎ³ƒaÆÊ·pbæ¿"à°E:‹^ŒMó°5¡ezä ‡KÑ‹–wn… °X}¸„yðÑvö]@RtVùgCŠ_RªÆúþNpÁ^´š&ÔbßYåÙÈÏ»º–UíÝ’Š@]¬ìpK½»ûì¼[Ò1^² °=Í:®t¾Uä+†ë¬ÝtÆ€*œužÑýÃpåŒÿô]IPBò…Z£Ö7Æ+¢&ÚX­Çó­?ò½ì´Mî$BõV»XoÑ«0Ÿd¢È÷'F©6h:Ù£ƒ6O›fÝèè»Jƒí»†ˆbQ©x·Ý‰v<Ë{61ÏlêÚoÔ:·aaÆ(â‚ÚÕëT{ØsªÑnwÏù–AAñ‘,^/2¿šcc¶JÆRµnÏdûH“¤‰Í4Þž`RÏ1:д¯EØñR˜ spÕ£‡©A£aì +šB¯ß\jÎU¶áXDXÛèÐöÀº +ÔéͯѱÐ `ôIíY›cOÄô+>p9Ûec Ã(åÚ+‡L Ïj(n4ñöÀÖŠÇEÇi1k4ò}€È!ÚÊ= ˜Q2Ý.æˆTβÎthˆ½N›[&ÇD$ÌÀ\Û k—‹3!‡î.YÃÛXg7³{žÙ ¡³uõ-¨Š:÷íQÎ^_:jïä‹6±Á¦FÓ +ï©Ö»ý'%Éš:«U*êhvö`œ£•µ™…É‘<ùŸ¾-ËÍ)‹sE€K¿SÂÞøSI[½C9²x‘ÉAU £Dr 6WùV­W‚â 5ê©‚.I£¡? ¼~ÉUÈÃx‹cJ¥³|—å]ê]WkÅêY·¶„cã/›ÊL–L6 Fi¼$7ƒWiÔZ†«\Ëa€cK4ÒlvP¬Oµb] Ðékz¤8æ(Z׊äS‹%RXá–Gy´LÊ)9¼É⦟òØ +Ín!ì³&¶ßhÄ/ŒÎ ÑsjjD¨{5©©Ž¯{ÎÖ\ÆÉ©5.5ºc‹Ð¤Üï#¯z¶…1VW¥N-lîrÛ_©“/•ÆjÂ4‡rôÐôÛ¶²3NÐhn Wí©Mðaüÿ w’vYÆW(@dú2n“u.{F<›ÝÃSÛ¦L/NÃÙ¼Ò‡MÏNòá‚ ”F–5Ô ˜)ˆýZÑš'?ož‡æ z»‰2EoÈì·ñ:UkC4Œ`ÄF•lvú!·ë†iUr‰kôÆsŠïaÀØ )G¥ë„ež[æºÖ*µÿœ”ŒÆËiÿ“Ç>Pˆñê#Îæÿ@€I‡-´[¸ +®¡<À/XÇ…(åâL¤â>T‹Ÿ†ŠïU2uG~ÑI±Z¢)5}¨’dŽOúP-ù»j)ßUK5k} „ÚÍÁˆé5Fôp|Ÿ¸Åª°N_âùu8ÎÂ'íƒõ„é°·žøõfàÕ»õäñu› øéÊi»óÅ¢¦Ü甬ŒI–]7'gSÛöÄ؃ Džr»Q2Löí¯áÛÞˆ–M Žž¢V³r‰AfƒÖÄá|bF0Ó2ÚÓ¦&ÎFŠŒõé8<× gíM@j +Û1㢢´¢ªªÀËï×båÇ7^”‹e¹œ«£à 8íŽï3 Èg+ +³u ª8¢Ííb¨‚Q·&Zîç³µ‰áЩ;Õ¢y +ÕÚŸnS›ZÖVNµÃdbÛBÒŠTý†˜\»ãÐŒ6äàšXöISDÖåÅàhw=FMQÓëL=`R±“fšY°ÓˆevÝÌu¸ðV«…á=lcà³GL5Ɔ,ÍVÕ¯jÆŸŒD­×j­œ+$[ªãœ±™©ŒÉŒ0 ¬c4+ùŸN»ÛG{£­2lavÍ1ª7žcsT—\ ‘3ní.œF»÷mªÔÀvT«hfÌÊ7r–ÅŠà­ÇhLuå°‘ñxîa«´oeCÅJìtk¬’Óî@U˜F¸qÅ 1§ÁQÆÔ³sC«À¬"Y§*þaº³gyXá¬ö£¨S6ŠÓ4”ÉE¶è×Æðàr£Ø [ÖÖ6»͹B3J›ÕGEö±‚è9<4$ÇÛÀ.J®Tfÿ"*¨®ÿa6ãÂ<€jHØ@ zL,MtM¦š¹ÃkBõqê,Ò-u{a«nŽl~·T>ßjµ‡ËËl¢e|é1ÓÉ‚ƒVñ"F í¿¥¹›mΠÿÓ Oz­ŒhwJƒw +ôÞk¡Øž½Pþó ´[xQ3RÍíË,é0¾É3JVºcû[äf”쎗´)ÁXÁ›ãTè°åŸ¿øPhàh9™/Z̓ˆlÌo¯ÁIãŸ[`ק@ù¹eÆŒ3ʵŒJ~äÀkZ¡B ©9ÁÚ§õTnõýA¡7gbX¤ÔètËm§Š3£Ø*(SÁ]iÖÃÍ|·Þk—ËaÖ·pñîÐ:´@é~»³pÙ&µJN. ™r|Ô ïN9"›]ÚõeGF=¹öX–• ùî<äÆr]G6éwŠv€_ÖZåö{=w3™^„&b–ÁË*fM¸d”‘¯;v§5ùÚ.À~è7óqjóã¡> v¯óX¼cmC69sš=+úœ2#lhêÒ»¥0Ð6òð –›-,ÖõÒršÊä¡L¯XlÍ#¬L§aÅ›ñÓÉ,+–oÖØß-W}oŽÝÊûp€2f;Ó阞&ógø×±nÃÃÓYåÚ]”€ßÙEÅF7lµXbÊye-ÞÝi÷çlc,9$¾ï 0î•ùr – æ{lS-PÔ!3N“Tír3 {^ƒ%£W«´Þƒd§Ó “‡ÚnÑcLÔ¶öð1à +çøX¤Ç¨v.và‡ÛÞŽjg¯eøØÁÇÜ’w5]‡ßkXhùbß[?á×ú)ÖNÆk½Ü>Ò@åDø"Ôƒ!ž¾¦âF÷ /ñ1”|Ù}óã<ü¥Ë1¡ZèÒ#ÍE‡‘)rsø=/?î|Sî”N5YÈqË©íÄ Ó{kbl#tͽõ¼©dlMXû“…•ÍûDyõÀ›8ˆO2¦¸ä%à£wUHŠ'Bbå~“{¹â/¾}óuVºE9ªU”\èöNHºC±js7h­Ç’ÿ¦%ÆÅ»,›‹·V¿c/_WºÏ2Â9øL/¡6¼>‚i®?ÁëzÍ*»¼‰«“y†/‡ÃѪ„-±óìž&>œ†ùýØíÝEô¢´ç‹%7<ŽÇ®¼=»õ¤¯}³¶{P^bõÍÒzäí¶s Ò°Õ à¶ë˜~ÉW‹6Û•Aj;u˜Q”ãâU¼¶s°Lž¤ùÈÛ^Q &Ó©SE\¿}Û¨»ƒ»ý®jB¨u´Í®GZñZ¥Ô_òªÍ‡ÝpÂèí©É»r*Ù<}­o—ƒ’Ú¼ç/ÇFs²uØ;È$ Üú z|ë)ÃJ¾c!ýü>qX:\]òÆ‘†kÈÞ‚ªnôÊb´[<äƒuý·ÇòùôœnG³w5K +åý(ß #ñÕBT …—åЃ˜ˆœìŽ/)[Ëo„ÃßÜžr{6ŠM÷réàÕíN\K€³Ý¸Û½wÔÇq.›kX{\vNoÞÜk›úá8­+”0w¬ÿŸ<)[ã¾)סF0Ò T4üBÜvûÜ˾ÇM·g=qê^‚·W…­ëÛÉÈ€û«›Ü¾Û¿×¸w’Ù¶{íx+ìž/ÇÜëWOWîÐCòÕ.„îJmÇÍ5ÏÎÝ|O5Ü¢§¿â—Š[öm¹•uÏ“[埻n-r"ºõ”tàÞ¼t?¹·ŠEX!÷ŽïZuïîeÜ{W;w¤Åݱ͵„;~ïyv'}Ýwêì-â>ðv܇™ŽÇ}DÝé¼÷Ù}º ¸Ï|Ê¡û¼­¹³‡'’û’»¹t_ ^—Ý7íõ¤ûîy§ +½<Ü\ªî§óƃû%'¯» WYw馳â.—vÓîj;ßw×}Ü»¹yûængÂûî·âõ›»¿.,»óƒeO'v²ì‹y|ËþêÍår0¾Ç-‡zÞ—eî$¿µ,ò'Í%ï²üºy´¬®ú—·6[Ë»«ùíåH÷öm9^½È.§žŽ¥åÃÇÃÆrúá ³œ)HËóÖòeÿ*·|ËA;ÑÆòòsÖý¼\hBÏå­Ca¹v 4=ÇåΙv½ôW/Ïr¶»âñI{UO V¸ö„²Ê‡o5샭™ïy¶_¶ÊžÈÅë'qz”ñd¹”'}]ßñœ=œKžÜëNÈsë ¬zõβ'–ïzŒJ¶éyŽ_—¼žÖE¼êéù¢••åÌ^yeu=^Y >íWW¸­ã×Ù}Ù\ÑžßVv;î•x‚_]9£¡•“ർr±ÞÛY¹oî¯w)/ùVë¥s_Ø×ìø$uyË·yÆßû"µ¨ÉëÛW®Ž}'7õ–/ç[ßñÝï|y®&ù*†|ïk%®Ã¾A(p½êë]‡VCÆÆͪtõ^Ý:ßzX·¥ÕÃL¶´zö°»·z]ówVŸÕ“Õ²r\m¦ŸWûõÈпÕÝ·?\ÖoüŠ®lúw^µ¾?™ÚºñŸUôçZYŸÿá!_ô—Ž:i#Æ)þ~ìx9°3Šxð, ¦Ó»½§^8°ÿ–èÎÂõRàæ(~xi»µÝôxkhòš7ñ\ ûî=kÊcâmmï@ª¯ˆ+ÆÚ¹¯_»mOk ¬<¬Õk÷kýöó}0¨<­ýÜ:X./\9xºžh¯OnºÁürÏ|=ÑÂÁþò…ºä]÷?{bëBêðt};Ô¾_OöRµõL±çY¿}<׋/br½Y¨_‡–[¹z(äÝ †ÔÍP4=}»7ÊíЕü †^®OBõðE54¨Üqá`ìþ$¬ø +p¤Ú^ÂÇWþëðUz{%œ?¾<7ŽZå#q{#tqQØÐJy#>8xÚÈlöŻˣ§ @Dyãíì©ÀùýÑmN¼ôÔ¹=9ŸâŽúg¸æ +ç¢Ìµ _Þ{èO/yyþ4°ÁïdUþ0Ïð—mUà |¼Í·ήï[-*;«Aa·lÇñ§[áf-¼/€Ðª +oiϪHd[¢"^ĸür)ž©±#ñQ_‰ˆ¯éŠ&-_g¸%¯´Ñ¥mÕ'Ý—¥›µ•¾dÜ®ô¤ž¸Ò“ƒõµ¾¬_«Ëò~<î•/72¹ªpòÛúšª¬­Åö9PR±¬’»È>+…†¿¡¼é·>uíART=PJ?Û:¾Q¯v…ºZê¶×Ô^ yËIæZÛ>8èhÇñ˜¤ÝínjµãÈ«îÉD]0ŽÏô˜ïª£Ÿ'«Ûú‹±û]Û^ß\«Ýžon¦–Ý@³öö7ojg³–ÛI,y·VŽí-)¾ŸÚJ$V{[¹Äcz«t}´ºÕÏs×Ûœß#oG⯵í³jñp;¯=¶ßÊw/;¡½ÛøÎîZ)°sš¯wž¯VŽw:G²¸»¾ÜÝÝIwO×wŸïN`õw;µŽo/Š×÷vO»{™Núl/ŸZOìu;y=²‘Ù߈DUq5’õ{Ý‘R³Þ‰ºŸëQ1_‹&K·•èuåº}]ÍWc«Ûõט~>hÆŽ;\7öÛ÷Ä:ÝbpÉŸ®‰ñ¨Þgûý£x¹°•X¹”jæ´—8ʄÉÇëj4Ñy9É&7|»µdL[ $/ÜÑdm­y›Z½~í¥¶6ªzêÔ¨_¦ +™~oß½ØÙ—CÚÓþaàzÙôOöß‚î§ÇgÝúÁM5¹{Ð\kT×sÇ»‡Ñ@àõðò¾?|Õ÷»Gpz´kx‚GÙ\õñ¨zeìû3÷½ã»§«cPdu —µ~Ú¯uoÓ;ÏBlɛήF×ÒÕ«ûדï¾:Ù­Åâ'¹ËšpòÛrŸÕJõ4ª$ïO¯eÏéisû!‘ Ÿ¤¶2‰'NÈÜ/Ö3oÉúê™PÍ{Î÷gÏý§þ¹û±<8×RíåóŒî÷.yÏËA%páß8ã.öÄWõâJÛØ»hž^e7 ßevã¢}Ê:9÷òC0§åö¶sg›þL®Ò/.׊WžËØýñæå]6r~ÙÍmÕ¯ä§þꤺ{rUö%_¯±¬´ä½ŽVÊ—×wšwùº[ÞMÞ(¯7™ ë¦R?)Þ_VÔÛÄãeáöñ^ÐîÜùZùn³šÞ»Ë­o¶ïšÉ@úž/÷ÖîÅÊÓ}é©°ûØ)ºâÞÚÝÃC¡³ûè~ û–¼[§›…ÇËólú±k¨OR^ñúyõ¹xS ¾¤ÃÁK¼Å×_žîûÅüÊaá!¿¹ºÎßEβùÁáÙyaëâì¬pUº:+t× +Eí´µä-f{ü}±}|˜/)ë•×Òy‘ë–šW÷C:âdãlç.f4â[eñà­XÎ\ß ÊõrD¬ˆ‚xXÉd}Ï•z¯í®Šç­­êÙFóªÚ¨w»5é!°U;¿Ü¼¯µNÓ }¾*gÅÃ×ìC°ùÚ©îÔu_£T¿JDÕzﵓol'ϵÆí€7šË7ÍÝfd;Ûl> ©£Öª__m%Wù‡VqƒÛi¯«á~ûè@¼nW »ÛËx:gÙç—N;è>Zò¾i/»òÛõa~¹ëÃF7~¼ê>¯©û½€·¬ÿÏ»¶²:ň (r2«¨£ Ñº2”ºmºË³>îžÑÉ·¬³Ëïp¶¨µê^?\F—ùÿŸÿåÿøÿ÷ÿíÿûÿãÿþ?ÿ¯ÿu¾]¬Ý+vËÝ·Qýü°UwámÕܶ—L8Šµòã~%Eªí?j¥­)÷‡Æ€ŽêÚ]—ã’ÜZõÞ±Êàz%RÏ,²=Þn•è”ä°‹S+×æÙI¬ª&>kk|å5ë”èC½CЫÙÜ|»¤U‘<ãtn2ÞõŒjï†ôÌënÆ8?ØíìÈÍ©î‹oÍè›Ç¡ã]Ž¸(3BÉ<Äfôk×ÄKXØå ä'-´m‡…©^#ÓëÎq.­¼PÖ„y³5ñbút•T<®µìHÏ™ƒ](-Ä| S¿ß å±Êã=Ks+Ÿ´[íÙKïÔ,V»í¦1` Tž=ð©V,6-D»ý?ÛÝzÚ>›úX½ Ç9Ùœ[AöÑb·]È÷Óù¿ ËÛâcýåæú«Ì¬sœý}ÜÍjv¤ÈN Þ%³3k¸Ð3–™(f®›ïtl·»\út廆«_5\扖«gE‡ýY5Z®‹<È·\NHG¾‡¯£¥vÁpAãv’‚0Eô©ñÑÆþj\ .ز6h»fÍUòµžs8:ZwAgvÕ–ܸßÆ&Š†«F‡"yW#ÿ&D€‰QHnöÞ XÅá¶tž=l†õÖ‚eÀèÚåa÷µžkЪ· áŸ$4]ìÖ: û»XõÌäÿZŒ¥B/&Óë}È׆IgÑùLj(í}ŸÜ1¡æÇÏÃB@:kɽãc•Ïöó­’_bÁ©87„ô{@›J9çÚ¨ý(°ßcüÓví»ìó[‘`×Fô®b¾o䪃f¡•¯5æyvX•ìb“ÁÌÁ´Àî™ÅY˵V}ÑQØD|–C›U:×­51•Îµ±›±¨þû…íSñE‡}1âÏ2³]kÐs]­¢@\FK¾3'ãçJàŠù(„µ±¹>cl07‘F}^¥3ç:DerÒ@À CÂg,¤D´Ãt«X\ qð¬$clñ|‡¥ý©Cï ¨Â}ÜÖ '¼²ù?Œ`Ä5ØêÑÑãöy'ÑÒ^ÆwܾÞYÝÊ߬‰¾L(éî7«›•–û(å^÷¯ÆkùpoE¹Æ¤»Ðz´ÙN÷`ºýjpWñ R iå:öÚX½^ò&ÊÜQajc+ª^V¯Îxøjv§Îr›‘ízê1²Ù 7ƒ‰uï åß/•—¼¬Ô 0½DùñZÅÆ›Ír¬ÚWÕ;~/¾D‘O¿E¶÷V¯Y;0ä^ü©òÔ†_¾7<£tÇBÚëJ4ò´Ønò¥Á’Wõ‹É¢|îW¥ç­í¨Wôc§ë/x8y™ŠƒµÝ«#Ou«XÌ×ñW-˜,§«¬gžÛÈ«ÝÚÊËfíé¨kx÷VCÝàà šÎúÞpüÈÖQU\ò*[W‘h«¸Ú îœlm¨Í‡ÚÈ9é&o·XLõ®lꪡ^‹\i³ßÈÃúò';þкk¨gM6ƒÛ´7?Üö\'×u¹ërx¯xvÕxû)¸}Uºß +žGjv·å… í*k\’{åZ9o!œvcõ€2Qóª”æøGÏIb#¿íK¹ƒw]ìEÁOÔ +Yòr…åC‰~wSÛæ¯íëä1+_O¾°Æ„[áP÷† îî&×…Ä^eÇlçzg{«ôzúD+iÚËÄd³(;²ð8ïß¹ÀB†Dïdw,ñL Æ£lI¹S^‹Ñ\â5˜(o¿%óùÕ•˜R¸<×ϼ7—ÑL²•ë/GsGýÁäÔÆ ë€ƒµ7]·ÕTvN&Þ_ò&ïJÞŠð²½—àR‘P`ûe;•ìX[ÆÚúÓøZBÖ¹°ÖB0ÌÙ«ö%˜‹NGéýèóO³ìl½¤üåãp”ÛÎÝ •§m6Qp(ƒ ÝHù}@¼ª\Ô“Át85ÄTØ·m¤0Ùd 14›ªéƒ©yñJ5ÙS·Š—QõN¸_ƒ³ƒÆÕHÛËûÉÐzAŸ¶$zÝ8Ž/y£¹“R(Ì®žˆ¥oëÓFK%åöoÕ2lš¤À ûÒÉ$æôÏR³ÆV*!ß ÁÝý—Ð’w8/˜U±œJ&d5¦„2WDpÂüÁÕ:ušØxé¬Å^û¥f¬ÑºjGsÕ›hâ8h7ÐI®·O…”/¤ÞG/ÊÕU¨öè‹)Át•QËúÒ(0Úv•QÁäÕÍE¡ƒãÇœ˜ŠTvnÀ¿$ +Rõ:zé-öFËù¢¹û†öÚmE2èeø½}ÄmÇêþN-µ½Ïû´ýîb-ï„ ð±æ¹Â éßy»rš±¯€Éþ¾ZáÙ‰ïÚKpë°WŠ]ôÈ1~иf_ŽâæW=úÙ>ˆ‡¡ÈËP´/Æß ž£ÙAN~¥Â@ÇàE3Ò-núØj9÷çÆíö^&ÞRÕ㼇;êßG¸c3 •bÜ1_Š²_G·;:üºÙ…wùˆó_‰Q èÅY2oV<öWâVÅWøÐÏX³¶Õk‡5ÖIA¹½ øõš`EÌÂÖ‹=<,äl‡zi&Æ›p Þ®qT/%ÌÑ°!áà¨ö¦I-â ±,{g6F³¢^°ö8ˆì!wšÞ6aíÑ\î÷µú™m(t¹ÝG ¤îýO ŠÛç0xÞ­žZ­2|!ÌÁž'Ç0c.‹, Í€ý²Z4¿Ž<"ZàºÌ@Œ9hqçN;g5D•I`Ñìe°Ø\ 8sÆÂSJ¸á˜³ @b㳆:fv££qlR6ÝûÝ‘N±=ÖéÍ.í—áj®*ƒ¶ÈŠ$¦msCb5ÜN$¥®^Ùºà÷‚ú]|!ß°© qÌ^øa¶ +ñïBCZsº1ÚÉØw@ÉX¿hB8 6SôˆrŠ~kÑÜÕq+Y5r é—'ÃУ-à••têåäv3å^ ãŒÂ¦fqûÐ +H.‰zäÚsY‰×žž#ÉbýÍÇX™Cœûg³Õ§Ø¼&ut±Q…†š¨„{Lô;; < y܈¶Åy"W«~=^\Ü%ŽßbÎ ÅžèE+‘‰dŸºò»lò£½IwØ<åÏÛ¡—T{üëÆrà”ЫN²¸žÛˆ)ëBÈ¡7ò±B%a¬%†²JJG}S +{Ð2ÕÍ)D€jŠº­ÞHµËL<›hàF‚j¡öÆÉÅCÇ’HëòÝ(' ¨&()ý r²€jbJ}6††pjLeÑ}ŸêC Ek„»æ\zë¦|ts#1v§aSÿ]š)Ò–>uð8Ž)«ÐA ;ܯÅν}‡¹£}^'§.Bh¿«‡‡¯j~6Ð,p&ø£­õª‘ÎE3—Ç€î°;r2K©`ðÜU”5{ìÇJ垤ÿ%ïPþŸ¨‘Iì×½l¯óm4já×z¿³\Ðõà–t:Úlz†’²½Ê(Ì~4Ûˆ¡vå/^ìe„È¥[75ÕÜšÀªKï(ýÂ]ݯ>¸7aÀÏÏÖê?†aºaØû±úI‘³²doMT žbuaÇ=ü`#;·Yj68\¦£Y‰¥¶“a»5õô¸æI%[Ø•‚Woj ³ÖW6î5µ˜>ŠŸE΄ÀmóÔèàÖ=?Í^¡®m}¸~M·}œZθt'ÜØïeŒîXÏæ®ëûg÷¼äµQ2év«—ÒæÉõu°Åím½ vçÊzüÐÑv¦;ˆIƒǯ_öÜ#kpÿÕ·ŽCö‡œô®EIK®GºËG©µÀºäêô›õR ¸ÓE*õpWq¦bd»ðÔŠ\Ÿ}›Õ`¶ÌO%y܉rö¥¯-¯È€ØR&ÚÚ=lOÃ!\DºL»ØÑOÊ|4³™<ŽlÅ:NÉÛÙ¶?Ò é¤É‘¨úX:M”õ—äÑ÷ÁSí®æ€ï?ÝFÛÕÌ@lYlq‰†ƒ‡Aí:°dwG§!ˆ^&sQU¿ ±ñ9Q>ïGf¤Âí'>VRñHåâ`e‡?Œêõèô"ѵ×ÈUî0ŸÚNô£JìYŽl^•ˆÖé>“]r²—¤X£µ,:«.:S&液½ß8iwÕýà/ow[·öB‰@(“=4ÓŸv¼ú"WåÜÀÑö®r4H„/J!ŠVsçðWNYNµâæÑ‹½]ߢBV¿ Üoü«ªñôbÚœà8È O½^b½JnV¼—€‹·o±ffWžÄ—óe`_õ;””¶x?Ð9É ¢Zn#QÎuAÙãÊMÇ<ì=¾ì{SîãH×óÔO”ÛÝð„ÕkVx¶s“Š—÷Äáö1õT4Ä2+µróZã¹^Mìïz 1t…Ù`‹Ww=»Ù­”ÿ°tÊåÒˆ›„±ý„ªÂ 8T­SqÍÐäîÖ5HEû¯Ñ AÍÞ«G¶w;ç^´Ä øUÚp@‘ë­ß)»—R2*‡ŽÏ‘Pð“½P!èSJÈMåIË©t+Y”[Ðs(˜¬Õ¨š=IÁÜžEÛѲz/ùcmV~ž¸ÊæIPNšó¹Ú©#hÏÖeâÛÆw®›8׊rÂ^êê…Ko»r"rÐy³ +¯·Q S"íßFtphJÁ£»#t€ë<Æjd…T ó SÁÃum€ôâb3TÞîÚ3uš N\¬Ñ輌)ðCs°íB²Àm¯:%x³E…}ˆ6òžJx𰆋^´ÓýÄzæ­dIJõ=j'¡^|Éâ²òšŒ»›JjãÂÆÛÁEšå­rÓçµýUÊBS$€ ØÉ0-6ô2G¦ØºN3«AàSh^¹Ý؆Ç+Ðs*<­ç%¯Ý÷ud»‘ +8eðñƲ³÷ná·øiR!†ÜíÝéCâÔ§´ã?Ü¢†rºQóln›­U(õÜØP€F*ˆzSIFµý^¾C)ÿQè*Î_6{[Ʀ¯ s¾8{Þ}k’‰4y¯hŒRËAT+t*–@÷î<²^›Û*Œî8ém¯%65ìƒaBš%¯òÆëY·³©T¤HžäJïã¯BJ/Áõ€@Ÿkä‘í+¶y­åì…3Y,?³@c•1ôvÔ2bR½TR®.¯4u/~¯Þ—–QÃZŽlŸ‹O‰ããíeû°x¼Èc©¼/Ùz¼±S=rÂú[¨ü]xn¹½hÈ×#D8én–ÇG" ½'Ö™FP­Sû³;5÷ˆyèàÁi«W6= ¹Éús0yÔa××aåzÉâî4uéë¬è—Éû½r :2Œìíòá§h®ZìãGÂÚœ±jÈ6ÿÐÉœ¹ÏaÞÀ6+6ž•ÙÙÂÐñwk2¤ 4è¡þœl•¬ð7ì_òüs̨ÔZ˜XÈú¶D.Î7S½ð‚»ò‹Ü»*lpÁ“õà^µ/â/AÚ>ßíçö/ú°%îåú1)öëž‹<*»öW!¸s¡TÝñ`ÇÚX½Xòºƒ»õmwàôNw¯Wkðé¥v›Y÷úÉMÂâNncçÖOÝËîxà\ê =`er¢.íe^vŘ&j€¸Í;²„† ¿rÏF|ÉÛíîî¢ëӣȱÞÛÕ¶¯Ã©öt•ì>Üq‰»Ôm.µÝ)ò s´Ì^Ä•ó`<´vý¥•YÓe +‹i} 6Q(Ýëv·z9èdýÛ²lÑõ´TÿJxj×}\ÉÇSÏ™a³ÝG®· mkƒàî¾ÛG§uIÔÃ=m_ÒÞ¶^áq¿µo£>tOΧwº¯>É›‡Oá©>­œ‚„>Öí°S¥v¼ïÞé¶ÛßíñÞîôNÏøiYØ\vºävÛ[]? ÍèT®úó«·ÉéJ‡à¶P™>ÓåÔ“´äõ\véisåR±ãÈŒNÏJ«Ø™Ñéí—*Ÿf‡’תÝí¾{ÛÇ=ç¦vº äf‚W¸ÛͽP§€‹…äèš^&? vÿÿÚ®{-•žÛ_÷ M: ½¨ t»(Ø7lÝ¢ ÅóïŸsí'É´ÌL’ÉŸý¼¾ÀÀJ²’¬¬öËêÃf#ÆY ²Ÿéh4·4,¥¾P—½…tæó_ãoµQu%‹ÍŽ×Oï‹J£‡“B±H}®½\Ñíz‚lxï‘<Ö}ïÓÆÿ>»"7zÙˆTW¯>©ÑØÞg¥ª6 +æE»”¢µûÃsr£¹ÑHh—…3b£¾ö[1põ•9'5 +ìæöÓS›2Ö‚?8_œ6hN„Nüå–ÜhG8 +ÍÂÅjÔÔ3xëפFG‰°ŽÁµ³ÜÄÞÖã¼­iô~_èiØhTר'¸ñugËÂÕ$‘Í¿õë·ÿp?¡4ZðçÓö3­Ñ¦p}*£FáÓõxU9üXŸ]½Þ e©žÌ®³©Q(ùs ázñ‘ƺñtgg÷‘0±ÑÛÐâÚèõûåË+jÔ4Žõ¡#Üž|ï“ígƒƒöáþ¹ÑïžÔ(É°ÙÛqÇ·¥0øá\¸«4ÉžV[ãç˧'b£OçócÔ(<_Œcýå§mJ£%áió™ 7zöñýu^.euBß lv|œXP¼^Ǽ”FG¡õï«Gl´t–ðyŸ0×oº[Yé7Íϸ8–}ÍFt›&rߟDQ£™P5ÜÕŽ´/¼D+G°Ñ¸Ú(h6 È~¬d¡°Ö7ºYîHnk1ÝH½“‡ˆØh}”>Ö +Âøz3¨zA+ Ù¤Q*'ÐXA£­Av}±ÑZú$¡„ñïÜ™xÒd•Æ j¶"5X¯'¯ ب kt½>š-åõÛóêÝä?*ÒIS«\&uìõ-g/7I˜MÆm§ºƒÝçe…útt™þº¥=}º/Áõ©AòÑÛÜ¥üÌÁn¬!÷ëcVÔ=-”Òãééf^2ìÊÂâÝ7$=…âÅqå‘ú´”‰^½ÐŸ¾OžC +ÇŒÏ2»÷¨Oû±E-CúzþwO}ªãXÁîûóÚ¥üºÔÝíî6âÓ¿¡UY÷ÛA쟬œþMû*Ž ^{× ÒsQÊ5có5õé]ð5å¥?}lVdŽž¿Ÿ‹êÓíÅw—út~›©_ªO ûš·«Ï´_ƒ.]îå©O{™\uHçXðÏâõºOûõ®w÷ø1J}Ú::}QŸö25_šÎ±#o&©Pžæ»Bë *¹ÞÓ=Ý\njÒÓFr_¿+»7/è‘ú<·Éů´XC˜†’üy ~§ߒ9ÚçEÑS_nÎÄW9–Ù …Ùð&zå°0?nàŸ$ü¬í7¯ðϲßëM”R{“«º,ùÖ¾Lèà"!És`çhô±ª??ì}¡½-lG¤NK‹°c‡?@´úvA{÷•öü©¯ |­õÏK2¡·kŸ'¨6‹,J£?´sÈæF÷ÔFÁ!ò‘ÖécøX‘¥CmyhNñFs×ÀFÆš-Õ¯±F§»»~µQ¤ý+fuì…Ú¿2ÒΧ¦ÑÈY¯x³d¨"íŸÒ(°öÿ¬6 +Æ¢ëµQÀàMŽÞ(Ôþ©z‚Pÿ'uß›d5ÚQE:…Ú(Üûšf¡Nq£™ÕYYn½’&"Ò¸Ÿ~ñ|ïùçkï}Ê7 þÕskxnú½ü»´î$iQc~<’¤¥a뾄¿ w®0Mµý³–„Ëîõ¡nÇÃXQ\ýSýOo$cÊ$ÑÞ¯~Gö¿ŠaD¢Zî>P/ªåÎC®I ¶œUE“Ô|µ”þÄO—RH–PtKÐ0¸ƒoñK:ï{õÔû¬Tþ\á³ä3;W¾Ü„­tðá¾ôj’O typ>Ø… +íOT推·KâÁÅ®–ŠÇ tXèåƒAô.È;­•DêÔ¼|¬ëÞ¥ñO,ÝÓx&T0?šÎˆX¤åÓOýÄŒéðÔyј'Œ/䥎ÏTGˆþPgPž¿kŸùüù•ñE¥5F!T^ fñÏß­OѲàdƒX:ZÿhSIyx–»Ì¬½„¥•¥®+͉,®¬ÎãÊ:ç‰|Êͽ´’s>S¿/÷Ø|÷Й¥=£èyniEO–*zëCÃO14¸líöæԌՓ])š@ìH3¦~Ša£š]$w¥Ù7ˆÑhåvii@$ Ö0ç†o•mˆ¯ó—È.èÜ°I™¦øwzuQD?¿MÆôSú};W¶’‘S‡L,ÍKŒD +ñ‹òDûnÒæÝwì]ÎʉoøÃœK:>HÇះ¤0, íÒtŽá +ÿ€ UÑƵƧHAãÚ8¿Tº„õ eÛ!ö¬ÚyÝÐy(̶ƒ”A 3N‰jñÆŒS2í˜ia¼¢g^Úx‚Ôƒ‰CgT¿ ´™‡-õXò­Ìoò¤k]{"íýiG+§ Ì:]ª/£KÛZzVž_IýáQé@—è +Ñ«ÒVx'êc¨?Avxý Ùڠҭ̳tžè4a{û¥raÍ|Ÿ¨‡Ÿr¾ØðFŸèÏ=ڀƌMœôÝQGÓewtÙ9„ë²âX°£«BxþøŒg1Pw¶’ ?Ik>o㘇פÓNåAb4+ÉÛ*Z4+$faó‘í%°iõÍ·!Çq‰e’–c|%ærF¹X‰©Ÿ••æÓK´Í€Ç!ш’`ÌáÊ©D¨M¶^­hðzbæÍÃA‚ÄìK4eWvn—.H40k$‰fyï:Ö%šÁw!Òq.Ñ ç±WD‡ Š×ÃJ'å ’´Í!t»dYÐx謣äâWÚ|K`ó|ãð3§Xù|ùZÑŧfÖûü|KÚÌ¢Þš˜Än½–„¬'H³6³´›ùÙÒKÜŽ‚fM—ÔD“0ætøT{*ä‡tœ§@ *ƒZy7§£ ºsº— ÑDÌ _µx‚ñÅ v¡= Á§ 'ú=¶H'¾«c‹oxÇëÍÂ|ÔÓðÎ’~ÏöÁBbÎõûÇé,´zŠÁY³îÒ2žbŽý£¢œ…öO1D‡ ß“¨(Ö+…ïiÈ> ‘„y\9> 5gáX'F­€O]IG‚ò‡˜‡%•šä)5 ƒª Œ×Œ)ÁY爾 ‡N|Õ:?? ætwcý"ìmv®5ƒc\ê®<“°šEæ2ɵÏÑÓàçmŠá¹âH§Óu‰º"PnéöÒLdÂp,5’).»’ã`ÊÔ‡Sjz=sbeøXɱ¹^7îeÛbÔØâíáM¨IJ½“¾À±¢5ƒ’ƒgrœäòÁŠÄ(›}ÄL¾W„GößsuŠsE6—t"‹[W=ϪùÓѲæ¡å6oÞÄârìß>·¼‰£ì3Ä͵H:ñæç:ü3"ètˆ!Û:6‚Éd0tÔF‚ŽŠ´ˆ¡c#èp´  A§Ñú`èØ: ZІŽ c -aèØ:„tCÇþž„­vŒ¡3l\ ‚N±,bèØ:¤™cè4 É „ÙE¨MÒ¶é9ðt$.Ù…£KDOoÓaÃ6Ÿö¢šåªÅŠ*g|˜ 6û˜Ýš9Q´1>1vßø¯Ï 9Ç=>çʸ_ø™ž²Þ% +òÑÄsÅê 2Çb 4Ç%kZºT5·Ç€jk)DÌ#&ƒXwÓœÆèf0ÇþªQÂÏš‡ì¦Í„´êD+̹S±v£…m´V’ØnŸ²˜´l1“A4¦©™ÒÒ¡4Ha>bÚ¬´1bóšY™!ùdÖ¤mÉèE»’fö¾fé)”– ¦ûvʉ:4·í³H±lE3ºÎ̇óÒ·ÎM~; &ÍÚˆXu¨j†iJz˜©ÚÅãû1Ë·€ã{5ÿø5N+:4‚a«ÒÆøÐÁ»ŸÖ©CD“>¦9ðÜYÓŽÖƒIœ?^_im†‰a-mv:$æBt­F>hÈ+ÄÌWöqlͽC‡Ùé3ˆlóéÝÄÓàÑ™ô%`Ñ#£é’ :•±âþ`tI»™ÍO1Ÿr¼]bg§›ƒâX]ÒßÝ‘ÔùEH’™òÈ8ÌRšp€Ã##ÅøLà9Jr׉G³÷{Î=2€@˜‘Ýa†fÇ#c@ :÷È@šÎ#CC¤šáór–<2D?žÃÎ=°áÌW2_ú,Õ!h•åUY¦çó(ËÙÚ æçX lLâ÷‰;™ p^*—!wœ:`h•°IN/ Íf;~¾@Ý»d>fH] ¢Ípu–“fªWÇ™¯ÇÄÕaÐQRØÜ z¼¤ +Û½˜nÉLÕ»0ÞE +?ã<èdÌ;-1É<lÅœ:6Îúýcvðp¤,è‹/·ñppðp¬ U÷ðpÐkípràá7‚RA\öñpšl(ù7!·ñpú{GEDœÛx8Ó[\ÁÃi"V©–öðpz[ŒÖH6çÈzxÀ¹– His"iº%ONäí’+'ÒlïoæY§j@%H8G£#:q³Ùç¤Ãƒ#¡Rõ1DÇ$—!“‘o.Ñ ¸Žî3æ;cµl(Ï¡UÔñZ™L„nR½=Ã['ÛPa^§Ûc^+C’cÔm8úæ݆ mòÛš½H\hîÜŒèXÛ><2 ã +²™â;ÅLéЯ¦Ü¦EK³6^ lzšÖ+­»­17ú° øŒ}±“©A­ RÓ>» "ؘi ÛB¤N|c)'"uâ{åq˜@ý\A¤>®ÜA¤B:n R!^Ì9"Rq‘ +éð]­3‰Iy}hƒÐ/MµœdIH³¯Ý†CÇÛP…#Ë1·¡p(ŸŸ™ÑãŽ8/®Cáìû-µcÛîìJP8ü"†û(Á«ð P8²ŒÓ>±C\à÷'³€OïÔ\UžáµúX#ibñ&zARy."‡£ßlgQ‡1\2l5¸€¡ÑGœ!Öí¼@”“Ž<µsp³W÷H½G8ÈÞQÂñ î_X5.NjOšTâ²zþÞù¼Œ›þéO«]>·oª­ÃÔ6$û¦V¡²áÍûÖúð¨[¸é5êÉ?F=u‹\ËÇQðSÛeÉã¤Åb‘PgÐJ’0JtÜYé²r//-ØmïÏù)î|ÆÍ¿GƒûÞ% a— Y`·iŠÚ¨Ð¾©³vÁó§Z£/ŒF;‰2Ö¨‹U‰m0/œì–¾÷•Ê„:˜/Ì»¥“ºFµõøö¾h»‚ß¿*ü<ÒÀn,ÔÙa·¼¹¡6ºÛŸ½OiÎØõø.‡ôF[g*{‹ìÞ˜Öè¥a‡flXiÔè•´Î+œßÛ#}Oô*h¾™{ìsQÌE.ÄïIGg¿@PDÏd+©ÚþùÔ¨,ß1GÊ­Vƒ-ıhbD»Kw =æªz¯ ½ŽÕŠ£KX\ŒÑ)³äT³<Ñzu³’©ìáNï«’œ%/ÜC“;EÒ ‰î„´×gVDŽ™×Ç¿žLŠÈQÇGªûfVl„w|浸™nVgDw—šƒúqüû¥3£"¢¦»ò c{zí éìùa¬¢éHv€\‹Ó=4çý0Ñt$Ÿ ~¿8GÓ‘°tv‘t4ÉOδw‚¦Ó°EÚ³ÄûÇ¡éH¤Ln±¦³y"[DÓ‘â4ÊY階„¥Ãí}wÐt$,gn4É×.W`wMGš]äéuMGRnðÜQwÐt$,å¶yh:c—ÞýtMÉ.šŽ¤œz‚n£éHóGȆrˆ¦Ó“2­)l MGÓ-ÝEÓñsÌ šNGJw Mg‹c–ÑtLŒ•kh:2¶Úm4‰hÅe4)Z¢ËwMGZëÕ 4IdÄ%4ùùâšŽÄ Uw Mg†ärMGÂÒQëñ97ª¨©/féê&z/c‘J}mNàÓÊd³k˜Ÿ[ÒjÙدWgèÒFyÜ®WG×.øø´…,ñIå’&b2M Î% (PPÏ´NéºÄ+ +8ªËiS¶º9:e©ì2«KäD +ª„að‰Qv™"2á)¦µˆjéÞFgeåo“ÂælÏœR-‹UèÎq™;ìž+N•ÜN™;ju¹.¬g™;’‹HÇ• ÁÎOV Ý9›«Îè›§Ê ÓKÅUæÎÔ£ã¸Ì¤Ã° Ý9.s'bßL +Ýñ¾O\¸ç*[¤Ù“ȳ8q-EéûDU¹mcyÀÐ"¼ë“åêLsÍÖ'„ÑAã™éçÒñd4{̆ô$n|!h…‘vh!‰ r‡êúÓ®d¾ +[ eH'‚—¦RÇLºŠïé\|Ùvi²¡À¢2ÉçΆ¤LóǸ³¡1¾Œnvb3’}® ‡B`EAÆuàÒìsÒáªíJ¢‚ev]»±’ˆ6Dz#b\ÀZZ =°özaÖ^/Ü»s¥1Zc ·< ?»¨¬¼!±Ò´Þ++‡:j éB$ž1ƒši‰Ór¨g›¹+Èåæcëš„‘TÿÇ­ +†àÁ=D̽÷– +UÓ¢o°ðšcuB¤ÂÊê´@Ç…[D:N«U‹TäMHºáÐZ®ê€È`)‰¶á-Ëï¸ÂŒ¯¤Õ¸³± ÉvëV[«pÇB>:؆òB“*ܹR)ÏOÄW)Ï)žH©”ç|2*ÜiqI<ø;îXõ^a;ëîxo5‡è'çÀÚÇ•ªæЬWn`- f®æxx±6=`­ù˜wê?‚øÂS"ÚÚ=WˆŽ ¹i¸#ÒqÏy*ðÙb¦tèXXˆÉcvÍ*—gßN1áQQ( â†mX ›L‡_K®ûÆ câ1…žõ–(vŠñÀ˜´ƒ4ñª¤”y¡Â˜*a.„:ÓlWve%̳+y@L¡ƒ…^ù¶kW-˜hD°v"㤵¦% ¯ƒ[ùuŠ!á²ÄáH¬áƵ‘¤ß*í«é,•{D¬¤ëc#÷®¦¡è›K×õj*ë:ÌëÆR¹G“Jy)›Wl*i¨gsŒ+è7ê™…q•<@p"úEr{²êo݃›æ<ݨ§zwMÿ¬wí 6k±ë›ƒåK¬^u.º¯=|lO3¡ª¯)<ȵ‹ùŽ¥WÞYí +oTƒ‡ó7þÛÑîªÒÖa«4F<\„Â[ÿ¼TÒZ™¬ƒá Qö¯à¯"O4Þ#µQ0_û;K«Ðñߨ†Ž_“o´:lµQÉ¥2ø"ŸÁÕBÓ6¡â®ZG0«C9Fµ‡OR£ž d°¾æœ†7Ñcÿpöžì_P-øƒ¹³æ‹êƒÕ#âÆŒF;½ÑÎ¥ÿžÔ(ªûVêj •úF¯XuOné¶Zƒ¶&³ 4€ÏãÊ+ „ù=HigŸò½lC ~ÇW +/ÑÊÅXe¹m©Ç$ó(§W:•`äíÑž †ŸX9è8Ó&Só ÒT13Oœä8›í=°ÉÔCB‡$S«¨]‚+™Þ©´ÉØ´q«2 rèšTfáõ$5Ù©UÔ©3Tf \[IAc¡ît7O:@¥™dhŠ\òð­']ÐËêø¯5ÄÝY®²Hé’!KK¿_¸™n)KËduŠî'¶Ö% -éyZR ¹±:qÕz¬FµÁë–±fŠ=SÐ>æ¸úÚÄûÜrëòÆQÂËwÃ!‰é^æò<·œÜD«b WÆÙ»‘CÖ–îµ~nÙô,koÑ„(@§—ВâÅ̬ã]q ˆìÓ&B¬“¶¥zt ÓvÍFž´õÆnÔ[ÜÑö1ŠX™—¯ÓôLïç7wÙ¡z|T¯JneH ˜—ÖÖõJí§ÐÁ´$3Ô³pP–d²„±*[ºçë’ÿ2í°|Ǧڸ¦KXª¾­Æv­E(à<ÀåÄï¹b@ÍJ›ÌŸyŸvÌ:Ü‹AWטXeÆ1³*:!=º–ALwª8ã˜)–‡ÚÈ¥CŽ™Öӱı~î‘BÌ&i‡Çl¢y1€Ü÷Ðb\@Fv: +hô'[Aòbñ­£y1€Èkm¨Y* SŸk È‹„³TùÉ–ZŒ•U /P±‘m¡)]2`ñx¥Ø㨜åã¯Èæ¤(6–_,Êgð*üJQ>³Šlîå1#lÅyQ>O º^”ÏXù7ŠòÑë#»Y”«~¥“¢|¸Wvª@í”Ä"3h0½ªŸó»¡znÜ ÅY×ën(Çuý°¡¹p7­®Ÿµ<%»uýØUýlÝ E¨ëÇö +‘-qëuýÈ‹y7”º~æ+Ùº~ìÌÅså°®Ÿ’Ë%‡.³ªŸ'hÉ¡K­ëÇšÎwa»®Ÿ¦#†ª~6*€ëú±DÊPµS×GdÝjÎÏn¤,ñ.huýØ7)1q‡uý˜]b.Ôõc»…-Ý@ŨëÇ6u‰YÐ6êú‘`’êÖsVÏÌ»¥º~l*ÐÏïF]?v@ÅÃMÇ ð]Hµ[× jbUýðê ‚ƒº~ºm(h«úiîì² O”º~¦¸WWêú±«ú)+Ùa]?vÂ5†HuT×OÅo‘Ö¢îž+ÛuýØ D¬ uý{m3ϺT/ʦÂ]Ϥœw=>Guý*ÄícÍa¨ëÇÀ=˜fÛάÖõckòðÆ7êúÑÎð[c$Ñ~‹C—#‰fÛЬ®;Þ¬Í"°_×OËm½µh·Ÿµ$ z=>¶RÕÏy=>“Ùí Æ\ k¥øôˆTguý4ŽmCU?1ä¼®Ÿ•bÕu\×­æPÖ˜åº~ìª~Žom’êú9ôõqÖõãÀ½ºP×]ÕÏr=>[(\´4Öõ³†Çªúa­8ªëgt%ãUýh·œY­ëÇNïÒb¶ëú±t>%Ûuýó‚Uõcß Ç_×ϾßRË1ë˜'Š]é ®Ÿ*¸HUýlgêêú1WVÄY]?¶b(Z¯Îëú±±Ò‰ì¸®Ÿvúª~}Œû&+m]?º$ê0&7YqÖõãÒa×õÃgÒÀa k)û“\×}80Qœ®bÅs?E8îY:Úù€œñ¡¿Wê]¼QQwV‚Oé®]v⽶¨YMòS£7Õƒo/ú¦¤¦Âš2¹T#¤Îg…ŸgK´¿Ø·ÌæÝ Ž•ž7öpRÃyQüÄSy§Õã¤^xS¾sÙõ{¯]ý|*_¢áÄW$T_Õ…îÛÙ‘õS/x'Ó,xõrÌ—öº»§ç««üj>zð‹ùdîOé´=Lž$×Þ|¿“{©_͵éõiáîýfv–_݆gwG‘\óÃwsu2¯|î—³Zx±WÁõá¢pæ½;«…Ùp§üûp|ùy÷?ä–³Š´÷¶³:¸¹¾õ&cχÞÌÛê6¶Ÿ  +íúI]hÿýÓ:…Ý«õú¥^oJwÇÿsáu“}¸P–7±ƒTâ.™í—}2ìí#µÞ<.a±¹²_ÄVeˆ_ºwß—þ\~CƒZ) ëIþ¼¤ƒÑ£Ã~Ä,Ä 0Üí.œ—lÀK+B4†'¡Ù…ÿöþ¦X¬SíÝLîíÇÿ9õN!’´'ƒC½?ñïÜÌW;] L¢÷¨}s³)²÷/–Z•ý[·}ÀÐ.hNõ·bCbćj!Øøñ›÷íÙÐl“´Íúj~´F–“Ú†a6Âx+JâT>’_¥ÃÈw 8R\€·Å(Býsü ÞÄ‘„ñ‡À)ö°4’òÛ©v+sZd»B¬þ´ÃÝããt<ôþÕú3_•…TµA…{JGé½Æ¿I* Ä°“@ãÀ”5ê£Lý~P“+íàí%Çï2cÎ"@d,çéNß7Q>‹©_öÓçäåQ£Óù®𳔤åψ2úJw ý,`G'‘­ ¼@^F•Ž‘ |ÖŽC.Eõ=«Kž^(KPΕÀ¯Ïï.ÎS¬\©s1H£ßdå¯-xûM^ϳà·7±XÕ¿ï‡Oc ä—õU¶¼¨­¼vîÍÔd·ò¶ Úû­Ü‡ï OƒK\µ•õ[E—A =OÐ&EEŽ(Fz¥Ër©Ó> ÍnšÇÓ¯$§GÃ4šS4–›Œ:™ÈçØ/­¢Ñ$§ }ZÙ–¥ñzž@‹]Zº¯ƒ”´Ø_‡Búµ¯ÒÒr}}Î@»ò8fëu’•_Msˆ„4µó+D1ÔOðv˜’~=äWÏi¥7¯àŒëW¥Þ̧YlW¾fž½Ùq{y8ɼœ®‚ÒXæ_´»³õR¶´7{Žüm¼ÚçõÏ’¿„ÙˆJ™Mq@ê1¢úÇÀÆ&•þü‘ËöYHwÒ‡aðj’–_M3ê÷€ª}Æ·ýÈz“ßÞ¶£‘ê^ñ6á;³ÿr,ãZ…¤SZ:Ùë@y‹µ$=C¨Øi°®C•Ýe&׺«¯nHŒB?L9ŸÛ—Åãw <:í5&çàÁA­]\MO=·º +|õõ÷HÛµ÷%Í`:Tè`M÷"h)1> \¡°KBño7ðyJ‘ àmq„"2#ıF(^çmhÓ¬¤9Í&žæœß#ùv-OYq_Ô‰ÿ*DîßçÃGIX+à(F¡VwÁEky oÅ;º%öi?Ý' QöÅßRÍÞþR"³­®' fæŸõOߢ­™po£©ƒr3™i&bBªs“, Yn¡Et—$ì[(gIñm7p(7Ú9 ³"ÙÀÞÛ‘´7:ƒŒt¦O\IZŠÏUG4Á#¿ k³ ú¨ÐU¥ô#jp»ùeScÅ›(¼¾Æ‘üðj ¿~«¹çA$ÁIÄÿµt$b@­¥¨"ÝL¸<ʪÊ)úÌôùªµŽ0 .šëõÁ2Š«K`õo|ívP%!Ì|ù”ŽÄpxq¤øÖèOÈÙ0ädzëq/‘ÝÝ{HƒÉiÆáÉ&ÚÐè3pÈÜ&ÅÏž6ã,Zìòù9Þjt°‡Ä‚Ι·KE'|B•‹%…Ó†jµ>iïÈ©êYôð.:‘µ°ƒŒ¬€‰7Q€ƒÞ—ëèÊJ#í"¶çåÇ õŠsÛ<ìÂíì•o)û¥Þ|Îp3e_H«GNbòõݧ¤ïc¸kÝòç%™@ªŸñfŒæï1‰ Í͵„Gœ?ç + tw“Ä0mü=ú°Î¾b÷”¨LhÜOŸe&€Þàª4”:&,ˆdmõ§ÖX-1&ÔÂ͵È©Q¹Ò9šÈ6  xH‰f‹çs¥{æ'͹RêÂz—©–È‚u}ô ² ü¸zT×6?Y¾zW©ÐþBZJ:Z1ÒZD³ÏµÕˆ‡õ>¨YÐ’·ÖÁ0’Ô-…¤%Ï0볡ەqœ™vÖtts§˜H`]Ígu'rÆ鉓ú}}¬^hIp/*]Ti™I:ÜŸºrƒKKÖI”áÙâli™Ik)jO•LVµÎ•{¸mºèÑãn-wîÂÈŠÀ,ÈÖseYjPë;Ÿ-$Ãv8OdÆÝi\HMV döBXòˆf_¶6ð!cHvùC(½ Źˆh2·—àm%&z¡ã¶Œfñƒ§Í ¹ÎBÙÀþþ r˜@£øM¶O.[çOÂ4®ÈîÀJs!*#ã˜æ wÑhìaÕA“Ž7ÔöÒ¸O°¾‚çËYÿl~UŒç¸ÆFñTy”D^h ¢;¢›hà y–³ $£ØÅ]ZÀF.BÉ¥uqœPfÆ‘E—ÏE?)úá­à핸øš¦ðíP$›­Ý€5…f-HF$×Øèq;†{cGçI©kn)=ÀD&ŠW)ª›KSÁŸâ@P)•ÆÑ`wï¥ñ^<ù>º9Z܉NÇúCôÍ©'˜‰üþ“gã&«zɳµÛïºìBìÇ1ߢè={½}è0“*"¾šønEW#`ùuT|U¿ÏvňÕ(óô³Œ^I¾Ü×·¼èGøóAZ˜i0k%T/)h…ÅWÐû-»'Ì·¨ø¾!Çæo9Ùz¿Ï+cy;°Ýµê†©0âÜk‹ò.úûøjÜ>¤Ðfý>ŠŠ¯Z½˜ø +ë÷ö-‹>“]xo +÷_ÝÏæßàææp¿6ÌÁ]9üÒ¬¶ÇyÙ…¸„á½Ô®(š$—ÞéBréÏ¢âJVØVGp+’8ºkM¤Ù‡©NPèwÃȉ÷ð$êFŦ`â™äèÊÄ•8F…/Q”I‡ŠS."¡òí”.çJIÉ £Õ\^#‘ÔI/4RàBŸIÎÙêqJÈ¿žˆõ^O’¸Ãï»!ȾsÕý,zÊDÎv¢@ô|Tc("®ƒÎU¼‚b¯’`î´ÑÂŽ ›'a³¾ØlL € ç^¡¯º ewo6pùUO±XNïKàOêêçs¶>_ÿ{û·Ø‰{ö<©£ãtz°˜.ÛëÙìfö¿ÛæòÏÏ×l±Ý©ì¤Ž®ÇÇ¥|sög9íÄÅXFQY¯qi’œÀãËšlª=÷«7ÿ–;ó®ÿê`Òü+Œª˜xAîŒÐ÷ÍÊÿ»Õû“ zããéƒ7ži_{ÃÝM¾‰.edÆ('ZÒQs¶®ÿ´b§ý»æɱ÷Zû+¿Üt<ÁÖ]}vu˜Ú¼í§ºG÷'Íûöíõaj+,E/µÎ*ŽT A"Öëuf»ëìŸå¼‰TèF®›`,f)åGá§=oìÒwÇwÔ¼‰£ìÔ?v½Ñ• ð.rw31ñTÂÎöx,OóÅRË\§ãooUÑ{.ž"sŸx²ˆâN'S¢Wlº°ôêcOÎnDÚo¡Ô$»1ém%œöx 3½û9‰ÄßAe+;Öõ¸Æå’…¸¢U’‡WÄäªÓZ¿· $ÛJý o¹ÓÀµŽg¼íÎq¢@<"ÙrëãGÜÈSÎWŒ)QEQVÿN\Q•ßžàïÅUz¢>ð;qŘUô/®¨FÕ£ûqE5ªÆòkqE5ªˆí×ãŠjTÇ’¸WT£ŠžàïÅcJTåÉüR\Q*"4Á/Å5™¿W„³vŠ”t‹#®†XWBÌWŽ¤Ùæõ‰ØòÛݘ6û屃ëÖTÃýÙÕÅñÖëý“;Õ#iܼæð¼eô©Uø9•I¼õ$~^/VxÀñ>Óӽރї± h‹š‰õ‚Üè‚öôfT×bÀFJ¦Aœ¥\{ÊD¾êE¨l‡QžÌ›Õ’ˆôéd•>›ûbÐÞT­©†óP‘ç CɾYm JD²Š±¸½¯+5 ‰‡¡>g´0”ê[=5²ßŒßõ–\ZGjn©¾‚3@bÂacrûHLÈ¥bJ,öf®²@¼æŽÔÆdI¢×7l‚ìt¥d‚õâSb“­¥{g1Yñ&% i9B’VŽ–jcÛÜ$ÐõÐækQô›‘I`¡e[}P‹MèCÎ-%ֆГЅ‡-φxî©kZ‰/óÙÃølàۂδ_p*3éèUæ ™DTO@åƒÚµš—|R¶Ðm^¿*E*ÚïEÔÌ ¡}S¿T96zÒM5‡ƒw¨2×þGB’·”5æpLJq>Ø\cøé× bXc´d’' ý0ðí*³’°ÆXœ°4*,Ï?ÂÅ F"øŽ·—Y¡íxžéíʈ:öU?Œ¬”Ï6 lBí¤Aïœ2¡6‡A\º>€±0{Á±?½¡æã¥D ³yÖåD¶Ã‰¨º*Ù}PNdc/t'‘õ>¨«Ò®´Œò¬JåB{_EÙë’£À N«oáÛVzêÙ@¥q"Z“³YJò (Õ…¬øU/¢œ…û~DÕ‹=Š¿åGTŽýšQõ"*Ȉ_ð#ª^D¸_~Ë蚀èÒï(ø?¢êEôϨzEôÍïøU/¢çýˆªwݶñK~DO¨žû¢SGâÉÁH”&JÔ5*{¥¯LVP ¸T.¬Â¥”È`Þ9½‚âÉhW¢¸"&Fˤ”ãpè}’(%û"Ž"Ä©ÃmR¼îá_¼CN+ (Z=ÒUÙÚíÙ‰tsˆú>HÎDôBkL'¸† È,1®Tˆ¹è¨‹?gJƒÇR¼í6^æGS<8Þ©DTW˜ºRZäbg†±¤·ó˜<€'HAlþ¯êÙóa¸pÜZLñP¡'Ÿ\϶?ßð ùq}ööoÑŸüw¶ö¤wÄøÿË;éLi'“σ7yøiÿÕFßÝIGvú Opœ:Zo›ÿþlÿ-“õw*ð£áipÜÜ©ìˆßƒïîí„Ao„1ø6xñÉqz'U_.?á“ëöÝNë¿—ëíŽHþf¹Ó¸¾6ÿÞí¿Í¿×Ï™æû`äc°sþþÇóþwîviXðßpâ¤q‚ïü¼éà£ÿ줅Ӈ'ag +åÉ’éB.½“Hç’åR±´óå)dwÙd:WÌvúžB9YÊæËêúÆßô==QГd© EÀÎd)W.”ËàE±TÎçJjo&ˆ|.™+§‹°­R²PÌä©l4¨“ÙL±€„ý¤ïiƒ‰l¢ÒÉ’-¦0…‰t>YÈ—á7ŠiüþMý;Ðíg€Ø7œz +;áÈÎððW-Ç8Õ/ð^ûÛàXÛŽöûðýô4|´X.vÒÙ"¢L™­R.™É>&Ò…d&“ƒ#* IA@ ¦“eqàÊGðÿb6?R~˜,ó%8eÈd4ÞåÁdb?T>RÉ«?”:Ñ7öËÒD—Êɲ €•“Iæói0£_žrLw©{’Í”!=åБBQÈÁVåß^ær%iœù|¹ ù6‰º«þPþH¡®üNîBßØ+yEñçsY8…ýÙd9]@oÀz*6à ˜[0ðþQ:iÒU~!1S"†ÞåõßV>QIbíëÞ°W)Þ0\¥Æ®aŸ©Íá?Do5M‚·Æbb´µCÕöG¿ +¨çýº(›¤Fb.‘bûbò6»YOþ}Iý¶™üÏlg²X,·“íì<Ùy[Ï6Ûåz¶³y_þ~~"Èüó¶çÿ`q_ endstream endobj 9 0 obj <>stream +H‰\Á +Â@ DïùŠùÍn²mÜ^]ÅSñ +ÚC+HÿŒí¡"s 3“¯±¯ ÇSÅzOÈ*,ËâÅ­çBo7’K ,Ö2'QÅ0Óמɸdƒ—If;¨ô ÛZJrGucé,ï˜P|¹´æ«¿óè… l¥x«]éA”[Qÿ±=÷þÔG€¾- endstream endobj 6 0 obj [5 0 R] endobj 21 0 obj <> endobj xref 0 22 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000040616 00000 n +0000000000 00000 f +0000041629 00000 n +0000114677 00000 n +0000040673 00000 n +0000041008 00000 n +0000114457 00000 n +0000044611 00000 n +0000041928 00000 n +0000041815 00000 n +0000041337 00000 n +0000041699 00000 n +0000041730 00000 n +0000041963 00000 n +0000044685 00000 n +0000044859 00000 n +0000045862 00000 n +0000050602 00000 n +0000114700 00000 n +trailer <<541FB325E3D04902BB3E4F40DCFE1B05>]>> startxref 114876 %%EOF \ No newline at end of file diff --git a/img_old/bg_vertical.jpg b/img_old/bg_vertical.jpg deleted file mode 100755 index e71bc82..0000000 Binary files a/img_old/bg_vertical.jpg and /dev/null differ diff --git a/img_old/icon.png b/img_old/icon.png deleted file mode 100755 index 434f30f..0000000 Binary files a/img_old/icon.png and /dev/null differ diff --git a/img_old/logo/logo_full.png b/img_old/logo/logo_full.png deleted file mode 100755 index 47415d8..0000000 Binary files a/img_old/logo/logo_full.png and /dev/null differ diff --git a/img_old/logo/logo_full_8bit.png b/img_old/logo/logo_full_8bit.png deleted file mode 100644 index adba35c..0000000 Binary files a/img_old/logo/logo_full_8bit.png and /dev/null differ diff --git a/img_old/logo/logo_small BACKUP.png b/img_old/logo/logo_small BACKUP.png deleted file mode 100644 index 372b5ee..0000000 Binary files a/img_old/logo/logo_small BACKUP.png and /dev/null differ diff --git a/img_old/logo/logo_small.png b/img_old/logo/logo_small.png deleted file mode 100644 index 1ea8163..0000000 Binary files a/img_old/logo/logo_small.png and /dev/null differ diff --git a/img_old/logo/logo_small_8bit.png b/img_old/logo/logo_small_8bit.png deleted file mode 100644 index a2c0189..0000000 Binary files a/img_old/logo/logo_small_8bit.png and /dev/null differ diff --git a/img_old/logo/logo_smaller.png b/img_old/logo/logo_smaller.png deleted file mode 100644 index f000e5c..0000000 Binary files a/img_old/logo/logo_smaller.png and /dev/null differ diff --git a/img_old/logo/logo_smaller_8bit.png b/img_old/logo/logo_smaller_8bit.png deleted file mode 100644 index bd85479..0000000 Binary files a/img_old/logo/logo_smaller_8bit.png and /dev/null differ diff --git a/img_old/logo/logo_smaller_wide.png b/img_old/logo/logo_smaller_wide.png deleted file mode 100644 index 25ae4c8..0000000 Binary files a/img_old/logo/logo_smaller_wide.png and /dev/null differ diff --git a/img_old/logo/logo_smaller_wide_8bit.png b/img_old/logo/logo_smaller_wide_8bit.png deleted file mode 100644 index ef193ab..0000000 Binary files a/img_old/logo/logo_smaller_wide_8bit.png and /dev/null differ diff --git a/img_old/logo/logo_smallest.png b/img_old/logo/logo_smallest.png deleted file mode 100644 index 17f2799..0000000 Binary files a/img_old/logo/logo_smallest.png and /dev/null differ diff --git a/img_old/logo/logo_smallest_wide.png b/img_old/logo/logo_smallest_wide.png deleted file mode 100644 index c3f2fa1..0000000 Binary files a/img_old/logo/logo_smallest_wide.png and /dev/null differ diff --git a/img_old/thermo_bg_2.png b/img_old/thermo_bg_2.png deleted file mode 100644 index 8e3a979..0000000 Binary files a/img_old/thermo_bg_2.png and /dev/null differ diff --git a/img_old/thermo_fg_2.png b/img_old/thermo_fg_2.png deleted file mode 100644 index fc14ec4..0000000 Binary files a/img_old/thermo_fg_2.png and /dev/null differ diff --git a/img_old/webpage_icons/apple-touch-icon-114x114-precomposed.png b/img_old/webpage_icons/apple-touch-icon-114x114-precomposed.png deleted file mode 100644 index 50e1053..0000000 Binary files a/img_old/webpage_icons/apple-touch-icon-114x114-precomposed.png and /dev/null differ diff --git a/img_old/webpage_icons/apple-touch-icon-144x144-precomposed.png b/img_old/webpage_icons/apple-touch-icon-144x144-precomposed.png deleted file mode 100644 index 585036f..0000000 Binary files a/img_old/webpage_icons/apple-touch-icon-144x144-precomposed.png and /dev/null differ diff --git a/img_old/webpage_icons/apple-touch-icon-72x72-precomposed.png b/img_old/webpage_icons/apple-touch-icon-72x72-precomposed.png deleted file mode 100644 index f422615..0000000 Binary files a/img_old/webpage_icons/apple-touch-icon-72x72-precomposed.png and /dev/null differ diff --git a/img_old/webpage_icons/apple-touch-icon-precomposed.png b/img_old/webpage_icons/apple-touch-icon-precomposed.png deleted file mode 100644 index 333520f..0000000 Binary files a/img_old/webpage_icons/apple-touch-icon-precomposed.png and /dev/null differ diff --git a/js/AddShapeDialog.js b/js/AddShapeDialog.js new file mode 100644 index 0000000..286e904 --- /dev/null +++ b/js/AddShapeDialog.js @@ -0,0 +1,81 @@ +var shapeResolution=3; +var shapePopup; + +function initShapeDialog() { + $("#btnShapeOk").on("onButtonClick",onShapeOk); + $("#btnShapeCancel").on("onButtonClick",onShapeCancel); + $("#btnShapePlus").on("onButtonHold",onShapePlus); + $("#btnShapeMin").on("onButtonHold",onShapeMin); + updateShapePreview(); + + shapePopup = new Popup($("#popupShape"), $("#popupMask")); + shapePopup.setEscapeKeyHandler(onShapeCancel); + shapePopup.setEnterKeyHandler(onShapeOk); +} + +function showShapeDialog() { + shapePopup.open(); +} + +function onShapeCancel() { + shapePopup.close(); +} + +function onShapeOk() { + shapePopup.close(); + + var res = shapeResolution; + + if (res!=undefined) { + if (isNaN(res)) res=3; + if (res<2) res=2; + if (res>100) res=100; + drawCircle(canvasWidth/2,canvasHeight/2,80,res); + } +} + +function onShapePlus() { + shapeResolution++; + if (shapeResolution>50) shapeResolution=50; + updateShapePreview(); +} + +function onShapeMin() { + shapeResolution--; + if (shapeResolution<2) shapeResolution=2; + updateShapePreview(); +} + +function updateShapePreview() { + $(".lblShapeResolution").text(shapeResolution + " sides"); + + var canvas = $("#shapePreview")[0]; + var c = canvas.getContext('2d'); + var w = canvas.width; + var h = canvas.height; + console.log(w,h); + var r = w/2 - 20; + var x0 = w/2; + var y0 = h/2; + var res = shapeResolution; + var step = Math.PI * 2.0 / res; + + c.save(); + c.clearRect(0,0,canvas.width, canvas.height); + c.restore(); + c.beginPath(); + for (var a=0; a> f:postStepCallback() >> index: " + index); - - var dataset = $(this)[0].$li[0].dataset; - if (dataset.action != undefined) { - console.log(" THERE *WAS* AN ACTION!"); - switch (dataset.action) { - case "sayHello": -// console.log(" action: sayHello"); - break; - case "showMessage": -// console.log(" action: showMessage"); -// message.hide(); - break; - case "showProgressBar": -// console.log(" action: showProgressBar"); -// progressbar.hide(); - break; - case "showThermometer": -// console.log(" action: showThermometer"); -// thermometer.hide(); - break; - } - } + //console.log("GrandTour >> f:postStepCallback() >> index: " + index); + // var dataset = $(this)[0].$li[0].dataset; }; this.postRideCallback = function(index, tip) { // console.log("GrandTour >> f:postRideCallback() >> index: " + index + ", self.active: " + self.active); diff --git a/js/Keyboard.js b/js/Keyboard.js new file mode 100644 index 0000000..c0ff16e --- /dev/null +++ b/js/Keyboard.js @@ -0,0 +1,97 @@ +var keyboardShortcutsEnabled = true; +var keyboardEscapeEnterEnabled = false; +var wordBuffer = ""; + +var wordFuncs = { + "idbeholdl": function() { + alert("Light!"); + }, + "idspispopd": function() { + drawTextOnCanvas("Im in ur kanvas drawin' ur stuffz."); + }, + "dia": function() { + var cx = canvasWidth / 2; + var cy = canvasHeight /2; + drawCircle(cx, cy, 50, 4); + shapeMoveTo(cx - 20, cy); + shapeLineTo(cx + 20, cy); + shapeMoveTo(cx, cy - 20); + shapeLineTo(cx, cy + 20); + } +}; + +function initKeyboard() { + + $(document).keypress(function(event) { + + if (keyboardEscapeEnterEnabled) { + switch (event.keyCode) { + case 13: + $(document).trigger("onEnterKey"); + break; + case 27: + $(document).trigger("onEscapeKey"); + break; + } + } + + if (!keyboardShortcutsEnabled) return; + if (event.ctrlKey && event.altKey && ! event.metaKey) processWords(event); + if (event.altKey || event.ctrlKey || event.metaKey) return; //ignore key presses with modifier keys except shift + + var ch = String.fromCharCode(event.which); + + switch (ch) { + case 'c': clearDoodle(); break; + case 'n': clearDoodle(); break; + case 'p': print(); break; + case 'u': oopsUndo(); break; + case 'g': settingsWindow.downloadGcode(); break; + case 'q': stopPrint(); break; + case ',': openSettingsWindow(); break; + case 'h': previewUp(true); break; + case 'H': previewDown(true); break; + case 's': saveSketch(); break; + case 'L': nextDoodle(); break; + case 'l': prevDoodle(); break; + case '[': previewTwistLeft(); break; + case ']': previewTwistRight(); break; + case '|': resetTwist(); break; + case 't': showWordArtDialog(); break; + case 'i': showShapeDialog(); break; + + case ';': moveShape(-5,0); break; + case '\'': moveShape(5,0); break; + case '-': zoomShape(.95); break; + case '+': zoomShape(1.05); break; + case 'r': rotateShape(.1); break; + case 'R': rotateShape(-.1); break; + + //default: console.log("Key: '" + ch + "' (" + event.which + ")"); + } + if(event.which != 13) { // don't prevent enter usage, it's used in tour + event.preventDefault(); //prevents the character to end up in a focussed textfield + } + }) + +} + +function processWords(e) { + wordBuffer += String.fromCharCode(e.which); + + var match = false; + for (var k in wordFuncs) { + if (k.indexOf(wordBuffer) == 0) { + if (k.length == wordBuffer.length) match = wordFuncs[k]; + else match = true; + break; + } + } + + if (typeof(match) == 'function') { + match(); + wordBuffer = ""; + } else if (!match) { + wordBuffer = ""; + } +} diff --git a/js_src/Message.js b/js/Message.js similarity index 100% rename from js_src/Message.js rename to js/Message.js diff --git a/js/Popup.js b/js/Popup.js new file mode 100644 index 0000000..bbf1635 --- /dev/null +++ b/js/Popup.js @@ -0,0 +1,34 @@ +function Popup(element, mask) { + var self = this; + var escapeKeyHandler = null; + var enterKeyHandler = null; + + this.open = function(complete, disableMaskClick) { + mask.fadeIn(POPUP_SHOW_DURATION); + element.fadeIn(POPUP_SHOW_DURATION, complete); + + keyboardShortcutsEnabled = false; + keyboardEscapeEnterEnabled = true; + + document.body.removeEventListener('touchmove', prevent, false); + mask.bind("onButtonClick", function() { self.close() }); + if (escapeKeyHandler) $(document).bind("onEscapeKey", escapeKeyHandler); + if (enterKeyHandler) $(document).bind("onEnterKey", enterKeyHandler); + } + + this.close = function(complete) { + mask.fadeOut(POPUP_SHOW_DURATION); + element.fadeOut(POPUP_SHOW_DURATION, complete); + + keyboardShortcutsEnabled = true; + keyboardEscapeEnterEnabled = false; + + document.body.addEventListener('touchmove', prevent, false); + mask.unbind("onButtonClick"); + if (escapeKeyHandler) $(document).unbind("onEscapeKey", escapeKeyHandler); + if (enterKeyHandler) $(document).unbind("onEnterKey", enterKeyHandler); + } + + this.setEscapeKeyHandler = function(hnd) { escapeKeyHandler = hnd; } + this.setEnterKeyHandler = function(hnd) { enterKeyHandler = hnd; } +} \ No newline at end of file diff --git a/js_src/Printer.js b/js/Printer.js similarity index 99% rename from js_src/Printer.js rename to js/Printer.js index 75e8362..ee1c9e8 100644 --- a/js_src/Printer.js +++ b/js/Printer.js @@ -159,6 +159,8 @@ function Printer() { var firstOne = (sendIndex == 0)? true : false; var start = firstOne; // start printing right away + message.set("Sending doodle to printer..."+sendIndex,Message.NOTICE); + var completed = false; if (this.gcode.length < (sendIndex + sendLength)) { console.log(" sending less than max sendLength (and last)"); diff --git a/js_src/PrinterPanel.js b/js/PrinterPanel.js similarity index 100% rename from js_src/PrinterPanel.js rename to js/PrinterPanel.js diff --git a/js_src/Progressbar.js b/js/Progressbar.js similarity index 100% rename from js_src/Progressbar.js rename to js/Progressbar.js diff --git a/js_src/SettingsWindow.js b/js/SettingsWindow.js similarity index 97% rename from js_src/SettingsWindow.js rename to js/SettingsWindow.js index f3fc23c..4c663b8 100644 --- a/js_src/SettingsWindow.js +++ b/js/SettingsWindow.js @@ -8,10 +8,12 @@ //these settings are defined in the firmware (conf_defaults.lua) and will be initialized in loadSettings() var settings = { } - +var settingsPopup; //wrapper to prevent scoping issues in showSettings() function openSettingsWindow() { - settingsWindow.showSettings(); + settingsWindow.loadSettings(function() { // reload settings + settingsPopup.open(); + }); } function SettingsWindow() { @@ -86,11 +88,13 @@ function SettingsWindow() { this.wifiboxURL = wifiboxURL; this.wifiboxCGIBinURL = wifiboxCGIBinURL; - this.window = $("#settings"); + this.window = $("#popupSettings"); this.btnOK = this.window.find(".btnOK"); enableButton(this.btnOK,this.submitwindow); + + settingsPopup = new Popup($("#popupSettings"), $("#popupMask")); - this.window.find(".settingsContainer").load("settings.html", function() { + this.window.find("#settingsContainer").load("settings.html", function() { console.log("Settings:finished loading settings.html, now loading settings..."); self.form = self.window.find("form"); @@ -144,6 +148,14 @@ function SettingsWindow() { }); //this.window.find } //this.init + this.openSettings = function() { + self.loadSettings(function() { // reload settings + settingsPopup.open(); + }); + } + this.closeSettings = function(complete) { + settingsPopup.close(complete); + } this.submitwindow = function(e) { disableButton(self.btnOK,self.submitwindow); @@ -151,7 +163,7 @@ function SettingsWindow() { e.stopPropagation(); self.saveSettings(self.readForm(),function(success){ if(success) { - self.hideSettings(function() { + self.closeSettings(function() { enableButton(self.btnOK,self.submitwindow); }); self.signin(); @@ -163,23 +175,6 @@ function SettingsWindow() { clearTimeout(self.retryRetrieveNetworkStatusDelay); } - this.showSettings = function() { - keyboardShortcutsEnabled = false; - this.loadSettings(function() { // reload settings - $("#contentOverlay").fadeIn(175, function() { - document.body.removeEventListener('touchmove',prevent,false); - }); - }); - } - this.hideSettings = function(complete) { - keyboardShortcutsEnabled = true; - $("#contentOverlay").fadeOut(175, function() { - document.body.addEventListener('touchmove',prevent,false); -// self.window.css("display","none"); - complete(); - }); - } - this.loadSettings = function(complete) { if (!communicateWithWifibox) { console.log(" communicateWithWifibox is false: settings aren't being loaded from wifibox...") diff --git a/js/Shape.js b/js/Shape.js new file mode 100644 index 0000000..2c859b2 --- /dev/null +++ b/js/Shape.js @@ -0,0 +1,183 @@ +function drawCircle(x0,y0,r,res) { + if (res==undefined) res = 50; //circle resolution + beginShape(); + var step = Math.PI * 2.0 / res; + for (var a=0; a= 1.0 ? 1 : 0; + zf = Math.min(zxMax, zyMax); +// if (dir == 1 && zf < 1.0) zf = 1; + console.log("orgZF, zxMax, zyMax, finZF: " + oldZF + ", " + zxMax + ", " + zyMax + ", " + zf); + + return { x: delta.x, y: delta.y, zf: zf }; + } +} + +function nearestZero(v1, v2) { return Math.abs(v1) < Math.abs(v2) ? v1 : v2; } + +//*draws* a circle (i.e. it is not added as points to shape) +function drawCircleTemp(x, y, r, color) { + ctx.beginPath(); + ctx.lineWidth = 1; + ctx.fillStyle = color; + ctx.arc(x, y, r, 0, 2 * Math.PI, false); + ctx.fill(); + ctx.stroke(); + ctx.fillStyle = 'black'; +} diff --git a/js_src/Svg.js b/js/Svg.js similarity index 100% rename from js_src/Svg.js rename to js/Svg.js diff --git a/js_src/Thermometer.js b/js/Thermometer.js similarity index 100% rename from js_src/Thermometer.js rename to js/Thermometer.js diff --git a/js_src/UpdatePanel.js b/js/UpdatePanel.js similarity index 100% rename from js_src/UpdatePanel.js rename to js/UpdatePanel.js diff --git a/js/WordArt.js b/js/WordArt.js new file mode 100644 index 0000000..105b4cd --- /dev/null +++ b/js/WordArt.js @@ -0,0 +1,132 @@ +var wordArtPopup; + +function initWordArt() { + $("body").append(''); + $("#svgfont").load("img/font.svg?"); + $("#btnWordArtOk").on("onButtonClick",onWordArtOk); + $("#btnWordArtCancel").on("onButtonClick",onWordArtCancel); + + wordArtPopup = new Popup($("#popupWordArt"),$("#popupMask")); + wordArtPopup.setEscapeKeyHandler(onWordArtCancel); + wordArtPopup.setEnterKeyHandler(onWordArtOk); +} + +function showWordArtDialog() { + buttonGroupAdd.hide(); + wordArtPopup.open(); + $("#txtWordArt").focus(); + $("#txtWordArt").val(""); //clear textbox +} + +function onWordArtCancel() { + wordArtPopup.close(); +} + +function onWordArtOk() { + wordArtPopup.close(); + var s = $("#txtWordArt").val(); + drawTextOnCanvas(s); +} + +function drawTextOnCanvas(text) { + if (typeof(text) == 'string') { + var points = getStringAsPoints(text); + + var bounds = getBounds(points); + var scaleX = (canvasWidth-50) / bounds.width; + var scaleY = (canvasHeight-50) / bounds.height; + + var scale = Math.min(scaleX,scaleY); + + scalePoints(points,scale); + var bounds = getBounds(points); + translatePoints(points,-bounds.x,-bounds.y); //left top of text is (0,0) + translatePoints(points,-bounds.width/2,-bounds.height/2); //anchor point center + translatePoints(points,canvasWidth/2,canvasHeight/2); //center in canvas + + canvasDrawPoints(canvas,points); + } +} + +function getStringAsPoints(text) { + var allPoints = []; + var xPos = 0; + + for (var i=0; i 1) { - previewUp(true); - clearInterval(btnMoveUpInterval); - btnMoveUpInterval = setInterval( function() { - previewUp(true); - }, 1000/30); - } + function onBtnStraight() { + setVerticalShape(verticalShapes.NONE); } - function stopMoveUp(e) { - e.preventDefault(); -// console.log("btnMoveUp mouse up"); - clearInterval(btnMoveUpInterval); - if (_points.length > 1) previewUp(); + function onBtnDiv() { + setVerticalShape(verticalShapes.DIVERGING); + } + function onBtnConv() { + setVerticalShape(verticalShapes.CONVERGING); + } + function onBtnSine() { + setVerticalShape(verticalShapes.SINUS); } - btnMoveUp.mousedown(function(e) { startMoveUp(e) }); - btnMoveUp.mouseup(function(e) { stopMoveUp(e) }); - btnMoveUp.on('touchstart', function(e) { startMoveUp(e) }); - btnMoveUp.on('touchend', function(e) { stopMoveUp(e) }); - function startMoveDown(e) { - e.preventDefault(); - // console.log("btnMoveDown mouse down"); - if (_points.length > 1) { - previewDown(true); - clearInterval(btnMoveDownInterval); - btnMoveDownInterval = setInterval( function() { - previewDown(true); - }, 1000/30); - } + function hitTest(cursor,button,radius) { + return distance(cursor.x,cursor.y,button.x,button.y) 1) previewDown(); + + + function onBtnToggleEdit() { + var btnImg; + if(buttonGroupEdit.is(":hidden")) { + btnImg = "img/buttons/btnArrowClose.png"; + } else { + btnImg = "img/buttons/btnArrowOpen.png"; + } + btnToggleEdit.attr("src",btnImg); + + buttonGroupEdit.fadeToggle(BUTTON_GROUP_SHOW_DURATION); + } + function onBtnMove(e,cursor) { + var w = btnMove.width(); + var h = btnMove.height(); + var speedX = (cursor.x-w/2)*0.3; + var speedY = (cursor.y-h/2)*0.3; + console.log("move speed: ",speedX,speedY); + moveShape(speedX,speedY); + } + function onBtnZoom(e,cursor) { + var h = btnZoom.height(); + var multiplier = (h/2-cursor.y)*0.003 + 1; + zoomShape(multiplier); + } + function onBtnRotate(e,cursor) { + var h = btnZoom.height(); + var multiplier = (h/2-cursor.y)*0.003; + rotateShape(-multiplier); + } + + function onBtnHeight(e,cursor) { + var h = btnHeight.height(); + if(cursor.y < h/2) { + previewUp(true); + } else { + previewDown(true); + } + } + function onBtnTwist(e,cursor) { + var h = btnTwist.height(); + var multiplier = (cursor.y-h/2)*0.0005; + previewTwist(multiplier,true); } - btnMoveDown.mousedown(function(e) { startMoveDown(e) }); - btnMoveDown.mouseup(function(e) { stopMoveDown(e) }); - btnMoveDown.on('touchstart', function(e) { startMoveDown(e) }); - btnMoveDown.on('touchend', function(e) { stopMoveDown(e) }); - function startTwistLeft(e) { - e.preventDefault(); - // console.log("btnTwistLeft mouse down"); - if (_points.length > 1) { - previewTwistLeft(true); - clearInterval(btnTwistLeftInterval); - btnTwistLeftInterval = setInterval( function() { - previewTwistLeft(true); - }, 1000/30); - } + function onBtnOops(e) { + oopsUndo(); } - function stopTwistLeft(e) { - e.preventDefault(); - // console.log("btnTwistLeft mouse up"); - clearInterval(btnTwistLeftInterval); - if (_points.length > 1) previewTwistLeft(); - } - btnTwistLeft.mousedown(function(e) { startTwistLeft(e) }); - btnTwistLeft.mouseup(function(e) { stopTwistLeft(e) }); - btnTwistLeft.on('touchstart', function(e) { startTwistLeft(e) }); - btnTwistLeft.on('touchend', function(e) { stopTwistLeft(e) }); - function startTwistRight(e) { - e.preventDefault(); - // console.log("btnTwistRight mouse down"); - if (_points.length > 1) { - previewTwistRight(true); - clearInterval(btnTwistRightInterval); - btnTwistRightInterval = setInterval( function() { - previewTwistRight(true); - }, 1000/30); - } + function onBtnNew(e) { + clearDoodle(); } - function stopTwistRight(e) { - e.preventDefault(); - // console.log("btnTwistRight mouse up"); - clearInterval(btnTwistRightInterval); - if (_points.length > 1) previewTwistRight(); + + function onBtnPrint(e) { + print(); + } + + function onBtnWordArt(e) { + showWordArtDialog(); + } + + function onBtnShape(e) { + showShapeDialog(); + buttonGroupAdd.fadeOut(); } - btnTwistRight.mousedown(function(e) { startTwistRight(e) }); - btnTwistRight.mouseup(function(e) { stopTwistRight(e) }); - btnTwistRight.on('touchstart', function(e) { startTwistRight(e) }); - btnTwistRight.on('touchend', function(e) { stopTwistRight(e) }); - /*function openSettings() { - console.log("f:openSettings()"); - $("#contentOverlay").fadeIn(1000, function() { - loadSettings(); - }); - }*/ enableButton(btnSettings, openSettingsWindow); -// btnSettings.on('touchend', function(e) { -// e.preventDefault(); -// console.log("btnSettings touchend"); -// }); - + // 29-okt-2013 - we're not doing help for smartphones at the moment if (clientInfo.isSmartphone) { btnInfo.addClass("disabled"); } else { - btnInfo.mouseup(function(e) { - e.preventDefault(); - console.log("btnInfo mouse up"); - helpTours.startTour(helpTours.WELCOMETOUR); - }); + function onBtnInfo(e) { + helpTours.startTour(helpTours.WELCOMETOUR); + } + enableButton(btnInfo, onBtnInfo); } - - // DEBUG - /* - // $(".agentInfo").css("display", "none"); - btnDebug.click(function(e) { - console.log("debugClick"); - $(".agentInfo").toggleClass("agentInfoToggle"); - e.preventDefault(); - }) - //*/ - - //btnStop.on('touchstart mousedown',stopPrint); } + function stopPrint() { console.log("f:stopPrint() >> sendPrintCommands = " + sendPrintCommands); //if (!confirm("Weet je zeker dat je huidige print wilt stoppen?")) return; @@ -217,14 +206,6 @@ function stopPrint() { } -// function prevDoodle(e) { -// console.log("f:prevDoodle()"); -// console.log("f:prevDoodle()"); -// } -// function nextDoodle(e) { -// console.log("f:nextDoodle()"); -// } - function print(e) { console.log("f:print() >> sendPrintCommands = " + sendPrintCommands); @@ -309,6 +290,7 @@ function oopsUndo() { } redrawPreview(); } + function previewUp(redrawLess) { // console.log("f:previewUp()"); if (numLayers < maxNumLayers) { @@ -329,17 +311,19 @@ function previewDown(redrawLess) { redrawRenderedPreview(redrawLess); } function previewTwistLeft(redrawLess) { - if (redrawLess == undefined) redrawLess = false; - // console.log("f:previewTwistLeft()"); - if (rStep > -previewRotationLimit) rStep -= twistIncrement; - // redrawPreview(redrawLess); - redrawRenderedPreview(redrawLess); - setSketchModified(true); + previewTwist(-twistIncrement,true) } function previewTwistRight(redrawLess) { - // console.log("f:previewTwistRight()"); - if (rStep < previewRotationLimit) rStep += twistIncrement; - // redrawPreview(redrawLess); + previewTwist(twistIncrement,true) +} +function previewTwist(increment,redrawLess) { + console.log("previewTwist: ",increment); + if (redrawLess == undefined) redrawLess = false; + + rStep += increment; + if(rStep < -previewRotationLimit) rStep = -previewRotationLimit; + else if(rStep > previewRotationLimit) rStep = previewRotationLimit; + redrawRenderedPreview(redrawLess); setSketchModified(true); } diff --git a/js_src/canvasDrawing.js b/js/canvasDrawing.js similarity index 99% rename from js_src/canvasDrawing.js rename to js/canvasDrawing.js index b9fa09c..0adf13b 100644 --- a/js_src/canvasDrawing.js +++ b/js/canvasDrawing.js @@ -416,7 +416,7 @@ function onCanvasTouchMove(e) { // var x = e.touches[0].layerX; // var y = e.touches[0].layerY; - console.log("f:onCanvasTouchMove >> x,y = "+x+","+y+" , e: " , e); + //console.log("f:onCanvasTouchMove >> x,y = "+x+","+y+" , e: " , e); if (prevPoint.x != -1 || prevPoint.y != -1) { var dist = Math.sqrt(Math.pow((prevPoint.x - x), 2) + Math.pow((prevPoint.y - y), 2)); diff --git a/js_src/d3dServerInterfacing.js b/js/d3dServerInterfacing.js similarity index 100% rename from js_src/d3dServerInterfacing.js rename to js/d3dServerInterfacing.js diff --git a/js_src/gcodeGenerating.js b/js/gcodeGenerating.js similarity index 100% rename from js_src/gcodeGenerating.js rename to js/gcodeGenerating.js diff --git a/js_src/init_layout.js b/js/init_layout.js similarity index 97% rename from js_src/init_layout.js rename to js/init_layout.js index 15a1475..0e6273e 100644 --- a/js_src/init_layout.js +++ b/js/init_layout.js @@ -35,7 +35,7 @@ function doOnResize() { function initLayouting() { console.log("f:initLayouting()"); - $drawAreaContainer = $(".drawareacontainer"); + $drawAreaContainer = $("#drawareacontainer"); canvas.width = $canvas.width(); canvas.height = $canvas.height(); // canvas.clientHeight; diff --git a/js_src/libs/FileSaver.js b/js/libs/FileSaver.js similarity index 100% rename from js_src/libs/FileSaver.js rename to js/libs/FileSaver.js diff --git a/js_src/libs/jquery-1-9-1.js b/js/libs/jquery-1-9-1.js similarity index 100% rename from js_src/libs/jquery-1-9-1.js rename to js/libs/jquery-1-9-1.js diff --git a/js_src/libs/jquery-cookie.js b/js/libs/jquery-cookie.js similarity index 100% rename from js_src/libs/jquery-cookie.js rename to js/libs/jquery-cookie.js diff --git a/js_src/libs/jquery-coolfieldset.js b/js/libs/jquery-coolfieldset.js similarity index 100% rename from js_src/libs/jquery-coolfieldset.js rename to js/libs/jquery-coolfieldset.js diff --git a/js/libs/jquery-fastclick.js b/js/libs/jquery-fastclick.js new file mode 100644 index 0000000..19fac02 --- /dev/null +++ b/js/libs/jquery-fastclick.js @@ -0,0 +1,101 @@ +/** + * jQuery.fastClick.js + * + * Work around the 300ms delay for the click event in some mobile browsers. + * + * Code based on + * + * @usage + * $('button').fastClick(function() {alert('clicked!');}); + * + * @license MIT + * @author Dave Hulbert (dave1010) + * @version 1.0.0 2013-01-17 + */ + +/*global document, window, jQuery, Math */ + +(function($) { + +$.fn.fastClick = function(handler) { + return $(this).each(function(){ + $.FastButton($(this)[0], handler); + }); +}; + +$.FastButton = function(element, handler) { + var startX, startY; + + var reset = function() { + $(element).unbind('touchend'); + $("body").unbind('touchmove.fastClick'); + }; + + var onClick = function(event) { + event.stopPropagation(); + reset(); + handler.call(this, event); + + if (event.type === 'touchend') { + $.clickbuster.preventGhostClick(startX, startY); + } + }; + + var onTouchMove = function(event) { + if (Math.abs(event.originalEvent.touches[0].clientX - startX) > 10 || + Math.abs(event.originalEvent.touches[0].clientY - startY) > 10) { + reset(); + } + }; + + var onTouchStart = function(event) { + event.stopPropagation(); + + $(element).bind('touchend', onClick); + $("body").bind('touchmove.fastClick', onTouchMove); + + startX = event.originalEvent.touches[0].clientX; + startY = event.originalEvent.touches[0].clientY; + }; + + $(element).bind({ + touchstart: onTouchStart, + click: onClick + }); +}; + +$.clickbuster = { + coordinates: [], + + preventGhostClick: function(x, y) { + $.clickbuster.coordinates.push(x, y); + window.setTimeout($.clickbuster.pop, 2500); + }, + + pop: function() { + $.clickbuster.coordinates.splice(0, 2); + }, + + onClick: function(event) { + var x, y, i; + for (i = 0; i < $.clickbuster.coordinates.length; i += 2) { + x = $.clickbuster.coordinates[i]; + y = $.clickbuster.coordinates[i + 1]; + if (Math.abs(event.clientX - x) < 25 && Math.abs(event.clientY - y) < 25) { + event.stopPropagation(); + event.preventDefault(); + } + } + } +}; + +$(function(){ + if (document.addEventListener){ + document.addEventListener('click', $.clickbuster.onClick, true); + } else if (document.attachEvent){ + // for IE 7/8 + document.attachEvent('onclick', $.clickbuster.onClick); + } +}); + +}(jQuery)); diff --git a/js_src/libs/jquery-joyride-2-1.js b/js/libs/jquery-joyride-2-1.js similarity index 100% rename from js_src/libs/jquery-joyride-2-1.js rename to js/libs/jquery-joyride-2-1.js diff --git a/js_src/main.js b/js/main.js similarity index 92% rename from js_src/main.js rename to js/main.js index 01a0264..2880d7d 100644 --- a/js_src/main.js +++ b/js/main.js @@ -30,6 +30,9 @@ var showOrHide = false; var clientInfo = {}; +var POPUP_SHOW_DURATION = 175; +var BUTTON_GROUP_SHOW_DURATION = 80; + $(function() { console.log("ready"); @@ -65,10 +68,16 @@ $(function() { initDoodleDrawing(); initPreviewRendering(); initLayouting(); - initSidebars(); + // initSidebars(); initButtonBehavior(); initKeyboard(); - initVerticalShapes(); + // initVerticalShapes(); + initWordArt(); + initShapeDialog(); + + disableDragging(); + + if (!clientInfo.isSmartphone) initHelp(); thermometer.init($("#thermometerCanvas"), $("#thermometerContainer")); progressbar.init($("#progressbarCanvas"), $("#progressbarCanvasContainer")); @@ -80,7 +89,7 @@ $(function() { settingsWindow.init(wifiboxURL,wifiboxCGIBinURL); $(document).on(SettingsWindow.SETTINGS_LOADED, settingsLoaded); - + if(debugMode) { console.log("debug mode is true"); $("body").css("overflow", "auto"); @@ -120,17 +129,24 @@ $(function() { } }); +function disableDragging() { + $(document).bind("dragstart", function(event) { + console.log("dragstart"); + event.preventDefault(); + }); +} + function enableButton(elem, handler) { //var elem = $('#'+domId); elem.removeClass("disabled"); - elem.unbind('click'); - elem.bind('click', handler); + elem.unbind('onButtonClick'); + elem.bind('onButtonClick', handler); } function disableButton(elem) { //var elem = $('#'+domId); elem.addClass("disabled"); - elem.unbind('click'); + elem.unbind('onButtonClick'); } function showOrHideThermo() { diff --git a/js_src/previewRendering.js b/js/previewRendering.js similarity index 99% rename from js_src/previewRendering.js rename to js/previewRendering.js index 462bc72..b7a9a6f 100644 --- a/js_src/previewRendering.js +++ b/js/previewRendering.js @@ -168,8 +168,6 @@ function redrawPreview(redrawLess) { } function renderToImageDataPreview() { - console.log("f:renderToImageDataPreview()"); - if (_points.length < 2) return; //* diff --git a/js_src/sidebar.js b/js/sidebar.js similarity index 90% rename from js_src/sidebar.js rename to js/sidebar.js index 747f272..c6b9911 100644 --- a/js_src/sidebar.js +++ b/js/sidebar.js @@ -13,13 +13,13 @@ function initSidebars() { console.log("f:initSidebars()"); sidebarLeft = new SideBar(); - sidebarLeft.init(".leftpanel", "hideleft", function() { - $(".leftpanel").show(); + sidebarLeft.init("#leftpanel", "hideleft", function() { + $("#leftpanel").show(); }); sidebarRight = new SideBar(); - sidebarRight.init(".rightpanel", "hideright", function() { - $(".rightpanel").show(); + sidebarRight.init("#rightpanel", "hideright", function() { + $("#rightpanel").show(); }); } diff --git a/js_src/sketches.js b/js/sketches.js similarity index 98% rename from js_src/sketches.js rename to js/sketches.js index fba97b9..38cdcfe 100644 --- a/js_src/sketches.js +++ b/js/sketches.js @@ -25,7 +25,7 @@ function getSavedSketchStatus() { } } }).fail(function() { - console.log("getSavedSketchStatus failed: ", response); + console.log("getSavedSketchStatus failed"); }); } diff --git a/js_src/utils.js b/js/utils.js similarity index 93% rename from js_src/utils.js rename to js/utils.js index ea45588..8ef7849 100644 --- a/js_src/utils.js +++ b/js/utils.js @@ -33,3 +33,7 @@ function isSmartphone() { return returnBool; } + +function distance(x1, y1, x2, y2) { + return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); +} diff --git a/js/verticalShapes.js b/js/verticalShapes.js new file mode 100644 index 0000000..77f1165 --- /dev/null +++ b/js/verticalShapes.js @@ -0,0 +1,21 @@ +var VERTICALSHAPE; + +var verticalShapes = { + "NONE": 'none', + "DIVERGING": 'diverging', + "CONVERGING": 'converging', + "SINUS": 'sinus' +}; + +function setVerticalShape(s) { + VERTICALSHAPE = s; + redrawRenderedPreview(); +} + +function initVerticalShapes() { + resetVerticalShapes(); +} + +function resetVerticalShapes() { + setVerticalShape(verticalShapes.NONE); +} \ No newline at end of file diff --git a/js_old/Thermometer.js.orig b/js_old/Thermometer.js.orig deleted file mode 100644 index 54a708e..0000000 --- a/js_old/Thermometer.js.orig +++ /dev/null @@ -1,136 +0,0 @@ -<<<<<<< HEAD -======= -var $displayThermometer = $("#thermometerContainer"); - - -//TODO 2013-09-18 allow displaying temperatures HIGHER than the targTemp (it's now being capped at targTemp). ->>>>>>> new_layouting_approach -function Thermometer() { - this.currentTemperature = 0; // default val - this.targetTemperature = 180; // default val - - this.thermoOverlayImg = new Image(); - this.thermoOverlayImgSrc = "img/thermometer_fg_overlay.png"; // ../img/thermometer_fg_overlay.png - - this.thermoWidth= 40; - this.thermoHeight = 100; - - this.$canvas; - this.canvas; - this.context; - this.$container; - - this.isInitted = false; - - this.enabled = true; - - this.thermoColors = [ - [50, 200, 244], // 'cold' - [244, 190, 10], // 'warming up' - [244, 50, 50] // 'ready / hot' - ]; - - this.init = function(targCanvas, targCanvasContainer) { - console.log("Thermometer.init()"); - - this.$container = targCanvasContainer; - - this.$canvas = targCanvas; - this.canvas = this.$canvas[0]; - this.context = this.canvas.getContext('2d'); - - - var self = this; - this.thermoOverlayImg.onload = function() { - console.log("canvasThermoOverlay img loaded"); - self.isInitted = true; - self.update(self.currentTemperature, self.targetTemperature); - }; - this.thermoOverlayImg.src = this.thermoOverlayImgSrc; - } - - this.update = function(curr, targ) { - // console.log("Thermometer.update(" + curr + "," + targ + ")"); - - if (this.isInitted) { - if(!this.enabled) return; - if (curr == undefined) curr = 0; - if (targ== undefined) targ = 180; // prevent divide by zero - - var progress = curr / targ; - - progress = Math.min(progress, 1.0); - progress = Math.max(progress, 0); - - var h = this.thermoHeight; // 94 // px - var paddingUnder = 15; // how far is beginpoint from bottom of thermometer - var paddingAbove = 25; // how far is endpoint from top of thermometer - var endPoint = h * .8; - var p = Math.floor((h - paddingUnder - paddingAbove) * progress); // % - // var tempHeight = - - var currColor = this.thermoColors[0]; - if (progress > 0.98) { - currColor = this.thermoColors[2]; - } else if (progress > 0.25) { - currColor = this.thermoColors[1]; - } - - // clear - this.context.clearRect(0, 0, this.canvas.width, this.canvas.height); - this.context.font = "10pt sans-serif"; - - // draw the thermometer clipping path - this.context.save(); - this.context.beginPath(); - this.context.arc(40, 80, 16, 0, 2 * Math.PI, false); // circle bottom of thermometer - this.context.arc(40, 10, 4, 0, 2 * Math.PI, false); // circle at top of thermometer tube - this.context.rect(36, 11, 8, 70); // thermometer tube - this.context.fillStyle = '#fff'; - this.context.fill(); - this.context.clip(); - - // draw rectangle which represents temperature - // rect will be clipped by the thermometer outlines - this.context.beginPath(); - this.context.rect(20, h - paddingUnder - p, 60, p + paddingUnder); - //console.log(" currColor: " + currColor); - //todo Math.floor?? - this.context.fillStyle = "rgb(" + currColor[0] + "," + currColor[1] + "," + currColor[2] + ")"; - this.context.fill(); - this.context.restore(); - - // additional text labels - this.context.save(); - this.context.beginPath(); - this.context.moveTo(32, paddingAbove); - this.context.lineTo(52, paddingAbove); - this.context.lineWidth = 2; - this.context.strokeStyle = '#000'; - this.context.stroke(); - this.context.fillStyle = '#000'; - this.context.textAlign = "left"; - this.context.textBaseline = "middle"; - this.context.fillText(targ + "°", 55, paddingAbove); - this.context.restore(); - - // the thermometer outline png - this.context.drawImage(this.thermoOverlayImg, 20, 0); - - // text - this.context.fillStyle = '#000'; - this.context.textAlign="center"; - this.context.fillText(curr + "°", 40, h + paddingUnder); - } else { - console.log("Thermometer.setTemperature() -> thermometer not initialized!"); - } - } - this.show = function() { - this.$container.show(); - this.enabled = true; - } - this.hide = function() { - this.$container.hide(); - this.enabled = false; - } -} diff --git a/js_old/init_layout backup20130918.js b/js_old/init_layout backup20130918.js deleted file mode 100644 index a535412..0000000 --- a/js_old/init_layout backup20130918.js +++ /dev/null @@ -1,260 +0,0 @@ -var imgDims = [320, 320]; // width and height of image - -function doClientAndOrientationStuff() { - console.log("f:doClientAndOrientationStuff()"); - - $(".agentInfo").text(""); - - /* - if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) { - if (window.orientation == -90 || window.orientation == 90) { - // landscape -// $('#Viewport').attr('content', 'width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=yes'); - } else { - // portrait - $('#Viewport').attr('content', 'width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=yes'); - } - } - return; - //*/ - - if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) { - console.log("PHONE OR TABLET! --> window.orientation = " + window.orientation); - if (window.orientation == -90 || window.orientation == 90) { - console.log(" landscape"); - // landscape - - // var ww = ( $(window).width() < window.screen.width ) ? $(window).width() : window.screen.width; //get proper width - var ww = 0; //get proper width - if (window.innerWidth) { - ww = window.innerWidth; - // if (window.screen.availWidth) { -// ww = window.screen.availWidth; - -// if( /iPhone|iPad|iPod/i.test(navigator.userAgent) ) { -// ww = window.innerWidth; -// } - } else if($(window).width()) { - ww = $(window).width(); - } else { - - } - - // ww = 480; - - var mw = imgDims[0]; // min width of site - //* - if( /iPhone|iPad|iPod/i.test(navigator.userAgent) ) { - var mw = imgDims[1]; // in landscape: min-width is image width - } - //*/ - var ratio = ww / mw; //calculate ratio - $('#Viewport').attr('content', 'initial-scale='+ratio+',maximum-scale='+ratio+',minimum-scale='+ratio+',user-scalable=no,width='+mw); - if( ww < mw){ //smaller than minimum size -// $(".colmask").css("background-color", "#ff0"); - // $('#Viewport').attr('content', 'initial-scale=' + ratio + ', maximum-scale=' + ratio + ', minimum-scale=' + ratio + ', user-scalable=yes, width=' + ww); - // $('#Viewport').attr('content', 'initial-scale=1.0, maximum-scale=2, minimum-scale=1.0, user-scalable=yes, width=' + ww); - }else{ //regular size -// $(".colmask").css("background-color", "#0ff"); - // $('#Viewport').attr('content', 'initial-scale=1.0, maximum-scale=2, minimum-scale=1.0, user-scalable=yes, width=' + ww); - } - - console.log(" ww: " + ww + ", mw: " + mw + ", ratio: " + ratio); - - $(".agentInfo").append("ww: " + ww + ", mw: " + mw + "
"); - $(".agentInfo").append("ratio: " + ratio + "
"); - $(".agentInfo").append("
"); - } else { - console.log(" portrait"); - // portrait -// $('#Viewport').attr('content', 'initial-scale='+1+',maximum-scale='+1+',minimum-scale='+1+',user-scalable=no'); - $('#Viewport').attr('content', 'width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no'); - } - - } else { - // console.log("else"); - $(".colmask").css("background-color", "#f80"); - - } - - - $(".agentInfo").append("$(window).width(): " + $(window).width() + "
"); - $(".agentInfo").append("window.screen.width: " + window.screen.width+ "
"); - $(".agentInfo").append("window.screen.availWidth: " + window.screen.availWidth+ "
"); - $(".agentInfo").append("
"); - $(".agentInfo").append("window.innerWidth: " + window.innerWidth + "
"); - $(".agentInfo").append("window.innerHeight: " + window.innerHeight + "
"); - $(".agentInfo").append("
"); - $(".agentInfo").append("$(window).height(): " + $(window).height() + "
"); - $(".agentInfo").append("window.screen.height: " + window.screen.height+ "
"); - $(".agentInfo").append("window.screen.availHeight: " + window.screen.availHeight+ "
"); - $(".agentInfo").append("
"); - $(".agentInfo").append("user agent: " + navigator.userAgent + "
"); -}; - -function doOnOrientationChange() { - console.log("doOnOrientationChange"); - doClientAndOrientationStuff(); - - // switch(window.orientation) { - // case -90: - // case 90: - // alert('landscape'); - // break; - // default: - // alert('portrait'); - // break; - // } -} - -var drawAreaContainerMinHeight = 300; -var drawAreaContainerMaxHeight = 450; -function doOnResize() { - // console.log("doOnResize() >> " + new Date().getTime()); -// $(".container").css("height", window.innerHeight); - - // code from new layouting approach... //TODO give this a more logical spot - $drawAreaContainer.css("marginTop", -parseInt($drawAreaContainer.css("height"))/2); - - canvas.width = $drawAreaContainer.width() - 150; // canvas.clientWidth; - canvas.height = $drawAreaContainer.height(); // canvas.clientHeight; - // canvas.width = canvas.clientWidth; - // canvas.height = canvas.clientHeight; - - // $("#drawAreaContainer").attr("width", parseInt($("#drawAreaContainer").css("width"), 10)); - // $("#drawAreaContainer").attr("height", parseInt($("#drawAreaContainer").css("height"), 10)); - // canvas.width = parseInt($canvas.css("width"), 10); - // canvas.height = parseInt($canvas.css("height"), 10); - - preview.width = 150; - preview.height = $drawAreaContainer.height(); -// preview.width = parseInt($preview.css("width"), 10); -// preview.height = parseInt($preview.css("height"), 10); - - canvasWidth = canvas.width; - canvasHeight = canvas.height; - - redrawDoodle(); - redrawPreview(); - - return; - -// doClientAndOrientationStuff() // <-- is this necessary in this method? - -// console.log("f:doOnResize() >> $('#canvascontainer').innerHeight: " + window.innerHeight); - if (window.innerHeight < 768) { -// $('#drawAreaContainer').innerHeight(window.innerHeight - $("#drawAreaContainer").offset().top - 70); - var newVal = window.innerHeight - $("#drawAreaContainer").offset().top - 100; // what's the 70 ?? - newVal = Math.max(newVal, drawAreaContainerMinHeight); - newVal = Math.min(newVal, drawAreaContainerMaxHeight); - - $('#drawAreaContainer').innerHeight(newVal); - - // canvas drawing area - $canvas.css("height", newVal); - canvas.height = newVal; - canvasWidth = canvas.width; - canvasHeight = canvas.height; - - // preview area - $preview.css("height", newVal); - preview.height = newVal; - layerOffsetY = preview.height - 1.75 * layerCY; - yStep = preview.height / 150; - - redrawDoodle(); - redrawPreview(); - } -} - -function initLayouting() { - console.log("f:initLayouting()"); - - // first set the css width/height and actual width/height of the drawing area - - - - -// $doodleCanvas = $("#mycanvas"); -// doodleCanvas = $("#mycanvas")[0]; -// doodleCanvasContext = doodleCanvas.getContext('2d'); - - $drawAreaContainer = $("#drawAreaContainer"); - $drawAreaContainer.css("margin", 0); - $drawAreaContainer.css("marginLeft", -parseInt($drawAreaContainer.css("width"))/2); - $drawAreaContainer.css("marginTop", -parseInt($drawAreaContainer.css("height"))/2); - - canvas.width = $drawAreaContainer.width() - 150; // canvas.clientWidth; - canvas.height = $drawAreaContainer.height(); // canvas.clientHeight; -// canvas.width = canvas.clientWidth; -// canvas.height = canvas.clientHeight; - - preview.width = 150; - preview.height = $drawAreaContainer.height(); - - // code from new layouting approach... //TODO give this a more logical spot -// $("#drawAreaContainer").attr("width", parseInt($("#drawAreaContainer").css("width"), 10)); -// $("#drawAreaContainer").attr("height", parseInt($("#drawAreaContainer").css("height"), 10)); -// canvas.width = parseInt($canvas.css("width"), 10); -// canvas.height = parseInt($canvas.css("height"), 10); -// preview.width = parseInt($preview.css("width"), 10); -// preview.height = parseInt($preview.css("height"), 10); - canvasWidth = canvas.width; - canvasHeight = canvas.height; - -// console.log("f:initLayouting() >> canvas height: " + canvas.height); - - - - // imgDims[0] = parseInt($(".container").css("width").match(/[0-9]+/).join("")); - // imgDims[1] = parseInt($(".container").css("height").match(/[0-9]+/).join("")); - -// imgDims = [1024, 768]; - - /* - if( /Android|webOS|BlackBerry/i.test(navigator.userAgent) ) { - imgDims[1] = parseInt($(".container").css("height").match(/[0-9]+/).join("")); - } else if ( /iPhone|iPad|iPod/i.test(navigator.userAgent) ) { - imgDims[1] = parseInt($(".container").css("width").match(/[0-9]+/).join("")); - } else { - imgDims[1] = parseInt($(".container").css("height").match(/[0-9]+/).join("")); - } - //*/ - - // $(".container").css("height", window.innerHeight); - - // window.innerHeight - console.log("window.innerHeight: " + window.innerHeight); - console.log("window.innerWidth: " + window.innerWidth); - console.log("$('#drawAreaContainer').innerHeight(): " + $("#drawAreaContainer").innerHeight()); - console.log("$('#drawAreaContainer').offset().top: " + $("#drawAreaContainer").offset().top); - - - /* 2013-07-26 not doing this resizing stuff now, it's not working well yet - if (window.innerHeight < 768) { - $('#drawAreaContainer').innerHeight(window.innerHeight - $("#drawAreaContainer").offset().top - 70); - } - //*/ - - // timeout because it SEEMS to be beneficial for initting the layout - // 2013-09-18 seems beneficial since when? - setTimeout(_startOrientationAndChangeEventListening, 1000); -} - -function _startOrientationAndChangeEventListening() { - // Initial execution if needed - - $(window).on('resize', doOnResize); - -// if (!window.addEventListener) { -// window.attachEvent('orientationchange', doOnOrientationChange, false); -// window.attachEvent('resize', doOnResize, false); -// } else { -// window.addEventListener('orientationchange', doOnOrientationChange, false); -// window.addEventListener('resize', doOnResize, false); -// } - - // is it necessary to call these? Aren't they called by the above eventhandlers? -// doClientAndOrientationStuff(); - doOnResize(); -} diff --git a/js_old/libs/bootstrap.js b/js_old/libs/bootstrap.js deleted file mode 100644 index 643e71c..0000000 --- a/js_old/libs/bootstrap.js +++ /dev/null @@ -1,2280 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.3.2 - * http://twitter.github.com/bootstrap/javascript.html#transitions - * =================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) - * ======================================================= */ - - $(function () { - - $.support.transition = (function () { - - var transitionEnd = (function () { - - var el = document.createElement('bootstrap') - , transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' - } - , name - - for (name in transEndEventNames){ - if (el.style[name] !== undefined) { - return transEndEventNames[name] - } - } - - }()) - - return transitionEnd && { - end: transitionEnd - } - - })() - - }) - -}(window.jQuery);/* ========================================================== - * bootstrap-alert.js v2.3.2 - * http://twitter.github.com/bootstrap/javascript.html#alerts - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* ALERT CLASS DEFINITION - * ====================== */ - - var dismiss = '[data-dismiss="alert"]' - , Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function (e) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - - e && e.preventDefault() - - $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) - - $parent.trigger(e = $.Event('close')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent - .trigger('closed') - .remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent.on($.support.transition.end, removeElement) : - removeElement() - } - - - /* ALERT PLUGIN DEFINITION - * ======================= */ - - var old = $.fn.alert - - $.fn.alert = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('alert') - if (!data) $this.data('alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - /* ALERT NO CONFLICT - * ================= */ - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - /* ALERT DATA-API - * ============== */ - - $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) - -}(window.jQuery);/* ============================================================ - * bootstrap-button.js v2.3.2 - * http://twitter.github.com/bootstrap/javascript.html#buttons - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* BUTTON PUBLIC CLASS DEFINITION - * ============================== */ - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.button.defaults, options) - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - , $el = this.$element - , data = $el.data() - , val = $el.is('input') ? 'val' : 'html' - - state = state + 'Text' - data.resetText || $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d) - }, 0) - } - - Button.prototype.toggle = function () { - var $parent = this.$element.closest('[data-toggle="buttons-radio"]') - - $parent && $parent - .find('.active') - .removeClass('active') - - this.$element.toggleClass('active') - } - - - /* BUTTON PLUGIN DEFINITION - * ======================== */ - - var old = $.fn.button - - $.fn.button = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('button') - , options = typeof option == 'object' && option - if (!data) $this.data('button', (data = new Button(this, options))) - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.defaults = { - loadingText: 'loading...' - } - - $.fn.button.Constructor = Button - - - /* BUTTON NO CONFLICT - * ================== */ - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - /* BUTTON DATA-API - * =============== */ - - $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - }) - -}(window.jQuery);/* ========================================================== - * bootstrap-carousel.js v2.3.2 - * http://twitter.github.com/bootstrap/javascript.html#carousel - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* CAROUSEL CLASS DEFINITION - * ========================= */ - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.prototype = { - - cycle: function (e) { - if (!e) this.paused = false - if (this.interval) clearInterval(this.interval); - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - return this - } - - , getActiveIndex: function () { - this.$active = this.$element.find('.item.active') - this.$items = this.$active.parent().children() - return this.$items.index(this.$active) - } - - , to: function (pos) { - var activeIndex = this.getActiveIndex() - , that = this - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) { - return this.$element.one('slid', function () { - that.to(pos) - }) - } - - if (activeIndex == pos) { - return this.pause().cycle() - } - - return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) - } - - , pause: function (e) { - if (!e) this.paused = true - if (this.$element.find('.next, .prev').length && $.support.transition.end) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - clearInterval(this.interval) - this.interval = null - return this - } - - , next: function () { - if (this.sliding) return - return this.slide('next') - } - - , prev: function () { - if (this.sliding) return - return this.slide('prev') - } - - , slide: function (type, next) { - var $active = this.$element.find('.item.active') - , $next = next || $active[type]() - , isCycling = this.interval - , direction = type == 'next' ? 'left' : 'right' - , fallback = type == 'next' ? 'first' : 'last' - , that = this - , e - - this.sliding = true - - isCycling && this.pause() - - $next = $next.length ? $next : this.$element.find('.item')[fallback]() - - e = $.Event('slide', { - relatedTarget: $next[0] - , direction: direction - }) - - if ($next.hasClass('active')) return - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - this.$element.one('slid', function () { - var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) - $nextIndicator && $nextIndicator.addClass('active') - }) - } - - if ($.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - this.$element.one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - } else { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } - - isCycling && this.cycle() - - return this - } - - } - - - /* CAROUSEL PLUGIN DEFINITION - * ========================== */ - - var old = $.fn.carousel - - $.fn.carousel = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('carousel') - , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) - , action = typeof option == 'string' ? option : options.slide - if (!data) $this.data('carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - $.fn.carousel.defaults = { - interval: 5000 - , pause: 'hover' - } - - $.fn.carousel.Constructor = Carousel - - - /* CAROUSEL NO CONFLICT - * ==================== */ - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - /* CAROUSEL DATA-API - * ================= */ - - $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { - var $this = $(this), href - , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - , options = $.extend({}, $target.data(), $this.data()) - , slideIndex - - $target.carousel(options) - - if (slideIndex = $this.attr('data-slide-to')) { - $target.data('carousel').pause().to(slideIndex).cycle() - } - - e.preventDefault() - }) - -}(window.jQuery);/* ============================================================= - * bootstrap-collapse.js v2.3.2 - * http://twitter.github.com/bootstrap/javascript.html#collapse - * ============================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* COLLAPSE PUBLIC CLASS DEFINITION - * ================================ */ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.collapse.defaults, options) - - if (this.options.parent) { - this.$parent = $(this.options.parent) - } - - this.options.toggle && this.toggle() - } - - Collapse.prototype = { - - constructor: Collapse - - , dimension: function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - , show: function () { - var dimension - , scroll - , actives - , hasData - - if (this.transitioning || this.$element.hasClass('in')) return - - dimension = this.dimension() - scroll = $.camelCase(['scroll', dimension].join('-')) - actives = this.$parent && this.$parent.find('> .accordion-group > .in') - - if (actives && actives.length) { - hasData = actives.data('collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('collapse', null) - } - - this.$element[dimension](0) - this.transition('addClass', $.Event('show'), 'shown') - $.support.transition && this.$element[dimension](this.$element[0][scroll]) - } - - , hide: function () { - var dimension - if (this.transitioning || !this.$element.hasClass('in')) return - dimension = this.dimension() - this.reset(this.$element[dimension]()) - this.transition('removeClass', $.Event('hide'), 'hidden') - this.$element[dimension](0) - } - - , reset: function (size) { - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - [dimension](size || 'auto') - [0].offsetWidth - - this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') - - return this - } - - , transition: function (method, startEvent, completeEvent) { - var that = this - , complete = function () { - if (startEvent.type == 'show') that.reset() - that.transitioning = 0 - that.$element.trigger(completeEvent) - } - - this.$element.trigger(startEvent) - - if (startEvent.isDefaultPrevented()) return - - this.transitioning = 1 - - this.$element[method]('in') - - $.support.transition && this.$element.hasClass('collapse') ? - this.$element.one($.support.transition.end, complete) : - complete() - } - - , toggle: function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - } - - - /* COLLAPSE PLUGIN DEFINITION - * ========================== */ - - var old = $.fn.collapse - - $.fn.collapse = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('collapse') - , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) - if (!data) $this.data('collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.defaults = { - toggle: true - } - - $.fn.collapse.Constructor = Collapse - - - /* COLLAPSE NO CONFLICT - * ==================== */ - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - /* COLLAPSE DATA-API - * ================= */ - - $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { - var $this = $(this), href - , target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - , option = $(target).data('collapse') ? 'toggle' : $this.data() - $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - $(target).collapse(option) - }) - -}(window.jQuery);/* ============================================================ - * bootstrap-dropdown.js v2.3.2 - * http://twitter.github.com/bootstrap/javascript.html#dropdowns - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle=dropdown]' - , Dropdown = function (element) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function (e) { - var $this = $(this) - , $parent - , isActive - - if ($this.is('.disabled, :disabled')) return - - $parent = getParent($this) - - isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement) { - // if mobile we we use a backdrop because click events don't delegate - $('