From dc1dd07720982a35a5827ad39d48bfaa517527e2 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 11:04:57 -0700 Subject: [PATCH 01/33] Don't crash on requesting a non-existent email address --- app/controllers/groups_controller.rb | 1 - app/controllers/requests_controller.rb | 12 ++++++++---- app/helpers/requests_helper.rb | 1 - app/views/requests/_form.haml | 6 ------ app/views/requests/new.html.haml | 5 ----- 5 files changed, 8 insertions(+), 17 deletions(-) delete mode 100644 app/views/requests/_form.haml delete mode 100644 app/views/requests/new.html.haml diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 88b8235f2..d8790a861 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -33,7 +33,6 @@ class GroupsController < ApplicationController @group = Group.first(:id => params[:id]) @posts = current_user.visible_posts( :by_members_of => @group ).paginate :order => 'created_at DESC' - #@posts = Post.paginate :person_id => @people_ids, :order => 'created_at DESC' end def edit diff --git a/app/controllers/requests_controller.rb b/app/controllers/requests_controller.rb index 24c4634b8..77f433121 100644 --- a/app/controllers/requests_controller.rb +++ b/app/controllers/requests_controller.rb @@ -31,8 +31,13 @@ class RequestsController < ApplicationController end def create - puts params.inspect - rel_hash = relationship_flow(params[:request][:destination_url]) + begin + rel_hash = relationship_flow(params[:request][:destination_url]) + rescue Exception => e + flash[:error] = "no diaspora seed found with this email!" + redirect_to current_user.group_by_id(params[:request][:group_id]) + return + end Rails.logger.debug("Sending request: #{rel_hash}") @request = current_user.send_request(rel_hash, params[:request][:group_id]) @@ -45,8 +50,7 @@ class RequestsController < ApplicationController else flash[:error] = "you have already friended this person" end - @request = Request.new - render :action => 'new' + redirect_to current_user.group_by_id(params[:request][:group_id]) end end diff --git a/app/helpers/requests_helper.rb b/app/helpers/requests_helper.rb index c0320c0b8..37a5485c4 100644 --- a/app/helpers/requests_helper.rb +++ b/app/helpers/requests_helper.rb @@ -29,7 +29,6 @@ module RequestsHelper action = :none url = nil local_person = Person.by_webfinger identifier - puts local_person.inspect if local_person action = (local_person == current_user.person ? :none : :friend) url = local_person.receive_url diff --git a/app/views/requests/_form.haml b/app/views/requests/_form.haml deleted file mode 100644 index de088d363..000000000 --- a/app/views/requests/_form.haml +++ /dev/null @@ -1,6 +0,0 @@ -= form_for @request do |f| - = f.error_messages - - .field_with_submit - = f.text_field :destination_url - = f.submit diff --git a/app/views/requests/new.html.haml b/app/views/requests/new.html.haml deleted file mode 100644 index 8a5276998..000000000 --- a/app/views/requests/new.html.haml +++ /dev/null @@ -1,5 +0,0 @@ -%h1 requests - -= render 'form' - -%p= link_to "Back to List", requests_path From 2d21ac04600e74a2920da69e4e26b037e007cc1b Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 11:05:28 -0700 Subject: [PATCH 02/33] moving things around --- app/views/layouts/application.html.haml | 8 ++- app/views/shared/_group_nav.haml | 12 ++-- app/views/shared/_publisher.haml | 29 ++++++---- public/javascripts/view.js | 2 +- public/stylesheets/application.css | 60 +++++++------------ public/stylesheets/sass/application.sass | 73 +++++++++--------------- 6 files changed, 77 insertions(+), 107 deletions(-) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index da2b73eb8..90bbd078e 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -47,12 +47,14 @@ = link_to "DIASPORA*", root_path %span.sub_text PREVIEW - = render "shared/group_nav" = link_to "photos", albums_path .container - .span-24.last + .span-4.append-1.last + = render "shared/group_nav" + + .span-19.last = yield - .span-24.last + = render "posts/debug" diff --git a/app/views/shared/_group_nav.haml b/app/views/shared/_group_nav.haml index 455d90bb4..e4cf74df3 100644 --- a/app/views/shared/_group_nav.haml +++ b/app/views/shared/_group_nav.haml @@ -1,8 +1,11 @@ #group %ul + .selected + = @group.name - for group in @groups - %li{:class => ("selected" if group.id.to_s == params[:id])} - = link_to group.name, group + - unless (group.id.to_s == params[:id]) + %li + = link_to group.name, group %li.new_group= link_to("NEW GROUP", "#add_group_pane", :id => "add_group_button") @@ -16,11 +19,6 @@ = person_image_link(friend) = link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button' - - if @group.people.count == 0 - %span.add_new_description - << click the plus to add friends to this group - - .yo{:style => 'display:none'} #add_request_pane = render "requests/new_request" diff --git a/app/views/shared/_publisher.haml b/app/views/shared/_publisher.haml index 470cfbcfc..88fc20443 100644 --- a/app/views/shared/_publisher.haml +++ b/app/views/shared/_publisher.haml @@ -1,18 +1,27 @@ #publisher - #publisher_form + .span-19.last = form_for StatusMessage.new, :remote => true do |f| = f.error_messages -if group_id = f.hidden_field :group_id, :value => group_id - - %label{:for => "status_message_message"} Message - = f.text_area :message, :rows => 2 - %ul - - for group in current_user.groups - %li - = group.name - = check_box_tag("groups_id[]", group.id, current_group?(group)) - .right + .span-15.last + .span-2.last + .user_image + = owner_image_tag + .span-13.last + %p + %label{:for => "status_message_message"} Message + = f.text_area :message, :rows => 2 + + .span-3.last + + %ul.group_selector + going to... + - for group in current_user.groups + %li + = check_box_tag("groups_id[]", group.id, current_group?(group)) + = group.name + .span-1.last = f.submit "Post" diff --git a/public/javascripts/view.js b/public/javascripts/view.js index aa87fda21..d3e480b59 100644 --- a/public/javascripts/view.js +++ b/public/javascripts/view.js @@ -33,7 +33,7 @@ $(document).ready(function(){ $("label").inFieldLabels(); - $('#flash_notice, #flash_error, #flash_alert').delay(1500).slideUp(130); + $('#flash_notice, #flash_error, #flash_alert').delay(2500).slideUp(130); $("#stream li").live('mouseover',function() { diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 4015b7a54..ca791a64a 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -73,7 +73,6 @@ header { padding: 6px 0; padding-top: 0; } header #diaspora_text { - margin-bottom: 1em; font-family: "BrandonGrotesqueLightRegular"; font-size: 16px; border: none; @@ -303,31 +302,25 @@ label { background-color: rgba(10, 81, 109, 0.05); border-bottom: 2px #999999 solid; color: #999999; - padding: 15px 1em; - padding-bottom: 30px; - position: relative; } - -#new_blog, -#new_bookmark { - display: none; } - -ul#publisher_content_pickers { - display: inline; - margin: 0 -10px; - padding: 0; - margin-left: 10px; } - -ul#publisher_content_pickers li { - display: inline; - padding: 5px 10px; - margin-right: 5px; } - -#publisher .selected { - border-bottom: 3px solid #999999; - background-color: rgba(10, 81, 109, 0.1); } - -#publisher .right { - padding-right: 15px; } + position: relative; + height: 80px; } + #publisher textarea { + width: 95%; } + #publisher .user_image img { + height: 50px; } + #publisher ul.group_selector { + padding: 0; + margin: 0; + width: 150px; + list-style: none; } + #publisher ul.group_selector > li { + z-index: 10; + display: none; + background-color: white; } + #publisher ul.group_selector > li:active { + background-color: yellow; } + #publisher ul.group_selector:hover li { + display: block; } #image_picker .small_photo { height: 100px; @@ -428,23 +421,12 @@ h1.big_text { display: inline; margin-right: 10px; } #group ul > li.selected, #group ul > li.selected a { - color: white; + color: black; font-weight: bold; - font-size: 18px; } + font-size: 24px; } #group a { color: #aaaaaa; font-weight: normal; } - #group #friend_pictures .add_new_description { - position: relative; - height: 40px; - display: inline-block; - background-color: #222222; - color: #999999; - top: -16px; - line-height: 40px; - padding: 0 1em; - margin-bottom: -20px; - font-style: italic; } #group #friend_pictures img { height: 40px; } diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index dbedd6c44..b09fcd45b 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -80,8 +80,6 @@ header :top 0 #diaspora_text - :margin - :bottom 1em :font :family 'BrandonGrotesqueLightRegular' :size 16px @@ -371,36 +369,36 @@ label :border :bottom 2px #999 solid :color #999 - :padding 15px 1em - :bottom 30px :position relative + :height 80px -#new_blog, -#new_bookmark - :display none + textarea + :width 95% -ul#publisher_content_pickers - :display inline - :margin 0 -10px - :padding 0 - :margin - :left 10px + .user_image + img + :height 50px -ul#publisher_content_pickers li - :display inline - :padding 5px 10px - :margin - :right 5px + ul.group_selector + :padding 0 + :margin 0 + :width 150px + :list + :style none -#publisher .selected - :border - :bottom 3px solid #999 - :background - :color rgba(10,81,109,0.1) + > li + :z-index 10 + :display none + :background + :color #fff + + &:active + :background + :color yellow + + &:hover li + :display block -#publisher .right - :padding - :right 15px #image_picker .small_photo @@ -423,9 +421,7 @@ ul#publisher_content_pickers li :border 1px solid #fff - /* cycle it! */ - .album :position relative :height 300px @@ -535,10 +531,10 @@ h1.big_text :right 10px &.selected, &.selected a - :color #fff + :color #000 :font :weight bold - :size 18px + :size 24px a :color #aaa @@ -546,23 +542,6 @@ h1.big_text :weight normal #friend_pictures - - .add_new_description - :position relative - :height 40px - :display inline-block - :background - :color #222 - :color #999 - :top -16px - :line - :height 40px - :padding 0 1em - :margin - :bottom -20px - :font - :style italic - img :height 40px From 37a67b29a49b71cccac4363e7225580f05f0d442 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 11:22:55 -0700 Subject: [PATCH 03/33] left/right arrow keys on photo show page go to prev/next --- app/helpers/photos_helper.rb | 8 ++++---- app/views/photos/show.html.haml | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/helpers/photos_helper.rb b/app/helpers/photos_helper.rb index c518ceec5..faf29ed63 100644 --- a/app/helpers/photos_helper.rb +++ b/app/helpers/photos_helper.rb @@ -4,11 +4,11 @@ module PhotosHelper link_to (image_tag photo.url(:scaled_full)), photo_path(album.next_photo(photo)), :rel => "prefetch" end - def link_to_prev(photo, album) - link_to "<< prev", photo_path(album.prev_photo(photo)), :rel => "prefetch" + def url_to_prev(photo, album) + photo_path(album.prev_photo(photo)) end - def link_to_next(photo, album) - link_to "next >>", photo_path(album.next_photo(photo)), :rel => "prefetch" + def url_to_next(photo, album) + photo_path(album.next_photo(photo)) end end diff --git a/app/views/photos/show.html.haml b/app/views/photos/show.html.haml index 8636998b3..27afac74c 100644 --- a/app/views/photos/show.html.haml +++ b/app/views/photos/show.html.haml @@ -1,3 +1,16 @@ +:javascript + $(document).keydown(function(e){ + switch(e.keyCode) { + case 37: + window.location.replace( "#{url_to_prev(@photo,@album)}" ); + break; + case 39: + window.location.replace( "#{url_to_next(@photo,@album)}" ); + break; + } + }); + + .back= link_to "⇧ #{@album.name}", album_path(@album) %h1.big_text = @photo.image @@ -6,11 +19,11 @@ = link_to 'Edit Photo', edit_photo_path(@photo), :class => "button" .sub_header - = link_to_prev @photo, @album + = link_to "<< prev", url_to_prev(@photo, @album) | = link_to "full size", @photo.url | - = link_to_next @photo, @album + = link_to "next >>", url_to_next(@photo, @album) %div{:id => @photo.id} #show_photo From 01dac4d1735f943b8ef2c57b0be1e68f1b3643ef Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 11:56:06 -0700 Subject: [PATCH 04/33] Take tinymce out of layout --- app/controllers/photos_controller.rb | 1 + app/models/user.rb | 3 +++ app/views/layouts/application.html.haml | 1 - app/views/photos/_new_photo.haml | 13 +++++++++++-- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 2996a23ec..eb165ca2d 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -21,6 +21,7 @@ class PhotosController < ApplicationController def new @photo = Photo.new + render :partial => "new_photo" end def destroy diff --git a/app/models/user.rb b/app/models/user.rb index c26e02f1c..fe4cb1ea9 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -46,6 +46,9 @@ class User options.delete(:group_id) model_class = class_name.to_s.camelize.constantize + + pp options + post = model_class.instantiate(options) post.creator_signature = post.sign_with_key(encryption_key) post.save diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index da2b73eb8..8432ac92a 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -13,7 +13,6 @@ /= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" = javascript_include_tag 'jquery142', 'rails', 'google' - = javascript_include_tag 'tiny_mce/tiny_mce' = javascript_include_tag 'jquery.infieldlabel', 'jquery.cycle/jquery.cycle.min.js' = javascript_include_tag 'fancybox/jquery.fancybox-1.3.1.pack' diff --git a/app/views/photos/_new_photo.haml b/app/views/photos/_new_photo.haml index b57731596..0704c0244 100644 --- a/app/views/photos/_new_photo.haml +++ b/app/views/photos/_new_photo.haml @@ -12,8 +12,9 @@ $("#add_photo_loader").fadeOut(400); $("#photo_title_status").text("Done!"); - $("#progress_report").html("Great job!"); - }, + $("#progress_report").html(""); + resetPhotoButton + }, onStart: function(event, total){ $("#add_photo_button").html( "Uploading Photos" ); $("#add_photo_loader").fadeIn(400); @@ -26,6 +27,14 @@ }); }); + function resetPhotoButton{ + $("#add_photo_button").click(function (evt){ + $("#new_photo_pane").html($.get("photos/ajax_new")); + $("#add_photo_button").unbind(); + $("#add_photo_button").fancybox(); + } + } + %h1 %span{:id=>"photo_title_status"} Add photos to From 0092069372b616e77c6a20ffb3a3a3da22d30517 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 11:57:29 -0700 Subject: [PATCH 05/33] Take signed in check out of websocket js --- app/views/js/_websocket_js.haml | 184 ++++++++++++++++---------------- 1 file changed, 91 insertions(+), 93 deletions(-) diff --git a/app/views/js/_websocket_js.haml b/app/views/js/_websocket_js.haml index 443726e50..282a07624 100644 --- a/app/views/js/_websocket_js.haml +++ b/app/views/js/_websocket_js.haml @@ -1,103 +1,101 @@ -- if user_signed_in? - = javascript_include_tag 'FABridge', 'swfobject', 'web_socket' - :javascript - WebSocket.__swfLocation = "/javascripts/WebSocketMain.swf"; - :javascript - $(document).ready(function(){ - function debug(str){ $("#debug").append("

" + str); }; += javascript_include_tag 'FABridge', 'swfobject', 'web_socket' +:javascript + WebSocket.__swfLocation = "/javascripts/WebSocketMain.swf"; + $(document).ready(function(){ + function debug(str){ $("#debug").append("

" + str); }; - ws = new WebSocket("ws://#{request.host}:8080/#{CGI::escape(current_user.id.to_s)}"); + ws = new WebSocket("ws://#{request.host}:8080/#{CGI::escape(current_user.id.to_s)}"); - //Attach onmessage to websocket - ws.onmessage = function(evt) { - var obj = jQuery.parseJSON(evt.data); - debug("got a " + obj['class'] + " for group " + obj['group_id']); + //Attach onmessage to websocket + ws.onmessage = function(evt) { + var obj = jQuery.parseJSON(evt.data); + debug("got a " + obj['class'] + " for group " + obj['group_id']); - if (obj['class']=="retractions"){ - processRetraction(obj['post_id']); - - }else if (obj['class']=="comments"){ - processComment(obj['post_id'], obj['html']) - - }else if (obj['class']=='photos' && onPageForClass('albums')){ - processPhotoInAlbum(obj['photo_hash']) - }else if (obj['class']=='status_messages'){ - processStatusMessage(obj['class'], obj['html'], obj['status_message_hash'], obj['group_id'], obj['mine?']) - }else{ - processPost(obj['class'], obj['html'], obj['group_id'], obj['mine?']) - } - - - }; - ws.onclose = function() { debug("socket closed"); }; - ws.onopen = function() { - ws.send(location.pathname); - debug("connected..."); - }; - - function processRetraction(post_id){ - $('#' + post_id ).fadeOut(500, function(){ - $(this).remove; - }); - } - - function processComment(post_id, html){ - post = $('#' + post_id)[0] - $(' .comment_set li:last', post ).before( - $(html).fadeIn("fast", function(){}) - ); - toggler = $('.show_post_comments', post) - toggler.html( - toggler.html().replace(/\d/,$('.comment_set', post)[0].childElementCount -1)); - } - - function processPost(className, html, groupId, mineBool){ - if(mineBool || onPageForClass(className) || onPageForGroup(groupId)){ - $("#stream").prepend( - $(html).fadeIn("fast", function(){ - $("#stream label:first").inFieldLabels(); - }) - ); - } - } - - function processStatusMessage(className, html, messageHash, groupId, mineBool){ - processPost(className, html, groupId, mineBool); - console.log(messageHash) - if(messageHash['mine?']){ - updateMyLatestStatus(messageHash); - } - } + if (obj['class']=="retractions"){ + processRetraction(obj['post_id']); - function updateMyLatestStatus(messageHash){ - $("#latest_message").text(messageHash['text']); - $("#latest_message_time").text(' - just now'); + }else if (obj['class']=="comments"){ + processComment(obj['post_id'], obj['html']) + + }else if (obj['class']=='photos' && onPageForClass('albums')){ + processPhotoInAlbum(obj['photo_hash']) + }else if (obj['class']=='status_messages'){ + processStatusMessage(obj['class'], obj['html'], obj['status_message_hash'], obj['group_id'], obj['mine?']) + }else{ + processPost(obj['class'], obj['html'], obj['group_id'], obj['mine?']) } - function processPhotoInAlbum(photoHash){ - if (location.href.indexOf(photoHash['album_id']) == -1){ - return ; - } - html = "

" - $("#thumbnails").append( $(html) ) - $("#"+ photoHash['id'] + " img").load( function() { - $(this).fadeIn("slow"); - }); - } - function onPageForClass(className){ - return ((location.href.indexOf(className) != -1 ) || (location.pathname == '/')) && onPageOne(); - } + }; + ws.onclose = function() { debug("socket closed"); }; + ws.onopen = function() { + ws.send(location.pathname); + debug("connected..."); + }; - function onPageForGroup(groupId){ - return (location.href.indexOf(groupId) != -1 ) + function processRetraction(post_id){ + $('#' + post_id ).fadeOut(500, function(){ + $(this).remove; + }); + } + + function processComment(post_id, html){ + post = $('#' + post_id)[0] + $(' .comment_set li:last', post ).before( + $(html).fadeIn("fast", function(){}) + ); + toggler = $('.show_post_comments', post) + toggler.html( + toggler.html().replace(/\d/,$('.comment_set', post)[0].childElementCount -1)); + } + + function processPost(className, html, groupId, mineBool){ + if(mineBool || onPageForClass(className) || onPageForGroup(groupId)){ + $("#stream").prepend( + $(html).fadeIn("fast", function(){ + $("#stream label:first").inFieldLabels(); + }) + ); } - - function onPageOne() { - var c = document.location.search.charAt(document.location.search.length-1); - return ((c =='') || (c== '1')); + } + + function processStatusMessage(className, html, messageHash, groupId, mineBool){ + processPost(className, html, groupId, mineBool); + console.log(messageHash) + if(messageHash['mine?']){ + updateMyLatestStatus(messageHash); } - }); + } + + function updateMyLatestStatus(messageHash){ + $("#latest_message").text(messageHash['text']); + $("#latest_message_time").text(' - just now'); + } + + function processPhotoInAlbum(photoHash){ + if (location.href.indexOf(photoHash['album_id']) == -1){ + return ; + } + html = "" + $("#thumbnails").append( $(html) ) + $("#"+ photoHash['id'] + " img").load( function() { + $(this).fadeIn("slow"); + }); + } + + function onPageForClass(className){ + return ((location.href.indexOf(className) != -1 ) || (location.pathname == '/')) && onPageOne(); + } + + function onPageForGroup(groupId){ + return (location.href.indexOf(groupId) != -1 ) + } + + function onPageOne() { + var c = document.location.search.charAt(document.location.search.length-1); + return ((c =='') || (c== '1')); + } + }); From 9ef200861308eb0fdb134e76b803bc424b218812 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 11:59:58 -0700 Subject: [PATCH 06/33] Remove tinymce init block --- public/javascripts/view.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/public/javascripts/view.js b/public/javascripts/view.js index aa87fda21..b1baae31e 100644 --- a/public/javascripts/view.js +++ b/public/javascripts/view.js @@ -1,19 +1,4 @@ $(document).ready(function(){ - tinyMCE.init({ - mode : "exact", - elements: "blog_editor", - theme : "advanced", - plugins : "emotions,spellchecker,advhr,insertdatetime,preview", - - // Theme options - button# indicated the row# only - theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontsizeselect,formatselect", - theme_advanced_buttons2 : "cut,copy,paste|,bullist,numlist,|,outdent,indent|,undo,redo,|,link,unlink,anchor,image,|,preview,|,forecolor,backcolor", - theme_advanced_buttons3 : "insertdate,inserttime,|,spellchecker,|,sub,sup,|,charmap,emotions", - theme_advanced_toolbar_location : "top", - theme_advanced_toolbar_align : "left", - //theme_advanced_resizing : true //leave this out as there is an intermittent bug. - }); - $('.comment_set').each(function(index) { if($(this).children().length > 1) { From d9c091d3f873565258ec89171cae3c660abc0db9 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 12:43:12 -0700 Subject: [PATCH 07/33] search box in top nav --- app/views/layouts/application.html.haml | 7 +- app/views/shared/_group_nav.haml | 10 +- .../Read me first - license.txt | 13 + .../images/glyphish-icons/glyphish-icons.pdf | 1637 +++++++++++++++++ .../glyphish-icons/icons/01-refresh.png | Bin 0 -> 459 bytes .../images/glyphish-icons/icons/02-redo.png | Bin 0 -> 490 bytes .../glyphish-icons/icons/03-loopback.png | Bin 0 -> 473 bytes .../glyphish-icons/icons/04-squiggle.png | Bin 0 -> 411 bytes .../glyphish-icons/icons/05-shuffle.png | Bin 0 -> 356 bytes .../icons/06-magnifying-glass.png | Bin 0 -> 388 bytes .../glyphish-icons/icons/07-map-marker.png | Bin 0 -> 353 bytes .../images/glyphish-icons/icons/08-chat.png | Bin 0 -> 281 bytes .../images/glyphish-icons/icons/09-chat2.png | Bin 0 -> 311 bytes .../glyphish-icons/icons/10-medical.png | Bin 0 -> 210 bytes .../glyphish-icons/icons/100-coffee.png | Bin 0 -> 267 bytes .../glyphish-icons/icons/101-gameplan.png | Bin 0 -> 447 bytes .../images/glyphish-icons/icons/102-walk.png | Bin 0 -> 445 bytes .../images/glyphish-icons/icons/103-map.png | Bin 0 -> 507 bytes .../glyphish-icons/icons/104-index-cards.png | Bin 0 -> 263 bytes .../images/glyphish-icons/icons/105-piano.png | Bin 0 -> 158 bytes .../glyphish-icons/icons/106-sliders.png | Bin 0 -> 235 bytes .../glyphish-icons/icons/107-widescreen.png | Bin 0 -> 309 bytes .../images/glyphish-icons/icons/108-badge.png | Bin 0 -> 371 bytes .../glyphish-icons/icons/109-chicken.png | Bin 0 -> 276 bytes .../images/glyphish-icons/icons/11-clock.png | Bin 0 -> 508 bytes .../images/glyphish-icons/icons/110-bug.png | Bin 0 -> 546 bytes .../images/glyphish-icons/icons/111-user.png | Bin 0 -> 310 bytes .../images/glyphish-icons/icons/112-group.png | Bin 0 -> 467 bytes .../glyphish-icons/icons/113-navigation.png | Bin 0 -> 418 bytes .../glyphish-icons/icons/114-balloon.png | Bin 0 -> 416 bytes .../icons/115-bow-and-arrow.png | Bin 0 -> 567 bytes .../glyphish-icons/icons/116-controller.png | Bin 0 -> 523 bytes .../images/glyphish-icons/icons/117-todo.png | Bin 0 -> 324 bytes .../glyphish-icons/icons/118-coathanger.png | Bin 0 -> 435 bytes .../glyphish-icons/icons/119-piggybank.png | Bin 0 -> 395 bytes public/images/glyphish-icons/icons/12-eye.png | Bin 0 -> 322 bytes .../glyphish-icons/icons/120-headphones.png | Bin 0 -> 351 bytes .../glyphish-icons/icons/121-lanscape.png | Bin 0 -> 292 bytes .../images/glyphish-icons/icons/122-stats.png | Bin 0 -> 358 bytes .../glyphish-icons/icons/123-id-card.png | Bin 0 -> 270 bytes .../glyphish-icons/icons/124-bullhorn.png | Bin 0 -> 254 bytes .../images/glyphish-icons/icons/125-food.png | Bin 0 -> 356 bytes .../images/glyphish-icons/icons/126-moon.png | Bin 0 -> 336 bytes .../images/glyphish-icons/icons/127-sock.png | Bin 0 -> 308 bytes .../images/glyphish-icons/icons/128-bone.png | Bin 0 -> 223 bytes .../images/glyphish-icons/icons/129-golf.png | Bin 0 -> 418 bytes .../images/glyphish-icons/icons/13-target.png | Bin 0 -> 601 bytes .../images/glyphish-icons/icons/130-dice.png | Bin 0 -> 445 bytes public/images/glyphish-icons/icons/14-tag.png | Bin 0 -> 350 bytes .../images/glyphish-icons/icons/15-tags.png | Bin 0 -> 489 bytes .../glyphish-icons/icons/16-line-chart.png | Bin 0 -> 550 bytes .../glyphish-icons/icons/17-bar-chart.png | Bin 0 -> 181 bytes .../glyphish-icons/icons/18-envelope.png | Bin 0 -> 248 bytes .../images/glyphish-icons/icons/19-gear.png | Bin 0 -> 413 bytes .../images/glyphish-icons/icons/20-gear2.png | Bin 0 -> 375 bytes .../images/glyphish-icons/icons/21-skull.png | Bin 0 -> 397 bytes .../icons/22-skull-n-crossbones.png | Bin 0 -> 743 bytes .../images/glyphish-icons/icons/23-bird.png | Bin 0 -> 356 bytes .../images/glyphish-icons/icons/24-gift.png | Bin 0 -> 359 bytes .../glyphish-icons/icons/25-weather.png | Bin 0 -> 363 bytes .../glyphish-icons/icons/26-bandaid.png | Bin 0 -> 302 bytes .../images/glyphish-icons/icons/27-planet.png | Bin 0 -> 489 bytes .../images/glyphish-icons/icons/28-star.png | Bin 0 -> 375 bytes .../images/glyphish-icons/icons/29-heart.png | Bin 0 -> 280 bytes public/images/glyphish-icons/icons/30-key.png | Bin 0 -> 266 bytes .../images/glyphish-icons/icons/31-ipod.png | Bin 0 -> 323 bytes .../images/glyphish-icons/icons/32-iphone.png | Bin 0 -> 183 bytes .../glyphish-icons/icons/33-cabinet.png | Bin 0 -> 167 bytes .../images/glyphish-icons/icons/34-coffee.png | Bin 0 -> 303 bytes .../glyphish-icons/icons/35-shopping-bag.png | Bin 0 -> 243 bytes .../glyphish-icons/icons/36-toolbox.png | Bin 0 -> 257 bytes .../glyphish-icons/icons/37-suitcase.png | Bin 0 -> 227 bytes .../glyphish-icons/icons/38-airplane.png | Bin 0 -> 264 bytes .../glyphish-icons/icons/39-spraycan.png | Bin 0 -> 251 bytes .../images/glyphish-icons/icons/40-inbox.png | Bin 0 -> 347 bytes .../glyphish-icons/icons/41-picture-frame.png | Bin 0 -> 232 bytes .../images/glyphish-icons/icons/42-photos.png | Bin 0 -> 177 bytes .../glyphish-icons/icons/43-film-roll.png | Bin 0 -> 311 bytes .../glyphish-icons/icons/44-shoebox.png | Bin 0 -> 342 bytes .../images/glyphish-icons/icons/45-movie1.png | Bin 0 -> 213 bytes .../images/glyphish-icons/icons/46-movie2.png | Bin 0 -> 320 bytes .../images/glyphish-icons/icons/47-fuel.png | Bin 0 -> 403 bytes .../icons/48-fork-and-knife.png | Bin 0 -> 209 bytes .../glyphish-icons/icons/49-battery.png | Bin 0 -> 188 bytes .../images/glyphish-icons/icons/50-beaker.png | Bin 0 -> 183 bytes .../images/glyphish-icons/icons/51-outlet.png | Bin 0 -> 265 bytes .../glyphish-icons/icons/52-pinetree.png | Bin 0 -> 264 bytes .../images/glyphish-icons/icons/53-house.png | Bin 0 -> 207 bytes .../images/glyphish-icons/icons/54-lock.png | Bin 0 -> 258 bytes .../glyphish-icons/icons/55-network.png | Bin 0 -> 281 bytes .../images/glyphish-icons/icons/56-cloud.png | Bin 0 -> 256 bytes .../glyphish-icons/icons/57-download.png | Bin 0 -> 226 bytes .../glyphish-icons/icons/58-bookmark.png | Bin 0 -> 157 bytes .../images/glyphish-icons/icons/59-flag.png | Bin 0 -> 249 bytes .../glyphish-icons/icons/60-signpost.png | Bin 0 -> 176 bytes .../glyphish-icons/icons/61-brightness.png | Bin 0 -> 244 bytes .../glyphish-icons/icons/62-contrast.png | Bin 0 -> 424 bytes .../images/glyphish-icons/icons/63-runner.png | Bin 0 -> 350 bytes public/images/glyphish-icons/icons/64-zap.png | Bin 0 -> 260 bytes .../images/glyphish-icons/icons/65-note.png | Bin 0 -> 258 bytes .../glyphish-icons/icons/66-microphone.png | Bin 0 -> 269 bytes .../images/glyphish-icons/icons/67-tshirt.png | Bin 0 -> 245 bytes .../glyphish-icons/icons/68-paperclip.png | Bin 0 -> 302 bytes .../glyphish-icons/icons/69-display.png | Bin 0 -> 289 bytes public/images/glyphish-icons/icons/70-tv.png | Bin 0 -> 341 bytes .../glyphish-icons/icons/71-compass.png | Bin 0 -> 356 bytes public/images/glyphish-icons/icons/72-pin.png | Bin 0 -> 224 bytes .../images/glyphish-icons/icons/73-radar.png | Bin 0 -> 888 bytes .../glyphish-icons/icons/74-location.png | Bin 0 -> 293 bytes .../images/glyphish-icons/icons/75-phone.png | Bin 0 -> 298 bytes .../images/glyphish-icons/icons/76-baby.png | Bin 0 -> 383 bytes public/images/glyphish-icons/icons/77-ekg.png | Bin 0 -> 371 bytes .../glyphish-icons/icons/78-stopwatch.png | Bin 0 -> 381 bytes .../glyphish-icons/icons/79-medical-bag.png | Bin 0 -> 266 bytes .../glyphish-icons/icons/80-shopping-cart.png | Bin 0 -> 234 bytes .../glyphish-icons/icons/81-dashboard.png | Bin 0 -> 493 bytes .../images/glyphish-icons/icons/82-dogpaw.png | Bin 0 -> 397 bytes .../glyphish-icons/icons/83-calendar.png | Bin 0 -> 220 bytes .../glyphish-icons/icons/84-lightbulb.png | Bin 0 -> 284 bytes .../images/glyphish-icons/icons/85-trophy.png | Bin 0 -> 366 bytes .../images/glyphish-icons/icons/86-camera.png | Bin 0 -> 346 bytes .../glyphish-icons/icons/87-wineglass.png | Bin 0 -> 283 bytes .../glyphish-icons/icons/88-beermug.png | Bin 0 -> 387 bytes .../glyphish-icons/icons/89-dumbbell.png | Bin 0 -> 205 bytes .../glyphish-icons/icons/90-lifebuoy.png | Bin 0 -> 486 bytes .../glyphish-icons/icons/91-beaker2.png | Bin 0 -> 393 bytes .../glyphish-icons/icons/92-testtube.png | Bin 0 -> 250 bytes .../glyphish-icons/icons/93-thermometer.png | Bin 0 -> 344 bytes .../images/glyphish-icons/icons/94-pill.png | Bin 0 -> 388 bytes .../glyphish-icons/icons/95-equalizer.png | Bin 0 -> 270 bytes .../images/glyphish-icons/icons/96-book.png | Bin 0 -> 378 bytes .../images/glyphish-icons/icons/97-puzzle.png | Bin 0 -> 499 bytes .../glyphish-icons/icons/98-palette.png | Bin 0 -> 452 bytes .../glyphish-icons/icons/99-umbrella.png | Bin 0 -> 329 bytes public/stylesheets/application.css | 44 +- public/stylesheets/sass/application.sass | 57 +- 136 files changed, 1737 insertions(+), 31 deletions(-) create mode 100644 public/images/glyphish-icons/Read me first - license.txt create mode 100644 public/images/glyphish-icons/glyphish-icons.pdf create mode 100644 public/images/glyphish-icons/icons/01-refresh.png create mode 100644 public/images/glyphish-icons/icons/02-redo.png create mode 100644 public/images/glyphish-icons/icons/03-loopback.png create mode 100644 public/images/glyphish-icons/icons/04-squiggle.png create mode 100644 public/images/glyphish-icons/icons/05-shuffle.png create mode 100644 public/images/glyphish-icons/icons/06-magnifying-glass.png create mode 100644 public/images/glyphish-icons/icons/07-map-marker.png create mode 100644 public/images/glyphish-icons/icons/08-chat.png create mode 100644 public/images/glyphish-icons/icons/09-chat2.png create mode 100644 public/images/glyphish-icons/icons/10-medical.png create mode 100644 public/images/glyphish-icons/icons/100-coffee.png create mode 100644 public/images/glyphish-icons/icons/101-gameplan.png create mode 100644 public/images/glyphish-icons/icons/102-walk.png create mode 100644 public/images/glyphish-icons/icons/103-map.png create mode 100644 public/images/glyphish-icons/icons/104-index-cards.png create mode 100644 public/images/glyphish-icons/icons/105-piano.png create mode 100644 public/images/glyphish-icons/icons/106-sliders.png create mode 100644 public/images/glyphish-icons/icons/107-widescreen.png create mode 100644 public/images/glyphish-icons/icons/108-badge.png create mode 100644 public/images/glyphish-icons/icons/109-chicken.png create mode 100644 public/images/glyphish-icons/icons/11-clock.png create mode 100644 public/images/glyphish-icons/icons/110-bug.png create mode 100644 public/images/glyphish-icons/icons/111-user.png create mode 100644 public/images/glyphish-icons/icons/112-group.png create mode 100644 public/images/glyphish-icons/icons/113-navigation.png create mode 100644 public/images/glyphish-icons/icons/114-balloon.png create mode 100644 public/images/glyphish-icons/icons/115-bow-and-arrow.png create mode 100644 public/images/glyphish-icons/icons/116-controller.png create mode 100644 public/images/glyphish-icons/icons/117-todo.png create mode 100644 public/images/glyphish-icons/icons/118-coathanger.png create mode 100644 public/images/glyphish-icons/icons/119-piggybank.png create mode 100644 public/images/glyphish-icons/icons/12-eye.png create mode 100644 public/images/glyphish-icons/icons/120-headphones.png create mode 100644 public/images/glyphish-icons/icons/121-lanscape.png create mode 100644 public/images/glyphish-icons/icons/122-stats.png create mode 100644 public/images/glyphish-icons/icons/123-id-card.png create mode 100644 public/images/glyphish-icons/icons/124-bullhorn.png create mode 100644 public/images/glyphish-icons/icons/125-food.png create mode 100644 public/images/glyphish-icons/icons/126-moon.png create mode 100644 public/images/glyphish-icons/icons/127-sock.png create mode 100644 public/images/glyphish-icons/icons/128-bone.png create mode 100644 public/images/glyphish-icons/icons/129-golf.png create mode 100644 public/images/glyphish-icons/icons/13-target.png create mode 100644 public/images/glyphish-icons/icons/130-dice.png create mode 100644 public/images/glyphish-icons/icons/14-tag.png create mode 100644 public/images/glyphish-icons/icons/15-tags.png create mode 100644 public/images/glyphish-icons/icons/16-line-chart.png create mode 100644 public/images/glyphish-icons/icons/17-bar-chart.png create mode 100644 public/images/glyphish-icons/icons/18-envelope.png create mode 100644 public/images/glyphish-icons/icons/19-gear.png create mode 100644 public/images/glyphish-icons/icons/20-gear2.png create mode 100644 public/images/glyphish-icons/icons/21-skull.png create mode 100644 public/images/glyphish-icons/icons/22-skull-n-crossbones.png create mode 100644 public/images/glyphish-icons/icons/23-bird.png create mode 100644 public/images/glyphish-icons/icons/24-gift.png create mode 100644 public/images/glyphish-icons/icons/25-weather.png create mode 100644 public/images/glyphish-icons/icons/26-bandaid.png create mode 100644 public/images/glyphish-icons/icons/27-planet.png create mode 100644 public/images/glyphish-icons/icons/28-star.png create mode 100644 public/images/glyphish-icons/icons/29-heart.png create mode 100644 public/images/glyphish-icons/icons/30-key.png create mode 100644 public/images/glyphish-icons/icons/31-ipod.png create mode 100644 public/images/glyphish-icons/icons/32-iphone.png create mode 100644 public/images/glyphish-icons/icons/33-cabinet.png create mode 100644 public/images/glyphish-icons/icons/34-coffee.png create mode 100644 public/images/glyphish-icons/icons/35-shopping-bag.png create mode 100644 public/images/glyphish-icons/icons/36-toolbox.png create mode 100644 public/images/glyphish-icons/icons/37-suitcase.png create mode 100644 public/images/glyphish-icons/icons/38-airplane.png create mode 100644 public/images/glyphish-icons/icons/39-spraycan.png create mode 100644 public/images/glyphish-icons/icons/40-inbox.png create mode 100644 public/images/glyphish-icons/icons/41-picture-frame.png create mode 100644 public/images/glyphish-icons/icons/42-photos.png create mode 100644 public/images/glyphish-icons/icons/43-film-roll.png create mode 100644 public/images/glyphish-icons/icons/44-shoebox.png create mode 100644 public/images/glyphish-icons/icons/45-movie1.png create mode 100644 public/images/glyphish-icons/icons/46-movie2.png create mode 100644 public/images/glyphish-icons/icons/47-fuel.png create mode 100644 public/images/glyphish-icons/icons/48-fork-and-knife.png create mode 100644 public/images/glyphish-icons/icons/49-battery.png create mode 100644 public/images/glyphish-icons/icons/50-beaker.png create mode 100644 public/images/glyphish-icons/icons/51-outlet.png create mode 100644 public/images/glyphish-icons/icons/52-pinetree.png create mode 100644 public/images/glyphish-icons/icons/53-house.png create mode 100644 public/images/glyphish-icons/icons/54-lock.png create mode 100644 public/images/glyphish-icons/icons/55-network.png create mode 100644 public/images/glyphish-icons/icons/56-cloud.png create mode 100644 public/images/glyphish-icons/icons/57-download.png create mode 100644 public/images/glyphish-icons/icons/58-bookmark.png create mode 100644 public/images/glyphish-icons/icons/59-flag.png create mode 100644 public/images/glyphish-icons/icons/60-signpost.png create mode 100644 public/images/glyphish-icons/icons/61-brightness.png create mode 100644 public/images/glyphish-icons/icons/62-contrast.png create mode 100644 public/images/glyphish-icons/icons/63-runner.png create mode 100644 public/images/glyphish-icons/icons/64-zap.png create mode 100644 public/images/glyphish-icons/icons/65-note.png create mode 100644 public/images/glyphish-icons/icons/66-microphone.png create mode 100644 public/images/glyphish-icons/icons/67-tshirt.png create mode 100644 public/images/glyphish-icons/icons/68-paperclip.png create mode 100644 public/images/glyphish-icons/icons/69-display.png create mode 100644 public/images/glyphish-icons/icons/70-tv.png create mode 100644 public/images/glyphish-icons/icons/71-compass.png create mode 100644 public/images/glyphish-icons/icons/72-pin.png create mode 100644 public/images/glyphish-icons/icons/73-radar.png create mode 100644 public/images/glyphish-icons/icons/74-location.png create mode 100644 public/images/glyphish-icons/icons/75-phone.png create mode 100644 public/images/glyphish-icons/icons/76-baby.png create mode 100644 public/images/glyphish-icons/icons/77-ekg.png create mode 100644 public/images/glyphish-icons/icons/78-stopwatch.png create mode 100644 public/images/glyphish-icons/icons/79-medical-bag.png create mode 100644 public/images/glyphish-icons/icons/80-shopping-cart.png create mode 100644 public/images/glyphish-icons/icons/81-dashboard.png create mode 100644 public/images/glyphish-icons/icons/82-dogpaw.png create mode 100644 public/images/glyphish-icons/icons/83-calendar.png create mode 100644 public/images/glyphish-icons/icons/84-lightbulb.png create mode 100644 public/images/glyphish-icons/icons/85-trophy.png create mode 100644 public/images/glyphish-icons/icons/86-camera.png create mode 100644 public/images/glyphish-icons/icons/87-wineglass.png create mode 100644 public/images/glyphish-icons/icons/88-beermug.png create mode 100644 public/images/glyphish-icons/icons/89-dumbbell.png create mode 100644 public/images/glyphish-icons/icons/90-lifebuoy.png create mode 100644 public/images/glyphish-icons/icons/91-beaker2.png create mode 100644 public/images/glyphish-icons/icons/92-testtube.png create mode 100644 public/images/glyphish-icons/icons/93-thermometer.png create mode 100644 public/images/glyphish-icons/icons/94-pill.png create mode 100644 public/images/glyphish-icons/icons/95-equalizer.png create mode 100644 public/images/glyphish-icons/icons/96-book.png create mode 100644 public/images/glyphish-icons/icons/97-puzzle.png create mode 100644 public/images/glyphish-icons/icons/98-palette.png create mode 100644 public/images/glyphish-icons/icons/99-umbrella.png diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 90bbd078e..839981a46 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -35,10 +35,15 @@ #session_action - if user_signed_in? %ul#user_menu + %li#global_search + = form_tag(users_path, :method => 'get') do + %label{:for => 'q'} Search + = text_field_tag 'q' %li.name= link_to current_user.real_name, current_user.person %li= link_to "requests (#{@request_count})", requests_path, :class => new_request(@request_count) %li= link_to "settings", edit_user_path(current_user) - %li= link_to "search", users_path + + %li= link_to "logout", destroy_user_session_path - else = link_to "login", new_user_session_path diff --git a/app/views/shared/_group_nav.haml b/app/views/shared/_group_nav.haml index e4cf74df3..54138c947 100644 --- a/app/views/shared/_group_nav.haml +++ b/app/views/shared/_group_nav.haml @@ -1,7 +1,7 @@ #group %ul .selected - = @group.name + = link_to @group.name, @group, :class => "selected" - for group in @groups - unless (group.id.to_s == params[:id]) %li @@ -14,10 +14,12 @@ = render "groups/new_group" - if @group - #friend_pictures + %ul#friend_pictures - for friend in @group.people - = person_image_link(friend) - = link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button' + %li + = person_image_link(friend) + = friend.real_name + %li= link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button' .yo{:style => 'display:none'} #add_request_pane diff --git a/public/images/glyphish-icons/Read me first - license.txt b/public/images/glyphish-icons/Read me first - license.txt new file mode 100644 index 000000000..b6be14a6e --- /dev/null +++ b/public/images/glyphish-icons/Read me first - license.txt @@ -0,0 +1,13 @@ +Created by Joseph Wain (see http://penandthink.com) at and probably downloaded from http://glyphish.com + +This work is licensed under the Creative Commons Attribution 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. + +You are free to share it and to remix it remix under the following conditions: + +* You must attribute the work in the manner specified by the author (SEE BELOW). +* For any reuse or distribution, you must make clear to others the license terms of this work. +* The above conditions can be waived if you get permission from the copyright holder (send me an email!). + +ATTRIBUTION -- a note reading "icons by Joseph Wain / glyphish.com" or similar, plus a link back to glyphish.com from your app's website, is the preferred form of attribution. Also acceptable would be, like, a link from within your iPhone application, or from the iTunes store page, but those aren't as useful to other people. If none of these work for you, please contact hello@glyphish.com and we can work something out. + +USE WITHOUT ATTRIBUTION -- If attribution is not possible, workable or desirable for your application, contact hello@glyphish.com for commercial non-attributed licensing terms. \ No newline at end of file diff --git a/public/images/glyphish-icons/glyphish-icons.pdf b/public/images/glyphish-icons/glyphish-icons.pdf new file mode 100644 index 000000000..b243980be --- /dev/null +++ b/public/images/glyphish-icons/glyphish-icons.pdf @@ -0,0 +1,1637 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + glyphish-icons + + + + + Adobe Illustrator CS4 + 2010-04-04T12:46:43-04:00 + 2010-04-04T12:46:43-04:00 + 2010-04-04T12:46:43-04:00 + + + + 188 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAC8AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Alfkn8wdckv8AyTotzrdr 5a0mfR4LsIbaMjUJ3uGhNtG7gJFRVFOO9fGuylCaJ+dXnc6tqM9zqFtetFZ65c3Xlr6o0TaYdLjd 7f1JwFZxKVCmrfj0VpGQ+f8A80rHRNYt7zXLG41OTSNM1rTdQuYoLOO3F/Nwkgq3GFqLsjSbV64q yG+8yX3mP/nHXVdYTUJ3u5NPvBLeyQwwyP6MjpIvGEtFRlUpyQ7j4tjtiqG0qTzP5YkudE0C7T9E eVPLY1NdMFrGXv7y5Fw6Kzj40HOIbJucVYppH5yefJvLurtba9a6zdm20p7fUVsxCthd6jciGW2d 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 AJOKH//Z + + + + + + xmp.did:F97F11740720681195FEA64C1488983D + uuid:5090f4ca-02a0-1647-8100-08dae33ca097 + proof:pdf + uuid:097168A5C0A6DD11BA5DD84E8E1FB577 + + uuid:540ef98a-a130-1d4e-a5cd-e404e130aa3f + xmp.did:F87F11740720681197A5F9CC61D5EB76 + uuid:097168A5C0A6DD11BA5DD84E8E1FB577 + proof:pdf + + + + + saved + xmp.iid:F77F11740720681197A5CB309D789073 + 2009-01-17T11:17:53-05:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:F77F11740720681195FED32A091F692F + 2009-05-09T19:38:52-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:F87F11740720681197A5F9CC61D5EB76 + 2009-09-07T15:01:22-04:00 + Adobe Illustrator CS4 + / + + + saved + xmp.iid:F97F11740720681195FEA64C1488983D + 2010-04-04T12:46:41-04:00 + Adobe Illustrator CS4 + / + + + + + + Print + + + 1 + True + False + + 479.999512 + 624.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + K=25 + GRAY + PROCESS + 63 + + + CMYK Magenta + RGB + PROCESS + 234 + 0 + 138 + + + K=100 + PROCESS + 100.000000 + RGB + 35 + 31 + 32 + + + + + + + + + Adobe PDF library 9.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>/XObject<>>>/Thumb 89 0 R/TrimBox[0.0 0.0 480.0 624.0]/Type/Page>> endobj 8 0 obj <>stream +HWK$)]C&[ x8"2Y]=1׌$L~߿/z<~[=LǓ?3>c?_3qsm,Ȩk0r`/'" wD-Ȳ#x9ɂ3$*b + 5!K&SP(ESd%'`/h.gRZ*SW`3v"wT! z@qɞDAh +ax3+6#T{_Yu0mEx*F` 1 +N@iQ 错@U ,9jyNPrWU"TQ[gv@,;cl^F޺TѺ6mcZ-C"^LteaQ:Ta]޺Jft𼆊7bS:'Ttq+S~PZSMx,BՃmde)z^$(?T)n浲̗F/h},=P:5 :12VI !qf8YoaHB"̣[m({MS}C>!(X=s bu:T%t:e +W.KYOEiT,(:mwfMa7iptg?g(6to-A+ +riSoi˰\YTkHOoLޏU56]Gu Zwm|Pر{ur8ߨY?OB%b\d\ʈt }%;i}(fqXObfB0L.(v1PۗFH.Olcl=K@h-3Kx3Xz)أK|K|V/ /Zeb U9OV)tg$U +: g:cr՚ I{Rd'Vl;O Nv +)!795b)P= ;Pi{X`Iۥ2b5 ++*佡[Kj_ yޤa%g &=c21A~ i˳|K t˛Qe @WSJ͑͛Q^OM>T8kt۬]U/^ n\@qst.%- +GneFf-ywJEIRnJrQY̘I$ZBS䖧&t To$ +XbY԰C؜VȒ: mgVn^Kx_RO\)MBd|ڶ&\~Ѕ|ޚ->N/Y^tl0oK83a=8/>)nF x×:¯ժr3Kosq=_{3^8vkރ?4c)|=T9r3U+l62nJ3ٙ^716ܕmWJs r۴b[X͂b՗Rぴ$A}YYT̒䯘A qIY,iӝǚcSyu@STQPTA) P^c& #D9$hƴ1Ÿr[>@eJrdm"/5}`> fDPzʬ175qsg'bƚfqO[w4lQz~j#kJEj LM]m=8(T/ x˜  RaŀZ>K{-unڱ:c3kjLa(ZQP(:'nqZ(~ui_Na.FK b`34qK]%PcyPّH@9a(Q.!Ȑ&FZFZ4oT,*Owrpb˭r 1,|j'EA ]Q̬ӜCKT~M%zᚏ5ŵ|IDU"T҅ҋ8F~KEe0gK݃ šg䑎7@54ίCo/7\g -V,)ȐcB +_]G%'Ee+ֻkowE-J!E06 H,$Xld8%%FΆx*iAuEU$4!sYCtE{ 3Iш z["#}]l&c%ǥ4I z?PC|e?bsx߯xGk%nO0wR0 lڌBgOqӖkuTǟkfEܯ[v[z{KL˨GbEeT(Ů\.&Mrrݨ1ljpX$l^b UV3QOy=s½֫b ]%gȚnW^{k-:&h ,6Ժx7Tzvq(^b9o[kw֛ikAk%b9PՒok:w)ߛzG|? aTtaCim)?|/Yi,CcUid2RmiRY}l?Q[m.~./Zi.ۯL޽[ř8ki[hc˝>Y 3oǿ~?og4+~jd-Nco_ βomq0Rp! WBfJײzV|4hW6]vv.fSSϑh1?0JK֚5>g]'z1wRl3G@(񟼿V 4g.[Iɩ_6[嬅wj.[FyASq+YZ:\?g`[bؔM@x1;;SrB՗Sͷ4$*8/!S6a (e5X8WZck7w);*8c@gP/քG)tHi n0yNYbѺ@nddK0,[a奙#:Q*0́\A`!RDu_KOʶے !^2qNM$=5If8J"FߏbeH} X@)V%1 8Pˣ6]b~{;&1>Y;KQJpf/Xql7|wteooVArGf27Vd(~NA@vz\:yF" +Xdgg"7 bGe_-MzȖֈ9ڬI-I;Py ue-2 v{U$ŠHIn[9іp5-fϖݟya/L`V\1ʴRdD Xv PJݞ%o*+<$Etd|Rnh;V 7XHԩqijR?cYpA$,r'[(.C2'A@ r񅐡kDYux #z•H@fvS`Bm`X-kb/y#xjMclG][}luu͖#&le %WRۅh[88fl6JE4@_rƶߖf/w2y:<D㻨d=*Ǹn6nu>칤e[ eXW"ɼ.z'U9bwǀ +WS\ (z*8 E1Pv:~%|A("V2=R !!uߧ¢]3-S`KuD/ϕ D(4 ].4hBuag|Zk5h=!2e!@ʔ$KJ/%%ƶ+ 2E6Zކ7!űuWmwLQFYr5ԆBldVJ). +a]kmmRvEX߄bA՗Bwq}6.~BkݾaQ@%v3!5.ԃ_=%k @mu}c":Ǔ"!sR#D?!+ nXW +[K`]} du)rp7ao;·@uJ`"pjxqϱ;Y;¾3{%Bh.a%$H"a7C%8\#xk}<[w[\gH3#ۤBv^*-TVzIW8v0>YYX ְ Inp}t)#]{k cgN EbۡyekpifRl#p^fq݆Ȟ"e[? u[VgM&-אBp9' +St4,݃Y Y mr>Jǡ+=V~Ǘvj QƉ-F~}3/`qE`c'831K'MeHuv`oB\GU Io9ݚs-J 6 6-pWdVo 6 Az5mM7ė;+|[TAps$s%.byM,_jDy(}" vEy(@sw?m*Qv6S/|wu{Z ѐN"^ 7UMӖt$N$QGmҽkzO捝+\-X (sOy!Rib;dU*bOH|^ Xz{ӖTkejdnpQ= 5n4VVhv tRyjwH̜CvTmίmgqI{vJ?C +N@DpBN4.'Ԧ&LK' +HUܡr߰Yo dX|></SyR U$/<"Xbg;(5&!5+3 X/ +HIf:]NwDMU]EMHRj%"\Ń}lUWgN9i]#}.!HE:M8l \@h4v^A^a>PΊHmSbFHUqȱ#8AA94*!kCVשRq73.B*Qܥ}YD ?Q$Ʌ>[Txg4ܞ=!:Ս2Wt؂8s:;(&EHQ,?] +ѯ]^y&,\-A<=s +ZE Z#N6! 4M(.6j4I-QF̵FZR r>^ԴJق%j 2ڕy~>,Ku&+fZU[93'x}i  %$p^^wyKTtꔬߏDmmyDUԖUJ{YpxROSf/नɘdImudK18 `01}Ajpq22!dejI +i{xU_Pdo`Wp}\<+މG:q@q}A̘` >P/꿤G,gϨ}KqE@ɛRvw i̥+,M/=b3* Nɀ "UͷdgℰH#xe,BOؤhB"ٛ_O/,.?f4)[DY?w9('vYò= _ݱo}ό =~j`ްn^Eo~t IrD`$۪vÇXiΑR$x{k(#0{ŅR X*T ykC'yƨ7Jc 98EH BQ@u$ +@~F74#ڸ \ ** avWHů_Mo' >g{ww6B'-5bK$JÙyW piW DpKgGUtfN-0:ZTIᰲZ-9,o.'T=\uLBp詍iٸX%n Rp~Lvl^f.C64(#C7 58oW1v9~fxYj6_q.Ŵd9_Ex)p+3WK%7ܿSzWgoA{Qc~"2Uv]h/) fp{6DBc1q7546e.b2i-nˤe_ wSrMزuǨ[+wmJi(4BMڃlk:_j=rm/x`_*VWa-W)M+6t XV7\L_f-qq=n+$Q۸u+m79l6dmhBC6Am69j ~X fYi#Bi@X\NtVxNS-;p-SRa+طRTF`=:[e1*@?;ԽAgjDJ}1vԮ(@DSco>ia]adX*p[9 `p1k $T,Y%Q#s^b|rVСXa$@,vZ`7ʂ1_c0 b~mbT0TK'8.`L<0¹Xh&R[6whD2MFiU}JSxCqlecUtR OwyMeU BKP1LҠu/PmfHlh[sQЧK7+&2~=~|#ujllAbN +#TZџ!שY+iQN`:ĥ#!n^[`[U\ywSܟODA8fV F648b6+ғ#'w?jYUؑ?q:QfLnG!Pp89؁ऄac=5z!E &׆Kp':_E-};٧S!"p`blƪU/ԗ1&dxfxd]yt5uIUoTVYTvrcv%BeHM Z1wVvRfIᨺT#i|lcT\RVi$;KIJCUORy]ߦ歺\}:6]_bﶋw~ռKIMڹN{Z 6e&~,]P%VX1 Xmˋa+_7r{]2nv5F.]V2xV ޝVomõV,p ?4Ϧ +-@c +{"P!|[L<*©%סA 2B䰼CKb 0[S7Ъk Uqq okuYbO[Q wPfroYiqrBdϿxGz/2;I9½@6Oء]xh~oK`G-X%t 2Ӽ Ԯ9لmMדXR#IH~~k<.Cuњ٣UU2m9<݉O#%] R_>>{H{ :H3cm,KgѦ͖8U[8˝jbk_^-Q*]f`wOphiCWx=ԦJ "* 'Ir8H:F +D +a +S2Z#!% 3yةXlGgY0F&(ڂA[eƷ樻oc҂^ci;)Vq$-gHm*sc{ӭvGÐ +Ie?^:>u]d81ybڬY 5fõ${C洊 =6/ks/*\3ZWMgMb7Uyry-kؔO,6dgs-ZQtT`У:2E^ƨȼA o}[k2$?zI&^2ȊwRX k*,2U_b1朧iݍNglt_!14>kGE,Mvz2Ɱ7KR>{EXVߞGc(;+!;d3?#^'Wliwe0H_KbMSj^(\ Օgٛ +FTL ZaA 4oc/AI`e"VO!;s}[bs1'ײ̌=밒Xޒ ⍾B(hlfbΚ3tm7evҝ+7G?'\4Ͼ*6rEdۙzrSq*7]f$k\(q+&iʷT|)Xxo`3Δaf:#\ !1t+&}/0 %Ƿ~/~/lm'+nj61xq4TCyr:TUnΛv8/YDwe+~fn;ng{p+!jV>~Wտ`kTW6c`]m|҄?)EhOY[9.sRNXaY*LdY鮶7vUx6zk=\oV)uA&nR$8WyZsme~Īn=etߛzWˑ&֜b0еm^hVh) Y}j$6mx-,>좬zrlLP"^fDݮ"Qڙǘ< 6904T^09<q/b}hu!1:p%cV@O~ +J/f+&ŖxB9x8\p/@Ʋqgٕrp~5cwmOTԿ Oteoːz0A`3{*lP#o^Y>0.)Wp@p2dvx?A;Ǹu$S.R֌o@}ԕ=,ͭG~Ltm]^5W߶Ś WdPS~ugOKP,KT9 |;B4LBC8te6&n,ˏ)R5݂JUt$Z_u>^m5^"\&A ~WYv}Sn]i[/ ޥ#y y7zf3^}%РPA: + v 6EbdmqDaKp$H% V6ceiյso~}~CM&V5ޔ#[ܚ6x.e;?etB&$e~(U]-L<&wScpA/EI0k_H ]Oc]iR]fSեC:jɱ69[`@GhtÀ d{ ^d2?) >ҊG^O,Yn>Fײ H$r8QNQ@o~/"1ie1cʬ"{帇ly=mhk4~,"e^X0etުdUxCUb|?8\)***z`OEQ3 ҝeX"T\LY?㦷7_ޭmbpg,)\ òedS^[6ICnq8#]{ֹ ao~/_V`Y4%~)16NF5C?e%L}H滵ËEYe#$''Ǟo +kS9}U<ƕlu2eVMS +5Y?`Jx3.a7-IJbc/p -靜_1 +N]0gFqc賄?FPގf|rK?m=Li(&DgWrU2145MX&)8b!@)dZ- tHӋƮBLG(t4 3x +*m`6}""ld̞{?ʁHK!=\@H9qbRbԴó}[R|u~-nĴr +J#(;g"*-`MJ5A$k5* (.DJmY0ɮH3.+2?~'Ⱥ0^BV9IfglM{֚&2e}oR Q,/ZgBu͆Eg{byʊ~F%Zȁ^ch$YE}aFYHQ`*]nKʑ&S؆fknms5N7Ѕd/~'!Mh[x=ib5H \ɰ03L20-xͼHNarO F[ZȾw}񫫟Gcq J.yTGϰS(K-SEt.Ś9՞.ÑCUͽ WHRF#+\+:Ům7@UG2+p:l8R\Z\|B+o=|)7~!Aei$20((˯ ,I IuI%*I~ڻ } >RDzC۫w_eIuKEM#\Pzw O>9^_J +Z粏Dכd+:%\03ԁİ niilkz̤ӼKXrfY'u qE+it1jK2W[@֋s GZmrm.8W]T!罡9GA8嵰rB^kI~aMGWGY]b֥UCRzxMz,m!uL>-9mz۫[I=YiӴ4uYk0~ ;$M ^żoweyLx/XG*޽Ht/-[E,y['[a4GC[Kayfl'p\攣u'+N6&lEuMާ\58$y˛#&),Aҿ_-$JY*/V-kXq*CIeZM:}'?7PH0vsÿaUi:S8NbAw򠎳̡찮K9eе(41zfB9V\±v͎",M b/ =f{ o~HS\HC41nD&Y0 d +`ؘFKGl|!1I H(w?uj?ajek< s-Na4. [4:'_8逴5CIQ9_V{p%k$"kfc72&Ƶf9#\ i!jhTE!%yg:puoY^.(~p)|!&{)s~qstݹui\qc=|H D&ZK2fnեpZo^E SulM{,^cU`ccDgrFvW Vi +5x޺?^<}Ә>km߂ +e@{jK^{ui.6v.g&ԮGdG%pf: T)k#Jv[Mx(~5`԰eQE4Ndj׫M%D*A °`3]l6q0}fmXٞf)'T;ƣL]maJ*85u@AZ Wȫ$N1Ea+I"61S<ȱ=Ӟ^,^?ӊ3hRL6eժV:-X7Ȯ E6H8!88? |z "re`ۺ/Y0@©ði"ƥz=z cQכ==z/i@V˭5p^8!߼VAi +_~w}_|iꯨHj`dj%Xߩ0U獥3"kD(BCI O V.Ti͚0`8~ F$DA9VDb&WW1b@[ F [`:rMCѻ/6%|1z5"_dқPi]JF_K2{8/Q]:,K|H}.Qgx7MIn{mѕʤ(~T0h%WjV'^.&Gs0lom>\+sž8kX*P{p*C#+?qLP&q?]Z=1@#pݬM|T AtJ1ghϾ&ő^VKk)=*@$d-U)ʐ9@ -.Qga:]*T >h l"žͯ +8UXt$MמV<$@ U=E;%;W>SSSqΈ@\bj;%4D4}>w)Kɺ~% kn!#4ra]+ψ4&&rI 惩F4LJlV| `HOqE) =+uKU2d#+-O}o,!hJ0)RFMuˣ\&IP,W[:\Hˆf0.jJ0m3Z)q=:*=o]IZK7HE s7&t3)A^|tXEAwP$t+C(r*"CyzG%ʖDܑ;z9 ERBCgHJKVڡK +M$'qf{ ؚ,Kz{O˛pbVr~w.٬ڴG ]wWD?n ӥWk)ʌRxe[hϻWM{-0ќmϾWl|:RW ?C3 k›ՀޖN4KmB΁T籙[tKc-s˗la^q;Hw88Յًo*;6;^\&hj֫kL;U-Y#@drhm.\HF0[lb\"A3vZ(ZҚe;ff8ޒ4= + [I|9yM&?MZulj{'ُjfyi$QU"i87-œjҧBNw3>tO@[[9t$yS_7 n]>sY|MYCGo5^l$n*@BCzBցX5iREbKӣ4Vn*@qX&$5A2R\:($>@; r^;sMԨc^rOp +&w]yBWӚ/ON&1j3nAEvUo>Z;MLki7ur"uߣ3WhW%!jr>WpsO(hd0s֔fGf)(N=I)L[ߔ3NɃ"=^W4i!{67d@ f\QԴVrZ>Ф +(TcVd d( + +0Cv9I U(rz,Z6$6{=A~8?Ye ~rAs2ߐeMw,F,|cOPޘJ^>jh MXHJn֭)ɲeIܮ$nKh.|I>vrn)HC.7 L妠(_. \3svh=T__,2`!'H*ɑ%:E dD70 H*j{ dUh(YY2˨,pv> [saab uڲB:c7Uj$$xO\^%Dm 2ݘvꩤH@PGZQoJh( o8bAMyRQ]Iͱklꬨ99O}К: + fWneQQchZUz1B).b~&lڡ -xai%i1J/zs +ѩ9{{I2#k(K(O[ia2ϑl=6 5ǕylشB}LK +RK'ZCMdMk5Գ~ѷT2Ze@`u%AO A Ӏka*. sQy3Ͳ fVcz Qw9aڇ!G;/zHx!B-B73 +4R[ʘ.>UŧUR5n\>\Rr(yk/㧿0n7o5@GshEo__.綾Ξܑ_OUZ% +_~}}JYv` Us+9=TZ{_#]9nζrs+7ͽrsܛiqU:t-PKZO΀YHWǚ79}}nI,fa놆i#B7,px /TS[c \Bf"C]Lyڌ_̲1pQ71*Yr /߂Z[:t"R@?j0.&) +%\Ik}?s); +n̖(?h1d5VM/ⵛ>e̩u}4`k3je .5qًl۬$VN~|zH6cBA#WH" +w B\ZY֌9TZp KM a!~tkDMMLx@\)5BVH5|̓3'w}*jh6SaV +t337*Y ׍7iY_J`< 0{ALNyܙ4 TRh-$}zcA7k/|5,R,Zj;9] bbQԌ6 ٧P,= #gM"t2P뫦 S;+ZB>t|0}4V}Xِ6 +}px.I]6dxxk֜2MN]7!]4h:)s9zZÃ@-֬1xίg ''|Yg)qd)Jkc7դvFoIe7@IVؘW`Z뤟A0ij=EC:^&U 5a#40``!aOEyn%c(&`ԧ|yㅐ `IuZc$Q?()S5Eb|/؁ٝTf*锭{0THOV&H^h`xvC'z"f.eNoSvȈ4;׼b+VlZ&WUR;uWK=KaP׀Rp|";x䄂)pk?d N)? 8҄>?X|.ǨKʐJЗG%.blkٚ1W&Wߪ; +LXڗ;3>wn-~F2Yx5Do[唜]ןZjhCWa*c B!6Ah]6nh/(sNԞ_Tit@7=I%.U͎54i:E&<69%vwTv'uCxvX+5ژ_mlײ[8"K>l=r,bY }Q$:g'& Ҫb/Qx+4(4Rh}~WW^5i@TVxǴN= +;D4#p9C~#3PLY.w+qW ^2oG7:Ӆ-_~Ye@Tf;AjrY\eY=hN: R^U%B7ANNȥy{-ʈHF(![P}W,T8s@ST,#__ګeU܈+jmޏ/0xcBcLƋ>Ȭ5CMI%B9'Lzγ dDtѣeU'rvKorV?n,xs$ʃ~U8D TsȢ(Ega;Q`z"Bٱ;3 whˤPIBlpZ}ˆ@IiM䁇AQq1uµtt-_CPW+53PlxY"K)2G7+6DQb3oЬbӤh{a84]느p9e^.j +o qnD܈<6'H%%\)xpCu˫-6D*(XU,0ahkloŠ82;֎sWqznm;?do16AYZ/ח Ayy|[[yI8quP١W~S}"ϐ/胉Eli' ->u[I6RpĴMzDp *,O(.Z hں=uUo߸Y1#X ߲G-ѷjhS)P#"ܹ " \=;E@4nSE]jC/xVG~jݘY<%iP$nPT֋(D!l3є':$iuB\p:Wh1;%Jr< +&2O(3hi|zY`ܔ,5b #U2tG2a(QK&o2,8ցz'"$߀Hʵ"ZRձ5'(1^%ֻԢ[&x$d-"ٵ`6=/#[ a*#%!xk=uN`qݧHjt @CZú gפ4Fk[by#,R)%~5Z8ϦN%ьiKv3T:]gHtЮgxj<#].B!2bak<[P,pqfܓG +x'f&T6CauW̤eEI[ҹ8=+{rޖhlM*}Z%T^yZ75yz +9zR}gfCڵX^D% JlRN{ߧj 3'=QL;38WmK+J׎`fvDWHTeɫL9)PaDqIvsjġ'ǡ%E/߱~x{/%]*FǷZQdT@QUt@Xv(yvR|麐/ჯ~دWG&Ʃ<R9o\q_lh^q_$Co^S;g=[#I7 `9OMɅ5^;=Ӊ{yze:v9]#l1'@dv>)P76s1razSlD$&cJ +QMS:eoI 8_ 0f֫tT] +pPi{[Z$ ?)YH!оySߏnTNI"ZPH +:LPTkV8mɻ2z2W{=S%vň KkSʨ =ϺLO/k.0se^ȭ)n91Hf. WV{9t[-ߧX klƪ^i.WGL1 +WdWT=NfYAlnz=Q66R4$)%x|!ǁ}C^Ξa⡥nr8G H(?6YKJȭـ=mVifV!%bjVN^0Wr%-jE$uEwR!v k4>ǰ1B9ִ4,`R͕gh&x!SՉ1x^n,w_rxN8!^gXTZAW2 (V+o B>WgT"P. vM1N|yv8>zMטPV1%7a^_8d?wsHث} tYd{).wg9_m-0Ő"ao_A_;?VU$U|,R"Z?eku<\ekqp|4"?9=t%h; L-)*r4sYW~&9b1ݖ*">i_4H66yxըUn?F5WH79K !2> c[W}İ>r7y&{v=Mv+T݉ է"hB&iGF,873 2WDϪ2xyc]\\J'qŅ` |%Di_KQ1٧쯛c6^tUޔ" lݟ((AߨwBɌ_-8pS6D}(}/,ODP|r}US +m)ͪI"x5[1_u-l,qiK%iUa T p9 aN:ޚ$9eg"޸$@T8:f2A,g`%,p8">c"jd$[:1-pN+w 7,\.6XȀCKJ]GQuZ6k"j)2fc/.'ӌ*7֒.^ 0*ӟSw|:J c{m~㲣e6 +@^ +B}!؞8>20Li[?ljF\+CpE]GZ;Ils#@-V^=O+XzUR/ꖜ5# :&NVrxs"D],>2QJ #qg+|91 *qJ+f*Ly-Qț%[rKP@oj^5"8ښ~9+n9K5T j5aSY!E{5u9 u[|lSĆK3]ou+:;NC)ƈ3yު|=}ڬN{VP3 #w"11 60[Z_؍fےKY>TY,^)PJ6$2Rzd8c>וJu%L까=89Ze 5/vl;dKfIeuƂB@M++IOtiB똊wAcArztVXڕ5>Xhe5u)Q6iZL pc͕,MX\;^D_/%NoI`нR!cH$Q>Ȉ@DCWcj-<%M5bh+޽[Śibrj V}s žm-dědS}Ƃp@(R 9Z>AY&%c^4ElJ l$+\ZPhc\T مanH-c"'j0ǚZKx.IkE aφmUM5IZh܊b.m ɘd\V2,-5Ǧ_mJ5f' [胥@(A;H"gkR)ߖZU%,=ML{4 +n)p%QDqn ~\RWV,z߈ř͝s w0EcJxs&Kdl8M7 7cr)JL2zjKxp-Kj?55w]kk +RbGkŽ!t:3`Ȫo7GQ^{5WETY:qttȣpGi /SS0.|&F/Lre ?ayFWJ!pV~ x|3x, +ُRIm_6uBtI>oϷ/l$~%}y 5m +F94 $&,=E\eN~x+lw]xoL$V& +ÿu2j:0з0y 0=QIʅ2SSƦh~;A7 ?$@ IR NRM> kIjydָ݇Qx9fɿ+{U9NhH9n%f +FTvJaM_&3z﵏ msVr<ۿ ~0<{xH q84xIm,_tdKfEԇlJ>m"h'\ -NqvIXj(OIl.*4 +h6e0FSB2õ.=1ߏp~bi8yJW[VUyZK.>;!d٥nIZDao%6Iˏ?t#!B% *~P@=H@EH=׊N/zS{ap+Ɩ8%N_Juii%}@w39TBU7M2L,7GG|'G'i҄v[ +=E$ Vp|*#jv~}ʇd@ܟ]iMhKF05|1~d^J&yR`#I \f[T?AXmy0wÓOsyNOU'@ǯ7Ɍ%ύ'!n4&ѩ76'!Q~iK;+,LY.;U)@Rh.rNI쎾e4Q9:Zt 4JUɫ=M"^>%5|-pme҅dfVݢ>N*ypyUqmfTFO!9ĦR"XAleɠD s!IKw:i'G-mm.:?)FkQc+E iwUNRdV׊ cFI%7{)7_Jt&K2{q8_^2g^#2ɐ+ފ/K۱ }f,HXPE)RS +3FtݤQ-jԐ&)^20 `Gl=p:|_P!Fq +1b/0dC`$cvȪ-զE@#>n+U PXPtXKayƃĺ+ӛrܑ2؂(ʹQ.piE`/ҿaciGC؀eVR$DqrJO WXȟ9kl!Y2=p]ʝP +:sPLknH2I)ZL4_܏V@H Փy.4NyjI{aznADhK[/ӉLY.;UmZwfP8;25K;W_MU0Oaw o:i mYcN25tI'P~Jioć壍9Y +#eGk_NlF )}hZ:pO `0[A$Gte”tɥM5Igkv+'K3:I^)G@~Ӛ +LCx)IgOd3:XP5p)9 +S4&JN `(󚙞-^Ff\U@%TK].=%HGz-7+&&a[&HG8-ѭ+0R׿؎ؽ/ $e[) +>%<G: + 7NQ˂Mӊ.Y t;BxTm&}.pcM(˱95wZ_(dmM97Sr>v~AG6SbÓ|Ó'd7dӦOmx%),EDEqrbn[5áPԅ&-ŝ}\ܩ;uNL5&Rȸ2w*eɌ>q3Z>s[Nue,ML6%9EL7T֊Bj͊ {us:\{(;fo뗥, KۡTTn<n#s ?r;Ou-ZosUo#zX&lZ~&xnHrbާD$xK`Q)4B%YuZrkXBډ\bo%cftI_.i",8Vx,]6} uˋ扝!d*aT@PQ,X^?Orz6 ?Y> )ݡ=͘[DO{ㆂ`*F5`RLlGr6ٺtITb=}]0 F"q<)$x<~I$N-8Im}?KPsb &BL.fVV~Ӳ\m쾶E{Z2"J씜syp=ۿmzc}KvJֹ1zS,cwy(Wwo-}b]컋}wo+ּW}q~MǦGs8 GpTۻ:7LV\768J:/ϖS5 Ԉ&[eu,\;fC+?خv, a) A}[)߮%فyCC(؉]V}oqܘRkqz)p dw2ץ܍G@Wy Yj2J7WF #N-i W$JyKJvք}Q.~ .#%F:fr/@TE*D׭ch?݈ iHn#EӐiWm8$PR;@ 1#c,WG*+&zN6$ni9[,G^ܺh-Ü,i'ydnJCzH=EŦ[]g";T?#0oc xv3Xvؙ#QYp$PPf^_EgD@_g{_! endstream endobj 9 0 obj <> endobj 89 0 obj <>stream +8;YPjgTe[>#c3pdfoQ*acg?L2DA!\0L`s+2an!8Y;;cBr(@_J-W#Flh+8"$."b\c< +X]aG@X0ark;9#/+1-UgWaK(@/cYUBMl+:L$$a)/am'T-o_CrSG,/&kbi@Z^` +21t9\F2aOJ,Z8Dji1W+(;rU'%k_im#9W4F8=%fB*\Bar2`&7^gFsdR^@BV,(SWT)p+=-*6#!(DsTV +&@YXQa9%Gj,J@W4Z8>XBJ(KqfhI!O8O2JBXZ"iEH$*nHhI&T8Def#Q"!PnWq_m8VF +#s5!-gf--^fT_h6lnMRk:^2.lJ.;O=37"- endstream endobj 90 0 obj [/Indexed/DeviceRGB 255 91 0 R] endobj 91 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 19 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 227.5068 553.9785 cm +0 0 m +-1.414 1.415 -12.021 12.021 y +-20.506 12.021 l +-20.506 10.021 l +-13.607 10.021 l +-13.314 9.73 l +-2.709 -0.877 -1.294 -2.292 v +-0.952 -2.627 -0.716 -3.008 -0.565 -3.394 c +0 -2.828 l +1.414 -1.414 0 0 v +f +Q + endstream endobj 20 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +278.002 541 -28.001 21 re +f + endstream endobj 21 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +221.001 410 -10 9 re +f + endstream endobj 22 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +221.001 398 -10 9 re +f + endstream endobj 23 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +268 414 -9 5 re +f + endstream endobj 24 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +268 406 -9 5 re +f + endstream endobj 25 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +268 398 -9 5 re +f + endstream endobj 26 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +417 404 -18 8 re +f + endstream endobj 27 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +462 399 -12 16 re +f + endstream endobj 28 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +122.001 349 -4 8 re +f + endstream endobj 29 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 72.0015 321.0913 cm +0 0 m +0 -18.182 l +10 -16.363 9.09 -9.09 v +8.181 -1.819 0 0 y +f +Q + endstream endobj 30 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +417 310 -18 9.001 re +f + endstream endobj 31 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +326 541 -28 21 re +f + endstream endobj 32 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 76 255.002 cm +0 0 m +0 -0.555 -1.343 -1.002 -3 -1.002 c +-4.657 -1.002 -6 -0.555 -6 0 c +-6 0.553 -4.657 1 -3 1 c +-1.343 1 0 0.553 0 0 c +f +Q + endstream endobj 33 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 130.0459 254.9551 cm +0 0 m +5.272 5.27 5.273 13.816 0 19.09 c +-9.545 9.545 l +h +f +Q + endstream endobj 34 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 129.1533 265 cm +0 0 m +-0.251 4.393 -3.76 7.9 -8.151 8.152 c +-8.151 12.01 l +-1.641 11.752 3.599 6.512 3.857 0 c +h +-8.151 -13.012 m +-8.151 -9.152 l +-3.76 -8.9 -0.25 -5.391 0 -1 c +3.857 -1 l +3.6 -7.512 -1.64 -12.752 -8.151 -13.012 c +-21.163 -1 m +-17.305 -1 l +-17.055 -5.393 -13.544 -8.902 -9.151 -9.152 c +-9.151 -13.012 l +-15.664 -12.754 -20.905 -7.512 -21.163 -1 c +-9.151 12.01 m +-9.151 8.152 l +-13.543 7.902 -17.054 4.393 -17.305 0 c +-21.163 0 l +-20.904 6.512 -15.663 11.752 -9.151 12.01 c +-4.845 0 m +-5.071 1.727 -6.429 3.084 -8.151 3.311 c +-8.151 7.189 l +-4.299 6.939 -1.213 3.854 -0.964 0 c +h +-8.151 -4.311 m +-6.428 -4.086 -5.07 -2.727 -4.845 -1 c +-0.964 -1 l +-1.212 -4.854 -4.299 -7.939 -8.151 -8.189 c +h +-12.459 -1 m +-12.233 -2.727 -10.876 -4.086 -9.151 -4.311 c +-9.151 -8.189 l +-13.005 -7.941 -16.093 -4.854 -16.341 -1 c +h +-9.151 3.311 m +-10.875 3.084 -12.232 1.727 -12.459 0 c +-16.341 0 l +-16.092 3.854 -13.005 6.941 -9.151 7.189 c +h +-8.151 0 m +-8.151 2.35 l +-6.959 2.139 -6.019 1.193 -5.809 0 c +h +-8.151 -1 m +-5.809 -1 l +-6.019 -2.193 -6.958 -3.139 -8.151 -3.348 c +h +-11.495 0 m +-11.285 1.195 -10.345 2.139 -9.151 2.35 c +-9.151 0 l +h +-9.151 -1 m +-9.151 -3.35 l +-10.346 -3.141 -11.286 -2.195 -11.495 -1 c +h +4.821 0 m +4.562 7.055 -1.099 12.715 -8.151 12.975 c +-8.151 13 l +-9.151 13 l +-9.151 12.975 l +-16.206 12.717 -21.867 7.055 -22.127 0 c +-22.151 0 l +-22.151 -0.482 l +-22.151 -0.488 -22.152 -0.494 -22.152 -0.5 c +-22.152 -0.508 -22.151 -0.514 -22.151 -0.52 c +-22.151 -1 l +-22.127 -1 l +-21.868 -8.055 -16.206 -13.717 -9.151 -13.977 c +-9.151 -14 l +-8.672 -14 l +-8.652 -14 l +-8.633 -14 l +-8.151 -14 l +-8.151 -13.977 l +-1.098 -13.717 4.563 -8.053 4.821 -1 c +4.849 -1 l +4.849 0 l +h +f +Q + endstream endobj 35 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 260.7529 261.0117 cm +0 0 m +-0.266 0.26 -0.179 0.473 0.193 0.473 c +6.252 0.473 l +6.625 0.473 6.716 0.255 6.457 -0.012 c +3.782 -2.756 l +3.522 -3.022 3.092 -3.027 2.826 -2.768 c +h +f +Q + endstream endobj 36 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +115.001 224 -2 5 re +f* + endstream endobj 37 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +126.001 224 -2 5 re +f* + endstream endobj 38 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 272.5024 220 cm +0 0 m +-0.831 0 -1.5 -0.674 -1.5 -1.5 c +-1.5 -2.328 -0.831 -3 0 -3 c +0.827 -3 1.5 -2.328 1.5 -1.5 c +1.5 -0.674 0.827 0 0 0 c +f +Q + endstream endobj 39 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 256 211 cm +0 0 m +0 8 l +0 9.104 -0.895 10 -2 10 c +-3.999 10 l +-3.999 -2 l +-2 -2 l +-0.895 -2 0 -1.105 0 0 c +f +Q + endstream endobj 40 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 305.0405 224.998 cm +0 0 m +14 0 l +12.929 -10 6.963 -10 v +1 -9.998 0 0 y +f +Q + endstream endobj 41 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 451.7456 211.7441 cm +0 0 m +-0.496 0.498 -0.881 1.063 -1.166 1.662 c +-5.529 -2.701 l +-5.146 -3.24 -4.724 -3.76 -4.242 -4.242 c +-3.76 -4.727 -3.239 -5.146 -2.701 -5.529 c +1.662 -1.168 l +1.062 -0.881 0.496 -0.496 0 0 c +f +Q + endstream endobj 42 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 325.6167 510.0049 cm +0 0 m +-0.496 1.177 -2.151 1.75 -4.514 1.75 c +-5.795 1.75 -7.289 1.571 -8.91 1.239 c +-8.305 0.792 -7.752 0.278 -7.275 -0.303 c +-6.285 -0.151 -5.354 -0.064 -4.514 -0.064 c +-4.511 -0.064 l +-2.397 -0.064 -1.725 -0.577 -1.672 -0.705 c +-1.613 -0.843 -1.768 -1.949 -3.918 -3.875 c +-4.335 -4.25 -4.805 -4.624 -5.297 -4.994 c +-7.334 -6.529 -9.952 -8.003 -12.868 -9.232 c +-15.797 -10.467 -18.697 -11.315 -21.202 -11.699 c +-22.185 -11.851 -23.114 -11.937 -23.951 -11.937 c +-26.066 -11.937 -26.742 -11.423 -26.795 -11.298 c +-27.006 -10.799 -25.883 -9.071 -23.176 -7.021 c +-23.213 -6.687 -23.235 -6.349 -23.235 -6.005 c +-23.235 -5.582 -23.197 -5.168 -23.14 -4.76 c +-27.031 -7.4 -29.23 -10.188 -28.464 -12.002 c +-27.969 -13.178 -26.31 -13.75 -23.951 -13.75 c +-22.676 -13.75 -21.184 -13.573 -19.568 -13.242 c +-17.293 -12.777 -14.764 -12 -12.164 -10.903 c +-9.572 -9.811 -7.25 -8.546 -5.331 -7.245 c +-1.438 -4.604 0.766 -1.814 0 0 c +f +Q + endstream endobj 43 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 462.9331 225.7598 cm +0 0 m +-4.363 -4.363 l +-3.764 -4.65 -3.199 -5.033 -2.703 -5.531 c +-2.205 -6.029 -1.822 -6.592 -1.535 -7.191 c +2.828 -2.83 l +2.444 -2.291 2.023 -1.771 1.541 -1.287 c +1.057 -0.805 0.537 -0.385 0 0 c +f +Q + endstream endobj 44 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 460.23 211.7441 cm +0 0 m +-0.496 -0.496 -1.061 -0.881 -1.66 -1.168 c +2.703 -5.529 l +3.24 -5.146 3.76 -4.727 4.244 -4.242 c +4.727 -3.76 5.147 -3.238 5.531 -2.701 c +1.168 1.662 l +0.881 1.063 0.498 0.494 0 0 c +f +Q + endstream endobj 45 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 451.7456 220.2285 cm +0 0 m +0.496 0.498 1.062 0.881 1.662 1.168 c +-2.701 5.531 l +-3.239 5.146 -3.76 4.727 -4.242 4.244 c +-4.727 3.76 -5.146 3.24 -5.529 2.701 c +-1.166 -1.66 l +-0.881 -1.061 -0.496 -0.496 0 0 c +f +Q + endstream endobj 46 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 67.0015 173 cm +0 0 m +0 -12.998 l +0 -15.762 2.239 -17.998 5 -17.998 c +7.762 -17.998 10 -15.762 10 -12.998 c +10 0 l +h +f* +Q + endstream endobj 47 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 118.0015 173 cm +0 0 m +0 -9.555 l +-1.19 -10.248 -2 -11.523 -2 -13 c +-2 -15.211 -0.209 -17 2 -17 c +4.209 -17 6 -15.211 6 -13 c +6 -11.523 5.19 -10.248 4 -9.555 c +4 0 l +f +Q + endstream endobj 48 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 168.001 173 cm +0 0 m +-9.039 0 l +-11.779 0 -14 -2.238 -14 -4.998 c +-14 -7.762 -11.779 -9.998 -9.039 -9.998 c +0 -9.998 l +h +f +Q + endstream endobj 49 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 168.0015 163.002 cm +0 0 m +9.039 -0.002 l +11.779 -0.002 14 2.236 14 4.998 c +14 7.758 11.779 9.998 9.039 9.998 c +0 9.998 l +h +f +Q + endstream endobj 50 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +162.001 171 6 1 re +f + endstream endobj 51 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +175.002 171 -7 1 re +f + endstream endobj 52 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 177.002 171.5 cm +0 0 m +0 -0.277 -0.224 -0.5 -0.5 -0.5 c +-0.776 -0.5 -1 -0.277 -1 0 c +-1 0.275 -0.776 0.5 -0.5 0.5 c +-0.224 0.5 0 0.275 0 0 c +f +Q + endstream endobj 53 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +368.002 132 -4 -12 re +f + endstream endobj 54 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +207.001 168 -3 6 re +f + endstream endobj 55 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +214.001 163 -3 6 re +f + endstream endobj 56 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +221 160 -3 6 re +f + endstream endobj 57 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +228.001 167 -3 6 re +f + endstream endobj 58 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 269.1616 155.9004 cm +0 0 m +2.274 1.563 l +2.274 19.979 l +-9.556 23.475 l +-12.033 21.629 l +0.008 18.342 l +h +f +Q + endstream endobj 59 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 354.1909 170.1016 cm +0 0 m +0.254 -0.982 -0.496 -2.027 -1.676 -2.334 c +-2.855 -2.641 -4.018 -2.092 -4.273 -1.111 c +-4.529 -0.129 -3.779 0.916 -2.6 1.223 c +-1.418 1.529 -0.255 0.98 0 0 c +f* +Q + endstream endobj 60 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 366.9995 174.6172 cm +0 0 m +0.908 0.357 1.995 -0.236 2.424 -1.326 c +2.856 -2.42 2.467 -3.594 1.562 -3.953 c +0.65 -4.313 -0.434 -3.717 -0.865 -2.627 c +-1.297 -1.533 -0.905 -0.359 0 0 c +f* +Q + endstream endobj 61 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 359.2065 172.0156 cm +0 0 m +-0.513 -1.104 -1.935 -1.535 -3.174 -0.959 c +-4.414 -0.383 -5.004 0.98 -4.49 2.086 c +-3.977 3.189 -2.557 3.619 -1.316 3.045 c +-0.075 2.469 0.514 1.105 0 0 c +f* +Q + endstream endobj 62 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 364.2524 175.1016 cm +0 0 m +0 -0.895 -0.725 -1.617 -1.618 -1.617 c +-2.511 -1.617 -3.235 -0.895 -3.235 0 c +-3.235 0.893 -2.511 1.617 -1.618 1.617 c +-0.725 1.617 0 0.893 0 0 c +f* +Q + endstream endobj 63 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 448.4448 170 cm +0 0 m +0.889 -8 l +14.223 -8 l +15.112 0 l +h +f +Q + endstream endobj 64 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +356.002 132 -4 -12 re +f + endstream endobj 65 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +369.002 205 -15 21 re +f + endstream endobj 66 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 359.0024 226.5605 cm +0 0 m +0 -1.932 -1.569 -3.5 -3.5 -3.5 c +-5.434 -3.5 -7 -1.932 -7 0 c +-7 1.934 -5.434 3.5 -3.5 3.5 c +-1.569 3.5 0 1.934 0 0 c +f +Q + endstream endobj 67 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 362.0024 227.0605 cm +0 0 m +0 -1.656 -1.345 -3 -3 -3 c +-4.657 -3 -6 -1.656 -6 0 c +-6 1.658 -4.657 3 -3 3 c +-1.345 3 0 1.658 0 0 c +f +Q + endstream endobj 68 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 367.062 227.0313 cm +0 0 m +0 -2.227 -1.805 -4.031 -4.029 -4.031 c +-6.255 -4.031 -8.06 -2.227 -8.06 0 c +-8.06 2.225 -6.255 4.029 -4.029 4.029 c +-1.805 4.029 0 2.225 0 0 c +f +Q + endstream endobj 69 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 371.0024 227.0605 cm +0 0 m +0 -1.656 -1.345 -3 -3 -3 c +-4.658 -3 -6 -1.656 -6 0 c +-6 1.658 -4.658 3 -3 3 c +-1.345 3 0 1.658 0 0 c +f +Q + endstream endobj 70 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +211 130.988 -3 -11 re +f + endstream endobj 71 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +217.001 131 -3 -11 re +f + endstream endobj 72 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +223.001 131 -3 -11 re +f + endstream endobj 73 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +268.002 120 6 2 re +f + endstream endobj 74 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +261.002 117 6 2 re +f + endstream endobj 75 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 360.0024 128.7578 cm +0 0 m +2 -5.75 l +2 3.242 l +-2 3.242 l +-2 -5.758 l +h +f +Q + endstream endobj 76 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +254.002 122 6 2 re +f + endstream endobj 77 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 455.0024 118.5 cm +0 0 m +0 -0.828 -0.673 -1.5 -1.5 -1.5 c +-2.329 -1.5 -3 -0.828 -3 0 c +-3 0.828 -2.329 1.5 -1.5 1.5 c +-0.673 1.5 0 0.828 0 0 c +f +Q + endstream endobj 78 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 460.0024 114.5 cm +0 0 m +0 -1.381 -1.12 -2.5 -2.5 -2.5 c +-3.882 -2.5 -5 -1.381 -5 0 c +-5 1.381 -3.882 2.5 -2.5 2.5 c +-1.12 2.5 0 1.381 0 0 c +f +Q + endstream endobj 79 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +304 33 9 1 re +f + endstream endobj 80 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +304 31 9 1 re +f + endstream endobj 81 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +q 1 0 0 1 320.4741 14.0156 cm +0 0 m +1.076 1.882 0.446 4.94 -1.389 6.064 c +-5.45 -1.491 l +-4.826 -1.848 -4.147 -2.017 -3.477 -2.017 c +-2.088 -2.017 -0.738 -1.292 0 0 c +f +Q + endstream endobj 82 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +q 1 0 0 1 303.9995 20.8584 cm +0 0 m +0 -0.858 l +0 -2.294 0.769 -3.619 2.016 -4.331 c +2.872 -4.82 l +2.948 -4.511 3.001 -4.191 3.001 -3.858 c +3.001 -1.996 1.723 -0.445 0 0 c +f +Q + endstream endobj 83 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 82.6978 70.6006 cm +0 0 m +0 -1.054 l +0.192 -1.137 0.411 -1.233 0.657 -1.342 c +0.903 -1.449 1.156 -1.561 1.417 -1.675 c +1.679 -1.789 1.943 -1.902 2.21 -2.018 c +2.477 -2.131 2.731 -2.237 2.971 -2.337 c +3.211 -2.436 3.427 -2.523 3.619 -2.603 c +3.812 -2.681 3.967 -2.74 4.087 -2.781 c +4.339 -2.872 4.543 -3.009 4.7 -3.192 c +4.855 -3.375 4.979 -3.562 5.069 -3.755 c +5.176 -3.977 5.255 -4.211 5.303 -5.601 c +5.303 -7.601 l +-8.697 -7.601 l +-8.697 -4.457 l +-8.643 -4.211 -8.563 -3.977 -8.455 -3.755 c +-8.365 -3.562 -8.242 -3.375 -8.085 -3.192 c +-7.929 -3.009 -7.729 -2.872 -7.482 -2.781 c +-7.356 -2.74 -7.191 -2.679 -6.987 -2.597 c +-6.783 -2.517 -6.555 -2.423 -6.303 -2.318 c +-6.051 -2.214 -5.785 -2.101 -5.505 -1.98 c +-5.227 -1.86 -4.949 -1.741 -4.674 -1.621 c +-4.397 -1.5 -4.136 -1.387 -3.89 -1.279 c +-3.643 -1.17 -3.427 -1.074 -3.242 -0.99 c +-3.242 0.036 l +-3.253 0.084 -3.273 0.157 -3.3 0.257 c +-3.327 0.356 -3.355 0.456 -3.386 0.559 c +-3.421 0.678 -3.464 0.808 -3.512 0.945 c +-3.686 1.27 -3.824 1.637 -3.926 2.048 c +-4.028 2.459 -4.079 2.896 -4.079 3.358 c +-4.079 3.965 -4.014 4.479 -3.885 4.897 c +-3.756 5.318 -3.581 5.66 -3.358 5.924 c +-3.137 6.188 -2.877 6.38 -2.58 6.5 c +-2.282 6.621 -1.963 6.681 -1.621 6.681 c +-1.284 6.681 -0.969 6.622 -0.671 6.505 c +-0.374 6.388 -0.113 6.199 0.112 5.938 c +0.337 5.677 0.514 5.334 0.644 4.911 c +0.773 4.489 0.837 3.97 0.837 3.358 c +0.837 2.907 0.787 2.48 0.688 2.075 c +0.589 1.67 0.453 1.306 0.279 0.98 c +0.231 0.832 0.186 0.69 0.144 0.559 c +0.108 0.443 0.075 0.334 0.045 0.23 c +0.015 0.124 0 0.047 0 0 c +f +Q + endstream endobj 84 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 64.6978 70.6006 cm +0 0 m +0 -1.054 l +0.192 -1.137 0.411 -1.233 0.657 -1.342 c +0.903 -1.449 1.156 -1.561 1.417 -1.675 c +1.679 -1.789 1.943 -1.902 2.21 -2.018 c +2.477 -2.131 2.731 -2.237 2.971 -2.337 c +3.211 -2.436 3.427 -2.523 3.619 -2.603 c +3.812 -2.681 3.967 -2.74 4.087 -2.781 c +4.339 -2.872 4.543 -3.009 4.7 -3.192 c +4.855 -3.375 4.979 -3.562 5.069 -3.755 c +5.176 -3.977 5.255 -4.211 5.303 -5.601 c +5.303 -7.601 l +-8.697 -7.601 l +-8.697 -4.457 l +-8.643 -4.211 -8.563 -3.977 -8.455 -3.755 c +-8.365 -3.562 -8.242 -3.375 -8.085 -3.192 c +-7.929 -3.009 -7.729 -2.872 -7.482 -2.781 c +-7.356 -2.74 -7.191 -2.679 -6.987 -2.597 c +-6.783 -2.517 -6.555 -2.423 -6.303 -2.318 c +-6.051 -2.214 -5.785 -2.101 -5.505 -1.98 c +-5.227 -1.86 -4.949 -1.741 -4.674 -1.621 c +-4.397 -1.5 -4.136 -1.387 -3.89 -1.279 c +-3.643 -1.17 -3.427 -1.074 -3.242 -0.99 c +-3.242 0.036 l +-3.253 0.084 -3.273 0.157 -3.3 0.257 c +-3.327 0.356 -3.355 0.456 -3.386 0.559 c +-3.421 0.678 -3.464 0.808 -3.512 0.945 c +-3.686 1.27 -3.824 1.637 -3.926 2.048 c +-4.028 2.459 -4.079 2.896 -4.079 3.358 c +-4.079 3.965 -4.014 4.479 -3.885 4.897 c +-3.756 5.318 -3.581 5.66 -3.358 5.924 c +-3.137 6.188 -2.877 6.38 -2.58 6.5 c +-2.282 6.621 -1.963 6.681 -1.621 6.681 c +-1.284 6.681 -0.969 6.622 -0.671 6.505 c +-0.374 6.388 -0.113 6.199 0.112 5.938 c +0.337 5.677 0.514 5.334 0.644 4.911 c +0.773 4.489 0.837 3.97 0.837 3.358 c +0.837 2.907 0.787 2.48 0.688 2.075 c +0.589 1.67 0.453 1.306 0.279 0.98 c +0.231 0.832 0.186 0.69 0.144 0.559 c +0.108 0.443 0.075 0.334 0.045 0.23 c +0.015 0.124 0 0.047 0 0 c +f +Q + endstream endobj 85 0 obj <>>>/Subtype/Form>>stream +0.137 0.123 0.126 rg +/GS0 gs +q 1 0 0 1 397.6987 12.3965 cm +0 0 m +-1.628 0 -2.948 0.704 -2.948 1.572 c +-2.948 2.439 -1.628 3.144 0 3.144 c +1.628 3.144 2.948 2.439 2.948 1.572 c +2.948 0.704 1.628 0 0 0 c +22.651 11.045 m +19.187 14.982 12.204 13.93 8.247 11.322 c +6.113 9.919 5.021 7.512 2.965 6.035 c +2.439 5.658 1.844 5.428 1.219 5.262 c +-0.642 4.768 -2.76 4.846 -4.021 3.327 c +-5.896 1.07 -3.521 -0.829 -1.198 -1.162 c +2.076 -1.633 5.45 -1.29 8.73 -1.043 c +11.937 -0.801 15.324 -0.358 18.182 1.148 c +20.363 2.3 22.778 3.81 23.612 6.183 c +24.198 7.853 23.835 9.7 22.651 11.045 c +f +Q + endstream endobj 86 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +34.001 398 -20 16 re +f + endstream endobj 87 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 18.8545 414.147 cm +0 0 m +-0.707 0.707 l +4.793 6.207 l +5.5 5.5 l +h +f +Q + endstream endobj 88 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 29.1475 414.147 cm +0 0 m +-5.5 5.5 l +-4.793 6.207 l +0.707 0.707 l +h +f +Q + endstream endobj 161 0 obj <> endobj 11 0 obj <> endobj 160 0 obj <> endobj 159 0 obj <> endobj 158 0 obj <> endobj 157 0 obj <> endobj 156 0 obj <> endobj 155 0 obj <> endobj 154 0 obj <> endobj 153 0 obj <> endobj 152 0 obj <> endobj 151 0 obj <> endobj 150 0 obj <> endobj 149 0 obj <> endobj 148 0 obj <> endobj 147 0 obj <> endobj 146 0 obj <> endobj 145 0 obj <> endobj 144 0 obj <> endobj 143 0 obj <> endobj 142 0 obj <> endobj 141 0 obj <> endobj 140 0 obj <> endobj 139 0 obj <> endobj 138 0 obj <> endobj 137 0 obj <> endobj 136 0 obj <> endobj 135 0 obj <> endobj 134 0 obj <> endobj 133 0 obj <> endobj 132 0 obj <> endobj 131 0 obj <> endobj 130 0 obj <> endobj 129 0 obj <> endobj 128 0 obj <> endobj 127 0 obj <> endobj 126 0 obj <> endobj 125 0 obj <> endobj 124 0 obj <> endobj 123 0 obj <> endobj 122 0 obj <> endobj 121 0 obj <> endobj 120 0 obj <> endobj 119 0 obj <> endobj 118 0 obj <> endobj 117 0 obj <> endobj 116 0 obj <> endobj 115 0 obj <> endobj 114 0 obj <> endobj 113 0 obj <> endobj 112 0 obj <> endobj 111 0 obj <> endobj 110 0 obj <> endobj 109 0 obj <> endobj 108 0 obj <> endobj 107 0 obj <> endobj 106 0 obj <> endobj 105 0 obj <> endobj 104 0 obj <> endobj 103 0 obj <> endobj 102 0 obj <> endobj 101 0 obj <> endobj 100 0 obj <> endobj 99 0 obj <> endobj 98 0 obj <> endobj 97 0 obj <> endobj 96 0 obj <> endobj 95 0 obj <> endobj 94 0 obj <> endobj 93 0 obj <> endobj 92 0 obj <> endobj 5 0 obj <> endobj 162 0 obj [/View/Design] endobj 163 0 obj <>>> endobj 12 0 obj <> endobj 13 0 obj <> endobj 14 0 obj <> endobj 15 0 obj <> endobj 16 0 obj <> endobj 17 0 obj <> endobj 18 0 obj <> endobj 10 0 obj <> endobj 164 0 obj <> endobj 165 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 14.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Joseph Wain) () %%Title: (glyphish-icons.ai) %%CreationDate: 4/4/10 12:46 PM %%Canvassize: 16383 %%BoundingBox: 0 -615 472 36 %%HiResBoundingBox: 0 -614.5557 472 35.2681 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 10.0 %AI12_BuildNumber: 367 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0.137422 0.122799 0.126081 (K=100) %%+ 0 0 0 ([Registration]) %AI3_Cropmarks: -0.000488 -624 479.999 0 %AI3_TemplateBox: 268.499 -342.498 268.499 -342.498 %AI3_TileBox: -66.001 -708 545.999 84 %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: -284.001 50.002 1 1099 761 18 1 0 43 129 1 1 0 0 1 0 1 1 0 %AI5_OpenViewLayers: 7 %%PageOrigin:243.9995 -381.998 %AI7_GridSettings: 48 48 48 48 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 166 0 obj <>stream +%%BoundingBox: 0 -615 472 36 %%HiResBoundingBox: 0 -614.5557 472 35.2681 %AI7_Thumbnail: 96 128 8 %%BeginData: 12918 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 %524C45A8FD0EFFA827A8FD0FFF7DA8FD06FFA87DFFFFA1A8FFFFA87DFD2D %FF52A827A27D2752FF2727A85227FFFF7D27A827A852277DA82752277DFF %FF5227FD047DA87DA22727A827277D7D7D5252A827277DFFA84B52A82752 %A852275227FD1FFF52527DFF527DFD04527D5252A8FFFD047DA8277D5252 %7D277D52FFA8527D527D7D52A8527D7D5252527D7D527D52527D7D7D52FF %A827FF527D5252527D52527DFD1EFF527D27A85227527D7D7D52A8207DFF %7D7DA852FF2727527D7D527D7DFFCA2727527D7D5227525227277D52FF52 %7D7D7D277D76A852A87D277D7D274B7D7DA87D527DFD20FFA8A8FFA8FD05 %FFA8A8FD08FFA8FFFFFFA8FD04FFA8277DFFFFA827527D7DFD07FFA8A8FD %04FFA8FFA8A8FFFFA8FFA8FD40FFA87DA8FFFFA87DFFA8FDFCFFFD60FFA8 %2752FD07FF522752A8FD05FFA8FD1CFF7D277DFD07FF7DF827A8FD05FF7D %52527DA8FD05FF527D527DA8FD05FF525252A8FD04FFA827527DFD06FFA8 %7DFF5252FD04FF7D2752522752FD04FFA85227277DFD05FF52A87D2727FD %04FFA827FF527DFD06FFF87DF87DFD04FFA8FD04F827FD04FF7DFD04F87D %FD04FF52F827F8F8FD04FF277DFFFFA8FD04FF7DF8FFFFFFF8A8FFFF7D27 %A87D52FF27A8FFFFA827F8F8F82752FD05FFF827A8A8FD04FF527DFF7D52 %FD06FF52F8F87DFD05FFFD05F8FD04FF7DF827F8F852FD04FF5227FF7D27 %A8FFFFFF7D52FFFF52A8FFFFFFA827A8FFFF52A8FFFFFF27A8FD0452A8FF %FFFF7DF8F8527D7DFD04FFFD0552FD05FF27522752FD06FFA8F827FD06FF %7DF82727A8FD05FF52F82752FD05FF52F87D27F8FD04FFA8FD0452FD05FF %7D275252FD05FFA8277D7D27A8FD05FF7DA8A8FD05FFA87DA8FF527DFD06 %FFA8FF277DFD06FF27A8FD07FF7DA8FD08FF7DA8FD06FFA8F827F852FD06 %FFA8A8FD07FFA87DA8FD27FFA8FDFCFFFD4FFFA87D7DFD10FFA852527DFD %06FFA8FD08FFA87DA8FD07FFA8A8A8FFA8FD04FFA8A8FFA8FFA8FD0FFFA8 %FD08FF7D52FD06FFA827272752FD06FFA852A8FD05FF7D2752272752FD04 %FF7DF827A8FD06FF52F8277DFD05FF527D7D525227A8FFFFA8527D7D7D27 %52FD04FFFD042752FD05FF52F8F87DFD05FF52F8F827FD05FF52FD057DFD %04FF52277D277DFD04FF525227525252A8FFFFFF7DF8F827FD06FF27F8F8 %277DFD04FFA8A8A8272727FFFFFFA8A8527D522727FFFFFFA8FD04F827FD %04FFA8F8527DF8A8FD04FF27525227A8FD04FF27A87D7D527DFD04FF2727 %7D2727FD04FF522752525227FD05FF27F8F852FD05FFA8F8F8F87DFD04FF %5227F87D527DA8FFFFA827F8F827F852FD04FFFD05F8FD04FFA8F87DA8F8 %7DFD04FF7DF8F852FD05FFA827A85252FD06FF525252FD05FF7D27525227 %52FD06FF52F87DFD07FFF827FD05FF7D5252A8A87DFFFFFFA8F8F827F8F8 %27FD04FF7D5252527DFD05FF52F8F827FD07FFA87DF8A8FD04FFA8527DA8 %FD0FFF52522752A8FD07FFA8FD09FFA8FD05FF7DA87DA87D7DA8FFFFA8FD %067DFD0FFFA87DFD09FF5227A8FDFCFFFD32FFA852FD11FF7DA87DA8FD3F %FF7D2727A8FD06FF27F827FD08FFA827FD06FF52F8277DFD06FFA82752FD %08FF7D277DFD06FFA8FD09FF7DFD07FFA87DA87DFD07FF27A8FD05FF7D27 %F827F8FD05FFA827F827A8FD07FF27F8A8FD04FF52FD04F8A8FD04FF27F8 %F8F8A8FD06FF7DF8F87DFD05FF27F8F87DA8FD04FFA87DF8A8A8FD04FFA8 %FD04F87DFD05FFA8277DFD05FF7D27525227A8FFFFFFA87D2727277DFD05 %FFA827F827FD05FF52272752F8A8FD04FFFD04F827FD05FF7D27F852FD05 %FF7DF8F8F87DFD05FF7DF8F8F87DFD04FF7DFD04F87DFD06FF52FD06FFA8 %F8F8F827FD04FFA8F8272727F8A8FFFFA852F8F8F87DFD05FF52F85227F8 %7DFD05FF27F852FD05FF7DF8F852FD06FF7D27F8F87DFD06FF27F827FD06 %FF27F8F852A8FD06FF27F8FD06FF522727A8FD04FFA85227522752A8FD05 %FFA852FD06FF52F82727F8A8FD05FFA827FD06FFA8F852FD09FF7DA8FD06 %FFA852FF52FD07FF7D7DFD08FF5252A8FD0DFFA827FFFFA827FD07FFA8FD %07FFA8FFA8FD07FFA8FDFCFFFD5CFF7D52527DFD05FFA827F827A8FD05FF %7D7D527DFD06FFA87DA8FD07FFA87DA8FD07FFA8A8FD08FFA8FD09FFA8FD %09FFA8A8FD06FFA8A8A8FD06FF52FFA87DFD05FFA87DFF7DA8FD05FF27F8 %F8F8A8FD05FFA852FD07FFA852F852A8FD04FFA8522727527DFD05FF7D27 %27A8A8FD05FFA852FD08FF272727FD05FFA87D27527DFD04FFA8527D5252 %FD05FF7DA8FFA87DFD05FF2727F827A8FD04FF5227522752A8FFFFFFA8FD %05F8A8FFFFFF52FD04F827FD04FF27FD04F87DFD05FF7DF87DFD06FF52F8 %7DFD06FF7D7D27527DA8FD04FF277D527DFD05FFA8A8FFA8A8FD05FF27F8 %27F8A8FD04FF27FD04F8A8FD04FFFD05F8FD04FFA82727F82752FD04FF52 %FD04F852FD04FF7D2727277DFD05FF52F87DFD06FF2752527D27A8FFFFFF %A8527D7D52FD05FF7DA8FFA87DFD05FFFD04F8A8FD04FF52F8F8F852A8FF %FFFFA8FD05F8FD04FF7DFD04F852FD04FF2727F8F8F87DFD04FFA8A8F8A8 %FD06FF27F852FD06FF27FD04F87DFD04FF525227A8FD05FFA8F82727A8FD %05FF7D525252FD05FFA87D52A8FD06FF7D7D527D7DFD05FF7DA87DA8A8FD %05FFA8FFA8A8FD06FFA8A8A8FD06FFA852A8FD06FF7D7D527D52FD06FFA8 %FD09FFA8FD3BFFA8FDFCFFFFFFA8A8A8FFA8FD05FFA8FFA8FD07FFA8FD08 %FFA87DFFA8FD18FFA8A8527DA8FD05FF52522752A8FD05FF527D7DFD06FF %A8527D527DFD05FF522752277DFD05FF27275227FD05FF527D527DA8FD05 %FF52F85227A8FD05FFA8FFA8FFA8FD04FFA852FFA87DFD04FF5227525227 %7DFD04FF5252A87D7DFD04FF7DF8F8275252FD04FF7DA8FFFF52FD05FF52 %527D5252FD05FF277D5252A8FD04FF7DFF7D5252A8FD04FFA8F87DF8FD05 %FF7D272752277DFD04FFA82752527DFD04FF277DA8FF527DFD04FF277DFF %FF52FD04FFA8F8F8F8A87DA8FFFFFF5252FFA8527DFD04FF7D527D277DFD %05FF52275252FD05FF27F8F852527DFD04FFA827A827A8FD04FF7D277D52 %5227FD05FF2752277DFD04FF527DA8A8527DFD04FF5252A87D52FD04FF7D %F8F8275252A8FFFFFF27FD04F8A8FD04FF52527D5252FD05FF27522752FD %05FF27F8F8527D7DFD05FF27FF27FD05FF7DFD04527DFD04FFA827525252 %FD04FFFD045227A8FD04FFA827F82752FD04FFA852527DFFA8FD04FF7DFD %0427A8FD04FF7D527D277DFD04FFA852527D52FD05FF2727F87D527DFD04 %FFA852A852A8FD05FFA8FFA8FD07FF525252A8FDFCFFFD6EFFA8FD1AFFA8 %FFA8FD08FFA8FD0AFFA8FD07FF52A8FD09FFA8A8FD0FFF527D52A8FD06FF %52277DFD06FFA8FD08FFA8A852A8A8FD04FF7DFD04F8FD06FFA8F8A8FD07 %FF52F852FD06FF527D27A8FD08FF5252FD06FF522752FD05FF7DFD04F8FD %06FF52F852FD06FFF827277DFD05FFA82727F87DFD04FF52F827F8F87DFD %05FF27F852FD06FF52F8F8F8FD05FFA827525252FD05FFA87D52527DFD05 %FF27F8F8F8A8FD04FF7DF87D2727FD06FF52F852FD06FF27F8F827FD05FF %A85227527DFD04FF27FD04F8A8FD04FFA8F8F827A8FD05FFF82727F8A8FD %04FF7DF8F8F827FD05FF7D27527DFD05FF7DF8F827F87DFD04FF7DF87D52 %F8FD06FF52F852FD06FF527D527DFD05FFA827272752FD04FFA8F827F827 %FD06FF522752FD06FF522752F8FD05FF7DF8F8F827FD05FF277DFD08FF7D %A87D7DA8FD04FF7DF8F8F827FD06FF52F852FD06FF7DFD0AFF7DFD08FFA8 %FD09FF7DFD07FFA8FFA8A8FD06FF7D7D7DA8FD05FFA8A8FD11FFA87D7D7D %A8FD06FFA87DA8FD06FFA8FD0AFFA8FDFCFFFD6FFFA8A8FD1BFFA8A8FD07 %FF7D7D7DFD07FFA87D7DFD07FF2727FD08FF527DFD07FF7D52FD07FF7DFF %A8A8FD06FF527D7DFD05FFA87D527D52A8FD05FFA87D7DFD05FFA8FD047D %FD05FF7D7D7D277DFD05FFA827F87DFD06FFA8F8F8FD08FF52F8FD07FF27 %27A8FD05FF27FD04F8A8FD04FFA87D5227A8FD04FF7D52A87D7D52FD04FF %7D52522727A8FD04FF7D5252A8FD05FF7DFFA8527DFD06FF52277DFD07FF %F852FD08FF5252A8FD05FFA827F8A8FD05FFA827F8F87DA8FD05FF275227 %FD05FF7D527DA8527DFD04FF52FFFFFFF8A8FD04FFA87D7DA8FD05FF7D7D %52277DFD05FF7D5252A8FD06FFA8F852FD07FF27F8A8FD07FF2727A8FD06 %FF27F8F8A8FD05FFA8525252A8FD05FF5227F87DA8FD04FF7DA8FFA8F87D %FD06FFA8FD07FFA87DA8FD08FFA8A8FD07FF7DFD07FFA82752FD08FF5227 %FD07FFA87D7DFD07FF52527DFD07FFA8A8FD06FFFD045227FD36FFA8FFA8 %FD11FFA8FD11FFA8FFA8FDFCFFFD2AFF7D27527DFD07FFA8FD07FFA8A87D %A8A8FD06FFA8A8FD06FF7DA8FD09FF7D7DFD08FF7DFD09FF52FD08FFA8A8 %FD0FFF7D52FF7D27A8FD05FF7DF852FD05FFA8A87DA8527DFD05FF7D5252 %7DFD05FFF852FD09FF7D27FD07FF7D52FD08FF527D277DFD05FFA852527D %FD05FF27FD047DA8FFFFFF27FF52527D52FD06FFF87DFD05FFA87DA85227 %27FD04FF7D52FFA852FD05FF2727FD08FFA8F8F87DFD06FF7DF8A8FD06FF %52A87DA87DFD04FFA8F85252F87DFD04FF7DFD04F852FFFFFF527D7DFF7D %52FD06FF7DA8FD05FFA8A8A87D2752FD04FF7D52FFA852FD05FFA8F8527D %A8FD05FF7D27277DFD05FF7D5252277DA8FFFFFFA87DA87DFF7DFD04FF7D %F87DA8F87DFD05FF52272727FD04FF7D277D7D27FD07FF52A8FD06FFA8A8 %7D7D7DFD05FF7D5227A8FD06FF7DF8F852FD05FFA827527DFD05FFA8FF52 %7DA8FD05FF527DA8527DFD04FFA8F85252F852FD05FF7DA8A87DFD05FFA8 %7D7DFD11FFA8FD14FFA8A8FD07FFA8FD11FF7D7D7DFDFCFFFD3DFFA87D7D %FD25FFA8FD11FFA8FFA8FD07FF7D7D52FD11FFA8FD06FF7D527D7D27A8FD %05FF525252FD05FFA8275227277DFD05FF7D2727FD05FFA87DF827F87DA8 %FD04FF7D7DA8A8FD06FF5252527DFD05FF7DF8F8F852FD0FFF52F8F8A8FF %FFFFA852A8A8FF7D52FD04FF527D7D7D52FD04FF7D272752277DFD05FF52 %F8F8A8FD05FF7D2752277DFD04FFA8F82727F852FD05FF527D52A8FD05FF %522752277DFD04FFA8527DA827A8FD04FF52277D7D27FFFFFFA827FF52A8 %7D52FD04FF7D7DF87D7DFD04FFA8275252527DFD05FF7DF827FD07FF7D27 %7DFD05FFA8272752F852FD06FF277DFD06FFFD042752FD04FF7DF82727F8 %27FD04FF2727FFA8F87DFFFFFF5227FFA8277DFD04FFA8F8F8F8A8FD04FF %7D52527D527DFD06FF52A8FD08FF52FD06FFA8F82727F852FD06FF7DA8FD %06FF7D2752277DFD05FFA8A8FF7DFD05FF7D27275252FD04FFA827525252 %FD05FF7D5252527DFD04FFA85252527D7DFD06FFA8A8FD07FF52277DFD06 %FFFD04A8FD06FFA8527DA8FD06FF5252527DFD0FFF7D2727FD07FFA8A8FD %FCFFFD2CFFA8FD55FFA87DFD07FF7D7D7DFD07FF7D52FD12FFA8FD07FF7D %7D7DA8FD07FF7D52A8A8FD05FFA8A8A8FD07FF5252A8FD05FFA85252527D %FD06FF7D7DFD07FF7DA87DFD07FF5227A8FD05FF7D527D7D7DA8FFFFFF7D %7DA8A87D7DA8FD04FF27F82727A8FD04FF7D7D27F8F852FD04FF7D27F8F8 %52FD05FFFD04F8A8FD04FFA8F8F8F852FD05FFA8A87DFD07FF522752FD07 %FF5252A8FD04FFA8F827527D7D7DFFFFFFA8277D7D7D27FD05FF27F8F852 %A8FD04FF7DF827F827FD05FF27F8F8F827FD04FF7DFD0427A8FD05FF7D27 %52A8FD04FFA8FD047DFD06FF522752FD06FFA85227A8FD04FFA85227527D %7D7DFFFFFFA8A85227527DA8FD04FF27F8F827A8FD04FF27F8277D27FD05 %FF2727F8F852FD06FFA87DFD07FF7D5252FD05FFA852A8527DFD06FF5227 %52FD07FF27277DFD07FFA8FFA8FD05FFA8A87D7DA8FD05FF52F8F852A8FF %FFFFA8525227A8FD07FFA8527DFD06FFA827A8FD07FF52F8F8A8FD04FFA8 %A87DA8A8FD06FFA852FD08FF7D52FD11FFA8FFFFFFA8FD05FFA8A8A8FD07 %FFA8FD11FFA87DA8FD07FFA8A87DFDFCFFFD29FFA8FFFF7D7DFD07FF7DA8 %FD04FFA8FD0BFFA8FD0BFFA8FD05FFA8A87DA87DFD0FFFA8FFA8FD11FFA8 %FD07FFFD047DA87DFD05FF7D27A8FD05FF7D27277D5252FD04FF527D527D %7DFD05FF52FD047DFD04FFA8F827F8F852FFFFFFA8A87DA87DA87DFD04FF %A87DA87DFD10FFA87DA8FD07FF7DA8A8FD05FFA827F87DFD05FF7DF8F8F8 %2752FFFFFFA8FD05277DFFFFFFA827527D2752FD04FF7DFD042752FFFFFF %A87DFFA8FFA87DA8FFFFFFA87D527DA8FD04FF525252F85252FD05FF52F8 %F8A8FD06FFA8A8A8FD06FF52F852FD05FF52272727F852FD04FFF827F827 %F8A8FD04FF2752272752FD04FF7D2752275252FFFFFFA8FD05FF7DFD04FF %A827F827FD05FF275227F8F827FD04FF7DF8F8F827FD06FFA87D52FD06FF %522752FD05FF52F852F8F852FD04FF7DFD0452A8FFFFFFA8FD04F827FD04 %FF52F8F827F852FFFFFFA87D7D527D7D7DA8FD04FF27F852FD08FF7D7DA8 %FD04FFA8F8F8F852FD07FF7D7DFD06FF7DFF7DFD05FFA8FFFFA8A8FD0FFF %FD057DFD05FFFD0452A8FD05FFA87D7DFD07FF7DA87DFD11FF52A8FDFCFF %FD8BFFA8FD09FFA8FD08FF27F8A8FD06FF7D27F8A8FD04FFA852527DA87D %A8FD04FFA87DA87D7DFD04FFA8A8A87DFD07FFA852FD07FFA8A87DA8FD06 %FF7D7D7DFD06FFA8F827FD07FF7DF87DFD05FFA827F87D27A8FD04FFA827 %F8F827FD05FF52A8A85252FD05FF27F8F827F87DFFFFFF5252527DFD07FF %7D27A8FD05FFA827F827F8A8FD04FFA87DFFA87DFD06FFF852FD06FF7D7D %F87D7DFD04FF52F85252F8F8FD04FFA8F8F8F827A8FD05FFFD047DA8FFFF %FF7DFD05F827FFFFFF525227A8FD06FF7D525252A8FD04FF52FD04F827FD %04FF7DA8FFFF7DA8FD04FF7D2727FD05FFA87D27F8277DA8FFFFFFA82752 %F8F87DFD05FF27F8F852FD06FF7627FF7DA8FFFFFF7DF8277D52F827FFFF %FF7D52527DFD05FF5252A8FF7D52A8FD04FF27F8F8F8FD05FF2752FFFFF8 %FD04FF52FD04F8A8FFFFFFA8FD05F8A8FD04FFA827F87DFD06FF7D277DFD %07FF7DFF7D527DFFFFFF7D52A8FFFF7D52FFFFFFA87D7DFD06FF7D527D52 %7D52A8FD04FF7D7D527DFD05FF5252FFA852A8FD04FFA8FFA8A8A8FD05FF %A8A8A8FD07FFA8A8FD08FFA8FD0BFF7DA8FDFCFFFD80FFA8FD09FFA8FD07 %FFA8A8FD10FFA87D7DFD06FFA8527DFD07FFFD045227A8FD06FFA8FF52A8 %FFFFFFA8527D52527DFD07FFA8A8A8FFFFFFA87D27A8FD07FFA8F8A8FD06 %FFA85227FD07FFA8FFFFFFA8FD04FFA8F852A8FD05FF27F8F8A8FD06FF7D %52A8FFA87DFD05FF52A1A87DFD04FF7DFD04F852FD04FF7D7D2727F8A8FF %FFFFA87D7DA8FD07FF27F8FD08FF2727FD06FF5227527D52277DFFFFFFA8 %FFFFFFA8FD04FF52F827A87D52FD04FF527D7D5227A8FD04FF7D7D5252FD %05FF7D2752F82727FD04FF52FD04F87DFFFFFF7DF8F85252527DFD04FF27 %F87DFD07FF27F852FD05FF52F8522727F87DFFFFFFA8A8A8527D7DFFFFFF %7D525252F82752FFFFFF52F827F827A8FFFFFFA852FFFF7DFD05FF7D5227 %27F852FD05FF7D525227A8FD04FFF8F827F8F87DFD04FF7DF8F87DFD06FF %7DF8F8FD05FFA8FD04FFA8A8FFFFFFFD047D52A8FD06FF5227F852FFFFFF %A8FFA8FFA8FD0FFFA8FFA8FD07FFA8A8FD06FFA87D7DA87D7DA8FD05FFA8 %7D7DFD07FFA8A8FD0FFFA87DA87DA8FD08FF2752FFFF %%EndData endstream endobj 167 0 obj <>stream +HWmSf`K-vƯ\eٰdL%ױSa>C^`3vK ёc?:Ww߱VY[ՇbѴg@(8/n<4,LݿVOgyga,o Eq5tm'ZȰv@Cۧ'Yp1VravO?Ts[{;1o@6Ƌ*ӺC;J$'lE6݂Q +β&Qȋɻ\ ;2*?6zxj[j}8 +7}rFPʥ4۟hiM-w,qpeܗZe'xf0sxQ ĭ|==łuRk\}>U+cvB˼}=%;GTU@~>-2?Cd ejUhMٕ&<~1gPIN&c EJXmjƝvKkɰs<>PA0]RdL&b+ᇶUdct]'HITt0]DȗWTo56,_;kq;R j1?.?Ungu675nˉh[ݫfXl?:VPlR^o]dUV}ZdeVf~m~ p]^PS*'Jg{XpzL*VjY+i3_fAt{͝/nH߽/Y{E~QgxW:cjv^y3[iVPëUio| рlo p͕NS#9\)FM Db&9WeľXN߳: v8~d9ɒbPtsE&͉ѦlݜE667! IIQ2x h@d*PRH.=$D"E LS$s wď|swċA!Hzqd簔ŠL2a1y10MčЕb.u MiB#PH*)>>JHJPL`(DZtAXEY;rt#o O%Vdq(Ap\,cJXhL1QQhEq$#3c#XS +J@q-IŒ!1 DUUGVV>LuWBuY9`b}oyvy/oAr- +7OE I7)unRE7"o, +5-)w +H +xG0_8pF"UCM ǥASk }N}W+r\٬U7g4:Ixr˩f!tv=n xu1`=q:4/pVC:wDaۼBwu'{ˬ(SEȽnHy1U>8o?핾v=c19b[2+USCST;zq v {[9,_ES_L&]?M((lDZO 9ZMS6ԭ*VڢO 6M^ +L|Qr[/E8?v{/ÎnZu{>.Ż*o^ :k{kי0?JK^x~}G-_.U1ftCE (G^_#ԻOhI.LEv'8Mge{Kͤk_h9md Ow\z 8lWlTeRu R &hG# y#6'g$L:|1l"(%3zR[_wEZb'PO˝y#j+\DX҄'e:bfs*I] 7L(&=Otٵ{(I?AyLl7t7‡C/z] |O&^mX,< Kq;ׁ=EN0۷rѢ}r6}aLt-%ÑLґH%Q5kmMnTt."`ZcdK؆6wz\y+R\5"!ƻ 3,YTƦ)gmof22&_W;;ޔ(%3YM~AO<rJzA/٢%V:N/wO/}嘢} kB=]dl|=䉇f YfI|WCs7J&FbQ8Q/dmjz{ CM +׬ eRY3=k,٩N5J^P f`lŜ*,PM Ɉ :Y~% qx4]z''b0y(Jɴ#ĭ),»d75j5-m5}y+^?e9x2r!Yj)n%ʗџxI2=D~Ec +K>iBeMhe0Q' +Y2)IHP`':F!7? <4,E(f?>%w~u=*(uF&+d'ۓ^0y7J(==G[΢MؿG`ox%JM8gN@S/Dj6p! nn#bvQ|lkG0 G~Y洰Zh%~#J]n k/t ~x|OxaL endstream endobj 168 0 obj <>stream +H]o۸Ao +M[WIfqӳwMQRd_}+9= Z$@;f}g䯽9""3%)_~Y-?#ɯPIqRB@Kt3 +2iRo;˪^ h{y^ _tUOƒbQ * u@G -O935N0{Z>?)V@ [5d -19ciH# -/ YqHD"eLu3}Td4(W[ 8K r 9v2N6A^gw.rDiBXgDXg)$dT(;DdI:Mnd ů9!jjv8<}-I |br10 O`Lt}c8QB"J3}%(-FF(ϴ?ο΅Q~sa +U8c1E++Xn +hB)*. r6vM2yPFnё iE`1I|ƍVLٿiplwnF9Al1|FZ'~ZQ1Dz}9]V}u1rY!7eJأWxm|m|߳tِxgA?!DpVWjBJ&3g{6LeO5] r6M2yPpn"9sAqUT$:UN":=XA &9Cnܫ)T=~Y##SnJ}+(kUpLE!KvI[+|d6 +-=BHIDJ$R&OL.2U$ ۧ!q3XbQTa2f"jn^^)U]\Ip LFc +v5q+_bx n^]j?[OuYki7u}7(jD8&ԽEc֎Pj'='^M|݈L}``^_*lAYQKݸԍK;̞*yii&䌥 #֣ Q7 L4S=D"%) kӅX"PDlw'TG[/-81p 2:#pEs!ȕL%J:#:/<&wDM;gx$Uɒ(xuyp;;;mUwb9묳N|w_\WqF9R茥 ڙ8J Rрf|*X""(|~R\3%&՛nkF8'*?B(#&{~t^^ y_< i +'P<}CF3khP}?'aOO|E.xﻝM #{7s1! bt7hB)*.d g4E:(E"jCTGM +qp0"6oP$Cv #  L b7-0UM$R"T8Ȩ"I6:4 ^ \7lwN3z鏘K*L[<+4縊#Z`k1S5cʥ?UoAuٴ3u6|-rv(-;pu# !zf}P -14e؏6F + e:SQD"%)!Lu3}*%"$ WD.cݮ/[Z/im2NwB٧#f_edWn0_*rw<V{)T"V(M u&(@B[XZ.]"`ό3c3ɸGg"/ͦɔFUԛqP 緗q(=rD!Nk&i/i:v!1v04؅n:fб%\4 o4Wh\Yd޺bc(D,RdjPBk)Z5؊C'҅t4pg+kh+F/eiⅧ|B2e}ؾ`&oha@tZTp٭s9bnH;$ݔD^ +2r<$@ ߒsvrk˰?$ZTX%;u' +|RC⢹<$~,ۨYb,,b,AXd*imJ%Wr"OYı)G礃tl6jީyymy3݈mԻ&ԝ/Ao ? [_[ endstream endobj 169 0 obj <>stream +HW{o8/@`hlQo?͵I g( +Zc5(PTɧ!)9;JpӸF[j87CF"52e;ΑЗy zZ=Hhy^ޠ^ +zC…$ݸ HDP^ԎRWja฼%f)u hduR&]jCB*6V}V®w@C2SzA3Z1v,cE]9bwJ.X"яؘqN):Lr*:*+VokV%q$Nvv2! %TW$Gd%̠ŀ-(q֮=؏ދ,!Sɻ&jR"_ҨE"@5cTӷg4="!yŕZFs u-0LӄE``׮,|1}\ {A<+?MK+p2t<%;Veηwgv|C"@}C„gkplI+0-lyAL0Ml=p.qS2jbAUea2#16Dv4~*P{N0N +uĪS/'œ gt5=5V9^X92V8 +-t$@^DUZ +W?gǛrXпƍTVDLcf|+1iAV3LB%Ln)l+1Kan"Ke)pNɀKտ8;cסW\^^O"ƻ$9Qv.x!c)um.aRcrg. +IY+{!d_h- 1L[oC a|-lybV`>n=2t<%;_yɨVF~AVkf$Rq> G?NH?ǘqRpM˔0 Lb<x0yֳQ=LGR%% ++xypX2wnwYh/w\TR$kmZ>gY2bBTG͟~e EiBK#)Y: ӝMP(!IT ñ p}K- Il2ӹLo û4<;it*A. o:uI/O)u9 ,hrl_ +§cYkyC4+hR0JO[<̝^030S8H +y< @+-ɧT֤|tw-x-![s-/fcH1j9҄NRo*ca1AZUP%C7ߠ?$"xT<_&1ˎVEFni `dxz$E+ +P _;)Ki$,g +w`}1mWm{Ӹ@i7NZFJt[BYv[ILrJﯿ#;Ė/}493sEu8XNVd q{֚va݁ sWEŒ(+ĮgҀ/ &zk;wi]2/qYC5xKb f]L 2& ס pl,/8#czY,_dI\^$܃-mr\=n,@BP=fטy#TоbDwXECfaWֻ4,M"j\ޚgJNf^Nχ3iNWqq@1l\~{9By-?ryeOWYRKlayʪ=f:*2逭24:4)VxZg3mL2_993lA{%B{X,uwfn +*b26ϥ"UcB,*'ؤG'8\O>ٴ/Us*ayT8sJ+mCsєҚ#36qԗ U}%וEѨ,k%V3*VWKB{ҝt3 X3qI?p!*e{dWK¹xS&mMR]EωЎDWբKvp= cO+Jj!O-9Ҳ|p~^C.he]bcvLw,Ziq`8|^"WdZFy % H.\yj4ꇺ?F9;2g2%WU^Ob:uَv\ mJ(Bj(ˉ̨3؏.QѤZwZ#.w=6k.sFJNK.1Ej[a_m1쯽>W`Gaw,@cD 3::nE.[RHLa M y0"L7=;SF@x&:Зrs)F3BGSsZ q qX-8rv\Cz\ [q9@{Au>EvsIC֏TEVC]k`'RH@Y0z7T3B|:v]=ʟ;jN D>"]3_ 2PvFDa{63 覝X"2QFD!!wDb7 a=]2tW+Õ2וm7ݤM(Fzhfv)Xl4m +tD lc3RU+^5ZUq +<0 ]__[U^fTۃ^fqg)k^WҞ{ +kÓ|,1; uq`|jh_aFvI|V!n<yY"E}]H#!bnD2Čxȳ\ +TJ21>իY7 ccGB$Rnf71) [d0YtL͍~{81t|#ݐ1 2Pq67-z3GD'ճIB֋^ g5njn 7(e^A0 +On gȹS](mk2!,@ICR@,ͬ<`aL9l2U8;7` +Zh,s*λ9 #Xq$4 57H埉\{Xz,Msq@1Չ%*\$Գr4xbXkp}ZB1r |l Go3Y/PR`ru`+qX|PDEoc.c}]ůU TSa{H-dnZmGs?u p؊%ЪיkLꍁOz?5UCO@qi`&[iz +Y )\%2Kjs m¥@ +*>S>F ,H#CHX;]LLbpDv G=R! ,Nhyƾ܄{b@^iN_L\qTYn9tTּn`W05չWB7*N|əBeOjbJrnDtMM;Oc/A7K%V4c}0( nxT1W@2hfN@حL*SWpn6*Qv"UF66rmk^K3p6㦐i*qUJUx~99u;z5oYo'ٓ;as&o;n|2DwvL'=jz{. ~{7;_|=D#>c;յ,DpLT:ꘅ1Fչq!]Tػʅ7~|,MJLŽX Mq^uTInɳb>qŨL1":/if=.-/MggJ  gLk^pYc64.ҵ `}:݋Z*tqG7f +KŬ+8<-xfȹgr QAdHĉfwY!b#OUβ^Ս. +H qa@8fOٞR6ť25}R9N rYf@_]Lޭ!d90]-_s j@m&opوl{y-NVo + ,4w 2)M[[YjVOv93]2]1QReIdb(\_(@^0?p2\7*b"QJfOXz8j~MJ߷C¤7|>vWnZeNd~2#&0)PeSVj9"7̬}T/ XU%"bR>j?pw۳uSv 4 ^u9t`&N޾-S;z8 GCZ_a x;*Fx[^U- J_)V '˽ОWzZq* iqRBzV۳anf6fW )k +tk~-q>5[*g-te!Ow@KU' +zA%هۧu\,@s,GB;&˅Ut +c +LqcDD WC>TnLyn|^BR,/Uxā>b!q.SE%!K+dkˀ߉*!VdXnI"YГ8|![D(TVgU(\۟kw;9;@e4eh^ucf,v| qraePڷR7*{ ̷tky΅>ƶw#[仲͂ +٭:BL87Z']sl3NO}D͐s.cN?0N0pOK3.Fa6 {zY-qu:rO6OT_6݁ϗ%1avڔ}ZR1+mHknTW:=rMI,Oφޣf53m[vWǁG/AooQ)OV@T8{w--EZ}38L5#eq[h0̀(7$nQS"x G52~lNJ5g"M<ם4g7>ϺB;^ wibH@˭7Dr *2Ubs"BVS&drF:>0'VwpfީGO$G:e_P + ǍeL%sNyP̎M!. P* ݎ.IE{0~W8Ay* |G%,Q1"EPu@1`Ͼ10:*rsΕ+Φ,e߅qx72xs rFqy}}KfKv$Nx2k!|< }F&>LF2A^,Ƥ4S@q >49l!K;{dž3fe(t5H111>myqjl u$kljOOy|]L2;|yĜJO nC9p$pXZcsIa^șdMWPSfBՌ3wبnFOmތ-qt}0PE5y]q>͕}$nbJw`&( |wGb A"tS}z%撎M-< ib]@3Nv2}r qrk^bv!=y^e/Xh`0~HV3ذ/<xn<G?\$ ^u> rhTUxeKw1@z_Wҩ`#.7~[ȈhsS@;{1YTbpSE( LL./dZDt4ݸ^gSBlMKC|Ir-68?E6!给ha7t:':6RQ5˄F6kAkAHEנz%1d\/ū _e8D˙CW``); Hsblh )лd7)2._]V i_5urNm =AXdcF"]!>[8)< L>Tb,U!HA1mJxm})=q%FTa<^ƬW"V$_j1pԚ!Kn렾-J-|n&RZ+ď]-pC[ԒL"VQ}saNvwt"9m![YG^%ə^^jb I, ꍑ/}|^bg&# AC†4ta"Sۑ)t{F췓gPأS1.10|KXxR?<- Pr:(5j,z Lg-Ys3 I%=-7!)Q` 8ɑM?%EAĦ(h4-ʟt.H}KW㑰Ā{N&g5- U aPd=҄Fs @l|LF]~w\7̺Sה\W9Yjn$y +[H• &-hpQ_ l]"V%I3 dlyq*[U/SGC'FGJFAe+XB쎭J`[t(ŀ8͕m$T6V^lO(Y| db]ߜ @T Zg y3P=UX.m u +:JM8e5N erDCYWDZXRs1;{}CC.[5$,; Qla8,`b ٩AfpW(7A>ET-g+an Fɤ؅S5+ yaت{U0,b+DB[/L -/Z?D*eqQ\N$B[d@me}}/hh%@u +/((>F*j2?5C$t.*Px\ƺ>  oZ[7oH;.X%!0nٔHGCcqkYe)W2u+PI:Esv⎥!ԫCbgW?PyG'4!DJ } +tz%$`]SbdH`MiX@!E:$i:B(kJRz;o@ULiR"/[L6m~XL!SbbXkmq%+Nnh hOjXCn֬:rQDզX/Xkw7'xr:bΊ]Faֺ:"ֺ~3 zf]Hpo/Xk&?QV6MŁkͧZS$W,MW c}|}9|X=톜ҬYZb{"Ӻ=(MeL? {m-֓5_>pR 6U>o›kfCۛ#4޴9u>Dݧs汤=K6cjdˀ=Z+IW̳?I\;y8LV"mU6 4d{N v{X(DVe3ƪl:X(~s#4r(6R˴ 9Mu2p?G*|&<L(?ҡ SC,,P8c6 +Ktq ZaPeСMX8SMʿpe{=7[cc~o7N uˋҝ87P9A /%ЭWK?Ǽ#w/ړ6*w/:O$cx +h\<$֤yJ{x; 'y{GO綗yZ.r4N;?A` wRJ)_qS@{tQv"fsk]@LQ&yKB9-N]U/Ϥ"yJCOEr-L9acl|6JPy`Ot~-CE?fqXW>ƹ3S{$֋t#% ~W;nzZ&|-]݆z\g7nn~P]6 H(gM`?޼W}hq[v]m۸3 &.xh[L .zoWoI-iwHcxZvm4(ﻇBu;`4h{.CcO\4p39&:Q°[z$NcYwPRts{zՁrJ~v8/|iNwsљ/(f$n1ÀCߪ2=SN=)\ѵQN]>γU|-iL EKS@cJW<#Z&_r e;MnX\QE+YH0c?߃x3?vs> Cj&A l)^;l#N%,ၺ~-z@0!>MEMZVEv!?P`ؒ0Oa-s(/u/qڣlI@K$ֹĕ7\%č +ޣO+-FƵ^[P -[qaD.Qq@GO4m)?Y,{hGb<.Z/g>oϛNKםB?& DĆд,Ȫ6B p%+S]P0Yl=嵡laeQtƃi!)Ρ$9>ن`TbVJ0G_ ;}3Ab(tO-x"t9h'Jjᤃ١Io8_&( Չ,CtA$Eұum+5Yq09XڑD1Pđ0WXMx1q~*zJ 4fe,|EDn2ߗ*%!?KKXD[&m +hze9[FEhFƂM!0zQf B>pY; Zq]ЈfVJOUtH +֩kkLF90VU7+w.tB/O$Y'oAB,0WC ajQaup)(t P^OaI{ ?S^ gl$wcLAB_ + (҉]G<}BEfPDžeEKe15}/bN}OXqpwCv8gŽ^vdП /#!ŅÅ 6*Ko1WfSe`nO|ZBN2?mX&춷XKWLJ:^DeFjϑ1o 婉LH‰KLLz])ALVe0ۈYnfLxٻ_XrX`1AYc71צ`cBco y8pc}6g|&5&X!:q'BLH%9[˅^]Nt޸zX5u5[ź + +? U'|@ լu.{nC &di +_SjW$ +q"]hVT99zf: EMcG649/Աq0=zG|;ӵx O?n0f["3Gp:3}:F$w}67߁\C}ph3;,&+ [Xxӽ,\#9cu) ^<=6 +ڦ{0_R'WOm#/\]/QͻKdCԴp.8lݺ/!AkG9XZ̽'쓃K($F!)wT>\ tuO+>C0#ud/~֯Stap;gÇdsvPh:XDV`.uk8Yks tC& 4|<4?%)PPJ~WE>];:/507m1Ԝ[l~1D(rjagřs4ɠԫWRm|M5}!h 3^IAgHl)B |x"nj-wI#ыRtN L#*`D.9]i)ZZbIcfԩ1ˑ"+s}U{8bLrX9.а.'ΚG%t+U+*^ l`PE %Kd endstream endobj 170 0 obj <>stream +HWZJ}<@–q@(20 eD N$P˩:Ua)Wup1e?e| h^#ʳ>bQie%AYWbQLYϳP&~հ>քؼ1>x`(?T祂JIr:-;.M.?='`\G(T^(gG4V ^D 76=LIflL}յc!&"}8b1haZM\TQ&6Z MZ Ĭ~:y&lZ C*d@.dVmB21~z.jfa7b[ryE'?h3ǣJ'.DLJԫWFx78Dźrx87` VLEM9)!Y_8 +5+aQvxu9[o ;L.@.k4LSU_Ŭ>few.H813 +i,w-{d)%: +|B2}zL}=ր+]zJkDh|J8fl9Ǔ4r:9mqhhz$lH-NJ(9amPYEͬJT.PcOqWF֌RW)|k1-q`+`(@w2i#bY.?sXnby;IJ\~ v^6C0 Xb'RKxOPZ1NJͱJ Qӹ_@(C kp%0 ƾzk]I6uReԆW043Ж"njqѡ\hθk{e^`?esN,hXmc=!pk&_#&C4]a_z{F3а=9nm4prn ;)!B7168ਸ34D+CfJ 1EmҪ |ETk 0+N/\^K[,Ic!e1qiu4jL7o>ЁI?_cQz\IBvDi(9 Rh^6hWMC7BH_\4|:f/ Wi0Ǩ4/Yi!Eb/Uļ>հs+Y-k' cT )Ry~R:t52ЄC  Q^Bg HmI:8|^-gR|Amc åwxV b%>y(8tNJXw^hIVrc6/\LQi0Ӱw0  dŰr򸵀 xK$@ =r\m|@@c z\eyJXCw%e +*>s0aC; 4LzGV2Ф!}/a`[ %7;l%*hǘv%ץ懘 cXfXFR SUKjϱNZy@n/n:@BZ6s Ej0VVL{ F"Wkz]=j/uu~Ш(?m +rw<[Ja9k|dY=|ɶ>cJmV|B9 sMRNl*&C;-\vOg_N͒w=Pm:˩Qiќ=j$ NWzQ-vgL|ovsu;^NtSc#o8R_|!akxx:Lgө˩9atѝȧ|>9 +v(kP;'}2rd1hߡysJ+Tۼ$z){N*\ +f.]\mGޗ*۾~IPY$v!$0N]k]h^UeK +Iz(MWH.t +N@C'K=pB(5KA;!0-TԐ@3P~oe_'??!$'IUh/t͈SֲHL_$ /B=ߪ\VL^9x&%GFZ|@/sB%tԒ?*1ؼdoj0)3Q[2 +y: Fkcȟ*+rAkbĚB-e +Tl!\FV"7 X)%xaj>u4?[!з!^qih7Q]׎[܀_&1/x~!4-YI-~sT!DU\v4l!t s{\BĘDUYY1 +?ȘۯɈ,q>b1SmMRz4l[*煕LqOljRzMpi3YX00y^o>COvׅr\mzcJ %lns9oް{x^}M䦣wQ1PXAQcLuI> [8~p800yMPEBK 0m6bo*`r%]@;~%{GU!;~~AQa&x^ $(C턃_ d|BEJ+EߕݺszPVh-fE? !苻dU|*à% 5](Wx=9] %qihOƱn; A/ +6 ^'4 Y[ D!D!wOBɡݰP]9_`4pX1L_2Jg;b']&9A`ɎG(d_(X?B^ n:ݧpUAXD4y~T{N6+ثxt}Tk|Ȅo~LFa{?anѰbJ!EB0 Rҗ(#𑕲beIzP~_{IXYeDžSуxyx}k-J\ q<=^*x#x=LƃGWD<9eoc=x䣱4}p={ m'׬G5~o.py|%QУF&g\n<}!{oߧ+3ILN'j2<-HޢO%u7anR GdESBsIؓy!M +C"CRu{Jӹ7uNtᆤ:lfͮ:A]>NJO/uf&#оxTIS{{Z>Gn_Nj$$M5[}A(n\ٓZɕMUʕ=9^o$.k ٩H_Q +þYMm`1nj8qSSr^t}N(͌JV\g-z 1Md|'U*$,h>֨Bp"H 㗥@pYSPs+撚F +͹´2ᱠwý\^vN[p?nul͊\Cw? "p# '3+;ƫ4n T,ߖ1F\Ɋ<:n2Fͽ,xDmfRBpOV,oQ!A&uDH $T19UUɊ?bO*F)ZĊ'sJiYЭXh4'asYv 3wFrgMF8 s@\:Z]/l%9-F\uQ]m\^nwrttƀK=gm(S5cl{߅1Xz;wS~ +X飗V)@(jBєqd +R*"t 'l80j`h&{-2GRPu9s +b/cZð${~-릁gdfҔxv4T0R_f%@`j-sJsh]Kը6~OQ4Ulh@.dŤ{L՛!\ؗ"I"nj?A.{i4BLCSڝㅂt504HbXtjn]S" +̅ (@"ն!eSfE[#pʢ_v/.+!wls6i\4&{aulmΌMcw1bs,QO+xC:ɕjM0AC8UD(@\F,4cap8|4ZBy[pN + alڎR+YES4z+ +fc R-ngJ׋ע$$yTQ\CG?{HbLJ9ɳ{M{w]5%d1pn[~r &Wk1,wrW }D%`7*g21ܤKeDeÌC1>Cܽޤ{ +NEVݵV ɔAVpzni!S`5X`0J\5?gbB +X؍9;+y׋.5<*"~,WCG{i/ " qQ+1,siO E*h2c j""mUB +a$eYuuvUJ>kN9^$f烯(\o'MRqUMt9|[`4MCy~94æ7p!M],NRLӍM+x}veU;;IWQ܈]!&?B2DI85qd觩LR5c!cu=/*弩+eͼy5wߌS;]{.cf+s@u +~{ށ߂ng*l\@]Nٿ.P͋ZI5;ăt䠳u/N̨+)~GqɇݛZTlxaSŠsp"6#s7NF*NiHN; kwpmAAY.=dOG$~3Nq&5kd+ 4^pJ_`Qq{A`!#?|Ny~E)K%'eYQ[ɍڐB8Vk-f#WyrkX8U`i+K%yn 7r1р:=[qвuSGT+-1y4[݀[|Q76^dM, +HF-5nʗ+rzIZTS+mo8 +[GHJBLk5jYV/jJFы#yNdM%7VjճtXǏ dX;=p$tWbǪ5 +`\3}q2G}ѦL)M_En|sK揆uWZTZ4㱥+ H3VDsfG/{&I??٭^ 'XL$wf8}/@kdKw7tw|ZUT[h 8 ؃i+I8} y'?aLD&3#Bnvf?f@z(3\;~yi7%2;>CϬ5'\&PVˆxEY9q%@Ʊz\ۣL U ZRx 'BI0*:C9Ӎ̧-*GHs?0hy !-]xRc{*-4*F'2<D0::N43YEUbJ3I"gH5]plGd:3IR5if`  Il܊~ R'ffrIw0 >lEpK3_-6?sgMG&^H7cgLV^Cp"Ɏ ˃;M?J3MgA؈Wض OQ)gfF5aV26ܕj K?4+] O܍.o#P-5*: J#ʷ* :*3D!NL>` ]X־/ڧ&}>/u[GS>vv1E fKr.h7ڦ].⿰bEؕT(vAը>̢ N.dP#^00iBn5rgХƯL ^~LFǵ+&Z.D&Hn+ܰY +kXI?K=*NvPsE tKDeLFK@nbֆdOV^.Jvh[ĿJGWWJ*+ +c +ƞi C/fƺ*3E&Z0_t]BL_2˲&x@ג ̇M(6h)[$z+8U.$M ^Le}rTh`47PRpRbcuj<cKG0~IƁhhRi02f61FJѮ0gɶ"295 )۵M\d2t>R "){0^ /x^[+K xb& 2A!Qf=y[]>urՕ +]!KF xBx7ܫwkdb ل/lv1lom)#Oϒİ?Ϯo* +w4gQqI֎3$|.zGILuMIU6MelfX-[hf)&I3)RpMV.rcw$_aտdZ()% /tOƾ_.k? $Mmoi_(*F*Q5^6s>'!&]XXK&h6n+*ⅇcVWP77Z֚D+}w pSkS?pD(O:H,PؗOױVG9TRz|e[P/ oc( 𯼓tJR˛Ý]lx`wJB<*嬚[,7}( +R|Zz ILR;}@y"]s6X`h) Ya3{*~( /( cލYOEzB1Ð_)TLnXӦ_ +9*9,EvTry/X(j%KіlEw + +UE`}?+ #b؞/B(48&,s:ąn +@Bi %l;f48B)nEP6D1؀5/ b> +yfkk.|Z[~U4x8GoXZٛ}:֊ژf5ijtt5{"zh&#x'k{v@w^xLL 4`wU?o9}:_~IۄEam|)nϗ/->][[ڋKmdg6r\8v>=bo%.ѣxy\{DmG|N޸hGwq屭OHfnq +E]8G7#1}qEߝ6˩xZ +͙9FK5!& +/L?VޒCiStL},W^SwzME(ջ< 0U2Yr:ma2s R)Z}t'``} D-AX.1]fgfX(%&̳  !Ę[XaXU*1d* `:x`!4NFBBaI!eM\~7"n`E012!l?D!E(nv'[\$w/s M*XLW>m"%ڟZ]Bj.ڔ%Ӂ}TTfA>-4^?XÌÛqfYXs OX]l?C^ Z~/ x"N[P~ x7C[x}"L2x_&ӗ8.DYaK}|.{Kz" _!ؖ]eWfhHHhbO{޷3vv0~>rk!zK^XlZ?ip~pvX:O@=EnQqW;㺆p洏E&לH_OSָ:_;.<i=q\j_ud[G86B9J7sȰmm׿_ #[Bzk3a9A瘎L/dslB\urjeNs)=P9T 4F -Vu*(Crk'W596䜥+fI-eȄSX~e9m[\8ۊvܞ@I +iY{Ka)p'(3W +7?iTD"a\q.s4M5^ X"5C[\tXP)E@H-ש#\)TBsppla6} P7MT-4>rB=ROƮp6 w@]͎q7񲺓بY}~Y 4 [5l[q +EpS 1`k!Gx,P";aPMa5d +)`IMtH2Pyu4R|ƵDtϨe@8Y9+LccZ$eZd32+@ә`0,!(4\A `Qse[\UuD=:lG@ez3 DW<3-AcK`Lb1kgVr#ЙOۘ3FtF&U56ge]s +`e%\rQ"֣2[)uB,LdYM, =VD"0ԕ9\x#0$^B 4{u<2W#7tmqW!Ըcu)X3 #5ah]񭾳̯D`jЁ7zvIChZ J@<2#C @Kʠ4#ҒcL@(ISsnBJh8P}dmZ!%4Zh8!QJU <:J*mJ`!ud@yJA`Fh1FHvc$vK4}HPsH}@SAv/BȆCT9b:X ;F*@P5 l,76倀5+RZF +9(#;3AVng1ޝEwaJEF>Jd=t8k̏9Q9&% jݘDS=j+E@,GDa6c +->J#F =%Df:V̇Ɠqƫ{$)uFM=1e΀z co ;T u!;X@=VY DLl  DZ_mN[?3e`"p\j)tTbn1:BSw\L:QI ha"h-u7Ǭzdl; x`  ^=fHj;e p)#g hTש#*He=Һd^{$}N5?^yT0/ #Y _(NDG}G;,ձƫGZMr/J]f_Ѹ[GrF"SlߑZqQuW>*kEzBSg\+ty`q{h2{e'*_Q"TB):$Ya=enҶ>nic|8:&luWmQ@g";{zw|MFog8 ^ OH8L U˯}_bw]qlx%.0"),pz Pg{|Cy"ze 3j c9ߕ2=@R!nzM[./{,Z9S>Wo׺(8Y _&roKݫ,~߅g9$U4@5D8u^6dU׃ciG.Z$#ڜϻE=56%Ahg~)dL]S a9>ouխׄ_vتև r9Uޖuj.ۭAϘV_'b A{참~*ѽ27.uǥ G9#3`WQC-e([_` >|WwB+{Oq 7nvT16RQ' }Q9A_XOs'sHW4 S[)4 4M;M&KqzA +t o8,?s_xmꇯ!pIsXlY1GGK^@DP99Q"T+EW0-?}P} moƌ󃲐a](#yo&bc2I95p&t_7*Ӂ}.9p oi6(K)EDJhG?g-M1 C?8:PF,E b,R{lbS=|K.!Qn'*Ka[D;R8Jd2` C300IztZtX(OU}7REk܄~xTDa[mx +XQyy¯`rF.':$DnWCIN.'r$dqV 5!VAp)If{n7xp#{ޫQ7'6O2o)E7 KT?1,S=R.J/ZeԱL83K~GRZ4nAR`nR#J"m[*Dr6"P(*(_nT`gQQ6|QUԄa>䣉Tr+ioo&R}fiW)ݪ +^-)R}$RMzGJTݑJyfd“/[\IXBˍ* +s'g>eCW; ufy'ÀÛeafO(yn.`8`4 Ǵ\,|ca|(`N&'.O,@VZ +0cPXaCa$$t|WuEa숵C)aƮR?TbƑέMEg┨K∉;@yh+Ҹa4pbSq4M֙xRB3]\v>NÃ<(D1־(o&Z"۬۠ʛ1F8& 8ˠJLk5H->/WzZl5Zk]B?*3WJΦcYy-f&z_O*hmp8M$S 3@6̥[Vk!::;Kw|KFf9UU0}6yEJJ7#y~kAjכUX$ Ӣ;{%U eDT gXI̋<ʞq0J0X\nVR/WyfOUnp  +It +HzÙ*o5!ߊuHHFbJtS޽i}`h4Y&, [ pتJ B>YRK쮾4#̃hYxxiV=oZM(`|'^& յI7V#+ȝ#{L9n%:Rpsm],~+\F=ZxJ9 S[.bDAR!ø 0f1P."dRR50Z@ܛO_~o>o`ǟ?~9gO_??w=>|z_)e*Ѣ%p2!n.Kpy'K*\,ZZIf-XJ()l ,6XX` ލ `^` \+X#,I,3b,F1`Ř` ދu͘Pw/[T;?B6TʄJi *yBU.Xju%wY-piy0d3} 9y9븀N@\NcmBG{R'F[[h mP|?9eЛ q Cd"2}̍/lbwgߪB3f.0${[h +0 endstream endobj 171 0 obj <>stream +HWGQa +#z,bhpסYG<TqO|>>p[bv6aJwI/'}}||s;u+/__?_Y pg6B;_ߗbg]lz^t_R e@a\v}L)S}o:w`0L*R%uHbQDLPd_5E"HU)ݗTU/AnJ=/zEϰQ_^b/HzgHEIgai3ጩj4{b{BJW9+Bpvi_wϷ.ˆZǦ7jŘ Bzɺ:F/$C&>cuMj5壁O3YB@i8؀Уӽ.DIu``j&z(x/S7etqwjx 2FڀO9+SA+˅aILZH ݫ; `&s$x7Ӌ8A2LgV~OC)%/ Z:}iOD6> )rNxYTO SXZJIh(VE0IŪUFBcx)czu9kQٴ$oDTlh B\B jOŭo4)œXJ{UFٙF|.WZ}^SQdS5][F805ﻆQ(:ϱ46Ruk-UW\c=6FNo'Z.@B9Z~2}7y&r ŽܴZ Djq d'IY$YxM`=q68N] +wA$2X@}Bz$y"J=J;2,$!^6NtzYŸ\r RgN#wr,II3s@N1kxԖۀa()ҒM?e#1$PY Rc6qwZ:\mpjqlvr{`$ݿJ!GVTtѭ[uY.%Szpi O| syT7Sf S+ss;u+}WeKw ]0fg΋ +uRTqI1]w-2j#{Eo]WP9CdcQ-!S]V +S5WܗϣТ"y:I_Z56AZHdMD*nhc\14q}: #n0D QE6[-$^Mr]%g@׶_~N[=iA15?sڟa:'\߀uǟ7L dpҢ(FɿS^-8y1@m۪e0~RJB/^8EQ1g)7X z.ho$ nVQ^Oɹ[x^-lצ q }sb7n#a1Ɖlى RzN.-ޏɥtcl2j1Kq[QsPt7ES295tz̝r7enviVt⎧|diְ=42q|}}>uk']9^EK] 3v_r^q 9R;Hcn}I} [+b CEX0gEKW $kYsc> ;µ7J|K36_g1 QvGErJ2i'uǔQ~gmǙ_b~8Jhe݈r wx׸`Իc4\wm4wloEwg}?o`~-ƿ_FcxA+u%nk@@qy_/80:Bl9شnlp4b ]ݍdCek]x}cocBVi!>N,CdARgIe+ %4 +E@@Ƥ"9倡ž*H7_A w| =BjyXЖyPT>2 _8Bou|< r~#сx$qٍE?^g4/ jX"wrgxcQRQ++ S/Z"Bt`aR'm;i.>0nIb@ +n;w ?0eb)ºHTT3G_?hkG`],u290HM1)7AMn/=/^Gz`9y w7ļ`Do;;Ȯ|"߯o\ꤵ$g ZA92u>DR"cg#Ö?ZB`IC-)$Q,/rMI,n`mTqcQ?R-aҮQ0q~X}#0f"J6+F"}=DP0Bj=:kwJۚB;n9w:^\ыXvJQ9efLw{w*4W,^ zΫL9vMUDwlYUȀ$ڵYR\6΁el\ףcRk9+`eK*:RCRRxZ*DZ0{LknlG\e;I(\DtI/B1¹s|ldfqdfZ؟6GٰKjOcxm~ɜ{G(L$xOl eG^O1:#[@'/H+fnk1i)L/{4-.O:?]^&Ufz.E{=!iBFx1)]+>X_7e6;趌ZF[+F+E +{@S5Bu6QAhԬѿjQ%4$C4dL;$J]rj#Xl5dHLBiFb,_t:dc EYFgLӆ-!68b[Vut[[T08G!5Y^- B(kDkSGԗ7^mrG ?KK$ Sy +bl'z8Q>kUU3"k뺪LMNh"$iBBNs)pz%l`q#l` r(6ݶ"qT(F+]rY<(A\RFKGz\v^&qo~?π +j?z_oo?o/ɿ{ nA,%E@;|0% "PQ ) .)LPTׁa $`Sۂ^MH }р?161j8׌֑Hr i +Zӹ h d?'{!rjfiB +;'CP;]Ha5z +)ק>[|1T[\A^QLc0bwB.CMƮ-5GYiø&7Z%颣 e'c-+rU9T۽%!heAvL !̢jmcZ SZH91N\w}gYvQ:RA.{a@53kKKKs/d-} +D`%9׎̬qJ1LZ(O9FEYv\żQXE0N: ")nr; Ȩa_,jY~:jO0;kZ#sYVqa\dDvF#_q[5TI5+>q Y87ou~Z©J|S1GNr'b5#qH)y}c+ce氥{,} gy<`7x>=HQra~G=rF4~UZ'z!Rmљk,`Y[(9/񠄮_۲>_ywǗ>~?~/?lXdNFNUUYbʠV[FY?S2:; 4oڢDz|#7$oȜ֣&T%{LWM-ݮ;Y!}LFݽu'\LAL9MLa`@׺ "gr|!_sԼ,.y`ܕ*0Ld$J8 j-oY=< +OZPvK+dZy#c,YijQE21%dwa2跘P8^> VShjTt>Wѹ/"%LErJ`{<VuX.[0Q7󀰪E뉢h7^2+mLR̊vXPwb%E>e<0d?~z5ڿBfJ[=dEhLbi +m5cj]rB<_j Z<m*LeC\@(G"H~Iu\φ@T"lfaz9U(KVv*}Q S+R?Ń8Ƀ_gO(j?/&K"v}mHН:XOPq~5]dxaHZSI#uVeUc `E_u{Pn ݙyX_ey+T\<4(e9=E>?i*:eEf9̯X~0F?k"bG\61ד(*С]kOQҬET7VՏ2?`Gz:blE0#V X"[NQ:I^1meb}b%]5+bb#KVckױ9BC$Sf0B<67%R~ݞ;,r?kUA 'e^!KyOJ] 'HTknBgV`3 \Ve4^Ma&s[-Ib^a !¾Ici-% J\7V~tQuAR)Y &DkP(@ͱnl(A bBڐT5;3HDӾ3=kQESL\;:=vl,%w\ڬNƒJQ& ].Hjd~wqqUf!azXQ z 1 n#@^ ۃqjga>;*+ږ` #w)l}y*WOt@mP'@=%YkWl Zz+$4o;\qƯ(d܃|(I6J]-:Z{uumZL6y Hb* >W|dVzV'Vn;+˲q 5Z]u0^jVj열Q) +UIï,L2讶պ#K`&$}$À_ LGV%Gﳪ{wu#YkwWWUWX:h\)D ֕v~")OJ1ņX)k1'ꐴ:o6RN#MCBKc;Q/$#HT}l(YA2wo9F} \x1iWX9$3`uSEAn- xQE%1W61!Rҧ%CpmV}@<z/Wsma&M}mL+KL$&.lNp{Ĥ̂g]cSo&inͥW7ʕb~: duHpv!](+RA3dם2ޝfoTWGWaI2Fr}9qoo(dj2lࠜn_Ae $Tܿ:DlI?Q 3`WchưR@(&N*2c.2ҳ2yb+bJdCkpE71 F]h +pT*\i ޭΣo뢹YV~iQ>W(yȂl}J-.@1t/ +6tv$!H2 dިzM:Eh4PQ]>SJ\Ճ>vB&]{縫! y|i0 IKϋC0ܰKWL;o.\^ +: +sLAMEDIEX< l(U + v3W%H+sф;˜2SE 1Y*0k۝ goܝ&;æ$MIKSgS:m[Jj'I4! q,#s+03UCYQrFdX}tH(=z9Pns.E/j=q_>]jPAęƿYyoUʵtAs&v,5ynlY~xGR=4{#vlg,HG=biE쌏)G+V\뼔C+!Å5Q%N`sڅ4Ύ&".q-d! zsAX}t~vLQ܏̮uN?bЕ`ugOsD -mE4dd'Uv*gԲId^Iu,0Qq;$%xj9טhj᝘׊VZej0rmxyK"fh+:>Lh\%M1 +t(&{z(7 N}1;gOZW}E&AS}:Z -%.vN>G'kwBVrC[\v?[`5,[7StØ*q O,{s7y@؆>t/CYn1VV +LNd V%"+ZLpBaݩxhcһ$(B*BM{{k[3i6wf2oHfZ9h0&tG5l >2N2s3U+b7 MhY_qQ'`ҸkaVm \p$%F25Ptx!y +E5;uowKp46ul￝rXU3<+rʋ!W 혈*CR?2R=t40"oǥA@b>Npa+N˛ק] Fvހv +X3 +v<}Վ|_qn'=l07;298ɶqA+V{#rpPukeAyˍrlߐ_:Eb ]ǃ :P`BcZ3xZ&)]7[Z-%j3sl +2U=sx$Ch$)c*)@d,KǛ1O4'cuwu]OˎrÁȣhAԔa@.c:LV0φ&!/ c<Y &EAH 250.D+~H82ojvՖ @1N1D4Coob&/Krlʫ$ǎ O5km 嵁M7 $##IԆ͆@;X,qnG} ?:`2 vにmr bSxS gfX|02Ĵ*oL96qac^j:WSLĎx; +]=E#C{GYx q14Ʋ( +~ c{Ǔl6Ot?Rch[Ŷida|{H0})pNo|n@b}#I!>x8n[DV/HJ?No嶵o %z ]4(Dߑ Nd,H^eخN<(JKu);y;16C'8 jNj1ZQaW7ɉIrWoj5ρs=޲5: '>c` .>0TB_pZx* 006x[j9;rjx+֜ީp'"8-,R3,{3 !~iSooq;X,ڣ;Xqƅxf-Ɏ1;<7Fp`aX#xFc~c,8<.7c ðaX, cu1fq3K>m +K$zW>2Jd[~Fuѳ +vc̎1;<7Fp`F[Fcc,19occ fԌ21VXcv uK_~ +?TAJ3Teb: t -R=02|#/zzkӾqX|\%+ePշx$ǘcp '2J*\- cq1Fq1ce3"\$nxFvP7fq;fTJ>;X:9^r_s: +ɒ%K,&G&~ۻmVɊ%+,O d^- qד$+c^m$1v(Zqr{=pxP\s-#T~_,tZQ#Ib ^%l%ȗ"z,W J=A˜+ ^Py:h9J"X-|#ey"]}%4Y]-cn]vtƜAR(WMa, MC7$#~Ζ pQ 9~|ɱ#m:CLs@2hGqYDYt2_.J"_=YCɉyDfXLT B>Nܫ_Q3>ut:>9 )|K-& J?twb!}MKI +>Ph[Cp;J4Q} 6 ijPv0P!u9rLs ? I:*[Ma钗mCP$ mJod8eX@59zK@$tr+ /܇${jZ$E溼P?uhlY6e5RX)׍ڹ;=~{W{<_,,}t%_[wYb[߫ڊ,r ݺw~c=F:?]ӕ%HI WP ܸ@)8 Fqg[ʤmS;imq) OezG7 y Cd\\ HY2oa0QǼ_J}XBc +^f|JSDH޸wo7UiK-Π PL]Q`6ޯ~[\SLڐ@1G7 Xk434e.ȠՄ4u%Lu'?}@I5jk^{ %l@UUu5@tvR燂e66{adeuOۯ?a}/ϳ(ooLWB4J k.Q0/n$Y} e2Ƚp8#Ae{9g>|1HL NKKxЙp1|Xl$C^5N-Kؙ_9lt>|S˲83ROS8 $ #lo ]_֫nU?AC,$lWrTثݛ* I`,ۯ~lKvU  G_ٲ,ҧjgz*Y+?aw}$,6njl:n*++ȖYO'm.Y.^xU&Nŋ2C&eiV'SV1YYٔE,e\ MHݬlMV U{8'xLY((pyfzE& +ӮTȮiL;~;Xe8aGo (p$ۉ_}<o.,佈 ~4/rW؅|Yv3nDa4ĹJg!>SG1ؿuETE@5 ]U֣V5Eo5vS[nEA ЁBUZVt+H278m a dz@=V۷|ښO^e@8.9u ҂K|T q+pOif&gÃ!h& b-b!WJ':Y3 +sѝ8$kRs lhc݅(oƦF꾵PbmG<0ǞdF@Œ*ha LK;f00PKa\Xsx%h&SY:Ve%Ti g ǣ諼&"t՜:%/eY?Yh +Q7 ]+o"'!]6x~K4Aԡ BNCɖ.zf~+wp +ۡX;O>1?*9G#? rC~,nVnϦx\ + X4]mLY`*I'6a^фs`LiiQ'0 2ȑ`M$ so ?BA/Bn dl’-݇TiuC(I YiY1ܡ2z|6`g( LTH[ɣ'X +jN/O}¾kIE +Mt+uźg3*y":.(!O4(a"0rRˠchqwMXD:U)z_qղ`dP&,c9!o϶G77ÉZG6XgU&Eh Q@uB$BdkimnQ Ӫ& 4RUUxZƢl5Ef Ut^^zX"b\ ' O (e˩5/b2 +eW,#1ko3Uim4Q3*$ oAeCzd$&(, zHJmAR#- ;$Sm哘Ցj22 +^m˃!0a\Yv[Jŵ(VqTh1^hF""#,n}u6(f]1:z>YxȆH,BR@.&zhc#n|Zv_8M!HMrKw8ZkI#WܯEGEY,uSEo3T(x"N50\EBՊH/D^?}7r }lӏoZ7\Z޳hZlgdvV _Cm㬋}Qnʴms=kؼ-ٮTJ @)܁yFRZ:Guh9꫻]V=|VXZ뭎߹2Kk4Pp`W0 l.lZ8N#ϻ]TW5|T]j뭎EGv~-3q weHG)籞9Í!2h4PfZ E݌f޷O Y,-= ԭVkh K_kՑ浄k{C$%"l RWWg]L i7 33IH֘7D \Cv'r;]}ۄfߕ >~k\p*mgrc" &BJf4g50q|8O@:8E$<nYRK6W77n9;p;ծFD3zD Aqj)0x@Dgj!O[Rzs%ΖEiՓ= ԭg)qb=~,b^0D|=9DA,R2(W ^6jQFzG umwJ!İiaF +n=YykHi+}؆}DžK-T95 +V N5' +&˚mRBMirXܰPj Rosqw9f$9w!=ղq:A#&2S3Gԁlfvb.F3sdyuD-h'a=,n3=nky*ȝf땓 ^ꠕГ{%v+X*^T|(G5i橚Bue ۹ <źU[~_POyu/M6I!YeC!^!!>G5Hu1{Z%T/6S5D~+ +P\=ق\҂r`N"3gjL-( и3MO׏} xQٍ0h_f*_L/lEM[bifm>w% G^Q=TI(ľ`źo*<$):dx# 5@{~8ViL}|G0 +J_CQs-J!!0cE´kv40Q`979]l5m +Qu7 !~N<&Of!)K;* nkr24 E1]\zpTh(aYmKyhO +K0nS%`;ԚA`E/@K_(emQ4X1uJw;꘠BՏՂFP)uLGVGS}-<&tm^Fxa0GρTl2Kވ?2 p:wۀbEzbK%q\7rhGVسu +WTl~Xn K +qJܳXG(\1Ŏ7%RF=XfP=N(v}cU ]OT8rrAi̗V8u)w~d38gGSgm׈FsVKIE;Ŕ7o4ft[(u(A D +(;f7I dvlG})g6ЉKPୁڱ>e392&7fNOTL1K_2C&ez_q[GLX?=~LJ7$=TTsFԺo?nDz撠\ +eڿWoHr|9tgn9ې`&{#LyzB apOW̧K5x(L4Hr2Fs].7 "4` ,ƜH- +;NSȸkf즱yҚku$] !Iօ\f1z +Ug CSA^)J:09Lu3U* RX!bAZ9Ԫ6fᢉjaLًIqe\ +tPnb$ᬔ;?GҊP7GS^ `EW^|il\Hwo+ 9Wr޻zL%&H>\u4bбɇ)VWR@zį_TAnIXӹ tbR Q"\7J(J;{ln朵uBv"L>+2s쬈UU:V4}ܿ-ݘ  Tg@4d_!O3Ψ'fzK2+h8:` endstream endobj 172 0 obj <>stream +HWۊ]7%`d[5yS@3y Ϫ*iK~`-!ۏ܀_m_PRܣ. }4inw!s wY*A=gQ@!Ҹ0O`z>GRn9H 7o?\>e ЫݞKZ^oo~}~zݻ/?3z9g$|^EPm ~ `h^Bm(fEhͳ=A+gwYY@xPMJssXh9P +XB>!s%e!U"ǙJh05{ %SjAn ůGBǩNvSW4ť?K&ć=hEzvMS4Tl.]w +Iǝ + +d..6IVgB)| %bgr=an = +qn!̆if|(ja#0 f_Cizrsb=D4Mf(,BINKͅ1c*5A9Y}Ғ]MK&FOÈ䍄)c6pw`.D2",l6$ܩU{W 8 d7x E1y܆PPi [_CJ}FaE%ƚjw_D=@|?EB;k\5?_pD,R9(["T+Gke!!!3f@*ŧ0tjM[!Bi5&A+!+B݉V уyPű3$!+BR0H|0 r j_A aL|QRݭ1ډ-ebXx. gJHbe9F>E,B76}[P&AuvR_(mrkUԝ%B-Lgcq86;K(G,Ԭ8ѷ#mv$xoYq];/64`vq| eP`:G 9R{ ,\|ƾGT|<8[!pе 5272+.o#Q{K%MLXͥ䥋rj." 1IX.2w f1FKq.:MiQyn"Y!xc="~ "E>i9F0`MAA+'jK^j3 5q|**9ajdgdl qd-Rc @d)` (1a^J-mV2r\'Q2LKQV 66gdD3;T&)YDmɢlT#&3}v'Q #W_r栶z)rh}{07A?޼}z~p}~ӗ'@z{ç?W޽^_Q~ş8 a vxZڣ] V=)ͰI9M`"&5JC,) z@5HJ?*1a됖}P)ִ Ხ38{EyUD a~~ZH GhQeH uDj)ڪv80+T)T4Xɔlȣ$DLBU@l_HJ1ِU0`(hU#YrK bD$hj~%?B?m-MYl!f- 1l r1SoP B`B&ؙWThy~@37iמF5j)i &Ia)nefoy6X FI9<%eUΔu=Nz^$u(v%nlWA_%J5M O3y<yf׺\wl7YwnK6)ڝ%97=5qCb,1ZK< ٸD]]FtW $}.[y7igoTÀ6wutE |zu\¹SmnrRԼ++4\W\ dxƥzNEOhge #6`@ 1*ېх5&tuw!VpO_" LE-QZ6 ٱ th*BYHZ[dWhUߊIhWEIB" c1JKWW֦B4dE)) +f#)QQ4/ZVk!Kh  1D\H'8S1ܞVJ]*1NpmB}(RT>/ EKŤd5izLk>糂?3PByf~a2ӫWEba!|󡯏zX7R2$*},E$3lJ/,00eir9d~uL7wN3]KI K#Z5gF8:dtt,Ց2qUL)gyK]|X?M*ft`\ӣE;֢קz[a?nP\_֣"k)~B43Dx6'^(s ϣ8:^v!|_+U+/?d +\W`QIU(x>ْD(v;CVRxOšaиb[WXg'?7QXT2ۍ9ЬfG$w0BhW?~G#ַHB qt}0ng^nH8d<+@nK3p]9> Fnthu厸rg75gΈ_"˳Zm8%9)Q~pgo3h; ϶K#b j +д8iiʰ_b>kv!'1Z8B#f"cp2Yl>rAQJ"w$SkxGMHJ1{LFP:߮>.u*/J+,w2U2*O2^G F1n#Z~1d{:$TzTxTqf^E* YڷVb-YQЭc0 +uϟQD5sr#3N߹/'pz.ՇdطWF"7m3ޑ5ѵ8&P@בT7aցhԎ8^&4H.J|vnM\ 2QRUwQ(节(h]ٸT%8n`gֻ}ueKՌv[Vڴ"[pNTo?ՇrTtlt\Aw\tl`q&Q\Ŵ|M-Բ&lSK&L$# I-ԢM-Ԣ&hS &L# I-&{6YqMV&+fdPFmd0F\!cUֻ(v]>S;m"c.mb%sǑBW4&]*LE㢹3肈qQ;TDZy&YwXL# +HU*zInL&4^T2`2;Y.l0=&d1,E8@b1 &3cXLf1 &d6,`8L0Y &$XLP4^T1I0gpA$xL$LjL$L3 `=&b &c &c &b &a5&a &cZL$1UqWBjaY ,eհzXnho:T=[oS@6飺 >J~Ò1/XVR8ML "xdA&xdh萉萉if:a:ja:Ηoo?<gsPaR +RpyD#A߅sa-ZxO1̴tetYKnw6(J$W@Y &9$*nEc0KDq* +L%#sia0s0"]q(9:=(T^g3I%%d7rd1IӦS{̼D;' <[o*ṟ' xi3.]UH;Ksf9IP̀L%<3Ai_̢%*)u, x 8ҴDSNn*d*63zVTaC6NS DDh{Pz10ͧ + ^񰁶 Bѭ=In5*=/5 +C-Cs.V96" ơz^Q`#Oƥr$j*Ea Y +{sZat $yrt }|B\bK=sTXV$y̴ C MCLaYjl]lv͑#QĎ%c򋂴)d ?D])ԉg@vA-lHR[}ꚩ`mvrg x6Qj82XT3-`N΀IzwҖ#r"=sUnw8t4lHt/cpJd #LP <ʁ9Iג߿. ȎX3k㍄w:Ɗ1ٝ(>gn6OPKCXsS=p$]tl~IZشZ7M&x4^}Ȇ-ǽ;- 4 +l)Xz6<>Z;f,<vcLzCL: Ƿ>On?C۷/}w^_ï_~_CQFhoO76XSUhȦ7LU‹!>{}($쀘f aЀnEKyyqqyMhs"<N2EcM2۸b'iզz>r#[곘n~bjDVY@˂ԁ~g>Ʈ =2G7Ym487K\)΅h3Z ʧpdKDz)\ARܛ{e&-=[?D>9mE+:ɏ' ۜq3&,M$yBNa*qѢ-ySDmy?t'QՊc]8 Qz6vH;S|P}VHMB/ǿm䘓JoEF~6=>d-}X{%I=͇VOJF  ݅& b}!^ѮѮʕ̲YvNt6Ji7fݮMڣI{4> .L7aai&Ѥ=GrjGhMJ;a Mذ+OfѤ=G24oK[ 6.cc"/ɢ'q%Coz/}*N."/$12oN*Qm ĵ͏^#z{apX[p"۴cF&CI_05+ 3_ )&cHCxGW^, +d<ՠkúL1ј v\Y  s%mLj/g6?‘!OKA.{{K=ڏBUNږ n'qqsPz3bߧ O N6V,ΪYF .~M #cK!1娙X{`bηΚn{=ܴ<#vS=m]ES#m0D!5*XQ rKKqmd4s%EB"|3Vi<(e5vHcK +gR`3RG"4XY3`bgjQNWΰbU Uk ^&갠qRjiU9^XSo|ˍcBzL4b1ga4uȟyVP2Yک)^tP9GqĪٙ $w@'{"ivy^mv7^N(;sO6yPH IB8%c`IsfuRH#iO-bɉS#%zZ+B9ɘsCoq.,-. j)>Y jJnE~*OqS[Bxy~Co;9iRSdmKOT^+fEC>&i}$/G2M|RC$i?7:6ӉW5 B!?@HSiٸ#"Ӑ6Rn:0rhμoĪN1ewMI&/1lj]ڝg_v7QЮ1Q8 *԰Ƕk_rQEAGi1h]&QZBHiw\Y5}찠| ނۊ .h(QPqiѨe$s?OIhL~&Ä`ր)_caf[djtvS q֞t ̳ %dXɡϔ̬2s̬ `;o1kyw}RYYKM\weֱFǦ|:BC,1Bq7x +xW˗Zf=Yfj]-zDjtRdu24^Y]Gz]'n[jP+s}`+`䵑s6|7 ӹf[v’YLIEjB݁cb"uLC9H.#O?~??r/曷OO:' (6~nHcYI bnNpd R+P@ ^]DsN]B>ݒfԀu'd߫y>Bc71 2$ KHt&J*ɾ8ln-2]F{%KFVO3 ^r̅ᢔ۹̋pR 5Qu#F*bDŽSjjq5 LɉEޯ2y9RΝ"Z9w+!C+RT= E27ٵ 9l­x_d}3}fSK 0:XOmC;lS6gxX!0RW+3g%%Nxu.?kIY3\%pt­ǦxVpW:E[Jf$*k&ԟ-޷J02*&τɰ": m,XI~5=6&`r_䕂g,VPOwEIW)RE0C"'e׏V +sEJrMymr"Vvؗb<^tPn1gwJO8`d;ɳP P ETߟnɱ;Ma9 PT5-Ʌ̰I]9T`2n0;RhǐxxTvY_},".T[{m#̶i.7*xwaTNu8tT.Rؚw {5O(hE%f܅5^~JQu°?JCӰ_QI(;P%.Ec(,iִ7] ZL +>pq$oYXzC!߷rtEOw4w苟 G>~4nnhgk*X0@Kem{YZgTCĨ dTvSոcZz#'ü>ك`^WJ ,Ϛwd^'vv~p +5aRq+) 'X'Tj5' Io5U\o8ħxZ4Julx9\^h5 ެRS &|g.הgh!&'~V_ٙVZJ6bBIi5"]Rogog dE3rI^Uqh2Q1ma6VThNX]fQҦEnp5Qg +C#gT۷I |c+NZ,' Ր)cV5=kp7oTP6tw~>ojQحux= ^x}+[hP6[%mΏ*2F9SRӶf9âRt9]X֚{2Nɖ2sî̬`VeaU9O d8(CPe d႕q ig@u̾Ѷ0Vi׵ IEj[ +*fu`㬭M8|"Q@&->)!jTrmkliFM޼%<i[JTtӘNZԅ&2yq~p1V:K䨯I61y ʱH:F9ϪKݽ%y<N˪U4ԕ!FRyV𫳓"z*0`˪c8Bj7$"6̽>7 +kqJ|$y4o?rAG4h竧6vqx~{<ߞ^wĄ o_Ώ.߾<?8y[?4y +?,|( 7߯ye;~V+ێC1Z%h 0yC KĠy!I =9Nzdl*.8!n,~.ᆵ6jU"6L贻U";A 0  ]UۀXa}5ˋke o˫a R~5l-I!1u, .6"6C2)Tȍ K%R+Gu?,W_b|ONE? yzd~oɢ8|~Y;'? +hq".)u6T.Y֌b^mZZ~ vncL[e5}A$ulvSxH߯N_Y+o˫q)~6JڬMͻeWV&ea|XҔmn3[Ϭö|FeN;YmL34/-Ew[Ӷ|F%&:):)*/wmwu"S]#W:N~]4JF 5ziMQVM(L[5Jd$<L<$phE}.7R5(o.BDQE2 z7%UVSH63f  RLDnq)\YHГYn$4Q -5ݾN*+߽D0-:}(s496xiH85j;j 2Cz7 +S=xa›$gYT& k*c8̠w}׹@"P%BL-7-4\K!?I"q0D!"E{[EE).(v3XD46i>18GpJ*!.W@U}'E +j6^[^& dKG\ +PX|fJJ\|C<4/V'Ož"Qಃb.DP.eܵ(T*H+\#GG=\轥0F(o|ezgGIe#`G;C?_TDz.if8D^Pg݀og)Ehث BUT̎A˺+$ zkjw#!*= *!PRo:v 2lPlDKS&PW8 +Cd 4d}DrЫKE.^JSO2IxeXW 6JA;Y} 2 p$>bkMzF&k)KP<֮ZEEp2c ,ZGԒQGNlv%*6(FUH$67]\>Ϸǿ!z D1fxY?\>t}Oty ubpc٣q(ИfCs%X%!7]gѭU `Cfe+:6VZ>_r5{1I0ЖMhz0`p:#6d <}& c2+^&MQp%L9!3ˎLO@=*)eng ’`PD]^K$1S3`N~ bGP;9#|tYT|+⥶噧PW;,œs0:feAtV. hLt1 IaLj/}fUII(Ϡ !TKmG3 ~&|Q| +P0vetJjA14RtPd,$ iGYqľ +F,T33dDEuSW뀚b{+})A)bp*$~jA͑cQ))Ē| ASXU`?-5-E3iN;bB%Ly>bx|e:N0Fƌ%XEhO:_R)*Ew lJ4`=-TKcbY\t>U4*% @*Y 4< +0R#hVPYHKbVTYm%hӳ_<qY.O%f(? .1ū w)}uՋG]U5Cߐ!/$%\dmn˗ܭelU}qSTU~ vUu<"︷pIQ VH矈 HK$,bamhB-?+xo7ԋJg㏀ĐZlNdz&ݽyi^KԄ&- yu}/3ud TֶC\KA|H5i|^)i/yӵJw3^#Y("^G _b7 +@߈Dk@fNHbT~q\b@f5A I uDNLoZ +\a7y$T0qe[8i&mM!m!:`ˣFNT%Ą +g|XhP6}[A҅+{Lw=i1۳@v% q/;@8`** #9$1( .TA2iXIIuP_Lkr`)9"L,+L ʅ|ZE^y4 d6ScB3ZN H&bGZN2 *7@>x#.aaOg=-42ˉ~{&)RְT}`|0&4̎;u#h +\dd^WM[gXJ 8LjY5,j dp*yFeX$U9$si0C0tTL'ݘKڎW>{ +D5gغTm`oSe,K#Z'[ Ea3`c.Y4gApT𖏍`DA?F)y?Bn lCky|< fu$*PC FhZ4w vK=pІ?"jAE{~wrrإJ#:N*xöOshc8 `ͤ{չ2FvoHd3F6Z+9[E O4*!v`m +esiXH-tx4.ֱaC#j{@jjs"H \^! +:5\AX:Qr$VJ̊a!QfԼޟ +a7<4""v\f6,5ŇF#vR\|fIG82!1v{Z DPwBŀ`fy<)1I:g2WH"Dfq]Wd,##pF[a|fK2R43n(+9\F $ J[Ma2~6]ƎBsN*bCZ @-TF=k<4x7ҨZbiSQ:#Zl\C K@]Ac(8%cJxQX'PnX6䊾$etJ2I֬R(0>Qk'X(];G ],&gבE\c[T7Y9"ETnV 9u5~go +3oJ66qX4|Н+95z[ +oȹʺb-ʵ+%F\󱡝\pnG>F4^j<֠\r(Q؇ +qH.u9V5-պZdL,^=/C UA +Ǎ^tDucW˶1auU)H#ɺZ#%yP(m{G7=DRХ(2Fin2y.GE?r!@[;W@VokƘWP=,leq{%rzf#&SҴɚgjJI\iu@<- +øF +Wk3kJ{fA4qdsjI1A9ٙ dm+nR8V6dI(>IrU2@'8Rzn,܇Udʣq$8it+4ަS(,)v]tNeX4+txNLrI3B85; M%*.(6"h"NR_#A7#d c`\=4J!ƽ0  <^J(~,k\¯NC +B[ \SU|;% ?XD +h7nTZKXT tjP\m[rŏBe x J}8ŁcFCb5³8#[k$lY8"f[=N'%o%a BbM& Pw/!|ƞD!4E\9鐫P:NuhG!qU<0>0aEX +[ 2K!DvbcqID +zKV +l#A,qmy."]҆jmN(fvFejtH? &X=;MOꚘdZJo&R6B E0~1[ؗ5BDùeb23ێ -=<7 ێJCRo6P/0BFdw6gR/6dks3 P*hw‼n9b g?=5ժQ窵߹vP,YGC~R0Jfy*[A!S*:a-T,T9 $w+HB*TŬmM( E+(g|zg3:=i]}х320!IMPY{6ЭZFXLi> + S8#1=|j4Ѕ p +3;@g6a`j~*o"#3Йe>,g6K1%l5uM!+1|ff^loAX^ Z鎢 w&EQZ>kT0Z`R/}<2˷6p#ōlbuxLc3_ };y{2SGF"aa̍Ǩ̳|vþ762k9rnYbÐ<޶j s_@IZAZS&)%gl +qbX>QVt;s +-ΎJ*>HFХ2 M)gLWu#Fܸ3'%K$~GYL L[A7%jOgF)&.p(񁓎X\'_*)g)Qw/ŦGTEz [r7~^o=+x=J`-}1fG~[_ ;}]$O?>~~SIOƳGфgaYس3 +o%IyiLJώ{\}:amL_ZI_'PѹӋ,G|Tc(fDOG4l?1'#B8U:C)%jdzww&ˑ!_7u J-,Va+uB0.f-_Hұx?Yw7YԾ?]ˋ|pµ&`+쾖;@81ͧkU#?-E(l< tl^?@A(sSbp,V:,?;|}{,PKA?\p56io3 g`# endstream endobj 173 0 obj <>stream +HWݎ~s(;,ё#mb_!|X'D." oﯪ{AƊpꃋ4c?CCT((-L9K[8ӵ"W,6zU̢kͱyjj!OL?`&~| q2[i ݁) +(?L@Z0 +拠Hn5Oڀ _zxVKюuj`"hrAtZRC'ԜlR u;fN'<(W:i)ǁ͝r[>kREWVx,rx{ ~0s 83'??!Ay}pvfP{k=# ]ir T:[VBGU.sHjOiΖs&4GTfE,A$ƑX˚'A:E$n'CEK> ˜Gżwq6@2{+r_@l +\4i* g*.%1ZI/G 58r:ϱ0a>5\PkdKQ,%S2tX + +; 2*x %+k%6ƿXYU’YaP^!A'ˎ&q)_{}ΕoNSvRHٿ>D3ߡMFxMqA~kKOXNa+G F\},p(|ǏI'M +1瘄2Y`±:՘З3R?ѫWwwSymB!OFb;6(ܻ0Zf+6zkIHfH_rj6 pw|zK6V:`ѳ`-v1~^Ͽo?Ӊ#eђĴ؍a#Y$y%][(ŠW}A ]Rűӵ_Oe*8Dk놂\Œ)RU.DI1uq.Vx6aĬZA@8z.s<)2S v<Ǩ'.||Yj`) F1-\d O:Ŋ9<JϦ\8n\ ~$rx;.nZM(}M67`R=ogo>0=x'}-֊뻷77vqn[0^7ӳ =nwo%5tW@Hjq[iayX$=TDϑo-WyZVX:"OT\1ܜ" D; zJ0XI*d' t5qp W*k$dq}]ru3CKfvHI#i}ʜw\(sh۟s=(j;6L&т-{X'+ѯuF =J]0Cu2ke 풋eP/a; Cnȸm]3(\~uuP8̄2G^>.Ui)6_'+jLH]|/*ssQG\; iehzdY6eU͌:"Eqd]vsO ZHIQd1D-X>Sm9XE+yGa@X-Y^pӡ:2ttwݻȚ&MylbKbM6J[޻ktSB!y.Y%rsa' +F 8'i>idrX(p19/w\""9V RJ6CahCfP 7˭Ů¿"D,wMdD&dDZUw>3(Of^Vׯ<g-Q TlWZvIrl/\PRzf W/dNO Kl1YZ%X@Dجe] edbhᆆG]mL& ,,RDګQM)^qeqN=JBKw5i(~==#k(3wӜ603=ΰ{̟K0GRr^3ai!GoF6Fg"|G.6?mW+ȸ=6ʖ@R&2qIFp||H^ ؂iH]_N@/bǏ̎; enF)1^~i"qn9L qfߔ,-{Kz*%mS]t;c1V!ȃkl.xd9R4U}h uPc&S.к^S?-uGf+&`Ng-z,c}P6\zU%~[%ONL`|@jŒqjpΫ +vomK-b>Գgv+hs䘣c3c~ț[? r~ytDNg$" ŊB=N 'a2{7k72?uc =;d BRmA~÷Z_/7zV[|S[m!-*%♛z2-j]J5vg /Ԣsb(}DaKc/RL: ҕxeAyNx}Li/CAxIPPRL%vpҸ30$L!$WR^xBibcst`%E ES*_Tc!eyZ6 UFfPU2F/h+U ڬaImD^¾Cw#(ɼ2%8%D-W6wy+T+7-ٙjMQ7W-9&\fTaf4cR3ebvTUE&1G$2 s)\sgB : 0Hsv.<24Jx>/Ҵ,iVc/kyZ B^}vpj:/nH_&ysr?§l}]&:Z7uNCj'W*: +zd{j !=}ޏܽδ ,ꄑ% -&\Q;d{Lwuk+HV cAQiձAI/:8q eAhmkbӊm!D*:r7h?ӃP  +ト{uq|ЫJh; +aݣG!( +zr| U'ヤГM_lz'dxo8_;jpD`58" UqD0 m."y ʐ'L"ZDЋ0jD@0J$ ;( d -8 @@pZq<ʊͪ|4@VdoP#;(t7u烲e@NsU#s8L@(Pτ9Gp<`-."Ez#HE";"`A^UE2B" Q`bf\H+-8$P'DmM$@Fd|SxU*P!У,@Ȍv(y z"meBL@@uBZuv90=Z|@v&T+Xw>**8>`괝`ʖ:>u|`IWbU:>Zg| 9}AL䃯~o__Yp_1ݕ3a7%O"1Pݘoj妰ʭ5mt8x_X=k܆rl[eq]똢>4+cӘg|_~pç?^l؞ׇן/?˿%5A]#1$m,bs M>&O/O#uc'^X794.oƿ^^p_.u{b{w\[cٻ#<{w^ͶTHI7>>~$aRXp`T4R$?oߟҥݤ u"#P44G͍-=2뮛bὯQhH\ޗkn nl:?ִQ ;cn;[BF90h59[~5KVFmIקV1X>'7~2?mn21^~\B$p"bQA6uN'DJI:VAg0{M"!}zu/x*xe  FVcxaH@6Q9U$/ow PIgzlCSt)Җ0rvq܌=Լz5@^ݐ >JG +ɲ۞,tIrM(H zMnU.V4l"W{ƚ) Xu-OW$G C\6vE0gظ|Nt%M-$Yܜ+>|=/֐ЁKIKݵmPu _{5^˩ r_'o"<.z1gy1g\ rtM`VޮBI\إHgoݖg"+joc6T&"n-lK$BUQYAWsl*=bXfq@ϭ6ZA+u +̝@ߠ cF2Ĕ*v_ͧ qvAvydomg|$DdRMQq n6m` +ʰ.Z`)^kFMd_;Pv}#aֳ`kh͒^ˈ3zB_R "itbWȰ+3ƫc5(%nQkZž :6x^{EŖ+y[ +8*2Z?; *WOO,fH9$Qč+~^$ӊ#'@,8;U_ V ZA{m3\Bj "= Qa$OBbwdcgЖ$ _- 5Y`2=I0:gɭtYnLvg+r3֪+E9Its.}LЉT`,h~H HE|p=DMR̖u:XPA`" .d[(vN2NZcpƽC$T^zڴP>^`z0V<ٛ4]h'ZB{aXkN>cMTz EXj 2!$yzEՙ)J 0(利u<7v=P̞H/xd + `G!0ƅڌ_]6*b Fޭ<8>AjhPǓ8qD j:б2J0(mܣ0{h3ƶ2r,?#+>ޞ)XM$jEwdalEb{6YX~nPI6.N/%dy/zr鉎 + r2 +Cf oO#6W:\=Lhic gsH(!! UdxY.g&mNPH4em 6.ɠԺ+r>Jϴ`LP7G}5-_Vu?_E721]|/:TU4*۞]*͸aӚq#R&sk#7R "|L %4R3kH+!(b܌#H֭nP ]cxlՋ H0&"yFz 0f Cظ )ȟ `m7v m6D΢~'R(wߞ\ G#'_|@ # +/KG@'@hl XrS(ݩb4L6prUx,EeF'F,9r銶zv*9:f!!$>IRʄpB!]wv(ZH8 ӹ=ab,) O-+//xo0PfSY &, G\!#KGC8Zџ__'|}#>å|~QCp_ 'L8D*|si3lClS&~бm +fDEW܎"ga`nBuՖS%g$㊇1Xܯ ͋O"8 F/`A!*_e}udȌoZ@ksuf$U̲LP1h-X_^t`؏M +ƦCО_z㏋:|dIqYſïLLN)墣؅ӂr V9Cs g`u6!\)j }b|o3qZtq F,>FKwA5 ߂kt&df趪:Pe1ׂ|j;XҔ,{kл[P]5YwUCVhVxX * ʍe NޯcԜoW\T:ovDn/{M޽~js)j׹ c c6&'vQ,Gя;~P҉( AFrbvPMeUK,z8wC ;S–ai\|fXP9O'Src4ĘGG U m +x-/IU<;W rD +`z] xLIQ!"/f?X+HNoGWvyI[w3ׄƻK81iԺyF\7@u GWާ_k~bRpFV߰4Qn)`Xbd[Ղ\LkEq;uFk:fm2@H ۡ|yJIn JKPYgho:6ZXϔwǗͧyt|@CC>ZFJW 6q ]S(ZlSOz&Ŀ48d12xx^-;6 ?΢ z.0 a{itMlf1l +$qkbPfGd)VZfAMm# dF))SE}oh,㟲>K ' +>/Ʃaɺ|;Mn%K<үu +@f`-]5bYmΘ9oSb9^:qL?`g}K%3Q0?ĬR$cK$uy< Y,bQ@ +YK.6L N%a Ԥ }9hkgLXJ1=4 + 33QX-TEozKŎ2#^3eL1dQhTҙ}dj&XMEmGth +kHTvV77JvaɶJE|OWpQ,62(By"U#7H}Ԧ2qi6fcpmTۍtUzZ6zjt +ֈ/Y_8"xTjZKCOWE QeLRD/24 +&thBmɺVlt]UX*.5.^ L+AuJ-|H&􋵟0A\顄ӈg!b̠4QuRR#e#L6DQa7%NJ]v \>fb' +npp ;8DSSM'͋oN x0~X& &x0aahu .V@>]juj"ymyˇ~ n`p0уw0qLġ~\D&_L`L`60a0 w0p8ퟴee0t>BY(T^GlwJcirKF)u(' +2,)b+aOIP`V2G~gQ'blȒC!m87% n憹lM6հ +A"8ͅɐqwO~ng4 bvfY 4 +UNT,!-r3sя?^W*j͑Mj:kut8ɨ"}4J,-5jҺOcJA?Q~dbɡ63Uh_'r%)1S?~ZP'o*Qޘ$FՏ-dDʰT WtŃK6ȧ149^c|L 2=u4/qP{WT0KiA]Ab+|1/(Jn(4^`^e1r ʃp|!~R/~>jIʏ[\oMFUAcppRt>@mpGkj\EkiNzu^mgR/C֭mU*tp֏%8xtLyݓ)G+*U-]P .3;a]^w]2@#/)HTx>= l CmzrZ$02~daW X:v'*FPY^TAAہxL䭍7)SyŖB mZu9nEVaPrMw%oJUfG F⛬VO]K'ʠ_`buFȍRC`zXiEn]3YAZsI֋S8;(Qzfe_15)rCYFdph-N 9^J(ū]Rxϵ5J?IxYCVs"\2Ņ\Bh0HhZf+ lL$Q'9qi( EHfVydm^rZ~tq;Cpb8u4A+@9 Lh -hҊPV41/heA('46^_3@X  RY <[ʂЀ ,hf4A6;ȗ@nvF׊f4Vg4'4f4 b>=ʂP42A,+@9 b 3@[ʂxeЀ/ hɮheB>u46 Ѐڄf49 Ѐрa -h@eFIrH;Pрh̊ʌ ʊ4Arg4HnA $Fh @Y 42ʊ Ag4A+qtqEN4[рNh8wBj3HsрŠ h@aEj3-hpy 7F#P~$>pPeHH՟~oyn?׋,`E>33V`j*f|na cP*s ),-* jDw~jQSW,+듌%n?kQ0, ,8TU[)ɠCcKHT+C@a_J9fZz2Sp))JA q}iQFB]FkĮj?!!qAǕDjSI6$2?<u +BT_x ]c|x~!Q*DcpR.(]Ȇ太A? 9aN]QҒEF/GZ(/9%l’yp4﫩YPHi7?f!`qWOp$b F1'ZI6E(P0lZX@&4gKl+EZoV=}[f(U+ cǒ|˷ox}[Hހ,K ޾۫w^~{}#Ǥ/ ,@y41R-Xy^e\SUWF+2}' @0I>{ . Ҳ 0zkB'<$tEL!xfvC$TR `M:{آO(azSӸ ^ ʴ \*jƣB +9%)|p,.3>Zb,*4@Kn^%x"!?őh'ח i&bIсwA6T? ]咞6;zh;$Z]d(fVl }r=mRg٫sF%i 6 €eו3f0=}C- _K._.~gֶH$= ZFr^U#@RuޅŴP%;r6iz,̍ Ҳח +#X/?ӛ7?x.a|ÿ×Oۗ|/on 0LC endstream endobj 6 0 obj [5 0 R] endobj 174 0 obj <> endobj xref 0 175 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000039871 00000 n +0000000000 00000 f +0000105596 00000 n +0000214228 00000 n +0000039922 00000 n +0000041184 00000 n +0000073499 00000 n +0000106627 00000 n +0000101075 00000 n +0000105784 00000 n +0000105897 00000 n +0000106020 00000 n +0000106143 00000 n +0000106258 00000 n +0000106381 00000 n +0000106504 00000 n +0000074837 00000 n +0000075278 00000 n +0000075503 00000 n +0000075723 00000 n +0000075943 00000 n +0000076154 00000 n +0000076365 00000 n +0000076576 00000 n +0000076788 00000 n +0000077002 00000 n +0000077222 00000 n +0000077519 00000 n +0000077736 00000 n +0000077950 00000 n +0000078293 00000 n +0000078586 00000 n +0000080484 00000 n +0000080878 00000 n +0000081099 00000 n +0000081320 00000 n +0000081673 00000 n +0000081990 00000 n +0000082278 00000 n +0000082711 00000 n +0000083865 00000 n +0000084297 00000 n +0000084719 00000 n +0000085143 00000 n +0000085475 00000 n +0000085853 00000 n +0000086187 00000 n +0000086523 00000 n +0000086742 00000 n +0000086962 00000 n +0000087316 00000 n +0000087538 00000 n +0000087758 00000 n +0000087978 00000 n +0000088190 00000 n +0000088410 00000 n +0000088731 00000 n +0000089134 00000 n +0000089532 00000 n +0000089933 00000 n +0000090324 00000 n +0000090594 00000 n +0000090816 00000 n +0000091038 00000 n +0000091400 00000 n +0000091746 00000 n +0000092130 00000 n +0000092476 00000 n +0000092698 00000 n +0000092920 00000 n +0000093142 00000 n +0000093361 00000 n +0000093580 00000 n +0000093865 00000 n +0000094084 00000 n +0000094439 00000 n +0000094792 00000 n +0000095000 00000 n +0000095208 00000 n +0000095579 00000 n +0000095953 00000 n +0000097709 00000 n +0000099465 00000 n +0000100226 00000 n +0000100446 00000 n +0000100728 00000 n +0000073563 00000 n +0000074276 00000 n +0000074324 00000 n +0000105533 00000 n +0000105470 00000 n +0000105407 00000 n +0000105344 00000 n +0000105281 00000 n +0000105218 00000 n +0000105155 00000 n +0000105092 00000 n +0000105028 00000 n +0000104964 00000 n +0000104900 00000 n +0000104836 00000 n +0000104772 00000 n +0000104708 00000 n +0000104644 00000 n +0000104580 00000 n +0000104516 00000 n +0000104452 00000 n +0000104388 00000 n +0000104324 00000 n +0000104260 00000 n +0000104196 00000 n +0000104132 00000 n +0000104068 00000 n +0000104004 00000 n +0000103940 00000 n +0000103876 00000 n +0000103812 00000 n +0000103748 00000 n +0000103684 00000 n +0000103620 00000 n +0000103556 00000 n +0000103492 00000 n +0000103428 00000 n +0000103364 00000 n +0000103300 00000 n +0000103236 00000 n +0000103172 00000 n +0000103108 00000 n +0000103044 00000 n +0000102980 00000 n +0000102916 00000 n +0000102852 00000 n +0000102788 00000 n +0000102724 00000 n +0000102660 00000 n +0000102596 00000 n +0000102532 00000 n +0000102468 00000 n +0000102404 00000 n +0000102340 00000 n +0000102276 00000 n +0000102212 00000 n +0000102148 00000 n +0000102084 00000 n +0000102020 00000 n +0000101956 00000 n +0000101892 00000 n +0000101828 00000 n +0000101764 00000 n +0000101700 00000 n +0000101636 00000 n +0000101572 00000 n +0000101508 00000 n +0000101444 00000 n +0000101380 00000 n +0000101316 00000 n +0000101252 00000 n +0000101188 00000 n +0000101011 00000 n +0000105666 00000 n +0000105698 00000 n +0000106702 00000 n +0000107020 00000 n +0000108096 00000 n +0000121204 00000 n +0000126409 00000 n +0000130299 00000 n +0000144849 00000 n +0000161409 00000 n +0000180480 00000 n +0000200370 00000 n +0000214251 00000 n +trailer <<599010731438420FA0764157627E95BC>]>> startxref 214430 %%EOF \ No newline at end of file diff --git a/public/images/glyphish-icons/icons/01-refresh.png b/public/images/glyphish-icons/icons/01-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..eeef8968124d204fb9e86f79c52970fca34a38c0 GIT binary patch literal 459 zcmV;+0W|)JP)R$53?KOKK$k#A3)RAU=a8b`OZ1NHIJg z&46z}+y%s1Xps!UGl7_g6vJJC_z#i+pdgaNq7LM0ds4%k4XP1l_+cRC#G#gloYYc; zWcYJvlB6oQgk(V`wGEd;i&Rc(8qNg7Hc0$~K>VEw<_bYE*aB%Ji91v<+#VW_AZ*V9 zB$$yTzfi#fS7@pP0ZS${LxreRD8d~Kvfw6?fF%_yKsEzxHYYUoz*3Sf1%~S)ne!7l zMXp1VSVw^cIL$FYD~DpqFgzAX{~xHCC}2LC_d-Z8JOr(XpN~xuCt8sK!V?IjEFq{G zWIdOV!=4dMgEX`XR6)xdyP^0IQt{#n#XM*k)d7f~;`1&@!xj>%OBmilYEcfV@Xr%r z@Oh|OtbmaSi$E=ga3~Ecw?IK~ABa~%X`BEczyLHDl3WB&HzNQ5002ovPDHLkV1nG$ Btw{g? literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/02-redo.png b/public/images/glyphish-icons/icons/02-redo.png new file mode 100644 index 0000000000000000000000000000000000000000..8503fea11daa26dcfd4eb8a31c958328278bf01a GIT binary patch literal 490 zcmV&;| zGyrBmJRgWZ1MzdWm5xeL9%!bz7z~ow3>=R4l@%}25@2vV)VR7 ztsuXLWTq3gAjVb_Q6tC~A(>eO6J&yxGT4&4C{&J8@B+TNdN!<07*qoM6N<$f*j+-DgXcg literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/03-loopback.png b/public/images/glyphish-icons/icons/03-loopback.png new file mode 100644 index 0000000000000000000000000000000000000000..6984fc927b65d4c589097c04f9377be63e2c829a GIT binary patch literal 473 zcmV;~0Ve*5P)5k*KoDIF><1JI1y4PB z>QyKR1+RiX;Wr3^r$GLo(39ZFtI%`5pb!Y;&`VFY6-2+Fr6rw(2|R{PG8=1s@MPo8 zyq%rQ&c+xWZp?`gDec~g1@W2qW6pqrnKxvkPrN6l#BXNG|Mf!_ltKmYlQ<_@u)iR# zg`JOUwylI#$Z^F!UE-_Kr(oNzZ*i@V%Rs^zu$(2FUlNC0UlETN!X_0NY!s@hfho+n zS2eE5?pVCesRMbgI}Vktpx1%l^bnq3jwz;%EG9+a z#+p+QD*}i`(2)pk&PNw93h4u*n#HBiOzb*`Ifpw>C(L}EFcU@#b~ZIaIke<**C)RV zN^U@CrS$o;+wf5cS?-{|3}k$@-?sT4$b`^CgOINV{vDW&vqJSD`zycz<^Shr`JZcy P00000NkvXXu0mjf@2$}T literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/04-squiggle.png b/public/images/glyphish-icons/icons/04-squiggle.png new file mode 100644 index 0000000000000000000000000000000000000000..5f7b2060f442f1d0106466bc89bf74480b6fb0e1 GIT binary patch literal 411 zcmV;M0c8G(P);hs-66Em%A{{XwYB)0f2E-~v%2VtJAt3&P#S#$ig{mPWj~6fzq2?VBGeg-I(1O_j zN+ZkLW0A-22u4OmHfS8eT>ln`Hv+L47WH3%_yk&7K$ky+M;>QLfL!Z}7W{rdd;o~m z8K?)e@Hqk$gh#N*aRPBZ6&-OHh+D9Q4ihk8{sPjrK+FimKE$}5NWhQ82Bn*7Aijhi z)z}i|M>LJ(fWJ^$7b&g590ZEuW6+$#No?*Q2lNq;2YIdth*yKyv~olx5O)Ca3jz)e z1%(=|9PtnCJk-qX!cI7m4!d4g-abArK!YRBY3#nARn= z?&u;=ArX=%4d8GDGqh@c4z*w}THZ#NKY*i{Ckg-r7y!5ZeBwSAJ~RLT002ovPDHLk FV1jCNov;7^ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/05-shuffle.png b/public/images/glyphish-icons/icons/05-shuffle.png new file mode 100644 index 0000000000000000000000000000000000000000..37fc10835c7c70cd1f13b3eb11432df276c13919 GIT binary patch literal 356 zcmV-q0h|7bP)))5n*DnR@eNz+LnW`@QIvSAYl#9=rok?#b=f1sLsp~?L-l4ZM~ zj=*N&I&xEKKGa}PklsVG>^2bdcZyh=r(Kw1Eu%iDcO#XzG1MM4}BKApQ@f z4?xAG8OQ`|K->ky-=K!#!r!3k*hn#46o^j}Fc=-5gz6*8<>-cA0^$&);E;y$FJZBS zpikP7H2ehO7Cf5Rpz?o^^t9tMTpDU9OmPm8L7Ic+C^=jT8<7+qCNWVQM$+3zjG`zK zEr=q}Cf(6UDYszw6JKaZu*`$J3~BBwM( zwhAPA@s1so7R>*XP`1bx8w-} i4S*li$&XMp$*6rX{L zsWT7&ML_%wi2vij-=JzR02>f*$DXaohO1Qdthh(<-2>FdZyNb8WDXH13x#^`?B zLW1Tk*g}{TSD4|7rY+>!4g+SC*bW1`@MzveO!CC%3QJDSr z1<%~X^wgl##FWaylc_d9MY}y+978H@B_%j8m?@lNe8lYVN4VqvO>x4R5GbZ*qwykGN@{3BHa?;_9PbVV- bBO3#I`98MN)LFlP-eB-_^>bP0l+XkKf-+`? literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/09-chat2.png b/public/images/glyphish-icons/icons/09-chat2.png new file mode 100644 index 0000000000000000000000000000000000000000..c5054c303a206f17373f1ce615ebb45cce1e629a GIT binary patch literal 311 zcmV-70m%M|P)%}i2sv_ ze?s-#`LgvDFTRAR#cx(~KPT_OQxlPeC!w2tI2pddQS zKs#_5WWh=rTCkEXMFp&|yF_KfrO~|uvMnD+W+A$0fSN&cqQPd!Hy{q7RwSVt{uWv! zFwnw++d!;B?PLZs{3H+y(IOp#3||ezoV3a)lW`Sb!~%c-0|18~>>}v;ksSa4002ov JPDHLkV1g=ta=HKj literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/10-medical.png b/public/images/glyphish-icons/icons/10-medical.png new file mode 100644 index 0000000000000000000000000000000000000000..588a9663413a6bb4753b224a388d216eae28091f GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XN<3X0Ln>}1B>(~QBQb?KrX&9~kN7W0Ydn*ZvAn7Ag+z+l zVQndiKV5>S7FZ=H2FWT*&0ml_Ln4F4jn}Pn%6}H6u80ryCOw^ek1z5Vol)x75#PV8 zap(G(jV%HKw*ziI$mF@uwO+hqe(*xCDn8S0UWEe;(`}<%R1OLM0ou>t>FVdQ&MBb@ E02X~ocmMzZ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/100-coffee.png b/public/images/glyphish-icons/icons/100-coffee.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f2ab4e11b3dff2c76cd63e0e0af740d3b44726 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^B0wy`!3HFMdEYGqQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiq?9%IEGZ*N=kBQU{UzzujZFsu<$6(FGae_}K5&C)4ts>)Ro zb_)({V85Z%s>QZRf%6>8qvjN;3dY&o@c|DG@tb(JoAipT+C5>CK~3Y?1M(sgKbWUa zw+|3HeB(f!(Weh}HAlsd>baPIP?BVeTawAxo%evz=!}I!us9Qo1jBQ~Fk?-lM-PAw OXYh3Ob6Mw<&;$Vcwq9%i literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/101-gameplan.png b/public/images/glyphish-icons/icons/101-gameplan.png new file mode 100644 index 0000000000000000000000000000000000000000..7dab18971bfefc5299b7d7949f4e2ec428775c8f GIT binary patch literal 447 zcmV;w0YLtVP)65I%%L zD1<^NgF-NbLg*ND3<@D*kfmR?^kzAYwx4X4tTvaA=Ob~h9Sxb6%xC6@>qwXIJ#zx~ zJr!QU52dh3Zv|+OCT3Zi)%s`V4;a5!V0V$R7i)2R(aKiO>`7FRO}tLLhj?E02Ockc z_PKB!*m%QX#DD;<0P}%`SZ4+>P>dF&+*lCkz}ln^c@P+G;=6-G-wqxH0pf)qa4N6I zo0uWo@_i~K{>ner(FTxtHUI^=iozLCq@NTu{+Hs`h4xC^n$iL#f;1XXHtCg#J=DrD zp2P?YEuc&VK@%&9t>AvJvgKya#(T~d3dv|`R%5{S_Y$OQMWI)T^K#Mz_TbNI58Kqg zD2=_J5jta|k+lIbHC8hESI-JEF7Bjw?d3Ir$6j67UFbA~%UqXOThGJ0R@lr#f=fEV p>!91UrFraGE-NUCrS|qEzyK%$kWBP^UO)f<002ovPDHLkV1j8Mzz_fc literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/102-walk.png b/public/images/glyphish-icons/icons/102-walk.png new file mode 100644 index 0000000000000000000000000000000000000000..1aae09452e50f2c51fd89fba1969a06f04dd6c0c GIT binary patch literal 445 zcmV;u0Yd(XP)UYupRb@2qBt~y5<(9Ue}?jR!J_8_RDd6c z#tNtf@j!eMIo*Py;0)BSAX{tDG=gkWfok>yVh?Ol1M-7CG=z~gA0w2lU~vl4>L@i`Wr&C00000NkvXXu0mjf0q(K- literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/103-map.png b/public/images/glyphish-icons/icons/103-map.png new file mode 100644 index 0000000000000000000000000000000000000000..41e650a8347a9b4831bcf9d88e6bb88e11bc2348 GIT binary patch literal 507 zcmVJNRCwCVmOV=YK@f%$5z|J0!TkXt zg@v7I>;)Uk1hiJPm$VjwrG*f%6AJ@D8ymF|{6_2)5=0SHh^RzG&H0SX>3Z&6E*A?I zp1a-Kxp{YYhTTmh>?H$5sJX5y?V7eTHe_MvOys|u+JyQ^dTK!hCrL`%HXVt-FL%E8_khA^vUGkMiA&l@oSYdWuQCo*7=)Xc zLPAm7j%M5EcUihISb`zwfjKyZtC&kyC0=R7WY8tE;~Cz3qnv^5I7_GXGK|8ZXVb|e zsNK*UAA|xUMa13>$e;20Jrfv~BgMFKjum)2ar;<9Ej}W6( zjYq@iTZe@pp?kR0)GW7{3>jV4MV-m4ZD;t4El7BTNw|Qmf3l4h+TN002ovPDHLkV1k*x*m?i} literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/104-index-cards.png b/public/images/glyphish-icons/icons/104-index-cards.png new file mode 100644 index 0000000000000000000000000000000000000000..b37e59ec529b12d79769b7d7ac1d2df558a7cb38 GIT binary patch literal 263 zcmV+i0r>ujP)hluYFY%fA8G`_2(n$B zuR81Jt}`1cV%&gbhnsC9pNU%zB*MXhHj12cbxbK;QuN$2%F4J?_AEuEGraK+sHUec zZhzst#JBk=zM3lJw+gjn(j+hO7_{@vM8EL*t@tV%1S;r&N|0RZ7pUZBo)#aaLW N002ovPDHLkV1ns+X88aB literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/105-piano.png b/public/images/glyphish-icons/icons/105-piano.png new file mode 100644 index 0000000000000000000000000000000000000000..4e724d4beb3a6a3e6f68939fb41d6e53cc9585c0 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6M!3HF?%h*|glw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlA_q?w$B>F!Nht?dzIwcI<2oW4(eT4wXue=~>i?4h?96Ix zQcZz}-Ff9X+l((6wJ(zP3;lSJL)NtBN&y$6Ljxm&U=_b6yToD>pjix_u6{1-oD!M< DoO>+e literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/106-sliders.png b/public/images/glyphish-icons/icons/106-sliders.png new file mode 100644 index 0000000000000000000000000000000000000000..186d5636c9d39321904552c633731367e903cbe4 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XdOcknLn>~)3BAa5K!M}RTK?Pf&(`j|y`Y_As}T>IaLWPj z-Iuu-8swfUsGsRJxUF#Gns`E5O)OJ&(nFq091?=hxhp0`{61x3hZe8%q#I=P#o*}5Iy`>|{T7>`r literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/107-widescreen.png b/public/images/glyphish-icons/icons/107-widescreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c166a8900abc341f12dbe9c56ebbe84d3ceb6441 GIT binary patch literal 309 zcmV-50m}Y~P)UcH zw;Ds)rhBjlo3{Re2vV4I+IE4DR@8nrHCCmR%7INxuDOHYHd$z`EsY0RmTe+9cyI#fY0caXYsE%p)`F|Zy<(}jlQcH6e)iV^XhAy9 z;0WGpQspb|C7p-0LSM0wwX4A^U*WX@BBx+2> zwP00(n2M{U8^u3&r-C~wZ4^sqx^)MN`IN24pGE6C*dV|FEQf8|e$Arb00000NkvXX Hu0mjf|G*m0OPQrNge^>CqQfo#L`ePRWvm){udyA3dF~e4Fmy3r~$n|%mx+X2VxZx zQpFu0{s?9N0^(wrgfS4`1LFS_;CoPWPyon<8_6_qBUC?5Pz1z(h&1dER6S9^28f>% zFz`849ZBF40Yfj5YM>mE-j^e#K*3fbeW#@40)Z`PF6she9w?10zJ*u=If3{aRMSHs zwnvkA)s^cWKFa~K@iYM*yL*@Sy8wBk@973e8!lCMk@;)g5Lp?x%0RZGob{)~y Rdp!UE002ovPDHLkV1kijh^qhq literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/109-chicken.png b/public/images/glyphish-icons/icons/109-chicken.png new file mode 100644 index 0000000000000000000000000000000000000000..81eef00d7144b6458b2f7f5e6a1430f0a90a84fd GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^GC<73!3HD?Z{OtyQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jine*WIEGZ*N=i_Ww_x~KrSOmc2-}hj9)?H119}yr8XBr5 zJp8@zRbqu5qb<{kzF+-q!XGkNPVPOvh<&~t;|k{Uk2e+Ane3RbkyAkY!3GY=@5~#S zqF&5(FAuR7WLvA|#A_(=?)2A^O&{!qO^jqEUa&+g*yrpwlYfDPWK46HX29W~l6>P000>X1^@s6#OZ}&0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzo=HSORCwBAWFQWR0#dc z{F;G6kPO5JfcQTid;qGBWMBitmk1b+jxRy=VE{%fVhKPz6NuT+#CHSneI&jj5WAwO z`31!3K)e8-4-(K^_W_8jfmjHKdLgL%2Q+<|_=4yslEO1UEJtMU%0bn`^!~vXbj(0} z9!U|1&56aZMyPxv7CBBVW-#Llrq5_e6&b*M`V)t|G*my#tOR69WUp4>2^QpV#|5g< zf*c;6Fu`v?%uk^u{7`dX>g1S!gaML*BS8F-!VLToY7Pt-fGkl#5_rTw9e`|(3KLqU zBc&Xgk4NqWa;js3=2GN>5Fc28mLhRkB!R^K4kG-JBIz&zOPHYsBPW0fSkxUxlJ`ST zU4QTtA-F91jHRgggPgiZ%_qnfO@^v(N0Y0-mQP5@@q~ahT49-h?y^g0F5o250#39L zxrAPJVJn4ClHen0sCwkMb;4KOqSq%C1nQFtEcHnap_&n7(KI|Y<1eTju9`6mi02Yp y$6qC}j=zelj;Bj&g^`SQ7aKHKh;DZQ1Q-DBJ->@;o}DrP0000sU^n!?VHLehx8!NQQnK#J5_O1cOth=rh~#(+fAL@R|D5JVLGKvC3p6E(x9r8S}!>2^hv9z-pYP68c#&VrN}{{%S? z1>_iOS&CZ!78a|YfEDlxHu%AoKoJ~~BFCbPQF-%VTj+!X;^>U?i&w!67gTl$_Q4bV zelQKjM5Su65ikrcz=V9Q1+WLs+t^@Vi~46O4i$@Wt036!Rq#CvMga zV$4^XFNSSpRqd|uRbyEb&B={NuqDUTachW`Z$Yo^TKBc6R@oZ}3cukLRC1}R&JVQC zXI;!~+C_pkUmfl_?z!ELd6d4vJ@^rwO*N?-9@nOurvlEvGWXfZt~9WJ2E#WRs zOoAbB;Ic=ii{Iee#Hdk~KL~X-KX^3__F%7joM6r({pVHDSr z1<%~X^wgl##FWaylc_d9MK?TM978H@C7GC+r719(FcjJea69~zZ>UfTkHffU5 zu@6-W&m4r9H_A555bWT8aQTeOfda-ArwbWV;wPpyGBPr=EXX>s?LcG4kHQ5Dx280!Tj9b{C}S)ehq$><83%_r#vSsGohVta;F&+J0_8SJ=48g|I9s<4~luM^PlYA3&`GviGrMwM_80WH~1 zjau#rHTn#z_-{4#a7Z1|KOrvDb3p3t{|$O?G}ssz*%%J2QJ&v1gCP~@M+Q$l z0$PnMY-NM{g|Y1qwolmDXkl65U`M8v4HlL)@Yu#STXH1Jy1V$&Ottis%jxWA`)prS z*Y#w8JOS2$R7bI+rxDOhya@qV{ssPMv=ROXXPjdFrq1eOVvY= z(HSnCoz$j~ILIHELJN4Mb)yKXVb^d6$Z7opc&4v61C{U=4U_{4wPfU7V3p;l=_eHn1g3~Lue^cHj^zCmLsg`a?L$C-1$Txkbk&;e9fD2o=`Xy%y< zc<)=lUTN|&+cN8L*Mbb0ZXO^1KK3X?`YfAOj(U#7);MOq_LnWn} znA5eaWJb_|gHXC0iQHB{7l0327jXHV{I5jEyal7n$sPC;U;qt!M{<+qo~8f*002ov JPDHLkV1ghG&a?mk literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/113-navigation.png b/public/images/glyphish-icons/icons/113-navigation.png new file mode 100644 index 0000000000000000000000000000000000000000..01e3998605cecdd27b7e8ac0dceb50a0a8aa9c6b GIT binary patch literal 418 zcmV;T0bTxyP)3Ex%tCT+|KVom@@fD>RUN=TJ5wCQ|=93i_iUo&DO7}=uW&-@WySx+k@tvh+1 zs|y;C-_aT;{!6aN8}d;O(jL$w`2bG@OyT(z{Y%*|ff@N5S%s(o*!X~%=v@1j-B@=IJn6ve6{;fxcQ*uXv~%{Nv$IRC zaergPMR)FQ$^ziFn%k+ zFEE@Sy2~zl0_6nC31UtVJwfyYkQ0a}kQ;>TvP@6ao2s^J1`*O#uNe8fe*L;(yc>_l z-=60U2sNQ3d=d6o_X?k_bpl0L5srj2VU6>h$s?%V5;jb6h(w)}+y_DMOUFmTj4&m< z6Ly3jLd+_9A)E-+t+s4%T;f$HOl5A*?uyc~_$O>n3uee#JfwhBU_HB)Ct< z^R;h_C%T`(nm3Rtls;m<9&nsAkxy91bF5A0XYes%N=@t?)?AQle?M_^j06k(9x$c0 zC@fW9kSAyaFK-Hz%zM}5c(&2?#Uz-wls}Zhn$SUhYO`5HP&q`YB`dqQqTXvWEoPfb zEOYNtKWs~$S|;L}`mil|QyBHi@otoT$ZhIFHYL5tje5n@E4D3GeaWTzSMefU#6yR_ zBPl);-2YwQhVpUUvR$ZhDepoqm1h4jiaaV&g*E;J7y!NufdHRaejoq<002ovPDHLk FV1lA=_5}a{ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/116-controller.png b/public/images/glyphish-icons/icons/116-controller.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9fd2c9924a462a6a6f8328d1228a7cdf272cd1 GIT binary patch literal 523 zcmV+m0`&cfP)VWFv%7KnPOA3OF&_k2^?Zr40Q{F1mqn505FL>6b8Y6Fuo?=EiX;i6}It`U)Fo= zyRYx{+OAZq)s$lm&XHs}ez8`qGfJ`f#a&U`9-Q~JgM;W4xP;IG@Kq?Q&R z)+%hsQVyAQ?qomH(%i3d@71}cCAsbBs|Q5gzMd$%?6X>__8b%~P;BluqUdV{gk_u( zWqwg*1~3;|6H_V+Po~-c6+QEGaSW-rm1JUOmbQRl4to-_LfjFTMn&ELX9tD8m}UpI zE6N}B8+e2m9{qLrGoL}s;gW^?*#|BY9A7uyXl&q?Y5c(~rr+qGe8RQoz=41Kq6sRO zyq{0p%W|Ymfo)}C%R^NO=Gl&aFBrT&F6>>Pf6(H_o^SG=ADLFHwb;wTtP>IQg;BFj zXu=`3+0&UCDwy@wD;^g(V^E@R>%ecE!xnoWNn%qBb4Z?T(XB(G**kc=U6R-pydQMe zl^o`pn9M1=LBPXYp||OXih);={aYTZhA9G`2YEcI4zjT-aZh02bNJfC=+MB(u*1e# U8PLZJp00i_>zopr03IZ9WB>pF literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/118-coathanger.png b/public/images/glyphish-icons/icons/118-coathanger.png new file mode 100644 index 0000000000000000000000000000000000000000..4c692553f33344ba09c294ad7b3592d818fc5f31 GIT binary patch literal 435 zcmV;k0ZjghP)+)N2{ki3-!X|#gK`(((IMtl}_XXZWL5@%T! zDPkem2~u1)f{maKooJ?5+%5V+ix1r!jlc_zt)Ku}Z){Wo7RSBdNZ_%H<5oey<@!nR zPKz#Z{y7DKFTjNnyirQ_Q>1|7K(?=_7DgvvQ1zBvIcg@-5LgS&l=rR<&KMhwKnlxu zaG*s&Zg6feb_nSQvjEj6L5^!@_gwG_%qayqo?TyqfE`d>p#4VFii-g^td>CKsjf-& zP;_q8o*PvN0gIPP`o155<^oq6dcONCOU!BiB49|hCDr$uU9RU{OKupSK<=sTQ=y4I z_exIfO_C%P+Nq&DE~(vKBfhbB+zB4A*0Ugv<%i^lRIjuhEg*6TPW{cOYc!LFtATCw df3f`)U;v%gRyvChUYY;^002ovPDHLkV1f;wx6%Lr literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/119-piggybank.png b/public/images/glyphish-icons/icons/119-piggybank.png new file mode 100644 index 0000000000000000000000000000000000000000..d99ad07063dad0bc7ccca07118ba9fe0121df365 GIT binary patch literal 395 zcmV;60d)R}P)KzEb5s!u>>08iXRB7_#z%r0v#^)>m_iNvmso?qFStpE39J{ z+tFes>H*iU3p1CN=XqyQANU#_l;_UQ-l7?VvLPYv%DrqzC{V4xt5Jv>q^~9li_KBQ zpa!vn?WayKlB&GEC~tyVKoJ`Yt(G~fi{$wU~8j;BHO;sp{wd=iW113>Ht#L`gg2NgqCcM@s_ zRv-$*x3Oqy$K#-OEb4DV%|ZeEKzs>@%bD?50Fpb5Mc*Z;neZ?_i6dNXkPNejsyhi~ zBa8pX5nSLnnU5#p_>l~HjwJpZ&G)$U&u1bK1jyho5o~NhNOTZ+KwbVE$|gF9KtPBF zkt~EQ4^S(aN|2k;B%qkAjE06m~Y0ma4Gg`U4chife+UC_sP#0Pj7m UyOoJ@N&o-=07*qoM6N<$f}o{*rT_o{ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/120-headphones.png b/public/images/glyphish-icons/icons/120-headphones.png new file mode 100644 index 0000000000000000000000000000000000000000..17d420c222a5482a1a063d85341c0c053a8cc665 GIT binary patch literal 351 zcmV-l0igbgP)2fYBRGN^=+(TMrXi6c#ONh2w59j;^?H`?`>Z2u(vq|w zd5{_{bRiX_n+}+DfKyTec%Kl^1M*(MHJ1%(hw+t^kwTIqOh69SGVHOD)2L=t#|^G5 z9BfI)o{ra~J)ojIbJcOGKtls4!`=|No-7H+NeMP>aH?sv$Yt_556gwYHX1`8U}fi7AzZCsS>JijH}@IEGZ*N-{Asvpap@K*A9R>4L`2wzlR5MsA_@iKp8B zvkUt0n6T~8DPVZ?Js^Bf`=^skJqJAg^{aL`v~ekXv}f3;VA|}_z%c)j!Y_vg|BbAT z9&L3EpH^laWXzah?DUfP#w81Z_w8+_9OsXx32^U}KK(Yl7%Y)PG3cb%S#yVy(vL9*N@#$b47jHYO;yDkqC1sIE on&xfI47@RSabjYXn8E>uxX&7FVdQ&MBb@0QV|vBme*a literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/122-stats.png b/public/images/glyphish-icons/icons/122-stats.png new file mode 100644 index 0000000000000000000000000000000000000000..a2838b7dbd4aa64123da08547312b8a8f56ddeff GIT binary patch literal 358 zcmV-s0h#`ZP)6hLZiqYF#As4(e#Z;#v$i7BNk}>&&x$zNT03=I0b&qJCumAu607*qoM6N<$ Ef)f3Wpa1{> literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/123-id-card.png b/public/images/glyphish-icons/icons/123-id-card.png new file mode 100644 index 0000000000000000000000000000000000000000..0206c8dcdee5db6837e0a76af9768537d70295d9 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^5DSr z1<%~X^wgl##FWaylc_d9MH@U_978H@C7GC+-8*^Uz=LBB(i^%v+uE8Nq=lJ#8O^xs zm}NCf8ycf%Pq${Fy&SE5tP}duG4U?m*f>Tc#SelJF$P{~uW= zYBJiLVW^Q<&;M(oo(=O6HHSOyo%|aj53n5x?l5hb6S9S|Lw4c^wyb4J6A~LUlGqz6 zYz5c@4zmjvu9)qiD=%{(@gQT?Gv*|Qn=3marUy>xS`l~S?V^Q0cQY{YF!*R`gtxz* R;{bF!gQu&X%Q~loCID+MVSNAq literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/124-bullhorn.png b/public/images/glyphish-icons/icons/124-bullhorn.png new file mode 100644 index 0000000000000000000000000000000000000000..8319514f46bc08550841fb0542fa766a092e50d2 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^5DSr z1<%~X^wgl##FWaylc_d9MGHJ#978H@C7GC+r7ci0U`UEoV3T~s|7deS!VCrhYX{z~ z?VB7Q*i1_0SrXBZBheA2;3llcEwX^^l{0U#!u8n--2a$2Do<+U3wR&QdZ1>*{6@Ei z&c7~af8Vhw_<&WB8o`Y@50A|FtzL;`__M5;$t zw}nhQx3EwUyuOsCUUCxB|A8nR63M7rLFy9$0t^7DMNPXVs?&Y|0000({6NbgG@(4;5|<4}oi`I(_dbcLQ> z7gEbRy4W#f5dj(>hy>zXqdx*fx}hf%P%1#ZC5E!O8ihcVX45lNo`ex-=ZJY5rGWcW zdSa#+SZg*C1hR^TWr3J11{Ts`OIYohbTo`WXDv)K`je)21RIpu^`UYJ_E7eBkAC@p zOJ+kPu=EY!sQsB&z>X*VSF+l)t`(#aRW^fIHBCf@GTRGSc2^$J!}XmJ94n_{-yPrK i#M?LLYJM?a0R{l2{4C&nleFsq0000eEjiE_|kIr7_4uaf)dbkCkCn*+QLJG8B7;<8gX*l^xsT2vFyPKG0w7YZ%e z!Nli~$h0V);iIF%KF%X-I~ECXImFpFX?NK(d}LAxV@YyXxYuxa!s8chkG#~`8!QB} z9mdKI;Vst E0BBvp5lGk(=Fx2)rtW-CtI;nbDW%?Jp4Y$C02fPuqYO4rdT RMIPuF22WQ%mvv4FO#l`SM6&<@ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/129-golf.png b/public/images/glyphish-icons/icons/129-golf.png new file mode 100644 index 0000000000000000000000000000000000000000..a73d76a026ddb8fbefe2802a80bd2240ee2f5d4e GIT binary patch literal 418 zcmV;T0bTxyP) zNOF)mQ|feNOr%SfHT_8={YCfc5yB`UAk@A$1de7bhmwv7^A^q|55+)w5C`d#-Wgn} zs}+h&ti?gPDoqCZ?nGp$i&8e!=;c0bNvC~`-Bf44WlEB7j*MuUh2=4=1FgL$cwZUj z&PJR9Y&?f5wT3Q2m_*^DUXrlFlfzAH6Xvp}Qq>Nwv4wNUG!IqXfQ-LtB-_fwerMom zZ;$T1Oc@D|6o*ha?m@;CG^UX$a66cxV?U*{R&Eouf=cO$xA72Q0E?hTm^P|dEC2ui M07*qoM6N<$g3S%FR{#J2 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/13-target.png b/public/images/glyphish-icons/icons/13-target.png new file mode 100644 index 0000000000000000000000000000000000000000..b2166e23f5df48566ef25c05426ddf140c9a52d9 GIT binary patch literal 601 zcmV-f0;c_mP)apmbfj$)cMOLP@1mDOsgLDwKAU3aR!CXX4A(x$`d} zmmiZe_nb2~_dEBVWFp)s2p7V+a3Gwh{Ym&1?uA?7IkDkzlDrDPA#vtb<0Lv1`VkT_ zeT@-nl!Olo;QVe26~Pu#imkS`!KV}^*#eyALPJQ0_|UY@orC|vFX@pmgUM5&7-Kt% z>g&dtY3zTa2a_fqdyp5J!a!Im1GVKnG%$g9Jx*4ozkyeFNq-eH*EzgW+@3Y{qVyYJ z-xoR&)Y(xVcQmMERzh)&pF##4S`@IWsuCt{hKB3OqU)*e zwedMRb;cW9z+*aHa#320dW06E9;L+yYN8y)mZ2w2=yO@$#cHB<(k8NcM-dW@f*Rpu n$i!~{>DTJt36DX6{sb5R`BqoAl!PqW00000NkvXXu0mjfbvO-7d90000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzUr9tkRCwC#mQ7B>Fc5_&Q4YWvSg}v; zfw%!#I25r-S1dU~vp@*wqFtjNB^T&r2+x%lkvslV#%0ryMo#S{{rvnqaZ%UxI}yE5 zdJM=l2}S{!Y02}FFs1eT4S9!rjqInKFhAos9?>2m`?JD4G);4h_CB(ouAaGiM%XhO zyb~>t~~dg6gt7A#2g$zx_0!8M|3F1D_rA4wXkUR z9*=N;xW#y9#wW`|eU++4&RD99?n;Wm_nVEAny7Gg#-_$Cma0pegFW@R7`2!T=y6BdabKkIFq|KVlcC9RE)f64rU)Rw02-?80Y9gJHUIzs07*qoM6N<$f)Y4}TmS$7 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/15-tags.png b/public/images/glyphish-icons/icons/15-tags.png new file mode 100644 index 0000000000000000000000000000000000000000..4389addbb7b733ab4aeb79fb873b7249e52a42d3 GIT binary patch literal 489 zcmVX1^@s6D=Y3@0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzi%CR5RCwC7mCq|hK^(>J^>VX&va^wg z$Sb83k%dyiLW&|{V_|7)=^s%d3njdTvSA^AfRzQMq)REHd}qEh*Y|$4=B4WZoO>3k@$57Kx@$WXLusfW1UW zt4Y9F?BKq@MuqtS%^N|9A+=x@G^Yi0&_JnMv#5aP^@)&q(3Ez_M_`{}E8GH|WJ^cD zJD7}Bz6EY=yGW-Oo>|08DEeSX_#XkHCosfqiib$o-N_j&I|ej>W11dvtPU)Iym~6; zn3!`23R#H+j&tlZK0$8ir{U9~9uqXxndQ)x>85Mn`6l8U;hKS3uEka zm(EI6KX|TU^(C8T=>dZ|2<|a00000NkvXXu0mjfHAdP~ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/16-line-chart.png b/public/images/glyphish-icons/icons/16-line-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..37b48e956b3b1eb8ba4ebbb0a58ba261757865d2 GIT binary patch literal 550 zcmV+>0@?kEP)E?v0;Mm|*|1hJ!#_{XSeu@?|e z0b)rYHUr`qBsqH^mW8rE1Mx=mR80{tth3YTMQ6j09D6Mt?I}J&Hw-a07*qoM6N<$f~6bWumAu6 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/17-bar-chart.png b/public/images/glyphish-icons/icons/17-bar-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..f3fbebbc29bac8dda2e8d281558162cff5b9da33 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^vOp}s!3HGR;=b(xQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jio!iz978H@B_$>#Xe2B!PH4O&{vu;JqwrydhKb3V+*8lq z?mto{6K1D+Dt$?m*R+K#U;3BDMX`Q=@KH0g#wd!XFUl%QGn7$zOQPAI+a4Q)PBzS& c#>67Q5Os|+K;)>#ZJ-qlp00i_>zopr09PG7QUCw| literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/18-envelope.png b/public/images/glyphish-icons/icons/18-envelope.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b771b7634f723c9ae9da7059109b550a246ade GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^58U}fi7AzZCsS>Jie`DbIEGZ*N=isbC}4Q>+2POpQ$K93gTe~DWM4fB|2JT literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/19-gear.png b/public/images/glyphish-icons/icons/19-gear.png new file mode 100644 index 0000000000000000000000000000000000000000..2790af674a3bbae05c0d95abd68e853a0e86544a GIT binary patch literal 413 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 JPDHLkV1gA4o0$Lr literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/26-bandaid.png b/public/images/glyphish-icons/icons/26-bandaid.png new file mode 100644 index 0000000000000000000000000000000000000000..7afcf613ca44209664883367b5bb21d7088b45b8 GIT binary patch literal 302 zcmV+}0nz@6P)Klq`QzkdWGd z?71NztU&g39b+;=*1UR61|#T;I4%opib7^5EJq>afQ>ySv(c;~Of)k_nzYQ)879YX z?rBD=5hI!rYN9nG#H2NaH8V!+6V1#8$;QEWgt2#iO^$ItL?N_|@WqkP61zy=&I=RT zEuKxu1gN4wDgmn?_KD{hAKN2veNbFcKmG|Y02>zoriBLy$p8QV07*qoM6N<$g5B

3#LM8{P zE^#V$5(I~cgOgAv!A<-Ef@?p6)Jf=~ldFO*7DOjq>w1eyp`Ah%L5Pb!FFb+c?B!qc zz>hcFUGB;I-sR45(#r?uU;=(MCT#c9PE<-UrVg%BPI?Vaz&xme3aEhqgy0RRB-0iR zmoijD49>vN(myUGWcWbitP;a*@Ts*mKvN#(VqQGTX((C*dtjvTp0uWt~ zS=)U^Wy`cZqha*nZEmC;8vcN%vgL&}rxTvq-1Y49$(yF#3Ah zA+N|#+XGv~wUoOXcgx6EE~HpD$!GG0+fj0`WH}=A>oN1wt+0gtBP{HUjZ~DBegbON4;+l%BI7~V@w3z&h}9*F;7vFHy}j+q#PDsUJ=E&K;+2N>7@@e>+Y@&sx&3J?Y2 zT~xGW7t~CgppFVbSx0OFa0232WLWSDTIiAlq=EP_36>m&>LCk6kzi32B_)G536Aon zB%{71!AEb2&A8~m28V&L`Usnx4LL!FEhsJku^|*+pjPnRMk_{Iu$0~{XnF27sg~#> zX}*UqNT71}kkspvVo?QD(;Oh?AwoS5RPBG{0+blAj?79e5UQ7?YMYWO9|Hgc7yz_G V!J59?QsMvr002ovPDHLkV1mF7j}-s_ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/29-heart.png b/public/images/glyphish-icons/icons/29-heart.png new file mode 100644 index 0000000000000000000000000000000000000000..8dfc25db149256694ec6b2d7fe4930e65795f441 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^5DSr z1<%~X^wgl##FWaylc_d9MY}v*978H@B_%kpGCJ&$@A$9$@VCRA0}Y%~3yMx;eRn>4 zfa}>}O}FFE8zUIH&I<=v&ks2~QP8U}fi7AzZCsS>Jiq?3#IEGZ*N=kEJs8c9oOmbJ4#_%ZI;m>47_7BZkKl)qZ z9gi9|s0#dd4CXmpzu=Qb0{5h*=MFZ)UWbotTaf*uL1iVAXt1Nu?}jxqI6H1m_))*n zVy0wlg7vJ)%NAN@TJK_$W}3Hcp+!WZ1BY+3fSGGg#-INcPaZ6E5t7i9`ZcjxI(|bE ztB%T!wuyH0)NbE~Bv0d0mteF6F7%NP|7Fc{Z6ZA#0G+YEF! NgQu&X%Q~loCIGZsV21zz literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/31-ipod.png b/public/images/glyphish-icons/icons/31-ipod.png new file mode 100644 index 0000000000000000000000000000000000000000..3b4735ef0130f80b3bd504a6123b3149583c5f2e GIT binary patch literal 323 zcmV-J0lfZ+P)!SMniEa_ zAvQziqbce|v#l3Rem+bNIf`GPDY7TPe~K-gNT4Y?LVz!dEsCiUCLkO|WbB0Fi{e*6 ztWLlHb*MU=hQJbBCJqBKv87mix%dT^yd#0jc@)=x%+NAL2Z(veCF!NeKxF0t}D-I{caMvPXW^be*#&+8#`KlkU(^ z7xPMDA<1U$vTt*KV8Uv0!ciIrw fwaTo4ftg{>`egR%)7%SymN0m_`njxgN@xNAV6HtD literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/33-cabinet.png b/public/images/glyphish-icons/icons/33-cabinet.png new file mode 100644 index 0000000000000000000000000000000000000000..38a6cf31ea7e5d7bb5558a9fdad5baeec18b6a75 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^B0wy~!3HF^H`mkxDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MV_86jv*Ddk`f#m{yO}b@3Ut0c)RCwBAWWWysfY=_04WL*6D$dA2 zA!q>N_dxs~h|dFYKM*GXu>%k*Fi-)2489M<1yDl;7^n``fR!nZqtU#mV4-4=U~OrD zlIa5~82$iXg%m)Apa~%4f&geUg;ay@6EYkizyO7W0x^Q)o2mc+002ovPDHLkV1iYa Bao+#{ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/35-shopping-bag.png b/public/images/glyphish-icons/icons/35-shopping-bag.png new file mode 100644 index 0000000000000000000000000000000000000000..6395d39ba27424689e9504728a5df9ea10aef474 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^5DSr z1<%~X^wgl##FWaylc_d9MN>Up978H@B_$~E+-R_1@8D}igYY^uF5pI z`znN-O)S#+!FlyezdJ8~$XWjwE{TO)8Ei8oGI-o{CAKD9VX}&FC^oP;wP?ACiG0pB nb^-h2!S5$^JEm1Jut+di{8U}fi7AzZCsS>JiWYmiIEGZ*N=i7uf1_cCc*lI^kM%M?EJJvunOPH<RHr1{_Eh3_=4@XeVPAZ(wiVw9o5 z=EGCMq!V#OVxx}Z+bEqUUjBDYxnC8ZY<>?Vc*x;r*_Ua-=? zsQ;pEz3cgm4E7s2X&TSf1*91a^?7wNnIBzdU}R(XHaqJ5l-A8U}fi7AzZCsS>JidsEg978H@B_$l-w`i@9 zV@WChg57lD(o~Fgd|>1;o+0sq#Z6agYsQsDf!%IhuIFDQ@ZaF85tTQ6rCe~7T_Azs Y#?!<8U}fi7AzZCsS>JidK2LIEGZ*N=i`RJH!6ye}K(=3EmzTsXy~WYJGT2m=?43 zOZn_N$mUQZ*Zre%g-qlEM$PRH5AiOM;3$4tuVfgwE??oG!=f1fRob0JwtC_F+NY&3 zMm%9!Q1t%ePPyrcFP2Ihxv}lgIhZN2ku7;^O2xF}d@fxRS-3u^tYs?V5ph`UQ26j? zz*d#eWhVs77&^qAZhp*gJm|4%wd2VR@*ScZPG~wjz4!PMk3a%LetwNok4emJpsN`? MUHx3vIVCg!04FeE2mk;8 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/39-spraycan.png b/public/images/glyphish-icons/icons/39-spraycan.png new file mode 100644 index 0000000000000000000000000000000000000000..ecadc994ca7136613117d62d1f76df8f6f2f99d8 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRm!3HEhFR0}KQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JispK{IEGZ*N=i|X|G-?RC)_zpq;ZExM>*q1c7Ze%r^&(s zyO|0(1Xe3_$}>DVf5YTY`=bbjy6z*#+loI(GB90oxWjSe{KkxX{6}U_Fm0N%Q_%CE z+X@MuAB-Qxa`axPKREM0z?3HO>q~(SW$<+Mb6Mw<&;$U@>{qS; literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/40-inbox.png b/public/images/glyphish-icons/icons/40-inbox.png new file mode 100644 index 0000000000000000000000000000000000000000..ce352ac0f287d3d0222001425a2489010cbc17f3 GIT binary patch literal 347 zcmV-h0i^zkP)XRqlt-u#sHfI z%s_k_>f--cT#oK57`_eFOAv&kY5b4HFkE8c#8_|)syGLaYtem`0~I?)$Z&h8!nZ)o zLxKf7P(A;lX5a)Hp^91vgg3T$X@QDw#AUb^5dQ(x)VSt%XjWdZz zF}P9|PBTEZf5T$?eE05tIU6K?QAy3?6*JWCN9Z1xtym4Ua)=P&Ihth)^W9J8U}fi7AzZCsS>Jih?~|978H@C8Z=J{5bEx`r-fodbboiVP@Wg^<1&Nq4wOO zGRHc6C$P42Yp|JcCyNE`^+=g<`P|XPZ2eL;4s8GBdAW9pJBhSfKAxc6-#+gk10x#) XyF9P%8kZ~%xO0P#Vfo&^kKfcrrF9}T+#F&7lOVv)a3swGSebOMY}nxvouVzPqHfgXAo zp<(_2>f(n$d>M$}qNx)GVqGAXhgzb56dEL1L=HGWg4zq9#4v$GO~}BJNZJ78qkbr- zfQCL|V4)zz!d$x_iH!^Fr&~T6wP@5LswD6IIM_7t5wRr$1FU2)AfrSksjQ=kf%pp$OW{y^7K)bx@pPyjq5(jF0RTmhH;3!cC4~S0002ov JPDHLkV1gdAa=8Ei literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/44-shoebox.png b/public/images/glyphish-icons/icons/44-shoebox.png new file mode 100644 index 0000000000000000000000000000000000000000..744cb30ec04654c91167c89f2d539cc47bcdd549 GIT binary patch literal 342 zcmV-c0jd6pP)ld##MJ95DWz~E zXb}(E>nir}h}aV4Lbid{M*{x^H^jNN@Uy)e5-}q_ur7%PhsueTG|X5|gjsCXYVt00SDQO5N0gk|bLyE1`2Z#4G+|U!g`SaR=*x{d!1zN&<%i#x6vK oz0r<{9 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/45-movie1.png b/public/images/glyphish-icons/icons/45-movie1.png new file mode 100644 index 0000000000000000000000000000000000000000..bfbdcd3a8df058f3975b2545422dec2b8b9ffc2a GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv^!3HERpB7yO;*_{XlmzFem6RtIr7}3Cs zc!xE9Eso|FSrghM6*~X2JmPne_$C~yuRP7*F>_L&5>GYnk@+00lIjAV1rl$FEBy1* zI8)~=D#WzElXLU_03V$L(rJrd=9tXwUAFmRiP@vek`4`w4ErXzZ!~?|#0PW&gQu&X J%Q~loCIBndO0)m~ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/46-movie2.png b/public/images/glyphish-icons/icons/46-movie2.png new file mode 100644 index 0000000000000000000000000000000000000000..3953c83b99b13aaae1f7f6e48077e4fcf1a88f58 GIT binary patch literal 320 zcmV-G0l)rX1^@s6F&7Tg0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy;z>k7RCwCVluZi4Fc3ylleGRKx^&~x zjmPnp-oRT3Zd|%?>BfRml{y0{gb>qjih_j?LdZPwGE6h2RIR@J)gRWK>Wy1$yv-g( zgRoavpG9t!Q~DtAPO1D2iTF?}YDD$Dc5SUc{|5;`Y3&I|VGSBfC1eR`|lU?SY!vq9YNS7Hn1%X#Y zndf)~0*`KP)71Q{0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzHAzH4RCwCFmVpt%APhyp2^gUxbOc9m z13N-TsFTzcoIp3I8|Vgg0|XncUkr%7)ZE3ZnDF?J29>o|d3V-1w?BFZ`9-Efu-3Xf zE1JW9Ak@v34Bjwf2bZjK?qe_^Rv1)s%0Cp+gx_V&I}+k+=Z2my$wXL*oxWOC;&6`M zs_1M-stL0uaAb zBdM?|P~J!ab6b6+=lwr`-cF$rNCF?3?Y-n~{H1mUXu}kalCDy3J&gAR!YgZ7`fts$ xH^J0(hD6Lr&0MU9V(;vznOkUgFW6In0RTXoB?S;+mhb=o002ovPDHLkV1kQmrs@Cy literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/48-fork-and-knife.png b/public/images/glyphish-icons/icons/48-fork-and-knife.png new file mode 100644 index 0000000000000000000000000000000000000000..056a2feeedef8a0ea2124aae20879c1071dbfc13 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9V!3HFE&E>HIQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@B_$*z{NO+2aG;@^_vzsbMumI)liN43N}Mp@ zxG9iw*u(6Fz1f)~4yp!O0-S7yMn?aRACnUhH+?iQU*(#DTSSuccfNo*g070n$`+1~ zKAF`f^FEPU#cp=u^ox6PXO$MS_3|`JdFt2&Tw!LBV7UJ;h5h&1>6d`kGkCiCxvX_(UX literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/49-battery.png b/public/images/glyphish-icons/icons/49-battery.png new file mode 100644 index 0000000000000000000000000000000000000000..8e002f7a1eac992eb40047175f5c2a73a6f99fb5 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5ed!3HD^d3l_Hlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqBu_%$B>F!NeKxF8f=gLn;cTue6T@K%fXvrQ*$G0Y(p2r zQD&WtNvBVkm~>5G5@Wl?JmEZ_k>LgQ8<$TjwFP#cU}b+f@s-5H$@lA}RA2wU@#$iH k)bT)0-m~qqc?A*}ZZB4v_BTIfKhP!yPgg&ebxsLQ02${%8U}fi7AzZCsS>JiXuH-978H@C8Z=J{5aph(8IHYaYvk*kx4RhkIs%9g{w>@ z%_quacRBJtkvh_HY<+uDSL_uJU2($z?VeXBOYc7Td@Ey3@3C78K1nH0n>10Uc!tJT fAs>B*21W)iXI`h-*3(`CEn)C<^>bP0l+XkKFFrt3 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/51-outlet.png b/public/images/glyphish-icons/icons/51-outlet.png new file mode 100644 index 0000000000000000000000000000000000000000..a70d0f81c86bddf1212568e329c2d86771148d8c GIT binary patch literal 265 zcmV+k0rvihP)$~APhxYCt(COa0T7O zjT}ig&w*qkW7MO>|f^hX1&z>sT zHQaPiPn{%aQ&A#9ac*4M$&rWmWUDv4qe2SmUU4Q`qXbb>UtQ&Pl P00000NkvXXu0mjf9-V5N literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/52-pinetree.png b/public/images/glyphish-icons/icons/52-pinetree.png new file mode 100644 index 0000000000000000000000000000000000000000..175ba430a4ad84fa1d0cca4edf87f0c81649a06f GIT binary patch literal 264 zcmV+j0r&oiP)3^V2fB^tKF51&D8-ud| O0000}1B`C=KX-`_jpv>8pbh+JoPGcvF^W}vz8bziH zf2xz>GqX~=9pKa!oT6c8*~NQwX`5DCQn0tFGpCea=RynK8U}fi7AzZCsS>Jik5h~IEGZ*N=i7uE7b7AM&Q5u;pYpBT$mYU*b_1~s;M2gP={EOE@qI&Y9PQKlwt+3rU11`B~MeSu_+g$MW@f}|ZhY_IM; zOpC?NK=(3uy85}Sb4q9e E0Aqky4FCWD literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/55-network.png b/public/images/glyphish-icons/icons/55-network.png new file mode 100644 index 0000000000000000000000000000000000000000..6e30e188216face1b3d3a8b795c56680b7a3dd21 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xc6+)whE&{2N?O3j!SLv}!yoys_s&OGr2VLunV~i9Kun!n zRszEm-p`z_4h-$t5BC8T8YV0Z_|L9T$8dzpA*Nr2FWG)Ut;+xZ|KB-muOHZpPl@lc8-M|4|$bRw%#x> z6noH{(j=z9$i8Nxi^5EyY{rdGcQS2hkam1($t?IXra|cN%nqGNnydKPcG$?jIm_3; az|4>ys@{;8ZQ%&?27{-opUXO@geCyIhGxP5 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/56-cloud.png b/public/images/glyphish-icons/icons/56-cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..262a71d8b7fa5107135c782e34fb9769b9ca2442 GIT binary patch literal 256 zcmV+b0ssDqP)8*VH0cT(alz#F z8DMi<1{AB&NkLT@Fs;F@yNRNvb$Dsn1*7>491W3>z|*Weu)hk-D<~jXRjGCFZWH3I z`oka$7;xond7y)k3{LtFC%UG!4u=0rI&ajhftMfJCBOh(o0aol3{L|90000}1B_t$hus!N`_%omBk4Ori@)ZR;wo?by-Bz3o zVO-qCsQT}J`jHCfeC6g*d5mFg`_#5w=a@QfY8G5DR(QwEVZg9m WFGYZ-yXF$mJq(_%elF{r5}E*{q)|fv literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/58-bookmark.png b/public/images/glyphish-icons/icons/58-bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..c9de84ca2c76334e7ef6a434ea5e10ee66bdf8bd GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^Ahr|-8<6aKa#jsUNtU=qlmzFem6RtIr7}3C5HcvvKYc11XcU8|tDnm{r-UW| DM)5UM literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/59-flag.png b/public/images/glyphish-icons/icons/59-flag.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e353d242e13a755645338091b29920f08dc711 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9V!3HFE&E>HIQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jie`JdIEGZ*N=isb_`!cvgi(!6i!r6ysNqIKOmoD98;=}n zSmkK&fZ^zl1I!x#7>UGIanHwdpxyucP<5tJpM zF^6mA#6Gn{OtaKDC&^6UKf-0er^97?qUYDw7i@+On@`jP>{7V6fx%71Sz@C_EQ9wy wFVdQ&MBb@0KsNgf&c&j literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/60-signpost.png b/public/images/glyphish-icons/icons/60-signpost.png new file mode 100644 index 0000000000000000000000000000000000000000..a10f6179180c23e6c2d78dc054d414527a2d0cd5 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8gz!3HE#_5EXklw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6Jlq99Kf$B>F!Zzdn)Vo>04PXGV^Joh5!5}~3651H5Z8;X87 zY^%rSaz*&|)x;UWig9sMcZ4N5i`o6(^Wo{lEyjkTp#fJnYEGa2e8q3as5_6?moYFi YJo+OjA9dH{3D9%~Pgg&ebxsLQ04cRT3IG5A literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/61-brightness.png b/public/images/glyphish-icons/icons/61-brightness.png new file mode 100644 index 0000000000000000000000000000000000000000..34ccde2fe718c2f7b894202dda4e55c550379d2f GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8X`U{QAr-gwgdF5Opul0WjM-w6@&?Ph2Lxpf{(9i3sbzY^ z``yBe%#8Xh(i2{^xy2}TmA><_XHwm@SSeU+MMsvu-v2YhDsXa1B!Idv}oQ>!26xUVZ_;0t^7wkZ78j Sl36(b0000X1^@s6JPCf30000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz07*naRCwBAU?3ex1Mx;6{t2a}8OQ{? zfcQTWK0vNPpV15gxr~8{411$wxuD7w_tJ2D_n+f0`WblqIGDA?=u#I zKHxIQ2CCo*5DOuRFU1i)pYeGu7KjzG7>ulGxswxPysM8Pzek^g8%{y0188eOr_X|q5uE@07*qoM6N<$g4M8r)Bpeg literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/64-zap.png b/public/images/glyphish-icons/icons/64-zap.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa6dc5364fdffc0937c739aa81adb75731b10b1 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eL!3HGH8OdY;DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9Maw*0978H@B_%kpo^SYJ&-X{zSGQSL?x=zdW9(rjCaEP8 zMT><4_6XknQo|%wbHUU`aY3WXd8Nm?M=HeH_A?oZGjlHcy~x_Pd5T3s16NY;9~P-M z5)Zifc&%=T9Df{e=RgB<&XGkwnDmYsS@`Vl_cat2V1I1j!MN(9^seRe1v&oLurV=2 zepF;rVmPR9bm_vzMvn&bvck*_i3*H4i3)-z9!_TAFkrYT-z}u)G(7<5Vg^rFKbLh* G2~7Y%FjtEJ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/65-note.png b/public/images/glyphish-icons/icons/65-note.png new file mode 100644 index 0000000000000000000000000000000000000000..76d28f6de9820894151b50a4f27c0ef29c3755c6 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+h!3HE%S(j%5DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MN2$g978H@B_$l-|L0uD#4O3MtkPa}mg9~Fp|dL1|Lw(M z96Hkk@)SZpSDEZ%)|@4~;D_y$`gtN}4JI_W_GFyp35fo0Y&e14u7RV-wD|zDo6;O! z<`Y?tjoTU~F$62PZ)Ox=UtrxTlHSb7Efmf0N~KogztTp<=?zng3KG{SG&HE~ne{$+ z(M*Zn@0u578oZ0`<$T|FYF7Qa==9q*gePB%iNk=Q!>KA#-XLxj(7gDSr z1<%~X^wgl##FWaylc_d9Me99X978H@otbo(w?#pqWoI{QK$B`f)6#&hxe-mO8S3Fo zWd{FJ47Axf^pE*IbNnVE*8U_0qiTcVfaiUr&fDy}l#&p=OQQ;mFL0BLT%M^IQ$stqT^|ZZrE-z5Pw&8Y8A3 zAHT|`RzCafR;Qfz#r$#IV+lt0Z<|`L2)+K!ut4J58cm5GlP0Y;*b&;m$lz`qagMRy RN)G6B22WQ%mvv4FO#s^2XcYhe literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/67-tshirt.png b/public/images/glyphish-icons/icons/67-tshirt.png new file mode 100644 index 0000000000000000000000000000000000000000..d6fdef12713515a44a4cafbbe04a161bc7dd2660 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)k!3HE8U}fi7AzZCsS>Jil%$IIEGZ*dNb)R=K%$tmc_y)BJQs=`ktuuJ>V!~)}G|? zpI?quotOs?J6{Wz+mH0!|KUw zwT~&ZnNezj$W`Wzydu|?JIxa=a}>wfi|wpZNk7bR#=zpRShrhrO6v(J$%!nIg)NM` zY-XH4;-I!*m0OAZ#e2sBd!7B2x#f07In7G+Ji~X&zGtb31<%yY&7F$Yp^RSXj2}Z) zKCTWhOfgN^AeeQ^QE5+^z$&pN?TT_IJ^xmi=(+@npKmxC-`;RTJSyjg)6Mn`Kg8qK x$sG%JQOZ6Pb*^bnfn;~v=@aLe855z-&nFKX9a=KXTGs~1*i3{=K^?Imd zpJ|5hOgwq5Kdm|kh*%`P6MNzj3dd%g5?kUxoW_JXVn4$z@sm%`FM9H2QN`8#>1>7B`J%`Mj}rDSdbr@kYsv#V=OQJ_Ub@ nDj37BZ&@*k-;YUc>;)JAF9JotEAAM-00000NkvXXu0mjf>LGF9 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/70-tv.png b/public/images/glyphish-icons/icons/70-tv.png new file mode 100644 index 0000000000000000000000000000000000000000..af8ae94fe8679b5da116440bd23b9680600015dd GIT binary patch literal 341 zcmV-b0jmCqP)K;`CBVhISG2jcr^h6q5#&NEN}AR8tC#n>#R2p|Us zzF@-&8i4pejc@}altEJfv+X>AB#AGno<}nSE{5!bKp;K|#6BciumyeYFl6c4Jw>I_)eh(7l61C$p;41_CX_3 zBr~8#G6?*nb{?R4BqQeo5L=Z@gKy(15zu|`i`GFz^*CTcD^uP8@oy6G8$x9mH48fo nO!MNJ8Jc<=Xk>mPK!5=N2B~NEw^Pok00000NkvXXu0mjfFCTnt literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/71-compass.png b/public/images/glyphish-icons/icons/71-compass.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4e9c702de4cdb801b7352ebb97d394a06f2543 GIT binary patch literal 356 zcmV-q0h|7bP)= z1Uj$;O0XnKpahQ(;>8>Z4^Nrd8Aror$%Ckrylh6uh#3b#EZ?k}SPMhSA(lN|Ya^RM zrA9UyoetY>EpohJ&oCW=OtHm+n#$LSu&&ZcmYd`?CzqT=6qeCtiKrbV{xkruW`Nis zVV30N!0$sVIiz}gMj|E36-!WziW+es!~n;H?Q{-?y0d&Sk{}3dz7K+NDoUv%FYN1f z;7ObVQm;oGaK?$m*>x1fB}7t^9a0a^sgUbNZ=6Y%$~2b70b<`Eu9hj+Xjp|CXuzLF zn7*cU7DZ!zEO`(qe$p3{uY(sch=eP$o^f?ysoC$~( zblAht!M#w5cLL8uh9oz)6{1WIZ#qW2Dya TRXCv-=o$u3S3j3^P6AWQ2%_R7jvd5`qf^J{;HY%e$xKqkq3EJ0G~i%|1l$bLp;Dny6rUex zs1f}i`5!pmzW1!)fggFfpXckIdo$kOr2s0R$ZuD=U=cj$ccNrc`egAMe`S#l7wv(I z;33zscWKl1tdA4yv5gNSLe^=?1FY1em8Xe@NE(AAs|mcn>@=?L9NDMz=+# zEi$f@{=?t}SkVE#vzcg>r#0fX5PTpZH!Yf21~C@Pyu08uxS3>GoeMQgpywQG2EZZy z-wVbVufCZx1TIjKeP9!KW)q}Ht7fQ~%1=k@U5rskrFx8Qh3)sjC9s3z#Y=m@Bxw6a z>qTcH(d?1=e7t+8l(rplw%@EFap-o5-ZE# z2q^hwI(at@Z^TOxrd=rKZ^?$#4K1ce45|t<5^tm2yUF&-u1zN?q1r{{XWt zOSW=BD`M?8eh+$U2z-)A+_wMgB(>~@Ih1e0LGcA;*tGKh9#ryIL2wM5U>H7u*JeG5@0`yC3r?BQtKyvF z;vV}vbCHU>t}{+5qqI`vC9Zwoo9a<>T-=~5_1a03jVXOnS=y2?SrgzIH-2Ya*!(dO=IJ#l;>#K5KC3wQnN9s_%7bU#xL0eXBv6TQy%uM(JY=R4 z7PVC+9Oeq`V=CjV3UDG4=zrToo2`~Wd4$EY+PR`f> O0000#Ar-fh5)SZ*H0+S?IM4jC-lRrOYxw~Ol^4g8IP`de zv>Q$wAxjAE;WfL>zoboFyt=akR{01L5aRR910 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/75-phone.png b/public/images/glyphish-icons/icons/75-phone.png new file mode 100644 index 0000000000000000000000000000000000000000..7df31596ae2635f394a67812cc62b9c851e567ec GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X&Um^whE&{2N^ofS>F`J1D_Hi6Gw*+YZf~xJ8?tAaRz(%b zcig{xNoYo*$>t~ag3~MlPBZ09o5P;O==GRkx~hnD-<*FJKUQYB7zhjKA5koCoK^YI zjxSyUsEpm_po)X8_qEHngcvhk{p?rX%z43R#Xsj-4F?DPKn2Er)g4XUPZsS1GTvW| zv7UctQ?{L)cLG~ulkU7pKDYc22uUnEF^Pps=cd2ct1ACxswz(>e^rTk)4xTP s@5+fOpD*fEa~;ui&|wT_5lCP-e&e9OaN%}&puZSAUHx3vIVCg!0GHKp9RL6T literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/76-baby.png b/public/images/glyphish-icons/icons/76-baby.png new file mode 100644 index 0000000000000000000000000000000000000000..ee9e1c1281b62b431a496559a2b6d1092c55f3bb GIT binary patch literal 383 zcmV-_0f7FAP)q`Us4! zY>vDFkKm>on{LF3$KVl+n;ZHBIJ%Y9Nw3K@smHZm<0U^d^!&=v|Ef~{$Uy_>jT-P- zRIEVSfmmsr6Gy{9tQzhIX`n0>Gv@=10nivzS{W#C*|D%;fo@jhk1{wiaYWoDGPtn3h$Z@j;$zm9A zrIv3Rp$0#L2H}4+i;epK%ELsXRZb@^w%TFf!GX^ z&=NTlh^GPZL1-$2DN;ewd=e_Q14+IRi=`Ntn3CZR5}Of9yF=;MK->?+yQp1CEJ1VW zVmxXwf{qkWk7khvwd*5X>UYq}qT@*HyR@ibVcy`Jer5WrxtS4e>KXN4tK~0qjE6l=o}1ea7DR}s;gkf5}uz9y~B;vouRghH20vS ze#g;43tpv$T6}^FYHZ$lM5OfwSJZ@jvDPr8oZT?F!AZYJC-_*Sn#obKSl&XZ1LCdO z6`mc`PmLbUz_R^FoKW478LIcmB*b(mSmK}D6*vx&-y$X39bD03he_?$Fgh&kMwQeF zuT_V}S~AjW5gcjhB_tsoLs#h@*QSaUDpELr(hWh2gz}9ju8U7TP1ROGI?|aXAJeG) bUIGjNER&e$L71Lw00000NkvXXu0mjfrV5~` literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/79-medical-bag.png b/public/images/glyphish-icons/icons/79-medical-bag.png new file mode 100644 index 0000000000000000000000000000000000000000..903f624f7ed0aa68750246a5a8f1187045276bd3 GIT binary patch literal 266 zcmV+l0rmcgP)L{j@5RoL9j|eu8%Wta}O#fh^zVwo<623P< z&qXfEjPK6pQUuCUZ*VuF%rmF^?}$F%!Dr7DwMRr6BMMT?OiZqnU(Nyy09U@39{!Y` Q)Bpeg07*qoM6N<$g2O#(&Hw-a literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/80-shopping-cart.png b/public/images/glyphish-icons/icons/80-shopping-cart.png new file mode 100644 index 0000000000000000000000000000000000000000..16ed6a1d852b7d67e7ea3feb94f1c592cb6a524c GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)s!3HGzTxCI&WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h89#0p?kcwML2?+^5`dP0VUtpMXJWZ!aM5X8oVMKyH1MS`{m=v0#?WgipsD fi>@-UNH8pEn&zo`cH<#lKjrFaC}>)xL{=U{2RYRxuc&4XQ>j6cal8*oyH?z1QHC zRT!~qxAQmwp^*ydcfQ02$af$Uos0zplFt{E>O?F4QUUSfFbVtHTH(lqa)Xg6x?+(C zz;C2Ek=#4_oU)2q++tj*lW69E+Mx!a3$?)NJP!fB3C;Rpz#dH&z@~Cvv9k|GAzWgQ z__KX1P)DUGwf;Pr;x@Cn#OLp0o>i4`BBKmiVqujIEUNCk9wHf8B9BKzO&pzkDYC j=|k8G{IsY3j{pMzZOH(Y!Nd5v00000NkvXXu0mjf%30V_ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/82-dogpaw.png b/public/images/glyphish-icons/icons/82-dogpaw.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe1803f7c6331d74c21c55b378038264e937f53 GIT binary patch literal 397 zcmV;80doF{P)bqNM`*M$dh{thUg{I;}J?;;a)HBte9(10Ds-Vx&RK$wQ87Q z8m$=z;RgG?o4Co7VkH$Qq*Pbl$th)|TTDg|Nat})R>bo}(2cP0TSfLPVTsDEXFtct z$JT6#|JX@E9kHAa_+CeBTI12+(CH^9PH%=WFszmT(vLi{P@udXQeq0hzg79WTr{_MGr rc*3mdk>WG-4m+lY`E#2W-U18&m$>>VnW&DC00000NkvXXu0mjfaImR} literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/83-calendar.png b/public/images/glyphish-icons/icons/83-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..30daaed5be4bdbc8db3a27c52c0d2223e9cc860b GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6P!3HF6DQvv};*_{XlmzFem6RtIr7}3C?N$Tdg!%t2pC~ApF@NdQhbE<#!pyvk z+(Da)9lVp+H3S#$Jl($Tp^5+V#e!B+3xPz0@)XIAdWMbMyl2)ia2PP~M1|h$Y2dpH PbP0o}tDnm{r-UW|WGGB` literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/84-lightbulb.png b/public/images/glyphish-icons/icons/84-lightbulb.png new file mode 100644 index 0000000000000000000000000000000000000000..64848c6443e77eed6ed717d4b46b250d6ecee5f3 GIT binary patch literal 284 zcmV+%0ptFOP)9K)fD^|D)mcP&uri zABzTb+>fqlK2+j45FZBOJ3#yshvxan&I1Wt1>#viyqyS}!OjM`|0@vB2I84O{F(@j z>lvYpdqBJghy{Q+jDZNi1f`jwv@`>e0H%=_O3RX}Q4okZfmob@1OSWhw?qUAa)N+I z2PxQrlvIN=^^le1&{Gj!=Yaqt7R~>07>c5n1&e}oVxofnHev(kumsFGVw?&BX=wae iq}co)kAE2e0t^5c@pSbklyCe10000exf4R8Z2=8>G_P>TAcFL^1R$GdmoN-M#`i854Npj0diHJ)1( zt2h?~XYg4EfnHN=RvOyld05lIys*v8KY}^%nzJu(TG%I&eDM+Ob_=gyhuDZ54n4HR zfP{HR M07*qoM6N<$f{q@PqW}N^ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/86-camera.png b/public/images/glyphish-icons/icons/86-camera.png new file mode 100644 index 0000000000000000000000000000000000000000..bdace4d2e47735ca30d2fc7179216c3ac4be912a GIT binary patch literal 346 zcmV-g0j2(lP)INyI0iW-~k|Lo>1XIWv&31>&1P{1u3$7^n+)n2Is#^nX$;2!R^XfJLqWDi?w)qM3+@sH0Fi6pLIani{P6fTn;L3#_5^YAkZA(bQl7 z79uS02jVqAJPR#YRwIe|<1>Jo$rJ;l`#=UqAqO%<1)7PDA_WV`<|6H_V+Po~-c747wOaSW-rm6Vc@@Z-FL+7JJAa+^#xIY>TT@~S1X#($NY zS`jnbl8?*+){_^oFZsso@t94)OubP0l+XkK1U6{+ literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/88-beermug.png b/public/images/glyphish-icons/icons/88-beermug.png new file mode 100644 index 0000000000000000000000000000000000000000..2039847034c26d463694734ce2603344cb8f66d6 GIT binary patch literal 387 zcmV-}0et?6P)6CKzss- zpF;5os2H*uFkr-DU?UKxAjv-fVtF8D2VyQD{s6@Pk<^3K+y-J5DE~MRCo$qN6a)l; zm<@=(K@DaG;$J}g9!(7^5WhkaJC1JfQ#8Ifj$nF;Ma^3v{(~!ApF+J!DSpbtKpSwJ z8BKs6i0z?lP$d0?hU;%A8x(Y3fcOUz28ln0s^fs_wZxVx{v#O-(pZm{1bv|q#sH1P z4kY=Ru$00AB<2Hg0u~F(p)|;#%~1ALAXY-+qszkq6AnWu225xPoskv>)6B)A29Fv{ zV}n_+lo3>O@dR20MIlmlrdpQ9S8S$}VII8L#20yHBpPZ!Y^rcWS4_ZAA7X=oq9A6% h(O{tjfb|0e7yz`>M8*_Uj=2B;002ovPDHLkV1k#ml9vDg literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/89-dumbbell.png b/public/images/glyphish-icons/icons/89-dumbbell.png new file mode 100644 index 0000000000000000000000000000000000000000..f0bf94ab8a25293544e098fa4ae7fff17ab074b2 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^GC<75!3HFkH`xgRDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MfsjCjv*Ddk`fN^-edk)ud(l(gG7vb(EoXjF1+0nZy5M+ zELa`ibM~N*hm^^L8+Ul7Fz4l@89xj-eSva9(gNdzre8vLf4?qlVY55q zaDZonm73JAIh_+8@Tz<>*NXVT+kW%Q*&hsyYz(VyRmv}{-lzh!n!(f6&t;ucLK6V^ CW=XdI literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/90-lifebuoy.png b/public/images/glyphish-icons/icons/90-lifebuoy.png new file mode 100644 index 0000000000000000000000000000000000000000..f296ff13717ae9dfcacd85c3d81f162ea4795998 GIT binary patch literal 486 zcmV@P)t1S9Ns|*?!hZR zOTYkhK&vJ`;kPKjiRN{`6|#B(H&s==xzg8K$GD8aaZTLVx#HJx?TAYdLtOcwIXu_3 z^Rh_Tzm!EOWo{eKDQlVA^(5}=?zZf$x9Cbbnt!2FNjrWEupQLwtj?8~K^ndkl c%a;HH0O17f`BTz$&s7R5K9&-X*2kEgN7+c*)CMuI;;C+w+YZsmVvh zyn(drMV|RG{(?UyxF9|<&L6OqLJ#vc&ajPP>lGEN6EDPVj?Wf8b#3q+8L;D#ICBWH zEr9QfPgOax(~7two^vux@Rx_gHSz8eTw&daS`M(Xz*YF(h)rULxXkKuh`>mkbsc+) z2r;1+uoN2o*c!52=TG4j!RU7xulaHpOuapDp3#SKLe=hQi|O}XIxks91G n;8*soXn@b2en{2`o&pR2L^)A#PD(SO00000NkvXXu0mjf5kaFl literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/92-testtube.png b/public/images/glyphish-icons/icons/92-testtube.png new file mode 100644 index 0000000000000000000000000000000000000000..8e578b7a6cbd7014f5da5d057f311fec300b2864 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eP!3HFof9*{KQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JispE_IEGZ*N=ivc_;KEWDWT=k|HcNv^-gYX6At$H@TfEi zu54u0ydjm5%`8>GkW{VlTR}ixA*I=t&+MzyO9ehNKYJO6GIKlWQwwL59lYh~c_gt^ z?rM_M^3M};0}d>XWQ;w`u4GcQiaRb(lGs?zF>hoOn9uTv-9xQe wf0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy`bk7VRCwBAU_b={KztvF|3mS8s2Eld zfTR!|W7PyR`8-rX0F({02?Jm=4cS(l8U&EU1kg1wqG><|jA-IuJ_{C`7#Z*YCI%7# z6Ar)N1lXLE4#a6Rb<#{ICdo+*GrbWUvEwiOu2`9^e{M zc!op!=*&5%-uuj})*w^$HC2}l$K(5NCbbLaFoimtz&30owgd;zgFRTaz%&{Ylpx0g z5__G^=WY3!f_WD%Jy72DG=II@6|EKY;q z=|2qiq#}hseuQPIPHVw4829bCFI8Y#x3cO7|6H_V+Po~-c6>aczaSW-rm6YJnV8V8%L9A#CyUABU;k`AE=G_quKkS9- z)uyB^X?0cDAm^zwf$Le4gB_0`f=}V$|BRv+63bTJextJv{ S3rm4+XYh3Ob6Mw<&;$U1x@Fb? literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/96-book.png b/public/images/glyphish-icons/icons/96-book.png new file mode 100644 index 0000000000000000000000000000000000000000..63b3d69e663e94d8e92325774c136d5279a4373e GIT binary patch literal 378 zcmV-=0fqjFP)#XsO^s!0WxhNvkwlNuU=qQS+*mQo=)zX!jwmy1ND zMYsn(yu;l+?|XOfzDoUM6%`EdiV|{a!Yscxh%(Yx#=H2H1suuj7dXQX zHt>uW^st6KWMuMN)MOkLIcVSnCgM_LY7=(R#HXw@fqf+L=$3j#UaoP4J9&i|EJU?? z`glScAJ|0QU!uK^=XQ1DT`nmr)W*tV~@LN$q7@D&EL_uDIhh=>UZVXy4McWQHBBx Y0LsBULC&J1i2wiq07*qoM6N<$f{jR`ssI20 literal 0 HcmV?d00001 diff --git a/public/images/glyphish-icons/icons/97-puzzle.png b/public/images/glyphish-icons/icons/97-puzzle.png new file mode 100644 index 0000000000000000000000000000000000000000..921729b5c8e67e222145ddd53d3be81d9ef82797 GIT binary patch literal 499 zcmVX1^@s6BEU{30000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzl}SWFRCwBAV4xh>12HoL9e@@PZwKQ4 zKpaa;i-dr98W8`1S_Z-oftZaJmZbsl2PBJ-aVeTwkOQKCxDkk*$h9y5h`-^m5abX! zs5%}XK2N|wID-!zr~~nQv>=7yy-=T3V3GTV!#ptH2jX6+A~_st=HT$@0cf0Jle0%R z1eClpf%q+wq7WPw=HM_CA4Z8w4M!m597| z0f<)u@hKp_2E;EIuq5N#SX}lKh`pg|M1i;nPfA6`UBskHZ!+Qq7X~?0g&0e>P|?zj z#FmkNsA#DTF_umv!XQvQ)mra^-OpJflBsTvvZ;7D{JoQ!VS z1QLT0S1@5K(ypSbHy|Tkq;Xj2fu!a$)B$YR5(%z2!WEa3aaiaIwP+>~OW;Z%%s9e+ zGJ$M@%Tl5$;wUu3jsYW$9b1aiv8fn zC9l`--FtTzrNWBA5g362{5a5@(@GmOEggp6-~qf_@d?P9nCG6A8g9W5TzY<=RTDYP zt2UhS`5bJ6eef*itZ`fxu_?F#Z>-!|iR|$c*b?knt9)gv%=;PV9D+}_HjXUwM7;OJ zN-KR>i|IKkFyn-WW3a^Fg`=bu&aHjt3m$4*yhTd;wSB3#4F2wbxW6 zn{DzjpYLd{m~0+(rMXF9TC)jO*}Gl!PwMalEKHGFtge;kCZ>TKt!utZe|+rVNUR{W zek-h_TK7pAn@L&(OK!3+fqhp}k9i?|GGU$s4D1BskhxLf3OW*$y!AORXI*<6DQ>Wl uCUG|JQPTnQ+*5t4Dzu}|gC@qm0t^6-C9JE|K4nS(0000q$gGRCwC#R?!WEAQXHW2VfLOU;`PU z8*~)Y30S2Y)D0NHZa}elBu~l_#-Qhg@b<8@1l#Ppy36IR|LFKnnmtu7MbMs+%Zm|h)@ zVSyw@=!}1X%LN2)BE1?uzF%l8@%|LUwSN li { - display: inline; margin-right: 10px; } - #group ul > li.selected, #group ul > li.selected a { - color: black; - font-weight: bold; - font-size: 24px; } - #group a { - color: #aaaaaa; - font-weight: normal; } + #group ul .selected { + color: black; + font-weight: bold; + font-size: 24px; } #group #friend_pictures img { - height: 40px; } + height: 20px; } #add_photo_loader { position: absolute; @@ -438,7 +435,7 @@ h1.big_text { #user_menu { background: black; - padding: 5px; + padding: 0 5px; margin: 0; list-style: none; } #user_menu a { @@ -446,5 +443,28 @@ h1.big_text { #user_menu > li { display: inline; margin-right: 1em; } + #user_menu > li:first-child { + margin-right: 0; } #user_menu > li:last-child { margin-right: 0; } + +#global_search { + display: inline; + position: relative; } + #global_search form { + display: inline; } + #global_search form input { + margin-top: 4px; + display: inline; + font-size: 12px; + border: none; } + #global_search form input[type='text'] { + width: 200px; + padding: 2px; + background-image: url("/images/glyphish-icons/icons/06-magnifying-glass.png"); + background-repeat: no-repeat; + background-position: 187px; + background-size: 12px; } + #global_search form label { + font-size: 12px; + margin-top: -2px; } diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index b09fcd45b..4852f02f6 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -96,7 +96,6 @@ header #session_action :float right - :text-shadow 0 1px 0 #000 a &.new_requests :color #DF0101 @@ -520,30 +519,28 @@ h1.big_text #group :color #000 + :background + :color #eee ul :margin 0 :padding 0 + :list + :style none :font :size 14px > li - :display inline :margin :right 10px - &.selected, &.selected a - :color #000 - :font - :weight bold - :size 24px - - a - :color #aaa - :font - :weight normal + .selected + :color #000 + :font + :weight bold + :size 24px #friend_pictures img - :height 40px + :height 20px #add_photo_loader :position absolute @@ -553,7 +550,7 @@ h1.big_text #user_menu :background #000 - :padding 5px + :padding 0 5px :margin 0 :list-style none @@ -565,8 +562,40 @@ h1.big_text :margin :right 1em + &:first-child + :margin + :right 0 + &:last-child :margin :right 0 +#global_search + :display inline + :position relative + form + :display inline + + input + :margin + :top 4px + :display inline + :font + :size 12px + :border none + + input[type='text'] + :width 200px + :padding 2px + :background + :image url('/images/glyphish-icons/icons/06-magnifying-glass.png') + :repeat no-repeat + :position 187px + :size 12px + + label + :font + :size 12px + :margin + :top -2px From 97aa8a4dc949f374ccbf4e4febc6854109d1be30 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 13:57:33 -0700 Subject: [PATCH 08/33] No photos index route --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 946d34729..80aa3d872 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,7 +4,7 @@ Diaspora::Application.routes.draw do resources :status_messages resources :comments resources :requests - resources :photos + resources :photos, :except => [:index] resources :albums resources :groups From efb4100e013d333161e0abb47b136eb1d150cf28 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 13:58:09 -0700 Subject: [PATCH 09/33] Split up socket debug and app debug --- config/app_config.yml | 3 +++ config/initializers/socket.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config/app_config.yml b/config/app_config.yml index 0c87b6b4c..1eee9376c 100644 --- a/config/app_config.yml +++ b/config/app_config.yml @@ -1,14 +1,17 @@ development: debug: false + socket_debug : false socket_port: 8080 pubsub_server: 'https://pubsubhubbub.appspot.com/' test: debug: false + socket_debug : false socket_port: 8081 pubsub_server: 'https://pubsubhubbub.appspot.com/' production: debug: false + socket_debug : false socket_port: 8080 pubsub_server: 'https://pubsubhubbub.appspot.com/' diff --git a/config/initializers/socket.rb b/config/initializers/socket.rb index 381d1f6c2..03f9e24eb 100644 --- a/config/initializers/socket.rb +++ b/config/initializers/socket.rb @@ -7,7 +7,7 @@ require "lib/diaspora/websocket" EventMachine::WebSocket.start( :host => "0.0.0.0", :port => APP_CONFIG[:socket_port], - :debug =>APP_CONFIG[:debug]) do |ws| + :debug =>APP_CONFIG[:socket_debug]) do |ws| ws.onopen { sid = Diaspora::WebSocket.subscribe(ws.request['Path'].gsub('/',''), ws) From ae6f0fdc51be17b3c90bbacfd9d4979bc9b3d56a Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 13:58:33 -0700 Subject: [PATCH 10/33] new photo form now loads through ajax --- app/controllers/photos_controller.rb | 2 ++ app/models/user.rb | 7 +++++-- app/views/albums/show.html.haml | 7 ++++++- app/views/photos/_new_photo.haml | 21 +++++++-------------- public/javascripts/view.js | 15 ++++++++++++++- 5 files changed, 34 insertions(+), 18 deletions(-) diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index eb165ca2d..46332992d 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -2,6 +2,7 @@ class PhotosController < ApplicationController before_filter :authenticate_user! def create + render :nothing => true begin @photo = current_user.post(:photo, params) @@ -21,6 +22,7 @@ class PhotosController < ApplicationController def new @photo = Photo.new + @album = current_user.album_by_id(params[:album_id]) render :partial => "new_photo" end diff --git a/app/models/user.rb b/app/models/user.rb index fe4cb1ea9..38dde280a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -47,8 +47,6 @@ class User model_class = class_name.to_s.camelize.constantize - pp options - post = model_class.instantiate(options) post.creator_signature = post.sign_with_key(encryption_key) post.save @@ -327,6 +325,11 @@ class User groups.detect{|x| x.id == id } end + def album_by_id( id ) + id = ensure_bson id + albums.detect{|x| x.id == id } + end + def groups_with_person person id = ensure_bson person.id groups.select {|group| group.person_ids.include? id} diff --git a/app/views/albums/show.html.haml b/app/views/albums/show.html.haml index 04b117645..c0cf97427 100644 --- a/app/views/albums/show.html.haml +++ b/app/views/albums/show.html.haml @@ -1,3 +1,9 @@ +:javascript + $(document).ready(function(){ + reset_photo_fancybox(); + }); + +.album_id{:id => @album.id, :style => "display:hidden;"} .back= link_to '⇧ albums', albums_path %h1.big_text @@ -11,7 +17,6 @@ .yo{:style => "display:none;"} #new_photo_pane - = render "photos/new_photo", :photo => @photo, :album => @album .sub_header ="updated #{how_long_ago(@album)}" diff --git a/app/views/photos/_new_photo.haml b/app/views/photos/_new_photo.haml index 0704c0244..5bc6d6882 100644 --- a/app/views/photos/_new_photo.haml +++ b/app/views/photos/_new_photo.haml @@ -2,7 +2,7 @@ $(function() { $("#photo_image").html5_upload({ // WE INSERT ALBUM_ID PARAM HERE - url: "/photos?album_id=#{album.id}", + url: "/photos?album_id=#{@album.id}", sendBoundary: window.FormData || $.browser.mozilla, setName: function(text) { $("#progress_report_name").text(text); @@ -12,8 +12,9 @@ $("#add_photo_loader").fadeOut(400); $("#photo_title_status").text("Done!"); - $("#progress_report").html(""); - resetPhotoButton + $("#progress_report").html("Good job me!"); + + $("#add_photo_button").addClass("uploading_complete"); }, onStart: function(event, total){ $("#add_photo_button").html( "Uploading Photos" ); @@ -27,21 +28,13 @@ }); }); - function resetPhotoButton{ - $("#add_photo_button").click(function (evt){ - $("#new_photo_pane").html($.get("photos/ajax_new")); - $("#add_photo_button").unbind(); - $("#add_photo_button").fancybox(); - } - } - %h1 %span{:id=>"photo_title_status"} Add photos to - %i= album.name -= form_for photo, :html => {:multipart => true} do |f| + %i= @album.name += form_for @photo, :html => {:multipart => true} do |f| = f.error_messages - = f.hidden_field :album_id, :value => album.id + = f.hidden_field :album_id, :value => @album.id = f.file_field :image, :multiple => 'multiple' #progress_report{ :style => "display:none;text-align:center;" } diff --git a/public/javascripts/view.js b/public/javascripts/view.js index b1baae31e..720709b8e 100644 --- a/public/javascripts/view.js +++ b/public/javascripts/view.js @@ -71,7 +71,14 @@ $(document).ready(function(){ $("#add_album_button").fancybox(); $("#add_group_button").fancybox(); $("#add_request_button").fancybox({ 'titleShow': false }); - $("#add_photo_button").fancybox(); + $("#add_photo_button").fancybox({ + 'onClosed' : function(){ + if($("#add_photo_button").hasClass("uploading_complete")){ + $("#add_photo_button").removeClass("uploading_complete"); + reset_photo_fancybox(); + } + } + }); //pane_toggler_button("photo"); @@ -91,6 +98,12 @@ $(document).ready(function(){ });//end document ready +function reset_photo_fancybox(){ + album_id = $(".album_id")[0].id; + ajax = $.get("/photos/new?album_id=" + album_id, function(){ + $("#new_photo_pane").html(ajax.responseText) + }); +} function pane_toggler_button( name ) { From d874ba3b38f54603d3cdcb73b1570296a28561a1 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 14:17:05 -0700 Subject: [PATCH 11/33] dropdown menu for user --- app/views/layouts/application.html.haml | 12 ++-- public/stylesheets/application.css | 57 +++++++++++++++- public/stylesheets/sass/application.sass | 82 ++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 5 deletions(-) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 839981a46..30564f576 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -39,12 +39,16 @@ = form_tag(users_path, :method => 'get') do %label{:for => 'q'} Search = text_field_tag 'q' - %li.name= link_to current_user.real_name, current_user.person - %li= link_to "requests (#{@request_count})", requests_path, :class => new_request(@request_count) - %li= link_to "settings", edit_user_path(current_user) + %li + %ul#other_user_menu + %li + = owner_image_tag + = link_to current_user.real_name, current_user.person + %li.requests= link_to "requests (#{@request_count})", requests_path, :class => new_request(@request_count) + %li.settings= link_to "settings", edit_user_path(current_user) + %li.logout= link_to "logout", destroy_user_session_path - %li= link_to "logout", destroy_user_session_path - else = link_to "login", new_user_session_path diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 9e220bf7e..938bb4471 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -434,6 +434,7 @@ h1.big_text { top: 4px; } #user_menu { + position: relative; background: black; padding: 0 5px; margin: 0; @@ -448,9 +449,63 @@ h1.big_text { #user_menu > li:last-child { margin-right: 0; } +#other_user_menu { + position: absolute; + z-index: 10; + top: 0; + right: 0; + display: inline-block; + padding: 0; + margin: 0; + list-style: none; } + #other_user_menu > li { + display: none; + background-color: white; + width: 180px; + height: 29px; + border-left: 2px solid black; + border-right: 2px solid black; } + #other_user_menu > li:hover { + background-color: #eeeeee; } + #other_user_menu > li:first-child { + display: block; + background: black; } + #other_user_menu > li:first-child a { + color: white; } + #other_user_menu > li:first-child img { + position: absolute; + height: 20px; + top: 5px; + left: 9px; } + #other_user_menu > li:last-child { + border-bottom: 2px solid black; } + #other_user_menu > li a { + display: block; + height: 100%; + padding-left: 40px; + padding-top: 5px; + color: black; } + #other_user_menu > li a:hover { + background-color: transparent; } + #other_user_menu .requests { + background-image: url("/images/glyphish-icons/icons/40-inbox.png"); + background-repeat: no-repeat; + background-position: 5px; } + #other_user_menu .settings { + background-image: url("/images/glyphish-icons/icons/20-gear2.png"); + background-repeat: no-repeat; + background-position: 5px; } + #other_user_menu .logout { + background-image: url("/images/glyphish-icons/icons/54-lock.png"); + background-repeat: no-repeat; + background-position: 5px; } + #other_user_menu:hover li { + display: block; } + #global_search { display: inline; - position: relative; } + position: relative; + padding-right: 175px; } #global_search form { display: inline; } #global_search form input { diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 4852f02f6..3f286c983 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -549,6 +549,7 @@ h1.big_text :top 4px #user_menu + :position relative :background #000 :padding 0 5px :margin 0 @@ -570,9 +571,90 @@ h1.big_text :margin :right 0 +#other_user_menu + :position absolute + :z-index 10 + :top 0 + :right 0 + :display inline-block + :padding 0 + :margin 0 + :list + :style none + + > li + :display none + :background + :color #fff + :width 180px + :height 29px + :border + :left 2px solid #000 + :right 2px solid #000 + + &:hover + :background + :color #eee + + &:first-child + :display block + :background #000 + a + :color #fff + + img + :position absolute + :height 20px + :top 5px + :left 9px + + &:last-child + :border + :bottom 2px solid #000 + + a + :display block + :height 100% + :padding + :left 40px + :top 5px + :color #000 + + &:hover + :background + :color transparent + + .requests + :background + :image url('/images/glyphish-icons/icons/40-inbox.png') + :repeat no-repeat + :position 5px + .settings + :background + :image url('/images/glyphish-icons/icons/20-gear2.png') + :repeat no-repeat + :position 5px + .logout + :background + :image url('/images/glyphish-icons/icons/54-lock.png') + :repeat no-repeat + :position 5px + + + + + + &:hover li + :display block + + + + #global_search :display inline :position relative + :padding + :right 175px form :display inline From fb7e945fc267081477f7b59bb965cc0ee4e30b7e Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 14:19:16 -0700 Subject: [PATCH 12/33] removed useless if/else --- app/views/layouts/application.html.haml | 29 +++++++++++-------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 1e5da03ce..b13f6afb7 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -32,24 +32,21 @@ %header .container #session_action - - if user_signed_in? - %ul#user_menu - %li#global_search - = form_tag(users_path, :method => 'get') do - %label{:for => 'q'} Search - = text_field_tag 'q' + %ul#user_menu + %li#global_search + = form_tag(users_path, :method => 'get') do + %label{:for => 'q'} Search + = text_field_tag 'q' - %li - %ul#other_user_menu - %li - = owner_image_tag - = link_to current_user.real_name, current_user.person - %li.requests= link_to "requests (#{@request_count})", requests_path, :class => new_request(@request_count) - %li.settings= link_to "settings", edit_user_path(current_user) - %li.logout= link_to "logout", destroy_user_session_path + %li + %ul#other_user_menu + %li + = owner_image_tag + = link_to current_user.real_name, current_user.person + %li.requests= link_to "requests (#{@request_count})", requests_path, :class => new_request(@request_count) + %li.settings= link_to "settings", edit_user_path(current_user) + %li.logout= link_to "logout", destroy_user_session_path - - else - = link_to "login", new_user_session_path #diaspora_text{:href => root_path} = link_to "DIASPORA*", root_path From 4e996f84125e48d2b43c76dd1f1f2b5e69256a9b Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 14:30:20 -0700 Subject: [PATCH 13/33] user name darker --- public/stylesheets/application.css | 2 +- public/stylesheets/sass/application.sass | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 938bb4471..0baa5e634 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -471,7 +471,7 @@ h1.big_text { display: block; background: black; } #other_user_menu > li:first-child a { - color: white; } + color: #999999; } #other_user_menu > li:first-child img { position: absolute; height: 20px; diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 3f286c983..554fce48b 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -600,7 +600,7 @@ h1.big_text :display block :background #000 a - :color #fff + :color #999 img :position absolute @@ -640,10 +640,6 @@ h1.big_text :repeat no-repeat :position 5px - - - - &:hover li :display block From 76f2aa98ac4e481f661812c336f38ee692f4749e Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 14:45:13 -0700 Subject: [PATCH 14/33] Push to multiple groups --- app/controllers/status_messages_controller.rb | 2 +- app/models/user.rb | 17 +++++++++-------- app/views/shared/_publisher.haml | 5 +---- spec/models/group_spec.rb | 2 +- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index 786b15007..863deb137 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -9,7 +9,7 @@ class StatusMessagesController < ApplicationController end def create - puts params.inspect + params[:status_message][:group_ids] = params[:group_ids] @status_message = current_user.post(:status_message, params[:status_message]) if @status_message.created_at diff --git a/app/models/user.rb b/app/models/user.rb index 38dde280a..a867f5973 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -42,8 +42,8 @@ class User def post(class_name, options = {}) options[:person] = self.person - group_id = options[:group_id] - options.delete(:group_id) + group_ids = options[:group_ids] + options.delete(:group_ids) model_class = class_name.to_s.camelize.constantize @@ -52,14 +52,15 @@ class User post.save - if group_id - group = self.groups.find_by_id(group_id) + groups = self.groups.find_all_by_id(group_ids) + target_people = [] + + groups.each{ |group| group.posts << post group.save - post.push_to( group.people.all ) - else - post.push_to( self.friends.all ) - end + target_people = target_people | group.people + } + post.push_to( target_people ) post.socket_to_uid(id) if post.respond_to?(:socket_to_uid) diff --git a/app/views/shared/_publisher.haml b/app/views/shared/_publisher.haml index 88fc20443..ef261c1f1 100644 --- a/app/views/shared/_publisher.haml +++ b/app/views/shared/_publisher.haml @@ -3,9 +3,6 @@ = form_for StatusMessage.new, :remote => true do |f| = f.error_messages - -if group_id - = f.hidden_field :group_id, :value => group_id - .span-15.last .span-2.last .user_image @@ -21,7 +18,7 @@ going to... - for group in current_user.groups %li - = check_box_tag("groups_id[]", group.id, current_group?(group)) + = check_box_tag("group_ids[]", group.id, current_group?(group)) = group.name .span-1.last = f.submit "Post" diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index dc0920a66..93bc9f949 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -70,7 +70,7 @@ describe Group do it 'should add post to group via post method' do group = @user.group(:name => 'losers', :people => [@friend]) - status_message = @user.post( :status_message, :message => "hey", :group_id => group.id ) + status_message = @user.post( :status_message, :message => "hey", :group_ids => [group.id] ) group.reload group.posts.include?(status_message).should be true From 511f571ae5a76a9d927167eef8499e04cdc69511 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 15:01:39 -0700 Subject: [PATCH 15/33] Specs mostly pass again --- app/models/post.rb | 5 ----- app/models/user.rb | 4 ++-- spec/controllers/groups_controller_spec.rb | 2 +- spec/controllers/people_controller_spec.rb | 1 + spec/models/post_spec.rb | 21 --------------------- 5 files changed, 4 insertions(+), 29 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 8f30586a0..0ab355968 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -29,11 +29,6 @@ class Post self.create params end -#Querying - def self.newest_for(person) - self.where(:person_id => person.id, :order => '_id desc') - end - #ENCRYPTION xml_accessor :creator_signature key :creator_signature, String diff --git a/app/models/user.rb b/app/models/user.rb index a867f5973..3ed7d5d67 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -337,8 +337,8 @@ class User end def setup_person - self.person.serialized_key = generate_key.export - self.person.email = email + self.person.serialized_key ||= generate_key.export + self.person.email ||= email self.person.save! end diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb index 6bfce5434..36773fd98 100644 --- a/spec/controllers/groups_controller_spec.rb +++ b/spec/controllers/groups_controller_spec.rb @@ -4,7 +4,7 @@ describe GroupsController do render_views before do @user = Factory.create(:user) - @user.person.save + @user.group(:name => "lame-os") @person = Factory.create(:person) request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user, :authenticate => @user) end diff --git a/spec/controllers/people_controller_spec.rb b/spec/controllers/people_controller_spec.rb index f039e0101..0bca73e18 100644 --- a/spec/controllers/people_controller_spec.rb +++ b/spec/controllers/people_controller_spec.rb @@ -7,6 +7,7 @@ describe PeopleController do request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user, :authenticate => @user) sign_in :user, @user + @user.group(:name => "lame-os") end it "index should yield search results for substring of person name" do diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index c6196b0f0..608c17ba7 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -5,27 +5,6 @@ describe Post do @user = Factory.create(:user, :email => "bob@aol.com") @user.person.save end - - describe "newest" do - before do - @person_one = Factory.create(:person, :email => "some@dudes.com") - @person_two = Factory.create(:person, :email => "other@dudes.com") - (2..4).each { |n| Factory.create(:status_message, :message => "test #{n}", :person => @person_one) } - (5..8).each { |n| Factory.create(:status_message, :message => "test #{n}", :person => @user.person)} - (9..11).each { |n| Factory.create(:status_message, :message => "test #{n}", :person => @person_two) } - - Factory.create(:status_message, :person => @user) - Factory.create(:status_message, :person => @user) - end - - it "should give the most recent status_message title and body from owner" do - status_message = StatusMessage.newest_for(@user.person) - status_message.person.email.should == @user.person.email - status_message.class.should == StatusMessage - status_message.message.should == "test 8" - end - - end describe 'xml' do it 'should serialize to xml with its person' do From 0cff5a45a219141d3ebc36a1c401d5e1731c7cf0 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 15:02:28 -0700 Subject: [PATCH 16/33] Deleting gridfs controller --- app/controllers/gridfs_controller.rb | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 app/controllers/gridfs_controller.rb diff --git a/app/controllers/gridfs_controller.rb b/app/controllers/gridfs_controller.rb deleted file mode 100644 index 538eb5b79..000000000 --- a/app/controllers/gridfs_controller.rb +++ /dev/null @@ -1,15 +0,0 @@ -class GridfsController < ActionController::Metal - def serve - gridfs_path = env["PATH_INFO"].gsub("/images/", "") - begin - gridfs_file = Mongo::GridFileSystem.new(MongoMapper.database).open(gridfs_path, 'r') - self.response_body = gridfs_file.read - self.content_type = gridfs_file.content_type - rescue - self.status = :file_not_found - self.content_type = 'text/plain' - self.response_body = "File totally imaginary #{gridfs_path}" - end - end - -end From dbb16faed1d1ea73c80c918add444f5d22bb1d80 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 15:10:19 -0700 Subject: [PATCH 17/33] Photo filename is now better --- app/uploaders/image_uploader.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/uploaders/image_uploader.rb b/app/uploaders/image_uploader.rb index 3fd36c6a6..732367ffa 100644 --- a/app/uploaders/image_uploader.rb +++ b/app/uploaders/image_uploader.rb @@ -11,9 +11,9 @@ class ImageUploader < CarrierWave::Uploader::Base %w(jpg jpeg gif png) end -# def filename -# model.id.to_s + File.extname(@filename) -# end + def filename + model.id.to_s + File.extname(@filename) if @filename + end version :thumb_small do process :resize_to_fill => [30,30] From 41b3117a41f9b7dbe00571f49d880371c664fc69 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 15:13:27 -0700 Subject: [PATCH 18/33] removed that annoying rollover on diaspora text --- public/stylesheets/application.css | 3 +++ public/stylesheets/sass/application.sass | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 0baa5e634..05178b261 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -80,6 +80,9 @@ header { text-shadow: 0 2px 0 black; } header #diaspora_text a { color: #666666; } + header #diaspora_text a:hover { + color: white; + background: none; } header #diaspora_text span.sub_text { text-shadow: none; } header #session_action { diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 554fce48b..9ba19f8cf 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -90,6 +90,10 @@ header a :color #666 + a:hover + :color #fff + :background none + span.sub_text :text :shadow none From f9a19e679fb115ecaac58281fa04c70b4f34bd61 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 15:27:34 -0700 Subject: [PATCH 19/33] made header shorter --- app/views/layouts/application.html.haml | 3 ++- public/stylesheets/application.css | 4 ++-- public/stylesheets/sass/application.sass | 6 ++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index b13f6afb7..1061d9d13 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -53,7 +53,8 @@ %span.sub_text PREVIEW - = link_to "photos", albums_path + %span{:style => "padding-left:30px;"} + = link_to "photos", albums_path .container .span-4.append-1.last diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 05178b261..546046296 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -70,9 +70,9 @@ header { color: black; background-color: #333333; border-bottom: 3px solid black; - padding: 6px 0; - padding-top: 0; } + padding: 0; } header #diaspora_text { + padding-top: 4px; font-family: "BrandonGrotesqueLightRegular"; font-size: 16px; border: none; diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 9ba19f8cf..518cd6478 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -76,10 +76,11 @@ header :color #333 :border :bottom 3px solid #000 - :padding 6px 0 - :top 0 + :padding 0 #diaspora_text + :padding + :top 4px :font :family 'BrandonGrotesqueLightRegular' :size 16px @@ -87,6 +88,7 @@ header :color #fff :text :shadow 0 2px 0 #000 + a :color #666 From b87c936b34aec2de6fede8a76b0a0306bac50349 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 15:51:43 -0700 Subject: [PATCH 20/33] use rsofaer redfinger --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 9f9498361..946870396 100644 --- a/Gemfile +++ b/Gemfile @@ -26,7 +26,7 @@ gem 'json' #Standards gem 'pubsubhubbub' -gem 'redfinger' +gem 'redfinger', :git => 'git://github.com/rsofaer/redfinger.git' #EventMachine gem 'em-http-request',:git => 'git://github.com/igrigorik/em-http-request.git', :require => 'em-http' From 1f59d2ccc488c65dfc1428d0e6a79da34b4b4f41 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 15:55:19 -0700 Subject: [PATCH 21/33] minor ui tweaks --- public/stylesheets/application.css | 32 +++++++++++++----------- public/stylesheets/sass/application.sass | 28 +++++++++++++-------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 546046296..e029619ab 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -276,13 +276,8 @@ input[type='text'], textarea { padding: 0.3em; display: block; width: 66%; - box-shadow: 0 2px 0px white; - -webkit-box-shadow: 0 2px 0px white; - -moz-box-shadow: 0 2px 0px white; - border-top: 1px solid #999999; - height: auto; - border-radius: 3px; - -moz-border-radius: 3px; } + border-top: 1px solid #666666; + height: auto; } #submit_block { text-align: right; @@ -307,9 +302,13 @@ label { position: relative; height: 80px; } #publisher textarea { - width: 95%; } + width: 95%; + height: 40px; + margin-top: 0; + -webkit-border-radius: 0; } #publisher .user_image img { - height: 50px; } + height: 50px; + padding-left: 10px; } #publisher ul.group_selector { padding: 0; margin: 0; @@ -438,7 +437,7 @@ h1.big_text { #user_menu { position: relative; - background: black; + background: #333333; padding: 0 5px; margin: 0; list-style: none; } @@ -472,7 +471,9 @@ h1.big_text { background-color: #eeeeee; } #other_user_menu > li:first-child { display: block; - background: black; } + background: #333333; + border-left: 2px solid #333333; + border-right: 2px solid #333333; } #other_user_menu > li:first-child a { color: #999999; } #other_user_menu > li:first-child img { @@ -508,14 +509,15 @@ h1.big_text { #global_search { display: inline; position: relative; - padding-right: 175px; } + padding-right: 167px; } #global_search form { display: inline; } #global_search form input { - margin-top: 4px; + margin-top: 5px; display: inline; font-size: 12px; - border: none; } + border: none; + border-radius: 0; } #global_search form input[type='text'] { width: 200px; padding: 2px; @@ -525,4 +527,4 @@ h1.big_text { background-size: 12px; } #global_search form label { font-size: 12px; - margin-top: -2px; } + margin-top: -3px; } diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 518cd6478..3a2354985 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -341,13 +341,8 @@ input[type='text'], textarea :padding 0.3em :display block :width 66% - :box-shadow 0 2px 0px #fff - :-webkit-box-shadow 0 2px 0px #fff - :-moz-box-shadow 0 2px 0px #fff - :border-top 1px solid #999 + :border-top 1px solid #666 :height auto - :border-radius 3px - :-moz-border-radius 3px #submit_block :text @@ -379,10 +374,17 @@ label textarea :width 95% + :height 40px + :margin + :top 0 + + :-webkit-border-radius 0 .user_image img :height 50px + :padding + :left 10px ul.group_selector :padding 0 @@ -556,7 +558,7 @@ h1.big_text #user_menu :position relative - :background #000 + :background #333 :padding 0 5px :margin 0 :list-style none @@ -604,7 +606,10 @@ h1.big_text &:first-child :display block - :background #000 + :background #333 + :border + :left 2px solid #333 + :right 2px solid #333 a :color #999 @@ -656,18 +661,19 @@ h1.big_text :display inline :position relative :padding - :right 175px + :right 167px form :display inline input :margin - :top 4px + :top 5px :display inline :font :size 12px :border none + :border-radius 0 input[type='text'] :width 200px @@ -682,4 +688,4 @@ h1.big_text :font :size 12px :margin - :top -2px + :top -3px From ee7005ad744f165dec5cc04f1905d30a800a6893 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 16:11:39 -0700 Subject: [PATCH 22/33] db:purge now deletes everything in uploads folder --- lib/tasks/db.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/db.rake b/lib/tasks/db.rake index 9b78b6855..fceb99430 100644 --- a/lib/tasks/db.rake +++ b/lib/tasks/db.rake @@ -29,7 +29,7 @@ namespace :db do MongoMapper::connection.drop_database(MongoMapper::database.name) puts 'Deleting tmp folder...' - `rm -rf #{File.dirname(__FILE__)}/../../public/uploads/tmp` + `rm -rf #{File.dirname(__FILE__)}/../../public/uploads/*` end desc 'Purge and seed the current RAILS_ENV database using information from db/seeds.rb' From 74be86395b9ec44a4cbbb5dec618dd314b6b046a Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 16:33:44 -0700 Subject: [PATCH 23/33] Changing env back to development mode, the memory leak is likely fixed --- config/thin.yml | 2 +- lib/mongo_mapper/clear_dev_memory.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 lib/mongo_mapper/clear_dev_memory.rb diff --git a/config/thin.yml b/config/thin.yml index f60fed103..eb066d83e 100644 --- a/config/thin.yml +++ b/config/thin.yml @@ -7,7 +7,7 @@ max_conns: 1024 require: [] max_persistent_conns: 512 -environment: production +environment: development servers: 1 daemonize: true #chdir: /usr/applications/localhash/current diff --git a/lib/mongo_mapper/clear_dev_memory.rb b/lib/mongo_mapper/clear_dev_memory.rb new file mode 100644 index 000000000..1a1db3b02 --- /dev/null +++ b/lib/mongo_mapper/clear_dev_memory.rb @@ -0,0 +1,19 @@ +module MongoMapper + class PerRequestMapClear + def initialize(app) + @app = app + end + + def call(env) + if Rails.configuration.cache_classes + else + MongoMapper::Document.descendants.each do |m| + m.descendants.clear if m.respond_to? :descendants + end + MongoMapper::Document.descendants.clear + MongoMapper::EmbeddedDocument.descendants.clear + end + @app.call(env) + end + end +end From ed99532a83b17bd65fb6d63d3e61fa358628673f Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 16:52:19 -0700 Subject: [PATCH 24/33] memory leak gone for real --- config/environments/development.rb | 2 ++ lib/mongo_mapper/clear_dev_memory.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 12446d661..7469baa90 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,3 +1,4 @@ +require 'lib/mongo_mapper/clear_dev_memory' Diaspora::Application.configure do # Settings specified here will take precedence over those in config/environment.rb @@ -17,5 +18,6 @@ Diaspora::Application.configure do # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false config.active_support.deprecation = :log + config.middleware.use MongoMapper::ClearDevMemory #config.threadsafe! end diff --git a/lib/mongo_mapper/clear_dev_memory.rb b/lib/mongo_mapper/clear_dev_memory.rb index 1a1db3b02..aebf675dc 100644 --- a/lib/mongo_mapper/clear_dev_memory.rb +++ b/lib/mongo_mapper/clear_dev_memory.rb @@ -1,5 +1,5 @@ module MongoMapper - class PerRequestMapClear + class ClearDevMemory def initialize(app) @app = app end From 2b125fdc6634d32f78d54119e1538c21e507185d Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 17:00:40 -0700 Subject: [PATCH 25/33] fixed left friends bar a bit --- app/views/shared/_group_nav.haml | 8 +++----- public/stylesheets/application.css | 11 +++++------ public/stylesheets/sass/application.sass | 13 ++++++------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/app/views/shared/_group_nav.haml b/app/views/shared/_group_nav.haml index 54138c947..1967ffc86 100644 --- a/app/views/shared/_group_nav.haml +++ b/app/views/shared/_group_nav.haml @@ -14,12 +14,10 @@ = render "groups/new_group" - if @group - %ul#friend_pictures + #friend_pictures - for friend in @group.people - %li - = person_image_link(friend) - = friend.real_name - %li= link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button' + = person_image_link(friend) + = link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button' .yo{:style => 'display:none'} #add_request_pane diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index e029619ab..1b37a6beb 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -302,10 +302,9 @@ label { position: relative; height: 80px; } #publisher textarea { - width: 95%; + width: 485px; height: 40px; - margin-top: 0; - -webkit-border-radius: 0; } + margin-top: 0; } #publisher .user_image img { height: 50px; padding-left: 10px; } @@ -414,7 +413,7 @@ h1.big_text { #group { color: black; - background-color: #eeeeee; } + margin-bottom: 1em; } #group ul { margin: 0; padding: 0; @@ -425,9 +424,9 @@ h1.big_text { #group ul .selected { color: black; font-weight: bold; - font-size: 24px; } + font-size: 30px; } #group #friend_pictures img { - height: 20px; } + height: 40px; } #add_photo_loader { position: absolute; diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 3a2354985..1964addb9 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -373,13 +373,11 @@ label :height 80px textarea - :width 95% + :width 485px :height 40px :margin :top 0 - :-webkit-border-radius 0 - .user_image img :height 50px @@ -527,8 +525,8 @@ h1.big_text #group :color #000 - :background - :color #eee + :margin + :bottom 1em ul :margin 0 :padding 0 @@ -544,11 +542,12 @@ h1.big_text :color #000 :font :weight bold - :size 24px + :size 30px #friend_pictures img - :height 20px + :height 40px + #add_photo_loader :position absolute From e05956bdddd2c0e3e7691165d8485d20e1a6322d Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 17:05:24 -0700 Subject: [PATCH 26/33] rescuing 500 on friending someone that was already friends --- app/controllers/requests_controller.rb | 18 +++++++++++------- app/models/user.rb | 26 +++++++++++++------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/app/controllers/requests_controller.rb b/app/controllers/requests_controller.rb index 77f433121..76148e148 100644 --- a/app/controllers/requests_controller.rb +++ b/app/controllers/requests_controller.rb @@ -38,18 +38,22 @@ class RequestsController < ApplicationController redirect_to current_user.group_by_id(params[:request][:group_id]) return end + Rails.logger.debug("Sending request: #{rel_hash}") - @request = current_user.send_request(rel_hash, params[:request][:group_id]) + + begin + @request = current_user.send_request(rel_hash, params[:request][:group_id]) + rescue Exception => e + raise e unless e.message.include? "already friends" + flash[:notice] = "You are already friends with #{params[:request][:destination_url]}!" + redirect_to current_user.group_by_id(params[:request][:group_id]) + end if @request flash[:notice] = "a friend request was sent to #{@request.destination_url}" - redirect_to requests_url + redirect_to current_user.group_by_id(params[:request][:group_id]) else - if url.include? '@' - flash[:error] = "no diaspora seed found with this email!" - else - flash[:error] = "you have already friended this person" - end + flash[:error] = "Something went horribly wrong..." redirect_to current_user.group_by_id(params[:request][:group_id]) end end diff --git a/app/models/user.rb b/app/models/user.rb index 3ed7d5d67..6ecf2cf0c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -124,22 +124,22 @@ class User ######### Friend Requesting ########### def send_friend_request_to(friend_url, group_id) - unless self.friends.detect{ |x| x.receive_url == friend_url} - request = Request.instantiate(:to => friend_url, :from => self.person, :into => group_id) - if request.save - self.pending_requests << request - self.save + raise "You are already friends with that person!" if self.friends.detect{ |x| x.receive_url == friend_url} + request = Request.instantiate(:to => friend_url, :from => self.person, :into => group_id) + if request.save + self.pending_requests << request + self.save - group = self.group_by_id(group_id) + group = self.group_by_id(group_id) - group.requests << request - group.save - - request.push_to_url friend_url - end - request + group.requests << request + group.save + + request.push_to_url friend_url end - end + request + end + def accept_friend_request(friend_request_id, group_id) request = Request.find_by_id(friend_request_id) From ab4ad249dffce76121833f410f0c51239c47bc5b Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 23 Aug 2010 17:09:20 -0700 Subject: [PATCH 27/33] Forgot to return in that rescue --- app/controllers/requests_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/requests_controller.rb b/app/controllers/requests_controller.rb index 76148e148..c639de66c 100644 --- a/app/controllers/requests_controller.rb +++ b/app/controllers/requests_controller.rb @@ -47,6 +47,7 @@ class RequestsController < ApplicationController raise e unless e.message.include? "already friends" flash[:notice] = "You are already friends with #{params[:request][:destination_url]}!" redirect_to current_user.group_by_id(params[:request][:group_id]) + return end if @request From a8803a1c0bf85c6957dd99960260429e0df5bf30 Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 17:40:59 -0700 Subject: [PATCH 28/33] fixed flash messages --- public/stylesheets/application.css | 30 +++++++++++---------- public/stylesheets/sass/application.sass | 33 ++++++++++++++---------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 1b37a6beb..0de70f2d0 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -22,14 +22,16 @@ a { #flash_notice, #flash_error, #flash_alert { - z-index: 60; + z-index: 3; + top: 32px; position: absolute; - padding: 5px 8px; - margin: 0; + color: black; width: 400px; - top: 0px; - margin-left: 230px; - color: #666666; } + margin: 0 0 0 -200px; + left: 50%; + text-align: center; + font-size: 14px; + padding: 3px 0; } #flash_notice { background-color: #ccffcc; @@ -64,6 +66,7 @@ a { margin: 0; } header { + z-index: 4; position: relative; margin: -2em; margin-bottom: 20px; @@ -72,7 +75,7 @@ header { border-bottom: 3px solid black; padding: 0; } header #diaspora_text { - padding-top: 4px; + padding-top: 5px; font-family: "BrandonGrotesqueLightRegular"; font-size: 16px; border: none; @@ -198,8 +201,7 @@ ul.comment_set { width: 90%; } ul.comment_set li.comment { margin-bottom: 0.5em; - background-color: #f2f8fc; - background-color: rgba(10, 81, 109, 0.1); + background-color: rgba(10, 81, 109, 0.05); padding: 0.6em; border-bottom: 1px solid #cccccc; } ul.comment_set li.comment .from { @@ -300,7 +302,9 @@ label { border-bottom: 2px #999999 solid; color: #999999; position: relative; - height: 80px; } + height: 69px; } + #publisher form { + margin-top: 10px; } #publisher textarea { width: 485px; height: 40px; @@ -436,10 +440,10 @@ h1.big_text { #user_menu { position: relative; - background: #333333; padding: 0 5px; margin: 0; - list-style: none; } + list-style: none; + top: 1px; } #user_menu a { color: #999999; } #user_menu > li { @@ -470,7 +474,7 @@ h1.big_text { background-color: #eeeeee; } #other_user_menu > li:first-child { display: block; - background: #333333; + background: none; border-left: 2px solid #333333; border-right: 2px solid #333333; } #other_user_menu > li:first-child a { diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 1964addb9..48cb4ed21 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -23,15 +23,18 @@ a #flash_notice, #flash_error, #flash_alert - :z-index 60 + :z-index 3 + :top 32px :position absolute - :padding 5px 8px - :margin 0 + :color #000 :width 400px - :top 0px - :margin - :left 230px - :color #666 + :margin 0 0 0 -200px + :left 50% + :text + :align center + :font + :size 14px + :padding 3px 0 #flash_notice :background-color #CFC @@ -68,6 +71,7 @@ a :margin 0 header + :z-index 4 :position relative :margin -2em :bottom 20px @@ -80,7 +84,7 @@ header #diaspora_text :padding - :top 4px + :top 5px :font :family 'BrandonGrotesqueLightRegular' :size 16px @@ -240,9 +244,8 @@ ul.comment_set li.comment :margin :bottom 0.5em - :background-color #F2F8FC :background - :color rgba(10,81,109,0.1) + :color rgba(10,81,109,0.05) :padding 0.6em :border :bottom 1px solid #ccc @@ -370,7 +373,11 @@ label :bottom 2px #999 solid :color #999 :position relative - :height 80px + :height 69px + + form + :margin + :top 10px textarea :width 485px @@ -557,10 +564,10 @@ h1.big_text #user_menu :position relative - :background #333 :padding 0 5px :margin 0 :list-style none + :top 1px a :color #999 @@ -605,7 +612,7 @@ h1.big_text &:first-child :display block - :background #333 + :background none :border :left 2px solid #333 :right 2px solid #333 From 562656e96aa0ca87ab50d152dd84767be113db8b Mon Sep 17 00:00:00 2001 From: danielvincent Date: Mon, 23 Aug 2010 18:42:30 -0700 Subject: [PATCH 29/33] added edit link for group --- app/views/shared/_group_nav.haml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/shared/_group_nav.haml b/app/views/shared/_group_nav.haml index 1967ffc86..dc9224370 100644 --- a/app/views/shared/_group_nav.haml +++ b/app/views/shared/_group_nav.haml @@ -1,7 +1,9 @@ #group %ul - .selected - = link_to @group.name, @group, :class => "selected" + = link_to @group.name, @group, :class => "selected" + = link_to "edit", edit_group_path(@group) + + - for group in @groups - unless (group.id.to_s == params[:id]) %li From a37b5ae09b2121ab8f60a07d35a65d3fcf0d809b Mon Sep 17 00:00:00 2001 From: maxwell Date: Mon, 23 Aug 2010 18:45:20 -0700 Subject: [PATCH 30/33] IZ MS; added a basic salmon library to help with directed messages, and made an keyhash method --- app/models/person.rb | 4 + lib/salmon/salmon.rb | 220 +++++++++++++++++++++++++++++++++ spec/lib/salmon_salmon_spec.rb | 41 ++++++ 3 files changed, 265 insertions(+) create mode 100644 lib/salmon/salmon.rb create mode 100644 spec/lib/salmon_salmon_spec.rb diff --git a/app/models/person.rb b/app/models/person.rb index 32d68cab8..84edbed3d 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -51,6 +51,10 @@ class Person serialized_key = new_key.export end + def public_key_hash + Base64.encode64 OpenSSL::Digest::SHA256.new(self.export_key).to_s + end + def export_key encryption_key.public_key.export end diff --git a/lib/salmon/salmon.rb b/lib/salmon/salmon.rb new file mode 100644 index 000000000..a20f35796 --- /dev/null +++ b/lib/salmon/salmon.rb @@ -0,0 +1,220 @@ +# Add URL safe Base64 support +module Base64 + module_function + # Returns the Base64-encoded version of +bin+. + # This method complies with RFC 4648. + # No line feeds are added. + def strict_encode64(bin) + [bin].pack("m0") + end + + # Returns the Base64-decoded version of +str+. + # This method complies with RFC 4648. + # ArgumentError is raised if +str+ is incorrectly padded or contains + # non-alphabet characters. Note that CR or LF are also rejected. + def strict_decode64(str) + str.unpack("m0").first + end + + # Returns the Base64-encoded version of +bin+. + # This method complies with ``Base 64 Encoding with URL and Filename Safe + # Alphabet'' in RFC 4648. + # The alphabet uses '-' instead of '+' and '_' instead of '/'. + def urlsafe_encode64(bin) + strict_encode64(bin).tr("+/", "-_") + end + + # Returns the Base64-decoded version of +str+. + # This method complies with ``Base 64 Encoding with URL and Filename Safe + # Alphabet'' in RFC 4648. + # The alphabet uses '-' instead of '+' and '_' instead of '/'. + def urlsafe_decode64(str) + strict_decode64(str.tr("-_", "+/")) + end +end + +# Verify documents secured with Magic Signatures +module Salmon + class SalmonSlap + attr_accessor :magic_sig, :user, :data, :data_type, :sig + def self.parse(xml) + slap = self.new + doc = Nokogiri::XML(xml) + + sig_doc = doc.search('entry') + slap.magic_sig = MagicSigEnvelope.parse sig_doc + + + + if 'base64url' == slap.magic_sig.encoding + slap.data = decode64url(slap.magic_sig.data) + slap.sig = slap.magic_sig.sig + else + raise ArgumentError, "Magic Signature data must be encoded with base64url, was #{slap.magic_sig.encoding}" + end + + slap.data_type = slap.magic_sig.data_type + + raise ArgumentError, "Magic Signature data must be signed with RSA-SHA256, was #{slap.magic_sig.alg}" unless 'RSA-SHA256' == slap.magic_sig.alg + + slap + end + + + + def self.create(user, activity) + salmon = self.new + salmon.user = user + salmon.magic_sig = MagicSigEnvelope.create(user, activity) + salmon + end + + def to_xml + xml =< + + + #{@user.real_name} + acct:#{@user.email} + + #{@magic_sig.to_xml} + +ENTRY + + end + + # Decode URL-safe-Base64. This implements + def self.decode64url(str) + # remove whitespace + sans_whitespace = str.gsub(/\s/, '') + # pad to a multiple of 4 + string = sans_whitespace + '=' * ((4 - sans_whitespace.size) % 4) + # convert to standard Base64 + # string = padded.tr('-','+').tr('_','/') + + # Base64.decode64(string) + Base64.urlsafe_decode64 string + end + + # def verified? + # + # end + + # Check whether this envelope's signature can be verified with the + # provided OpenSSL::PKey::RSA public_key. + # Example: + # + # env.verified_for_key? OpenSSL::PKey::RSA.new(File.open('public_key.pem')) + # # -> true + def verified_for_key?(public_key) + signature = Base64.urlsafe_decode64(self.magic_sig.sig) + signed_data = self.magic_sig.signable_string# Base64.urlsafe_decode64(self.magic_sig.signable_string) + + + public_key.verify(OpenSSL::Digest::SHA256.new, signature, signed_data ) + end + + # Decode a string containing URL safe Base64 into an integer + # Example: + # + # MagicSig.b64_to_n('AQAB') + # # -> 645537 + def self.b64_to_n(str) + packed = decode64url(str) + packed.unpack('B*')[0].to_i(2) + end + + # Parse a string containing a magic-public-key into an OpenSSL::PKey::RSA key. + # Example: + # + # key = MagicSig.parse_key('RSA.mVgY8RN6URBTstndvmUUPb4UZTdwvwmddSKE5z_jvKUEK6yk1u3rrC9yN8k6FilGj9K0eeUPe2hf4Pj-5CmHww.AQAB') + # key.n + # # -> 8031283789075196565022891546563591368344944062154100509645398892293433370859891943306439907454883747534493461257620351548796452092307094036643522661681091 + # key.e + # # -> 65537 + def self.parse_key(str) + n,e = str.match(/^RSA.([^.]*).([^.]*)$/)[1..2] + build_key(b64_to_n(n),b64_to_n(e)) + end + + # Take two integers e, n and create a new OpenSSL::PKey::RSA key with them + # Example: + # + # n = 9487834027867356975347184933768917275269369900665861930617802608089634337052392076689226301419587057117740995382286148368168197915234368486155306558161867 + # e = 65537 + # key = MagicSig.build_key(n,e) + # key.public_encrypt(...) # for sending to strangers + # key.public_decrypt(...) # very rarely used + # key.verify(...) # for verifying signatures + def self.build_key(n,e) + key = OpenSSL::PKey::RSA.new + key.n = n + key.e = e + key + end + + + + + + + end + + class MagicSigEnvelope + attr_accessor :data, :data_type, :encoding, :alg, :sig, :user + def self.parse(doc) + env = self.new + ns = {'me'=>'http://salmon-protocol.org/ns/magic-env'} + env.encoding = doc.search('//me:env/me:encoding', ns).text.strip + env.data = doc.search('//me:env/me:data', ns).text + env.alg = doc.search('//me:env/me:alg', ns).text.strip + env.sig = doc.search('//me:env/me:sig', ns).text + env.data_type = doc.search('//me:env/me:data', ns).first['type'].strip + env + end + + def self.create(user, activity) + env = MagicSigEnvelope.new + env.user = user + env.data = Base64.urlsafe_encode64(activity) + env.data_type = env.get_data_type + env.encoding = env.get_encoding + env.alg = env.get_alg + + + env.sig = Base64.urlsafe_encode64( + user.encryption_key.sign OpenSSL::Digest::SHA256.new, env.signable_string ) + + env + end + + def signable_string + [@data, Base64.urlsafe_encode64(@data_type),Base64.urlsafe_encode64(@encoding), Base64.urlsafe_encode64(@alg)].join(".") + end + + def to_xml + xml= < + #{@data} + #{@encoding} + #{@alg} + #{@sig} + +ENTRY + xml + end + + def get_encoding + 'base64url' + end + + def get_data_type + 'application/atom+xml' + end + + def get_alg + 'RSA-SHA256' + end + + end +end diff --git a/spec/lib/salmon_salmon_spec.rb b/spec/lib/salmon_salmon_spec.rb new file mode 100644 index 000000000..7b29bf966 --- /dev/null +++ b/spec/lib/salmon_salmon_spec.rb @@ -0,0 +1,41 @@ +require File.dirname(__FILE__) + '/../spec_helper' + + + +require 'lib/salmon/salmon' +include ApplicationHelper +include Salmon + + + +describe Salmon do + it 'should verify the signature on a roundtrip' do + @user = Factory.create :user + @post = @user.post :status_message, :message => "hi" + x = Salmon::SalmonSlap.create(@user, @post.to_diaspora_xml) + + z = Salmon::SalmonSlap.parse x.to_xml + + x.magic_sig.data.should == z.magic_sig.data + + x.magic_sig.sig.should == z.magic_sig.sig + x.magic_sig.signable_string.should == z.magic_sig.signable_string + + + x.verified_for_key?(OpenSSL::PKey::RSA.new(@user.export_key)).should be true + z.verified_for_key?(OpenSSL::PKey::RSA.new(@user.export_key)).should be true + end + + + it 'should return the data so it can be "received"' do + @user = Factory.create :user + @post = @user.post :status_message, :message => "hi" + x = Salmon::SalmonSlap.create(@user, @post.to_diaspora_xml) + + z = Salmon::SalmonSlap.parse x.to_xml + + xml = @post.to_diaspora_xml + + z.data.should == xml + end +end From 7ca9d1e7914754473a0569ab8a602ee184ad7bf7 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 24 Aug 2010 11:02:30 -0700 Subject: [PATCH 31/33] Changed group_nav a little, deleted people_sidebar --- app/controllers/application_controller.rb | 5 ++--- app/controllers/groups_controller.rb | 6 ++++-- app/helpers/application_helper.rb | 2 +- app/models/user.rb | 1 + app/views/groups/index.html.haml | 4 +--- app/views/people/_sidebar.html.haml | 11 ----------- app/views/shared/_group_nav.haml | 24 +++++++++++++---------- app/views/shared/_publisher.haml | 2 +- 8 files changed, 24 insertions(+), 31 deletions(-) delete mode 100644 app/views/people/_sidebar.html.haml diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f173633c4..6e4a43e86 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -2,7 +2,8 @@ class ApplicationController < ActionController::Base protect_from_forgery :except => :receive - before_filter :set_friends_and_status, :count_requests + before_filter :set_friends_and_status + before_filter :count_requests layout :layout_by_resource @@ -17,8 +18,6 @@ class ApplicationController < ActionController::Base def set_friends_and_status if current_user @groups = current_user.groups - @friends = current_user.friends - @group = params[:group] ? current_user.group_by_id(params[:group]) : current_user.groups.first end end diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index d8790a861..e8e973ad7 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -2,7 +2,9 @@ class GroupsController < ApplicationController before_filter :authenticate_user! def index - @posts = current_user.raw_visible_posts.paginate :page => params[:page], :order => 'created_at DESC' + @posts = current_user.visible_posts(:by_members_of => :all).paginate :page => params[:page], :order => 'created_at DESC' + @group = :all + @friends = current_user.friends end def create @@ -28,7 +30,7 @@ class GroupsController < ApplicationController end def show - @people_ids = @group.person_ids + @person_ids = @group.person_ids @group = Group.first(:id => params[:id]) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c5ef2f0e8..22c9cbe00 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,7 +1,7 @@ module ApplicationHelper def current_group?(group) - @group.id == group.id + @group == :all || @group.id == group.id end def object_path(object) diff --git a/app/models/user.rb b/app/models/user.rb index 6ecf2cf0c..00da8ed15 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -71,6 +71,7 @@ class User def visible_posts( opts = {} ) if opts[:by_members_of] + return raw_visible_posts if opts[:by_members_of] == :all group = self.groups.find_by_id( opts[:by_members_of].id ) group.posts end diff --git a/app/views/groups/index.html.haml b/app/views/groups/index.html.haml index 89ef12f84..1f9764bbb 100644 --- a/app/views/groups/index.html.haml +++ b/app/views/groups/index.html.haml @@ -2,9 +2,7 @@ welcome, = current_user.profile.first_name -- @group.nil? ? group_id = nil : group_id = @group.id - -= render "shared/publisher", :group_id => group_id += render "shared/publisher", :group_ids => :all %ul#stream - for post in @posts diff --git a/app/views/people/_sidebar.html.haml b/app/views/people/_sidebar.html.haml deleted file mode 100644 index 79d2d0c41..000000000 --- a/app/views/people/_sidebar.html.haml +++ /dev/null @@ -1,11 +0,0 @@ -%ul#friend_stream.nav - %h3 friends - - for friend in @friends - = person_image_link(friend) - - %li= link_to "view all", people_path - - %br - %br - -= link_to "add a new person", requests_path diff --git a/app/views/shared/_group_nav.haml b/app/views/shared/_group_nav.haml index dc9224370..df2f04966 100644 --- a/app/views/shared/_group_nav.haml +++ b/app/views/shared/_group_nav.haml @@ -1,8 +1,11 @@ #group %ul - = link_to @group.name, @group, :class => "selected" - = link_to "edit", edit_group_path(@group) - + - if @group == :all + = link_to "All Groups", root_url, :class => "selected" + + - elsif @group + = link_to @group.name, @group, :class => "selected" + = link_to "edit", edit_group_path(@group) - for group in @groups - unless (group.id.to_s == params[:id]) @@ -11,16 +14,17 @@ %li.new_group= link_to("NEW GROUP", "#add_group_pane", :id => "add_group_button") - .yo{ :style => "display:none;"} - #add_group_pane - = render "groups/new_group" + .yo{ :style => "display:none;"} + #add_group_pane + = render "groups/new_group" - if @group #friend_pictures - - for friend in @group.people + - for friend in @friends = person_image_link(friend) = link_to (image_tag 'add_friend_button.png'), "#add_request_pane", :id => 'add_request_button' - .yo{:style => 'display:none'} - #add_request_pane - = render "requests/new_request" + - unless @group == :all + .yo{:style => 'display:none'} + #add_request_pane + = render "requests/new_request" diff --git a/app/views/shared/_publisher.haml b/app/views/shared/_publisher.haml index ef261c1f1..59fdbbfb7 100644 --- a/app/views/shared/_publisher.haml +++ b/app/views/shared/_publisher.haml @@ -18,7 +18,7 @@ going to... - for group in current_user.groups %li - = check_box_tag("group_ids[]", group.id, current_group?(group)) + = check_box_tag("group_ids[]", group.id, current_group?(group) ) = group.name .span-1.last = f.submit "Post" From 6ab6dc1c3ada28e27757ea4977b3c495a2155426 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 24 Aug 2010 11:06:56 -0700 Subject: [PATCH 32/33] Removing some unused routes --- app/controllers/status_messages_controller.rb | 7 ------- config/routes.rb | 8 ++++---- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index 863deb137..3cacb1a55 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -1,13 +1,6 @@ class StatusMessagesController < ApplicationController before_filter :authenticate_user! - def index - @status_messages = StatusMessage.paginate :page => params[:page], :order => 'created_at DESC' - respond_to do |format| - format.html - end - end - def create params[:status_message][:group_ids] = params[:group_ids] @status_message = current_user.post(:status_message, params[:status_message]) diff --git a/config/routes.rb b/config/routes.rb index 80aa3d872..f2b4ebd80 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,9 +1,9 @@ Diaspora::Application.routes.draw do - resources :people + resources :people, :only => [:index, :show, :destroy] resources :users, :except => [:create, :new] - resources :status_messages - resources :comments - resources :requests + resources :status_messages, :except => [:index] + resources :comments, :except => [:index] + resources :requests, :except => [:edit, :update] resources :photos, :except => [:index] resources :albums resources :groups From fb33d955c9449cdb995156046d686787bc3fd881 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 24 Aug 2010 11:11:25 -0700 Subject: [PATCH 33/33] Fix group show controller/view and haml error in nav --- app/controllers/groups_controller.rb | 4 +--- app/views/shared/_group_nav.haml | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index e8e973ad7..aa0e618ef 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -30,10 +30,8 @@ class GroupsController < ApplicationController end def show - @person_ids = @group.person_ids - @group = Group.first(:id => params[:id]) - + @friends = @group.people @posts = current_user.visible_posts( :by_members_of => @group ).paginate :order => 'created_at DESC' end diff --git a/app/views/shared/_group_nav.haml b/app/views/shared/_group_nav.haml index df2f04966..d0c90b125 100644 --- a/app/views/shared/_group_nav.haml +++ b/app/views/shared/_group_nav.haml @@ -14,9 +14,9 @@ %li.new_group= link_to("NEW GROUP", "#add_group_pane", :id => "add_group_button") - .yo{ :style => "display:none;"} - #add_group_pane - = render "groups/new_group" + .yo{ :style => "display:none;"} + #add_group_pane + = render "groups/new_group" - if @group #friend_pictures