From 939e4cc100652563584d5541dd18a2f4a3910379 Mon Sep 17 00:00:00 2001 From: yanxd Date: Sat, 26 Apr 2014 09:03:25 +0800 Subject: [PATCH 01/36] =?UTF-8?q?footer=20=E4=B8=8B=E6=96=B9=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB=20welcome=E8=B0=83=E6=95=B4=E4=B8=8B=E4=B8=BB?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_base_footer.html.erb | 50 ++++----- app/views/welcome/course.html.erb | 107 +------------------ app/views/welcome/index.html.erb | 134 +----------------------- public/javascripts/welcome.js | 64 +++++++++++ 4 files changed, 94 insertions(+), 261 deletions(-) create mode 100644 public/javascripts/welcome.js diff --git a/app/views/layouts/_base_footer.html.erb b/app/views/layouts/_base_footer.html.erb index 0f2334656..faff9e13c 100644 --- a/app/views/layouts/_base_footer.html.erb +++ b/app/views/layouts/_base_footer.html.erb @@ -1,31 +1,31 @@
diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb index c91b3e453..0e45ab3ba 100644 --- a/app/views/welcome/course.html.erb +++ b/app/views/welcome/course.html.erb @@ -1,22 +1,11 @@ <%= stylesheet_link_tag 'welcome' %> - - -
-

问题和反馈动态 diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 7a241981a..e41260de1 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -1,22 +1,11 @@ <%= stylesheet_link_tag 'welcome' %> - - -
-
- - - - - - - - -






- -
-
- -
+

diff --git a/public/javascripts/welcome.js b/public/javascripts/welcome.js new file mode 100644 index 000000000..a0166bb3f --- /dev/null +++ b/public/javascripts/welcome.js @@ -0,0 +1,64 @@ +(function () { + window.onload = function(){ + function fixedBar(id, options){ + var ele = document.getElementById(id); + if(!ele) return; + if(/msie (\d+\.\d+)/i.test(navigator.userAgent)){ + var pageHeight=window.innerHeight; + var d=document; + if(typeof pageHeight!="number"){ + if(document.compatMode=="CSS1Compat"){ + pageHeight=document.documentElement.clientHeight; + }else{ + pageHeight=document.body.clientHeight; + } + } + var ieScrollTop=window.pageYOffset || d.documentElement.scrollTop || d.body.scrollTop; + if(options.addclass) ele.className = options.addclass; + ele.style.position= 'absolute'; + + if(options.show){ + ele.style.top = 0 + "px"; + ele.style.display= 'block'; + } + + window.attachEvent('onscroll' , function (){ + + var ieScrollTop=window.pageYOffset || d.documentElement.scrollTop || d.body.scrollTop; + + ele.style.top = 0 + "px"; + if(options.autoHidden){ + if(ieScrollTop==0){ + ele.style.display="none"; + }else{ + ele.style.display="block"; + } + } + }); + }else{ + var ele = document.getElementById(id); + if(typeof pageHeight!="number"){ + if(document.compatMode=="CSS1Compat"){ + pageHeight=document.documentElement.clientHeight; + }else{ + pageHeight=document.body.clientHeight; + } + } + if(options.show) ele.style.display= 'block'; + ele.style.top = 0 +'px'; + window.addEventListener('scroll',function (){ + if(options.autoHidden){ + if(baidu.page.getScrollTop()==0){ + ele.style.display="none"; + }else{ + ele.style.display="block"; + } + } + },false); + } + } + + fixedBar('backTopBtn' , {autoHidden: true, top : 186}); + fixedBar('identifier-pannel' , {autoHidden: false , top : 956 , show : true}); + } +})(); \ No newline at end of file From 3a9c7a036ffed49282028b7c9ff548013ea012b5 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Sat, 26 Apr 2014 09:32:50 +0800 Subject: [PATCH 02/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AB=9E=E8=B5=9B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=AD=E7=9A=84=E5=A5=96=E5=8A=B1=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E7=9A=84=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/contests/_contest_list.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/contests/_contest_list.html.erb b/app/views/contests/_contest_list.html.erb index fb3ddd115..6ffac831e 100644 --- a/app/views/contests/_contest_list.html.erb +++ b/app/views/contests/_contest_list.html.erb @@ -13,7 +13,7 @@ From b542f8072d206a55a4cf24b74b4e5e83987fc967 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Sat, 26 Apr 2014 10:58:03 +0800 Subject: [PATCH 03/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=AB=9E=E8=B5=9B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/contests_controller.rb | 22 +++++++++++----------- app/helpers/contests_helper.rb | 8 ++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/controllers/contests_controller.rb b/app/controllers/contests_controller.rb index 0f16a81c6..14395ac0b 100644 --- a/app/controllers/contests_controller.rb +++ b/app/controllers/contests_controller.rb @@ -33,15 +33,6 @@ class ContestsController < ApplicationController if params[:contest_sort_type].present? case params[:contest_sort_type] when '0' - unless @offset == 0 - @contests = @contests.offset(@offset).limit(@limit).all.reverse - else - limit = @contest_count % @limit - limit = @limit if limit == 0 - @contests = @contests.offset(@offset).limit(limit).all.reverse - end - @s_state = 0 - when '1' unless @offset == 0 @contests = @contests.reorder('contests.commit').offset(@offset).limit(@limit).all.reverse else @@ -49,6 +40,15 @@ class ContestsController < ApplicationController limit = @limit if limit == 0 @contests = @contests.reorder('contests.commit').offset(@offset).limit(limit).all.reverse end + @s_state = 0 + when '1' + unless @offset == 0 + @contests = @contests.reorder('contests.created_on').offset(@offset).limit(@limit).all.reverse + else + limit = @contest_count % @limit + limit = @limit if limit == 0 + @contests = @contests.reorder('contests.created_on').offset(@offset).limit(limit).all.reverse + end @s_state = 1 when '2' unless @offset == 0 @@ -62,11 +62,11 @@ class ContestsController < ApplicationController end else unless @offset == 0 - @contests = @contests.reorder('contests.commit').offset(@offset).limit(@limit).all.reverse + @contests = @contests.reorder('contests.created_on').offset(@offset).limit(@limit).all.reverse else limit = @contest_count % @limit limit = @limit if limit == 0 - @contests = @contests.reorder('contests.commit').offset(@offset).limit(limit).all.reverse + @contests = @contests.reorder('contests.created_on').offset(@offset).limit(limit).all.reverse end @s_state = 1 end diff --git a/app/helpers/contests_helper.rb b/app/helpers/contests_helper.rb index cb4d6a0f7..36f2351cb 100644 --- a/app/helpers/contests_helper.rb +++ b/app/helpers/contests_helper.rb @@ -62,12 +62,12 @@ module ContestsHelper content = ''.html_safe case state when 0 - content << content_tag('li', link_to(l(:label_sort_by_active), {controller: 'contests', action: 'index' ,:contest_sort_type => '1'})) - content << content_tag('li', link_to(l(:label_sort_by_time), {controller: 'contests', action: 'index' ,:contest_sort_type => '0'}, :class=>"selected"), :class=>"selected") + content << content_tag('li', link_to(l(:label_sort_by_time), {controller: 'contests', action: 'index' ,:contest_sort_type => '1'})) + content << content_tag('li', link_to(l(:label_sort_by_active), {controller: 'contests', action: 'index' ,:contest_sort_type => '0'}, :class=>"selected"), :class=>"selected") when 1 - content << content_tag('li', link_to(l(:label_sort_by_active), {controller: 'contests', action: 'index' ,:contest_sort_type => '1'}, :class=>"selected"), :class=>"selected") - content << content_tag('li', link_to(l(:label_sort_by_time), {controller: 'contests', action: 'index' ,:contest_sort_type => '0'})) + content << content_tag('li', link_to(l(:label_sort_by_time), {controller: 'contests', action: 'index' ,:contest_sort_type => '1'}, :class=>"selected"), :class=>"selected") + content << content_tag('li', link_to(l(:label_sort_by_active), {controller: 'contests', action: 'index' ,:contest_sort_type => '0'})) end content = content_tag('ul', content) content_tag('div', content, :class => "tabs") From be6ae6ef34d77f91ac646c1680d7429817bc7bc2 Mon Sep 17 00:00:00 2001 From: yanxd Date: Sun, 27 Apr 2014 10:56:24 +0800 Subject: [PATCH 04/36] d --- app/views/layouts/_base_footer.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/_base_footer.html.erb b/app/views/layouts/_base_footer.html.erb index faff9e13c..9df56ee2f 100644 --- a/app/views/layouts/_base_footer.html.erb +++ b/app/views/layouts/_base_footer.html.erb @@ -1,6 +1,6 @@
-
- <%= l(:label_contests_reward_method) %><%= contest.budget%> + <%= l(:label_contests_reward_method) %>:  <%= contest.budget%>
+ + + + + + + + + + +
创新竞赛社区<%= l(:label_user_location) %> : + +
<%=link_to request.host()+"/softapplications", :controller=>'softapplications', :action=>'index' %><%=link_to l(:field_homepage), home_path %> > + <%=link_to l(:label_contest_softapplication), :controller=>'softapplications', :action=>'index' %> +
+
\ No newline at end of file diff --git a/app/views/softapplications/index.html.erb b/app/views/softapplications/index.html.erb index 16a206508..3ac6280f6 100644 --- a/app/views/softapplications/index.html.erb +++ b/app/views/softapplications/index.html.erb @@ -1,4 +1,4 @@ -

参赛应用

+ + + + +<%=render :partial => 'layouts/base_softapplication_index_top_content'%> + + + + + +
+ <% @softapplications.each do |softapplication| %> +
+ <%= link_to softapplication.name, softapplication, :target => "_blank" %> + <%= rating_for softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %> + +
+
<%= image_tag('/images/app1.png')%>
+
<%= softapplication.description.truncate(95, omission: '...') %>
+
+

所属竞赛:

+

所属类别:<%= softapplication.app_type_name %>

+

系统支持:<%= softapplication.android_min_version_available %>

+
+
+ 开发人员:<%= softapplication.application_developers %> + 发布时间:<%=format_time softapplication.created_at %> +
+
+
+ <% end %> +
+ From d0730747371b2bbe6974d2fe4cd4612124864303 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Mon, 28 Apr 2014 22:24:17 +0800 Subject: [PATCH 11/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/softapplications/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/softapplications/index.html.erb b/app/views/softapplications/index.html.erb index 3ac6280f6..edefb75e6 100644 --- a/app/views/softapplications/index.html.erb +++ b/app/views/softapplications/index.html.erb @@ -60,7 +60,7 @@
<%= image_tag('/images/app1.png')%>
<%= softapplication.description.truncate(95, omission: '...') %>
-
+

所属竞赛:

所属类别:<%= softapplication.app_type_name %>

系统支持:<%= softapplication.android_min_version_available %>

From c40bc242cd4d53a877057f5489915100ac87cea2 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Tue, 29 Apr 2014 08:32:45 +0800 Subject: [PATCH 12/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=98=BE=E7=A4=BA=E6=A0=BC=E5=BC=8F=EF=BC=9B?= =?UTF-8?q?=20=E8=B0=83=E6=95=B4=E4=BA=86=E7=AB=9E=E8=B5=9B=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=B8=AD=E7=9A=84=E5=8F=82=E8=B5=9B=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E7=AE=80=E4=BB=8B=E7=9A=84=E9=95=BF?= =?UTF-8?q?=E5=BA=A6=EF=BC=88=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E9=99=90=E5=88=B6=EF=BC=89=EF=BC=9B=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E5=85=B7=E4=BD=93=E5=8F=82=E8=B5=9B?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E9=A1=B5=E9=9D=A2=E4=B8=AD=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=AE=80=E4=BB=8B=E7=9A=84=E9=95=BF=E5=BA=A6?= =?UTF-8?q?=EF=BC=88=E5=B0=86=E5=8E=9F=E6=9D=A5=E7=9A=84=E9=99=90=E5=88=B6?= =?UTF-8?q?=E4=B8=BA150=E6=94=B9=E4=B8=BA=E4=B8=8D=E9=99=90=E5=88=B6?= =?UTF-8?q?=EF=BC=8C=E4=BE=BF=E4=BA=8E=E8=AF=BB=E8=80=85=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/contests/_list_softapplications.html.erb | 2 +- .../layouts/_base_softapplication_index_top_content.html.erb | 4 ++-- app/views/softapplications/show.html.erb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/contests/_list_softapplications.html.erb b/app/views/contests/_list_softapplications.html.erb index eb179718a..256c1d5af 100644 --- a/app/views/contests/_list_softapplications.html.erb +++ b/app/views/contests/_list_softapplications.html.erb @@ -14,7 +14,7 @@ 简介: - <%= c_softapplication.softapplication.description %> + <%= c_softapplication.softapplication.description.truncate(100, omission: '...') %>
diff --git a/app/views/layouts/_base_softapplication_index_top_content.html.erb b/app/views/layouts/_base_softapplication_index_top_content.html.erb index 5366661d3..0a41036f1 100644 --- a/app/views/layouts/_base_softapplication_index_top_content.html.erb +++ b/app/views/layouts/_base_softapplication_index_top_content.html.erb @@ -3,9 +3,9 @@ 创新竞赛社区 <%= l(:label_user_location) %> : - + diff --git a/app/views/softapplications/show.html.erb b/app/views/softapplications/show.html.erb index 32ab3474b..dda52858f 100644 --- a/app/views/softapplications/show.html.erb +++ b/app/views/softapplications/show.html.erb @@ -57,7 +57,7 @@
应用简介:
-
<%= @softapplication.description.truncate(150, omission: '...') %>
+
<%= @softapplication.description %>
From 7cc4a9f3a6a4d4f2eb202aa98c74d1a91aafd4a3 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Tue, 29 Apr 2014 08:37:57 +0800 Subject: [PATCH 13/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AD=97=E6=95=B0?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/contests/_list_softapplications.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/contests/_list_softapplications.html.erb b/app/views/contests/_list_softapplications.html.erb index 256c1d5af..9b99b675c 100644 --- a/app/views/contests/_list_softapplications.html.erb +++ b/app/views/contests/_list_softapplications.html.erb @@ -14,7 +14,7 @@ 简介: - <%= c_softapplication.softapplication.description.truncate(100, omission: '...') %> + <%= c_softapplication.softapplication.description.truncate(90, omission: '...') %>
From 6ab0eb4477930441bc4cf284dac94bc53b765e6e Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Tue, 29 Apr 2014 09:48:11 +0800 Subject: [PATCH 14/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8E=E5=8F=91?= =?UTF-8?q?=E7=8E=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/softapplications/index.html.erb | 6 ++++++ config/locales/zh.yml | 21 ++++----------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/app/views/softapplications/index.html.erb b/app/views/softapplications/index.html.erb index edefb75e6..925fa7db5 100644 --- a/app/views/softapplications/index.html.erb +++ b/app/views/softapplications/index.html.erb @@ -74,3 +74,9 @@ <% end %> + + \ No newline at end of file diff --git a/config/locales/zh.yml b/config/locales/zh.yml index f4b6fe0ce..fc7e90e97 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1425,7 +1425,7 @@ zh: label_has_praisers: 赞(%{count}) label_has_watchers: 关注(%{count}) label_has_fans: 粉丝(%{count}) - label_coursefile_sharingarea: 课程资源共享区 + label_coursefile_sharingarea: 课程文件共享专区 #modify by men label_x_has_fans: zero: 粉丝(%{count}) @@ -1547,7 +1547,6 @@ zh: label_sort_by_time: 按时间排序 label_sort_by_active: 按活跃度排序 label_sort_by_influence: 按影响力排序 - label_sort_by_activity: 按动态数排序 label_bids_published: 发布于 label_bids_published_ago: 之前 label_welcome_trustie: Trustie @@ -1668,7 +1667,7 @@ zh: label_public_info: (打钩为公开,不打钩则不公开,若不公开,仅项目成员可见该项目。) label_course_view_student: 查看其他课程 label_course_student: 学生 - label_homework: 课程实践 + label_homework: 课程作业 label_course_file: 资源库 #资料共享 label_stores_index: 资源搜索 label_course_new_homework: 新建作业 @@ -1716,11 +1715,6 @@ zh: zero: 份资料 one: 份资料 other: 份资料 -#added by gcm - label_x_activity: - zero: 个动态 - one: 个动态 - other: 个动态 @@ -1765,10 +1759,6 @@ zh: label_has_been: 已经被 label_course_userd_by: 个课程引用 - - label_school_all: 中国高校 - - role_of_course: 课程角色 label_student: 学生 @@ -1829,8 +1819,7 @@ zh: label_sumbit_empty: 搜索内容不能为空 #add by linchun (竞赛相关) - label_upload_files: 上传资源 - label_relation_files: 关联已有资源 + label_upload_files: 上传文件 label_upload_softwarepackage: 上传软件包 label_upload_cuttingphoto: 上传截图 label_contests_reward_method: 奖励方式 @@ -1869,8 +1858,6 @@ zh: label_add_contest_succeed_fail: 添加失败,该应用已参赛. label_no_ftapplication: 暂无应用 label_edit_softapplication: 修改应用 - label_contest_settings: 配置竞赛 - label_contest_delete: 删除竞赛 - + \ No newline at end of file From 50745d5d21e3d34b16b250855994e82808a20961 Mon Sep 17 00:00:00 2001 From: Wen Date: Tue, 29 Apr 2014 09:49:51 +0800 Subject: [PATCH 15/36] =?UTF-8?q?course=E9=A6=96=E9=A1=B5=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E4=B8=8A=E7=9A=84=E5=B0=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 7 ++-- app/views/welcome/course.html.erb | 47 ++++++++++++-------------- public/images/school/1578.png | Bin 59050 -> 0 bytes public/stylesheets/application.css | 2 +- 4 files changed, 27 insertions(+), 29 deletions(-) delete mode 100644 public/images/school/1578.png diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 710b73194..c662c44f7 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -39,17 +39,18 @@ class WelcomeController < ApplicationController @courseCount = Project.course_entities.count @teacherCount = User.teacher.count @studentCount = User.student.count - @logoLink = logolink(params[:school_id]) + @logoLink = logolink() end - def logolink(id) + def logolink() + id = params[:school_id] logo_link = "" if id.nil? and User.current.user_extensions.school.nil? logo_link = '/images/transparent.png' else - if id.to_i == 0 + if id == "0" logo_link = '/images/transparent.png' else if id.nil? diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb index 8ad0cd6bf..b8b755b58 100644 --- a/app/views/welcome/course.html.erb +++ b/app/views/welcome/course.html.erb @@ -20,40 +20,37 @@
- <%= image_tag(@logoLink, size:'75x75') %> - -
-
- - - <% if params[:school_id].nil? and User.current.user_extensions.school.nil? %> - <% else%> - <% if params[:school_id] == "0" %> - <% else %> - <% if params[:school_id].nil? %> + <%= image_tag(@logoLink, size:'75x75') %> - <%= School.find(User.current.user_extensions.school.id).name %> -
+
+
+
+ <% if params[:school_id].nil? and User.current.user_extensions.school.nil? %> + <% else%> + <% if params[:school_id] == "0" %> <% else %> - <%= School.find(params[:school_id]).name %> -
+ <% if params[:school_id].nil? %> + <%= School.find(User.current.user_extensions.school.id).name %> +
+ <% else %> + <%= School.find(params[:school_id]).name %> +
+ <% end %> <% end %> - <% end %> - <% end %> -
+ <% end %> <%= l(:label_welcome_trustie) %><%= l(:label_welcome_trustie_course) %> <% if params[:school_id].nil? and User.current.user_extensions.school.nil? %> - , <%= l(:label_welcome_trustie_course_description) %> + , <%= l(:label_welcome_trustie_course_description) %> <% else %> <% if params[:school_id] == "0" %> - , <%= l(:label_welcome_trustie_course_description) %> + , <%= l(:label_welcome_trustie_course_description) %> <% end %> <% end %> -
- -
+
+ +
diff --git a/public/images/school/1578.png b/public/images/school/1578.png deleted file mode 100644 index 84340ace54011653172931b9ca6d4ff453a86ffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59050 zcmV)rK$*XZP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRcjFiAu~RCwC#eP?)8#oG40`r0);q!CgmA@mlip-OK8qJYwS6;KfiRYVa)Iw**M z0wRbaNN=I{&>^&tP}0lptIqc$k|TnEZanWf=X0(rKeE@FvS#Lnx7 zr8|YjTle#0GV>h4cWH*$F;{7hM)fj;;Bt>(P&*vLC2{LNX>p?){xBYa%{ z%>MH&)ITzacjeTj`+;Y#+^l@!;_ZZM_X^6~&2@)m2&+5s>&(4#?v&d34-7;h$cHP3LchaWfQH~X`0p;hEW)X(SD^M zjHYRvuIr3LV|_JEV`Pscx;;*dBuS#K>kQAZ9+qWgqfxY%@b~>LJkX3liwIw<5j4*s ztH6dk+1c24C=;hIr{To;JIHZJmwbE#Te*^kD@|%g?0unT>7+)Ls-^z3%Krf5PnE4l zug7oMbE@^xGneaLxNWXj!iO$fGu{u)>&2o$tysjA3ITM2`~n-U+;HMvR!*m!JX;uH z7{+Ka*sT^mw?v>hH7L;UZl#jGxqs(a&!-mzWas3EXXZGfY<4-o<#bypP16GXt@px$ z1AmB%HNnr<3eXg8-p;_m6F0Eq@C}^2l#k3pJ*8qP$Avo8${%Udq{c6;>Xg3p&+7jJ zkjIv!Q@116>^$H7mt)skrQN$9S+1lts!^?S=+z`1aTVer8i8AP@^K^eZo~BZIb~cf z)oL>N*kZ!W=Oe>>FPD!Bwf`r5&()i^O=;O&+?BNZ35x9II9gZ2O8DNW6jyqCsW2m) zb_qAGU&Yt^Zev?gGH#|9rpA;EzuCHOxveiZt+Xz&M#;2)cEvvc!Gf<2wOzIQttcuh%_$F*T86d8JH< z->JB`sN-czSv-H&cy=B-Q^Vg}GDDHv9DForvYofm)?CIEA{S6naJ^F2=MKor_Z^n2 z*RIz{O>aA{EJ^bcB z0Qny--|j!uVBy-sL(X2vts3KRj(@FvUG#meDR>UJaXlyW$nkS+9B#$8d|d2_b}y7p zdLDf)Tyv=3`CGRV-{{q0Xt{8U^Y_o+nE%VdxnKS`#LpB86#xnJfygM(3ksoWBG`g_ zOnawSuYujGu6zXOXS1rtga@6E4x}`1$NAHtn~g5qyj9;MG6fB5R-7MKDiE?=!or^p z;+r3iAU(@|p+-pPLe@;_9T{Bp46qLoL6T)E_lOQ>9`?8u?D(6U}R zNKP4hlg_rdk)B;Os6=>r-wxH*{FU~198Irr>T+uH&=B@U?^bo!{q|Xfjvv@A-_Ego z_3@}zdbfyM_lS^vJvZRMi7OpLf`d}erldFidh@CGOd^GL^~=l-3l6$*FT)nwv1yeB zb*qIvL`A;)$N%0&khgYRJSy|TG76BZw4JX$8=&r!Z>_hj+# z=_~DXGVg|m2bfdZH?6ywve5YH&}Gd2@)S;T@}ECi^leg~o7Xc5Ar5l*>MhcK#3~|G z9dor(_YZ$w@XO`a|I2&mf6~?Dhb@Py&-!-%*kdvg7kvY7!|p-A@1KO#N+37P6lpQ%~Mf|s`EIr1)R)1Ef)(ubpukEG(DS+%hn;JF! zi&Nuw9XQ{tS)-CM+a|n>7viFD;MARJ(-xm^6I(JUZoA`4{r!55#NEra$8rWULV|r#pUVLdXx7Gd zY%m)D*8Y5^%|}T`Cf2P}cGK63+MnrvxoXVJMSEkqj^ACU*_Nzb;|C^8Z&;;N>OTPa z4=b-sTlUGityj8Mi7XYhdG5<-`9gUlU%eMR_3OQ(V|~T)?+?Q z#`SCbaoHe?{0~6>kITxACn6rj0hUu z8QtGmj#~wE(2TFQeYN<#ZoPhASEOAoH?1JWo?in%F+fTOGRZzXhxCj*-%O`Fsv?m5 zNB!Gfg}#cS01y!!{>Spsg&R4(Zl`S2R1LGn)aoDN7nOSEYI@Ubk0<=dsS9oHr)Q&j zsgRVI*huB?UWYy%8m|GcX71O!he(X^&DVP;&g|K}7T%h)u}xpb@drrG_Y=6^l_`>)?=Hhbyr>D4QT>>kyp*@8a{ z4gffN=k^N{t0K~$Mu;Crla-{;DWkOBoc!9$C+t=$qQRhwz01+Ut#wW5@_ww^%UAkgYIT;NjVzzZkEW3N^ zfTr&*9?_;(%PJLDnqh{?6!33#eHq!i>7phthOAxu)!r%Fj%K%*^=Th$nBOVx&ZS$u z8};~T|Gf1{?f(JD-&`)J~$~m11x| zH7n}(&k8*V*4z#lSUfSHNmn^qmo%`H_QaF_=Doto4vB)<$Et{>N@xA{S#EYth%PJe zH5s%2jx|{RsvOZF@)#sa<)~f{lmXODp8#Mtt_u(k|_4&%T?L7W?J**FQRUBRix?h3Hd* zIy7DW#6e0PaB41iU4J6=%eYq<lHxb{jb`sZmhEa;eGPy$6BhscVN_(9?(^Phv$}2V=(1xzIaIdepzmU)3{9Na zt#z&c4%y_t!B{hT?y8ZND&x*~7_gjV*s}>C1XDiVHeua?t1X{aciGnDZt-p2v{~zo zBZk`3h^6`@(q-g|?SJ%se5YA9L*f)N>5H9&s1hlZC885TB#%zs`Fu0sYQIT_f4p(& zYXRPJ7Lxj z9|l$*LpqI`{fJ?*QnwlT<|dQKlJ&=XKJRrH{^8oCK~1KS*q3Ijdy}&&JWHK*2d=i9 z^6|C_gb-xdvq^^m%Za7Rxbvgut{VB@u=oDs2iR!fH_HPmjXO1C`3_P*6!OE7Yfaz& zblYdoQupJplHW$1Pe_B;KPPLqoh4svK10gA{E_>GVau*wysKIsSEv8`U#~9F>;qD} z=O^TLu0#kaBz9FHHbThT3wIGi{ddTiPk;VH3-y6ZH_9&Ac(~`%^@n@>xbt$Ol-rr& z-!U)SPuOdmy`38H``;_{m}#@N_>62wy3zD`_P6cQ?S#0FvmBufKO$p4TR-Rb&yQZq zih5H0w?EzX*$+pqH7y_tnX!Ba38*ygRHK34EdK`}fAMe6gUCo##@B zjS%w5mm9}^v*F}R&r(16wll~-aT;knW*NzLD1@jAaVUh`%*kh-SnvFupc1X#Cw?tI zC2vmNLR3Ns(Q-*z`d!kb$9&?K@GklJbb9^&hvw2yxgYZ_q8gQex^X4-ARYKxfBV_V$29MvVcd0 z(EvmT_-bdbUkQ@zMngii$Vb|$QZYPxc<-0q|M-iIAFkVX5XrZ)P_j}qa)8a{3UGU5lOpLN0O-2@kivwfX&nF<4zfYy zT~?zp*J>1UEk-Wa*J8|$iwXQgO;>cuFztD+$I7i2I`6t%*j!TzF}%l%qkjK<()_KH zZ)e{N@;CY_42?hRdq9Wym4_}fWyjC@Hgf2|9%I&i8Lke0?;EswW%1Ve(^?Pf+pfW$ z|FpgMALq^c-ol>-e)Pq`@x8m%iCXw(XPmikzV!Az7yC>e{p$OFYEieH={#`4%JtQv zV^FqA1XKcCxp)uvb8K*_G&stGFn=X?c-Q7*2E3g3h%5P=jYo!U-+Hj;nG7z$$meS{ zqeFHM>(q60V%>l%PwRWvk!w{`GxI7q+?ubhXbj6Sib15ERtvYn&({QBUlCTb0G?;z zD_V*(n$UC+Ms!^-&TL|noseY}Hiv|Q0uS;FoG7%(uem+CRaG=j(iJht*K{{FA~3m8 zjhKsn$C}jWKIeXN78CMvZNF`6r}b#{+h^yl+zaUT?zgwHTsBMZR(0ooI;!=kXK8cl z-0vp5(5T^tx|KpM4E*?etXy+6^}Qhtr+ql2{nCE`@&~2oq}5YbZBBXZqd^U#-tONB zi?$pYB&8LY#tv;a`>(Xud(xWqTXx^E+w$mXzD~Yg|pwtKn2>KYy#`eoP79^A*DV_LmCw0b`Irz(Cbm z*qsFV1roAz9mvgh!|9T6&z=ueRUykVR8=ifEwU_lo(Ida2sQh{WE2qKXFyPZ8GgP3 zEG7yZqk)17*~uV1*MZA-3mRO{$g7%Xvxi!FDmOOV?_6wHP;%wcFhcox?Zj5hul~COjx`A`~9aoS1A>92YmO zUw&Y`ZwQk$phc~vGnVeddrJ)Q1_~0La{I0Ybxp>iz<2lWjP3*j|cdPQV zmaW*+Lnz_zdaY&Ejo!3-=&G%(?8z2IR&my?5ckmHzA|jt)=g(_wOliyRpX8=>+gHk zHg}x5R^!sm+&Y|0DV!heDH9R2qC%+>2(}sk0GR~}lCNjr(v3Sfmr{t_{6b{qWFxoG z29KmbArur{gQ^igV~f)QJxCt+5Fbn{U>OP=&48x?foBomV?~LeVEFr5QN4mM%9ad9 z#h4I81eyR!N1ju|xtsTJIrV=30=pb+fMly08?>)c?W%v8!t|c9X8nq7H#!e(Uvc?@ zcRKd{?X&OqoozX2`nIhG+J+fJx_9c)zQRLm)ojqRv%AlyR-Qee@$fhLG+FSt_E&5< z)m6Gm236I;87>+n{%Gmu@q)qNsZ*`OmiqA_DbF&0X0Qb!(cm9q&G`MZ zS?ew>@#s35RW85d_u%OM#)8e~((^0(`vhYDg)3d&z~ceZt4)n{Kc7rZ9RKCdv!)Gd zI<|zVV@$g@*EDba?$?Wc`Kb4h|L-YC!#;CXoH~wMQV zF53CL`uK6ntwuW!9_hJYdiUZJaNdvShD`c!pdJFmZ)Ff&*C87<5KRX|0G{H&Qyf@O&{Z9}s)03{p{OcU z0;rk>m(vbicEjJth|r)w)UFbSCUvVLu|_1U9B?ngjsvI9x4oI;s%#7hv%S$ae!&wD zhRgS3dk>p?K`~L{+>b{#Xj>uV5CBa3cGr8KE;;jIu%E0fn$S0)X^qh22X!Va-u~hI z)k*J_2=_rjmJ=_xkNaZosBVLvs8qRftLo0phhLjAvh&#FR2!PUGVemo>cJ=XE*sJ3 z|672xe`V6VBl)Pad4AuTwaZ3Qqds1e*M!groX?a47#Ph!1NpVf*g0ZM1F>-a5v^UFz` zyPAfy`&rP925_PPo?*Z-1S|-MTC}ls&;V%AG@$DMG#wPhfT3tG6azx2B0W2+J*;;J z9%i}J2f)#xLx)Cm5TXIhgSK^0gn%M?5zsgmI?cf?Yw*Ylbj1ytNC@>ep-$y8=+LA# zn$(GfsB5@+y`H% zJJ&TTyyV4pb*ron@}Y3@E`!ZG4`9=dLrBYZfEBC|1OY5GFchE?{mDG6&O#$PbcO<< zD5$yu5WNUcGy_!y7=|fIO{x`vh58jFgb>ga2US-$&ETBZ>Ha8 zKL2j-!gc$v4)jP2OtKRl8`oXFVB){zl6|KxRd{9UPZw+%1Y=&WI^%9$cI>x%Q#$XR z^Ln`kmEuwWVBFVxK3lW;(CDe78@|%3RpPqGjrrY=zyIW;cU~TseCZr%HfqD^3K9Mn z_AejR>;D^oyf9+Us*8v7D{f!iw`yoaB)(p{;{6_7U-~#Y)T;fR{a(F#+f=SxsYj^O zwu8wDN0M)~kB=#Tq)aBzEM zP=tcfXoRM##d6CZ6`rEt(KHY+U^oFZR4AT85ZM6+3M$l!$DodhXj?lT9v84_-<7tP zZeFfiw`%mJmJO;t)@N<=!E5y+BLlBgj`Yj@mz~EYc7A8}{cBmOZ?{^dHZ1?7cb69i zesT3qT4C8++uou8V9EBweJ0O6@)cWP!@$m=@4r80@E-=Tz5UVh&)y#1XY`GXG_>gc z)wxP_{mvbjH|q8Od4Mz>I&ayr3k7wy&+ipqzj7q??nm=K>EHYHcVohQw14-kpe{(ZE#)JK|=>k0hF$RK!g4i zJ%_4G;CUXJqJkm>B4>aksZbRi7K5-u6q=;pspS*rFR8U}`Q#5n}=%7KtD=Sq0BMGerZ zfS>oCY6`G~)~m>{JK*c@3mRs)6&Zv8MAty+3MfhkO;aEgplAU7 zyL&wzVR2X==qdnJ2Sw4)i4L76AS{6l1sbhE(-_Dq2Z}a=7p>q$GYAbxL zPK2guaJp<@84A20f)EN6o;-DmMnE$ZD5~fih^|2g1x=?QtAM~*V6d{do1Ke&2UD?Q z-+4gL(V|uDo>j}ozp#J*we!a=U9J@vR^qI`fqyKydgZM-TeqLes2}NXz>@c0trZz; z&OLPYR@vq2507YGzx2k)ajxEclR&<$j>*jT8@wD~vGnhzNsnDZyzW&MY z^_EoqWb(2ty=N^sGZ1YD2W+g?V8fNL(|ED zeg@^=35=ij9Zg(&B)RVk4eI>RsczL>M^2_-{Is92bn_Kt$~ue|8WvW7$6Wy0Xah$C za5MoA9W*pR*P!YIpjgl>50EDlKAvXab~+)N3^183aLY0XO+zpm;g&oglm#AHg-3S7 zEj!@!*x_)yAZrvr8$q)=+#Ut0RzwfX79(gDaM|rJ@FMi5Z~!zXg6IUgrh*|lSegP) zQJ`snp$H&kLv_00V=x0o3bzY&Y)eYR$-`F>9c;oYZR6T-hM+bZHtr<__FTlpluZ47 zA9u4f-zyg`wfOX%o~>Hcia1^*&*e8=zw^+`jb4bWwSMQ-@n^54`cy1YGG)P(*7bvZ zo-J2bfUlsI3Jcr+#kyVUYi+AEEEyK!H)+<^(v&C{HmY7W`G1DRTD)OT%c0YEE}Ar; zQPhNiEin1(om1*0L~dzOq1^F*7ckON?u#q8pBft%U-CrjdePhOpKpR0>YF44xCg zvothGg6wf0j4&F~Yt@QBUaNNL;R@%wSYEAQb|X z3Awopnl=c;>~~&8sIP#{`%)U8xOB5sw~lqESBwlQ_-#MeZxwK*qyLr7Wz5Xo^S|DI za#*aN0oU){N1$j`7ES1w&@7?+pWfKpFJ4VJdOWSo#9l8>`0$JEn6PwT>ca6a4jJ6J z$+rJ`L*b^Q=POVA^vL8MFIA0tZ_taFv+(EPag|G_{yV|3bj!^ix9;DsJfdHdxBUej z3)Wr4>~9Xir78$1OW@2W5ZE9PO@-=o!oZn}HlFAKOE|C;1)TyURfVb+?E!)1VBk1N z+S5X!mjj*sdCEg8X$=<=zy#^!H6s< zAqbM{L`YeJLzfCstINk2)2BH`_G-AdV(oHRw)OxM8xnM;f4fTGKIrGS-~fOeyE{yE zkQ1E(->Kp!D;COGrwomGn zH*IR&q|U*8XRdK-d)hsDPq4u=P#k%KHtAcR2RX;4IissK8;B7+`9LHl)@ zSegP)Q-CT%lRO}z;mHFa96&Kp0k~a-$HRjR>AgB7E+5?`VauQSj)9YZczbiwsdh$x z{{}9P6C8NZ;6c&qlPkJiU_}EcPJpbFBK8mf{j2Ok>jX3uupB@r2GXyVd!85IaVg*h z0WtuGy%1F*%=m0%2UM#RhAjt^8|=L9?D6@4rb8dsZT!nK9h_=2-E(jl(xJ|@DZ^iU zqO<8oOLmN(^X>VMRMm#>=Jl-BtVZl3VEShJ>6aWt@_nso-LEf3WBZaD zmQNhm<%!?*>4qiW?7lqE01@x@XfSBl>vg{PqjzU5-!i&l<+JE%#0LQYQPWCu;EAz!^Lz}&Q z`mSfvn-dpd%dX>K3|4@lz;P5PT`v+OXv(X;JWd_Hek@eg4vOU=s|*xP0T=~}EJO4O zfiv&U!DiK?c76L%Pp>AsRbu61*#(8n(W4i`EWRZ|-9!OP2x#a42#BT^84+~?p8$X4 z+ihSO&b!G}Re;t(vlKvR&=iZ)r%vP4xyvY1xzeN_FNW6sZcqB1>(`tmtHlRicu=in z{fb*cA_6Z@8qoTQ#^2%7H!a<<_sr{%ZR~`x?fVYtoUrUk@7JqV_UJcjk_U!Xs@Sk? z9p92mmh5+@+fuEq>Qy`PUjvZUTTj&cX#Uan-W*WB`b$l!WARt}r@Ypq(}(^>M*rKj zWnUys4haoT?cb^5;*Gm*V#uWVNWJfZZ*Vjeoq|qOh#Uji?SfG>J=GHaR3VPz;CAMM z<9Vo>2v!s!qW~;N!N8Y5jxFbSV#Toi-_08M-t+jr=5@-Sbh~wD(y=pap+604Q!vV@>#}Is#NfS zuQnd@?c1(gZJi)|!K!niktHqXDwPRO|BnaAxs>bHfirf0S+iV3?U@rhV$Rwl4w42?tPGlwK&cdLIi90U5+Zi5o7w-} z=Q+oX6JpOZ21C}i9f#w6e0)lH6b^B-v4g%`teWIE)Aaa&5G3r?)UT+WlR{;^|k)( zYJB^wWAd|#gk{OS?|(U(I&wg(7mp|3EAd@YN^Ik5fg4K%_)GuM02wr4-HhA!n87 zX1!ma_>jirW==jcd*Q*Uy}H$!92>=FjU2xTOEw;aZ=f%9oq@=*pos>Pz(bMUP!$zM zixq_q2RPO{MIOWOkURj#@!$=B%Vmd|^Mhu$@2OWS=D@lcJ>SFMQ0i5RyehK%-2-Q? zgo`FiDW``(5KSON1w#?A90x^`z|h{MK683JFqzGeTyD@5U=j^QZZ2s*KQX^rro!FF?>M6>kF2jj!Ld!}r{0Bg_v+rd>nhbIvFuNO)b>k#zqoMzmc2@c))kh7 z2b&9vDc0TefaNQXO&!s{!Q0SWAM||tdz?l5SmURUGqLeaxGG=>6{9>U|PmVgGOkHcKqOgQ7(D<&@iv&ZMN(*mmq}rv~*B zmiZf~hZyGp@2y*X;mX|xGp4-Op=Cl?vHj%K#nkXMKb;vjZB*;gsaXzmd-p5c%LEiv zf+X0W*lCyz96YiFqsaiBX5mp37(^o|5I7tKU|H{kSeoacX)drF1&Xjx9FBbn6+(}$ z`Ml5H3XWn;VTG_O!GR?%Zr{1Dw87#N<&kCZJPTElVK5k>>fX7yIqZcHI1xNA!YzBi z@;n5AgCxl?hz96Tp>Z7iL=iWx!@8V6zv;UY&h?meL{fIbT%yHU)M&^#-NOo zr_OZ#U|5%)-J8b${48S_@yWK0yAGVHRxzT~^}018kNx&pL}bX}l`9T;`n_JO$$h)W zZ|S#3V_vLVd3{Kr@wwb7`P|gJjRvn;arbUU&*K{gVe`(+E-Wu8-CnG?=~?Qo*nPh1 z+jGDF&g0@xDVV=8WAsZc>eVcJ0|3T+o-}{Rt`A+<7a)|!oRtE`O}resq?>?%$UrLSeAt%sbB~T;-y}Mqf}@*3x!ai z7!IH{=$Z;>Iv9$9M^|Cx1?Z{*no;4DJ@EAj#NrQ!p+QLp-u+_Fj84t#&8=BB^zL8j z|BJN;dJbN4XhqwK0f#ot8_?i!@2uH*p}i^#T-z5*tWW5?1mWQ!EB7saz1M#X1zEIq zTkG}fFLqfl>Gg0EPq6FKnbc985*Ivc{i-n~F4n9ZyYbkmD_yT2l zZfoKj! zc479(Iu-nn{4~4&oA^H{HR1wqhlTl^-Fx6tj6z#tX%--w9jwknB^n3=XcWLP0#t>7 zq6rA2fg(?y106I7Riq84pn)O;G>W1iDGK000EPl#ICx~hYz%u8IkBgc*+u2LoRY*8^``P#G2$e4fw{wDF6 z_r;hgo4z}D{d(+M!+MVG&>(96lirO8F&tjD;f&DZ<%Ih7yZ8K-Y}+6GV#62K2U|I> zu3hjtyZfv~JKoH5F-<;vrzJKWz1|`|Jn(3AOzFSup}T3pkOr@|s=YENGZp2km(E!G zX`hGkFs)ekiJ*lUf)lnk)uKlpv} z=UXSg`f~Ldyugg_^u|i$7rG!?{Gp>LTvZS`5TZktWbhmh5DJ9yPR4R8b{GT;RGBYg zO*k2ZRX`CM_5$^AV$~A+f1ESqKLQ*NN=&%b9#=U&>G08W(Yg6*d5Q)oR)Ntd!sApy zL4-~LG_S%-J0d8;f}$x%iVF-&f#U>dx(=G*z=;MF=Be0u;uKzau`&{>m#;f}>5-|8 z>y&z82E~(C3c`C%UAeDpoC$N@99}!X!aPLgwj^DwKY#tU_is8$SVC+_u??+S>97kc zHXj_GP_KNw2$sXA-yI9DS2=oXbeK>6|A~;^a`?I>sX5mNURgaFAFsYRu5tCSb+zNe zQh)o-<+Kb->h1d#N=3(9jF0g7%a^)*wB*3}x^*J9)UFbCw%yRBxOP(kYmp(@i}-0l zU_mp0BuU^H9u#P3vIfdaPYaEqpt^K$EDO;?hlIC0|TU@bR-c!-KdRv7wgp zWlBbzDi>e=lr_kj+pvuJsmaV%{CKTviEt_{p-R}<-s4u__&GO1ONg+`d9Yf7pzAsm zMS>(LU>OE1%fjVyK@fze#%w>e=tc-e0-CbJE;(T00+D~;akyT!sG}QZ_Z#;-HuCxF z>1=9hRzszs$Q{AB2$kz=Q-85wk_=;PM_tOlL9k)2mq zGJ$&e&H$#H5Mu@pmb!Yy;s}H8|##{Zt2zW zg+~mG4a>w`Og@;@==>db;HRTn=X4mky4eq#qpEjmn{fKyNz;Q#8@`GYWZ z<(?^h>s9ps1A zKPTMfVj75orRe0<9H%Q+h&r2?n6P(hw`!}N2MFtRowo8$f%-aUHb4}46z1C?3Kr=vk)MHg`ZdSMUUl%%;(gQF)+qBu zLanHWQofdHIYZ9TMa~CyI5Kk~#sr{xT;!p|N?{vbtP=Z8l?qYMbaU3!WqT&P)3?#& zHY2`-BR6mD;WgvC{o7=a`CG2EUHW5E|1Uo7<(GRex0Ef%8Q830{K?0?TPnKTfuvpg zURT^U`jw6i(X(p{lnn8Qq}fp5x`W&KeDIlDX=P7cyIcQfGh+iQd%zJ3XjTP90A1C=a{@F~121ymc@A#L0oqF*%fNez ztnIoLjzaBdjmlvsepxu!YjEs6n;AN4{3i?YZN|YYy?*w&8@xW*h!Ll55SqH}o zP-PhmO~5im$`aKhz{NOF!rzQ-JNKhf*@_t4xk}=k?~dTbx(~Y;xjZ(hz;QdKX|qb- zjUL?b%_U>n_3hTI%2)L&#T*R@_H{k$xNhFL9VThgxH@$!j-3A0E@MDg)XjvlfhqqM z3R2~j+5PV2yt4aJZg-YBO58B5PjMo*4;F0wXzH+5?J1Og>d<8d27!l5Du7ON5Ex$&RRT}jpt%`PK7q(8$U9xLjPLPX3x;}~4s-9t z+|U7UFZkNUbIpz5o|rf;+d(Cde7VABQwO$uE|lbjK6Adla9^%uHnG)3Js+BE0!;`+ zo`pw|p)m|7j)u!^gV`uRS9tF_Bn&u;Kv5KE91oA`L4Z-g>bc`lHB_M9U$Fb54~I4N z+L<%?YDQ4iav={4csmf5y%1D?glE^KR$Aoq~M1<#6-0Kb(7Y+00ji zuBY3o2(0RRC)KG{qwJZhx9?XveEMvB+O^v_el{2Tl8$5cxE>wbC&nMBSv@AX z%Zt@kztXf?vAgr)byxaSitsxW5*wI4;+;82xm^HX|1dBh;AjF_m7!DQsaZvy%0ej= z7`VZ*GF&bN7GoeJMFK->&{Y+zPYF14?~R#BN>cRgS!PA>D}|_S{1EmtXm|L!;Pz zk9+s*?b|`w1vw>~B*q?@vG@Q^U&w%eP$V=(hrO@>iYmcq61|S)005Eaz_2LaYO0_cuSimS^(INXg%JJLZ z1j557B&g=X)%!<|{`7~T&x49=Up8`Bl_6!3+f|Gf&?vEL+^X-B|8(NHKLwBtdymyT zd)Zle^nhA8b|I^D$zb!J@|v75rgwLPSy70AhC`A5a6(r8l05N^o>eCwy?PU0t=|sO zF9edJL6u#wnoS^tz%40YdCuzvlvF!(BETR9BR9_mS#!W-=Ao)8awMuRCWGjbhnS=|r%oI35hTCI?0>1j7LSyH2PodHX8fJUHb3Jhi=bj`c@Wf%b-w;Q4$faNHtssc%oKruzR zh?37;$Ea5tA}!as;OxyC@s(pE9((A{`1;V;v9q_W-EuUwTaH~et4;~6602?bYR1qi zT@y=hiwzNX&-*cX3{+N4tR8uw*mxKpapAk&DZM*4iEXiE&&}Yo={LDPt?O=l?i6I( zk(+TRE@amnJ)joSZn|LfVQhb8!g@7nux`-H4d3O!V$qtjZ-4v4)|ZMk57~C+mMy1J zm&8)rXMKAN=dNagVrWpb2CG>FAsXB+39_ccY&1htyw5qu5HmCoFa`yL@qhsfrI754 z4YqzU_v2oJy>0(oYA)Y@!U%_%}=dw;b>?)1BK$CyKE>C z;$L&sjx)W6e7a`L^PnW_KI`>fjcOss1)c@Z`UA2RL@|J-1jw5A6hu=Ln2l!0nhv*1 z0wG0fNzoc8hQ`^eS@?A6FL;OVY4fhFkT^$P$m!_0H|3m`tD1OD{h&yaqowZtg%7U?%c3r?67(`dp5iB&OYT+69Lr3xe+Rht%VNOahMrk0%eJ z$rn892YW#V{QZNf|GeXRhrW})@>=_|>(c#_*}1L~Zk0gNWl)?3j@2P>EEJFT^GpAl zU|Z7(M56^Xp^Mg1V?b*(0s}&^c=KsoPRm4_`qjqoIdt+Ndqqf8rPLf72`?EMhQVE{ z&f4_(h!UTS={=@vms&G_*m+0`IZaZduclsgkh9)&)*6cZw(yMjD z@+jqNs=VTtW4)d$KyKaF>Fo#4H-Eizedq-mGIeLkxbT3--r=!&Z}?XfVUPNfFf&Pcnf&O1jvBE89;%Bq^K|$ zOmMlK5C!j@?F^g~B1=FNBkXxJN{0D-yLj<%ui2{PTMlu|TOZH6?clnx79K>B0JjWq zF32hi0~-lSu|L96{az+vSON=WhUBy(UzK4rmxLgBz;R0A#$)!*L*AP9mnq4SGiiQr zy}4@k&D(k}(Ki4p>wrpUK-0286B#^f@LmZbFmSn@Fc?gb6crR$2%G_s0iH2I(=_C$ z6s9lQhPv@)NN!e4x||VLtO1P-PV3k(Y5|>{jb1NTnOrK`paDRu_7%U54k_bVyzSs8 z58iEBJu10Ll>p~J7{BPG&sOezNSjq9Dl|J+cZJyUoEZ2@V{AWmvH5eAL00{AtlicV zm)=_SK@V(8I@O_4`RGGYCHx+-Xf_(M=<;V*tW^P{n4rT2Fn~%Pr0CJ1>nd25g{nUbg-{?G zP4FlhKy(N!K|p!)umlug zi`2PvQ37j10UD)%Fw`HacZd@m!VQLD29iD(L$5b3!^Ti+z5TSNzFfX zh4O)mnL#hVxBN$qxLfjmR!A-iW=a83Y1kBB$PB{1 z)d7xrvYkZLi(+bYT?L>6G*z^g42rDyx(I{Wh8tHUR4E&Z#xK@sv*w3guBHib#j#&AL^;D-~?c0f2JhWwu3|#4ELGlsxm> zaR|CO{q*JJeJxv7?l$Y|gEn8*|8_!^(3IywK~`-)_IlUG6+nw3?&rCp8di#a#DD7b zH^2Vj#M#2Q`Y~k?S*i@OJQC(?{PC0P*Bwt)HSIo{Qng&T;keNN%wG93SXu%H_BlA? z1FXP9mSxZ=x>A4w1COKuvMup8l+Lww}Kg-R-Rf>jQPB0VSFt73vTKCu|ahARo)RZcReQ z2B_{|be4im768J*!ckB>`G81Z(^V+44nKph*W;&H0!A}{=L_-K^1Uz`fcWs>qkE2D zsr=xb@=<>Fms(d?vwrjbht#-lc4;`94vWD0ZHJ3ls%jN|GKLPU`$%rBTGc|*(lYIF z9BafYjVs1|xhd(H)b>x^f(Or}N1VKoS+i&JinyAdfxwXPM?xomIdreiH%Csr)V^gH z)_m3;Yv&I_r#hj?%X8t%y{ifTvIArVZAv;16r*p;roeQ#K|T4Nke4O727GT|X5!<=r>BVKFrOs+qEfh99i zQ?t;&O?8}2&#rvpLVB>*09m`^+^bPxK2de6mBEp7SBBTER_2iuK40!ko*ohqgbzBu zh>}Jt${9t}4G)1?^u^L2&wteR?XQo-b)DgE_r~h1mxq11Kj~;zvB`hi@kH;HPiC`c{wT6%GPG&-S&FW(@B#j(F}JW@!zQOaYV$s;WZQ+%TI& zNZ!lvU>LyTa)LDmL$LB#zWM-YUPsx;*i+k2TrNIbt3`%nv~8ZSVbQL$lW*j?in)?H zrNUCng!n#_=X0a#Rn{FpeR)u=sxb%)u|}=hbnG>+0kZXIN~?~wBB1dmxMj^+CX9b* zFgLEJh+B3YZq%t>9OBD_0y=?40f*B(aBB>X98XK!f8a`;jBHsnnS4A6H7cg`?9sN^ zckAHE%N<{CUiqgLKOe>UTlw%aF|bKGC~#m|?@uU$!2qHv;20JThXb;z!D2GNo^uD0 ze*CxdCv_kAJT_`#_sL&fxv$0xMr#72%aGhI5YF5^Sv%<=w)v&nN$(G9 zJ=L9`dYBWf&?z&Fln7B*Kr}aWf$|>U3;_ieHc5w{iNX0>x%g)55xm@@(hmnuUF!JT zcL%=Kblm;B$vBd9uIy?7(TchwI`5BXk|jbJ=ZN%K`$0Wa5&!IqJ z_}iJ;QN3EWz`=93YF3DjHvRscxtmhwm`nl4w%M@%@@>?v7=j~LZ)5X?tEgGpC#6yK zxbMrxl{^&|?0+NBjG++sVt^ks*LH0OcrU`WB?*)iRTZ=Sb z8bPp?e7j_3@4i(c1Bzv-RojjwjGy_-rzS&*Iy`a1&U0XS6&9x*u6*I(I|JI!{v&Wa zDE-?f?9z3e{%G!+_Y8hfi7pQfjmR*WStycsY_P8D&~*iVCIg&>cKG`G;nMXStlxhW zZEDwCy<+>}Hyc!mob@l8#>3#)o0MMp$k~)ON3W*0IdL_ue!fcv!!WQ|OkhME+fQEW z`CEW=OpM<*ZN=92TD;Z@C4p$%qzV654 zZ*DxBG3?r<>)}5fy#qcV01*ZbJ9eJwS-Wi0$GXB_znjJJtjklvm&e+DCqZ-;ipLGs zXofpC7lPFcRq=jzu`~lkmS8qn;8Zl2%m%0)7klEuU30C9;a*XXwVQTT-+NVkG18)y zB(q8VUVUl#nC_K-c$R(!cC5355;(j+>j%-~Upj%fZO~md zfDya{2zZEQ0%xWRLJ1m*gN9BdtlNJc-Cn2-O;aCH1^#mCR-LW8&h$T?lJ?@Y3|pkf zt$@}EA_9ykSCT`;G9{7NAQ4+O@5G^V*W3TTJ|`GF4hd*dry`CVKUeoJ*+C9mIu|*6 z)!osb4`~#b;>?6uH+)t;Ht3N&L;hx?{zA<%2M4sR_F1XmfHR8I6_A~o8=K)KICw3m z@v5J;zjg9_ZuKBP|K!L}b1{4MebV(_bt?NUxi1A^{(^77`vgLxIA|UjW+M+pR-sXR z@kK9xRNTY`vuFe>5fGIDI2JC&1C9km3Q*J>@CFNXl>w0oVe~cOdN!%F_t4o&HL8Sc ziwN@n%b~3m%f;O1DEa=;1w9!+44`N*W86rckI;C>bEF`DSX*S87Cs6bBS7Sa+=1+l!KBhxjm+WyT0a z)nU|SFoZ#Y&7M4@N3(?!`_)3~sULqyDwKy;yO11XJj|m(Q9u9Zl=}+Su6-#f;p&aXYp~TpWJfx)-uW zLsc~pT?Io^kY)L?MzhBi6JvzSDWOnPKp6mN4)}^J7+Qo~5y6UK$jN1(GXzEx4^Os= z5RpQGGr!${cQ!3Qcp*E;n-lPzUX3>l>(*?ptH61bu>`_RvS5%T_|ieJ>$YMG`R@z) zHJ8*=Pgqukvp|E1Rbk{DP-O!ojRI>_A!#&1O|I{kd^oCarPATWI;H8~9PB*ttL@Wb z{Fur#O~dWZheiXM!2(IjKRC2Y{RI>HG+y~vzPDG$y8AwyGV}x4mYyW2cIbQnRE2_% zz<_}p3M0c#G|&_W#r|}yc~JtoqBW-}07QeP=}>eA8-Lk@_$u*Pg&Da4zpc};S)B!q z>jYgK)ve9@J3oG<)VfawwwOBV)lTkg7jE8`L39P24#ZWg1cQ;qk@M*fQIWWk*5k=n z?z~pHQh5Yhskl8yE;sqpTC6?C?li6$?+1g0L+(8_q_Ay@J3FlfS8%Z^+u z@bd;F<9avVIHpH~na+azqY5#A6?8zcL*)I6!SLYkxA7j&0uWlTz+l#(xt*Xj4hAC) z6$B2O8-5ngh85HLcCQxwuROG$t~%7=&?E(lB0=ymf(RTuvI1Z3>CTv{PM}kOuB#9k z1{BdjbPAl&7r*Q|1{pw9fd9p$(>IIVPny(@KDTE{--_?|X+Eu1jmR_rxSO3Dt7<;j zzV8}9bD-z~SPeXQ0l0D3Rr$AlmM;}xcX;4SF*It%`(e+qJB|M|KvM2_%Dz}P2KO>O z2r!3b{ME_)sCV6Qw>G>(EgRSIm0}fK%BA}CtCrrr|9mR$L;{hlWB$+;QIbAQHjH_t_Dsd09e49)cvugJLw$&1{1zk+SgfZ~5UuEP zP0&0v$_xcMXd)vf(70mplmP>NOF3qIwfChDm+zWXA~3Y7AlslB{2>Se+-?b)D#L0N zar*4J>PIhUg?KCb^ln~d-}|FpnQ9fBdpxc}aJ&UHV}Z?P1Be6)8VLP#PlDoLF@^@s z6zu^35R86E&v9Z;(ls=$Rc`&I)Qmrr6}Db0tTXA$AJ?1xEZBZH8FSYk!>OAxW`4Z` zPDc)moaqtIb6=Ao`(9QqUaT8~lslfXe+nR*4_&Qjv&q&M5=tZa@~vjkrTrdJt8LtW zzv*9{Tu-6P6l4j&*PAW^j1jU55KSq%qFB>F(<}%fV4vZ7G+m$o-2($rVWdRplo_08 zg)8q?()+_&PwU&c!9D<3^6u*&cX%QECs(2SBqM}Dv@ig1A}}xz_Z`|xLneOy<-rT- zLEeJoy#bA<6y(@Wdf)@WNFK{7{uU%p)xwcND5@2-!32fzpfF!TxF7%R>4_(orQ#_z(FhPRdskZJs>XQw7FXqO03zF__ zY99Vzc$=vP%C<`-9Ar&|zrh!r;sM8KaOzJN?^v1wAp|tdLen%5qJd}%WEB8o#P+>s z5D{*|y{z2WKWgLs8Q*Qp%64*b5uQ^eOK^9`FZdaq-dTfh_S}Ghkq#R_H^%SL>5fn)e$%YuA#s zJNx|EN!@uivqpSO@DaBn<5s2}27>{bB7tLz()Y+ZfkFUH)4)B0idUsnP!t7@;=mAq zAqpIMw+_EIs{6Dd?P@=CnaZ;FU;nUu_3)pi0{cNp^@Btx(ULf@zvA=CvPC5nb1xi9&MVVKnh@N(x-ILX-(**36we zVpz?x|I)xsT)L~r>~;I!3=Iyd?6wzx;&^yGE{L2CRUt4MtYB#hw5r1D7XlX_Ua$9? zpDo{Y{7z|aLDH*frF}Ce4SUO(pL&!iZg3P0{#VLD*k|}Ys%Whh0?0Z6!!Y1j2CD3V z!C=6VGuKh5D5y{-=E&~7SE~NLeuv@n_g}euKcq|v)7|Y~zEyMP*e=cDBYZL_sSxG; zxwJQWcbxK4h)+6oGx3=La`fVzx^=3S0?~9R(xY*$ z7p~l`PXrb<66)^wvlDvm+O5PIl}hbBaN!azTs#kf0cc7G_v=XliUlYZ42rH=eyXbi zQQ`CuIAs=sL4Z_nHEHsgmnRPHRPV84TmEs+DNXBz?~z^ZgHUydA`4yD!LdeU+xa%b zKUloz(D}RouRzkH!IpRXHT{rw+xDqyQ9Q&0mg@JKtfv*p1Mq?d)on+)64n(KRjEJfX1{4SwfGXk~IGO@Y z=@1wo)2`sq*>qHokJ^0WPR2vB#Mn<)&Hv?mc4C=OL+--K1M2}mVzuZiCs&ONT|K>f z>0|3gmzvn;k25%G8exd0qfXUQIC}9;-Dd{K^}BhctCx>NMrJlx67Wda-iZ^(nwO~* ze79zd`A^^Zke}%ciU^ZS+4bxH1A?@LG4|GO=N8=Fe8;HyTt#khmmaI5* zF~=*AjO)76HW+;ksP*v4O*s5n`u?z+dwgQ4cU+$;bQwI#MR4TA|QpV5uzRzbr zoPE2LkD)T-u|YKkK~WU&j1Cz6;B+~l(SYKyLl8K~j0lzn7{`718bxGk=9Z)1n>l;` zxtu6(LDI2aO!DOS`cKrL9CoNIEY@IX&ZnobqBIo@&Hj4#2n$J8p=vT%LO?VXZi>d% z{TC1wYJyXC`~J3WSVXxSs;*(?m=4WqmG*xq0bRWcrEfe{11gBNjLd9QFCU5Pck@a= z6F`ogOApD4>)3g&Tx?62BiTi2q^I2VFazx08|iGg-#Rb z6pMV#jUW@gUpsSjr&=+7#cb8UPglSF<))j1gDiYy7vZ7OENImUh9*#T8jP-k2MvZ0 z=rjin6a-3vuBjlRADog7Uq(lUA+YU$cNTwn;9P#Bw;<`!u>8SAZ@)6c$8~+1CflJH zLSRrNK$jsgfXuMaH3mFk!00+aD^NKe8l{8M6;QeYp5vf{E!qy%%~P zzHqxB+9c(WO@i-*X0pnB-C zd-k1#uH_+7%*hSbPF+ZrOFFqQO5nOx3a>N(4qW0EK!U3qrxaWo{i2O7gbQdRIQ zho^~QEYHE?bfI-ZC9p=eLwd&jeeux|Hvquj*I%z#zQhyrT%EWsM_#|@jED*r9!*(F zJXsfSWS*^DA-wB~jmd#kO8afCRzC996Di16Fmyl1Oa zDLNE~&tHerqv2U1W{FcRN=j`tL1lE%G{EYBrcs~`RxnP-o-zG9&F@}9r4pqpn6 z9}yR2xgxnuCyAiLsb+x?6L`^t{CuX}pb5*owv!C%SZ&|5H#&~9<>Z`{Gy$AQper^Q zd4G5u3RsqgXyT#KI&_T&&k9i8g$N12nnfSJ)W1$_OtH4=_3__LShM|d585I%;fSBN zhdy*WVDvL0kK)=68^3J9nVWWhZ`W`OWSpC_B?XE`!ANtUJrYbN11Nz5 zXD~w7p3Y*jG=)678;395M77c-apQhLrN_PZ&GyqTwH?0v$fkqWi-qm?K3V@s`=PUL z_xWJnh4ybOIQaWIrK7`?oC14zu&)(i0al#3dbj#hS*(=1`DMzK3;-nMv03%@AHLMN zRE&Sd*E4!_+4SX*20wh(E%ei2^}D>*IAU4tDD$}xBj<5BHRkli%*frR?mrZOuh60x zVB&H7;%%^^>6v5d;o>-38KV7iWSZD9{`VcqSN% z#DnDw&NxZNx` zlL1bKZ{2&??Bz$Uq=tDdlhlbyo;14qM1z)ll%q8WMnBjj3LZ@Xhzwo!fTf1zG1 zBfom&s&R^DK*=h~Mg}6~Zho1k0_4Ws{L+=mgrLywhG-BTNz8EO*!kG#5<$gsNtLoC zvwObOXv6#uUhltq*~ltur}v7SF|GSX|B21$~jX&P9T zExx`XBO@cUn7<#lX7bvdX+0Pd*M!qupfnyZdY_iZ!{$Mgc<62#qFF(7soN*&P$6hwnDlE+?kdT&H2=>>@HJ?`8svA7dgHi}2rway- zg2$Gg^v>{Cra!Ad{;XxoitZySM*3YSxJQAdSr|ks@|{kY1qN=FZ8u=T7t0S`Dewv; zz1vhg{P|m5hADY@$6Z8+qGv-iY5-BdPy{pqSjK?-LSWqZxwBSpIajmS2OHntdGhH%p|LxcMztkXl_n)1p)cd&= z%7^>n{EaNQJqkF62K@|olp9$Zs>Z>six5Qt?!3$U-W%Rw+8^0D{!BS=B{O32&j%k$ z0kdR!??KhVOD>fPv!K!}1hFV12g?|d?cmxBpRj1rp$pkwset>mt#o+S_*X}%g*gW) zPA|GwgRn&#M{&XBal$V+0=y}*$$N9YKe6-Zsi_9hQin(?T&_G2iiWBgU@>~1mdDD4 zz~#w?3dX^1kO8SEk#HXZXmHk72q}|Vrv{)<%^fBO0X7+2LB?50euhTiZ zz*#b`WC>ijkq+(GD>fzN=^?eWEJM{;u;xIx6lc=tVO?eqda170;5dA_Fl59Vv*u0u z@YLj`TaOoebCwM?sI#Uu85sbWZgwOAvydfndf zaC=~(T)Dq(KRh(}#@(!(*8+VEuv)E1yPq5RhXBdFo8?b)4E#c@aJoIdabXtc^8yH? zK>_c=rJGL36a#_PK`0$OMZx3ofE5KOss@^%h|OSW=uqJ1MSug;oZCt7_iR6HROc5q zc{`RJ`)`&W@YZKvrgJ4aGGVAQb>@~2)@{F3vzSech_o&KsL!A>g1jTptvz(vJCOA6P&Mh};T^_mQg)JubwSo#5Qr5-6QSu6j5G~KlORw! z6iEihS>bUpkZjop7f*7P78^Au1RZ(5a{2u&0SEG~xoK zXrMGeVJZ8_ME)e_2}8OC;*tf zao<8paid)MlBWQm_xsu+fMNuwvJTdr zv**2$ou&es0$f6DM9wE4 zcOMtT>A&RDfFkIiWCC3`!q4P}Nb;KXAHQ_P!Hf63l1T=1tdTTv)T(mGzJ>yfv9`GhGxou0%t+nH{PE!`}7UfYZdT|b)!>0`Eb-YtKicB&VCM>x`xW0e%)_=H`byfyK%x86NBp zRn?(^Jh!Z8*V76(i-{{xbOu>D*K6T5L z%vdm`|1h(_{^C-2aAp=fRw?q@mz&R?^YEzHTr z%P&@5)T~CSWB?faTAQ~vE}2;V?asAkJys7ufzdRA@L+$W-OnlchnDntYxebuiU_UL zEFlKxZ>0ZRr$X$B=K+wbw=$zOhU^XYwPMlthoNZz%QB#K02~XVt1$2^WRC)!(4c4< zvg8H>dEfY6Z9g8+shZcS-1$H3ZT-P#KYnQPiKuHdDv%WyDApgkWCL&Tg+gSoyg6#` zt~1e*;lbzQVgfS(Ai9L1pi)fC!OeS*Rx7dK%x_11gnia}zjE@aD-=lqOkDCZhF` zvuQ}Xn{lh}OZAK6^dDkUZ8EV2TSQ2b1fJ&~nSf80?R#6JMTX%djb&AZBb-MDBhsKW z=me^&aw5;Ue2vKJ*`Z#s4}Ol#74Gk6MxjlC)8zpt7@^TRIJGFN1x)}&Q6P#U>~0xm zqXDYRmejf9iyH>LQp;<~F@5==SLd!iGQtoRT1S`jfI8HHYaIq^0R_*YhWBQf&xR3X}7;L zWWqdl$;AHs8dM6){>zl4L-i!yAdYzB~xBu8>m; zJT5mx!RUHe>*I|5XyH$vP?k_AbWy|@tAtoaV?J}H_f)ERbLgIn|9+a*Fx(bSBpb;8IvlSjk9x6l!UixfU)A`Pu&k5BdK__MuvJxo4+HCZsuV#}E`iyP& zLhJNnbU=2L-91_d|2bZk38#H<8vPDxy3`mUk%lymQ zt>*DZb-mN5w`Y7m%k68dqp2?Nv=y>jhU{`eu!Q02J*MxNsms+lGrEq7^Z8fOiJ2oh z&Nr~4XYTq#d~iruW!9bt3EthpMbl>RoDC+Ohs_Cq*O4O|Iu3j53(x!+Lq^nyvF3Qw ze%A)E$FE;)v}W##eZeM!IYCu5KvzK1Cg?H)meQd>h7WH@Z!TH)MU_Y^(sdkuU^*oV&y1HYPnEzM(Hr$ z>{?aIo+}v|f`EXMF#48+LK~n`1O#ev+ipcMnG7tlbDhvB0J;W30hCUGXE}h-U^o^o zj|4&}5ZRg3zHzOey#4T{Kb>y!>5|=VnFIY26?Y~K!~l-9LLzq11{KiFusfYlA%o!! zP@DqHoC%ti58CR}{LPQoeY*4X^7)VBV6Wm-D=GlIq>E;^EK7cN?MG^OFSD1V-SYF$5+bGgwN4K@f29M%KW7W9Kis zmHqGeO>_JMZx28IS}Y$ zg3Ya2{}3P!k7Tx*4Ui-WEXzLR$5188lD&2L*xGx(7+CShS8qh0`u5Gx(`!Zsk00Ey zS3-0Mv>Xo#?_{EcpPW0Sf79u$YL_}%3=m1Nh$4^Nyh8AT0g5bxW{U!qbX5UG09Db! z2?n@59>m6!x;eC4L$Ca+emIa?b@JSm6OBewf~;^5L?5WC6GYC3F1ta~1}Llvejy&% zU4F2;t>8rks?7#}!3vw(2?yuXvd^S%m+wAvqc}YE)p{|<8&(P0Z>Lmf#0*w*LT3cH z6&k_5zQ`<)JM{Zt{)$7FGQ1MpyT2HB^20Y@ALq=M4y%*~g(t9kT;SjVOY&g0Sa9XG z-o4jbA3c(~=krnRKkwPT(uzE{;k37#M|Tv!*Afl43dqC`L1RFv9%!P9J8pBwF>if5 z`_%P9uLbuPo7LJ`SdamM5y4PqXsQmv6a||x91B^N!3zfD<`qH|d3Yqn^t=GVvaBr2 zGOT6;93JWM6y)-)ETahBBbX>Cu)_EZsmZ4;+WTI=DXY({JD37Z;Lx>owQtwX7!dv8 zfR^t*Y>ZO)0Fy7W+;->^z=|wr2S9iogrPwb5i&`1Az=irUTRz?I(++ZmIF4Y5$<3MbA@V7F!<1)7E`N4*@hc0>-nb@mE zg`=O2>o{7o-`~d)9Y%@=4Ij7}1_eq!LVWyj{=QJLY2VKuN%ucWC2?L&?K@%Mco-Uy11_6>%2$m3ti~$OzK!FaHaIjJ;F6aC89`WJV^Ss@p zZRGjsQnHy%QzW#}B#~t{xzVHzvkl{{8put%6bgC1Hedn+G z^1~hj%7yv;D+SP7?dP*Rr!M|}*C2C=sH&VM!A$FL$SP=tg_%(yd6^&FH^73l^t8y` zC(oB|TC>vizuHd4QY9RL0oI)Stb7O{6Rdws;WhKoArm2x^CQlt|@2q z^)NiqL=G-R(Kv?i8e?!Px(3E*wAc*1;Pf~grrMQDraq*~Wf<+(Jr6=iWnKRl_=*9d zswzte0mpGrRTV7DKElAR+kd|0*WV^hKA&%0(4CWXcay_d_mpnQ5oJWTJn|bDt+_#xGlFkDik6{BxiE`?;1mfVkr7o-r)5@sW6B!G+;_W-Diax8%pOl4 z)oQVu5OL+U)36xKRUd@2>Z%Nt5P{{WkP|8Skt3(A*kz}EpivS`JYb*=pcM|1(F0v$!BHYu zT?ggK*1niEu6mPd0q1_hVkxSs7I6VZAY>m)K_2+N=pF?$OFwkB9J!VjJ8}A|^=>uH zWcG;y%@=}W?bxv6%E-0fAAg(GXhowzn*&S*kaO{N?@s-zl>OJq`B(~~0fZ)?X$GpI zKxI?}`&$dVvbo%~^BDzth{UQe>wvd}nByo&5(R}ZfH#_<&^k<^V|( zLFoz@ii4_Y&?Fj!V&DNl6a};_Gj9E14H!++ny%_#f6Y(wSPJsA;&ic=%skZu6NLg< zhR5N-ZJP?sk<*lAWv~Vo1u_NbBH+nH_b%?TRe)z=EeIiCSO%&pgXL(iuVqnHl?BT` zQ&NPd6{T30$M2*T)LAFWwp@(ZlVQ7+JsVN!j-G8767ZXCODH=)(w zg^T7*er-hQ64v6mobzU<&s4&)tGAu(2CKCyMHomfHw>beA-e(xSD_n$K><15&UIeC z&5vRjXu1NLB1M^Po}na^wx+F`(We~4TQptc7>`>u5n6>?c3CLJqsba2>NLwxGz*W* zW@=NT#Gz*v;D3W6{nyO}o~EJe52sd-3JJJ4vQLXCGR24<&1te1g!^;w^OzaEK$e`M zTam3sp8%U%(@c^x#}pkHa_$ijFidea4^7uW0ibjSgy`US3Yx~i>D0{LOmew!i)`g( z8==k68SmpID6pVu8oKNP2Niw>0lK0fFTW6ef#Jx?DL6OyKX67&sm7U+pAvyFrtdE?YEZ^nk>8pTA5=UTs?TG$F4Jdi&FLvpohn(M+4*)bfBr z78bJ^Y!FlN;EkM$LneL4?p!qBp?mliyw!e&Nu(T$emFWLG(5VZ!JYw+w-cmjAe!rV zr3xi4c-vI!?d&L)=RhbG&~@l4^^lsCqA0K|3r!=%`}IMoTqf$bEbO0RXLVg?Xqtok ztHAo(w%OnCVJbyYP!t75!3fpke2953T|!VM4QVm)FRKf69UR9M%Okp?gQX}C0?;%- zpn_$1(%2*S+4wYCL19^RzUGi3Z*p-6r(_<6aX}M+6YyV5E&7I^n0l%`*m%& zYR1Smivb`bH#21O@f$qL^9crC14mdeEDcR{fnf~Db|~$Jy}w||mmd!6Qzzah|F4dz zTeEVf3F$ocz0bb+#6_E$h!!41rl3j$iX&O1Zad50?f>Uxm0HOMbnwO?&oua6752Sfb)1K?qFTbZC50a@7z35bs zBqwN=f#im`ZQtdx-t;x7SLY?Z7TM-Ng7IoHSx=6Cu6Qomz+qG%@v$xG0 zI&`LO0odYz$NU2~n37SR#=+JbvD1n`>Ll6XTza~x4Gy)^*0k84UK;YzP*b3aI`!=h% z{L|5G7yh9gX5yfkO=_3f!@8~~c|;vnP6zE!pwPb1L>2~v2P$W5*Ztj9>%G07q-&${ z$)CMDXap-$yKIDl#^oZIXQAdYka-2cCbjC3t9R=(8~nv1lw|JvFMrmzWtC+)1qG*N zV-RFnhN!s!!h#VDpd|;)1{RFR0k>v=Tcu%w12$DdzFSKEYIuu&uXJd3)Y}dE-n@+i z3+%El&l^Eh0$m4aiU&;Gb1?F}&EZlI6kr0S6M$wwks=lE1D;ZH zd%&|?5xb@HEyqrrJ?r>Q?=ov7Rt&te_~XGtLVS$t3mqCOoUXRZIf zq%U7P%=yLYc_aI{a{0Tp3=NjkqfioIvYJ3ss+V?{qHMSTpjN9vQw&5=L}5WboSa-> zrfH<7zexDHd$S*A4Ef-vcYXHC=|iV9s1kg#z;2JXvpiVE0$#R3=j;v0fEQPY?0kFc zK@)#kem1dW`ANDp3BNLZShKHrg+5zIYhY!ppe=w!Auwm8&yAwG8N=%UD1a>dV$p`8NFWpe2NpI#gigi5(Se8AEJLSa|Flxz^XWe?oxX10 z$k!ANc8gZ6)gaqwhXap4SV4Hom|19pN~MAz2(PUmtG6ES+W*TRjvt77T>F<}`%hf# zKW*8zV%v=nKcAasJJBUQN>c-Xn?d^`H_rq|0|%W}4N+FWC^X1R>U&PD0s&q0H^ahe zm*D6Th>Lfg)M!6^-RzQnhzK9fv}NJvokLyp%L?6 zA&7PmC~$N#z|7Fd%QD>@(zV{AiG%B}`Loa7HLb%}jU#-HTXJmivZ9Afi;$56B3eP) zxFS1=nY14?eol$=lXQ#;yE$ic$Dt}(b<${6L9GWg4itEagA1pJqq7=k6CcI27_?-` zZ}0tSOxNjMnpWA8m6>|mPOBiXYM70AuyRgtb>NV1w!tn77iSG>{#C!`RZASBbL>WX z*r=Jir==Iz+A$gjNRj}a1r#DeB6g_NJY-1(p#VmqAxJWGS~VOE9CGtaa5iZEv^{CV zzJ&fa9~Hco=0FexwMwNzW}yuRp8EY2#M4=q{vx*!9LGVH<=148auJbnBI}HY&+=Y{ zrTUc)dLZ(yxSuJ#k~zZtJuW_bnuKR*`C$Oy?&6q|lV$4e?8w1MuY*h#MTilafMZzz zH0+WLLQ^16px3IAm6Zc;@4$+uZl*Ns_~pVMO04?zaTONN=szU5l(<2#h!>#f!0=X3 z3=5mh29-(!j^j{JP?T9fr_;c0F(a#>;P$XCHRnwo*!VA}E!*@%|1qs<2JbUVGDMXt zR5S~gqmikoUh!^O1g7qe zuW;r;Mog1I%a{N5-le14P3_aF^6Jd|+(fm(4UQbZ2}Wew6i|%q^z6^ufAvY5=n@O$ zr>~_4e)i4c1-X){nOdVO$}B}G5bPE(JO@buB%&0h(}Mz9Ay7cWNw0&86OYWS!d@P( zPALFzKf|u;GW4fIJ;v@c8lL@?|_i;{l+&uj_fOfkkqrIkF*eGc3@>cHpe&$}zr! zrmugRohzxG5kpfNG&B3dPn#zFWL>`Q*>~)ChO_%XX4>bpY%@6TeE|1v-B5 z)%Q#17nszIojvrhn?#t6HYh3u?rx6ZS0AJZtv_3~VBf<2Lw|kmyb&M%XqAY1+x`ok zyxiO(^$?L^GA7I)(PezMW+mTN9lM?uHe%B1A4J}{sfv~$Tdm+#99V`%pqOaY2=mlmeND>>N?=(UshPQG65;*q_g4^C=k%PsLNLsmle?7h zFqmE3wfWDVKY5iFpiF7ct1MCQEamYlGOwuezNt>mI^2Ai7V~SHG$6sl%>{xa7Ohf5 z0;RmnxI_W6tU#kxfhZE}Rugyz;FUsfI`5c6SJGPapSF3_`w+@vH;?L3p{(k5ZZ3aC zkpaD451L_NFmk~$u-PmZd-V8t{rdn%$B`?3IB+q&mA8{KC}R>>-VB|C7WT9( zu#y!Dql5Jo@0QrM?{`Z|oS&p!ozi#bjQR94MXOxM%cMXP4sZ}aQw$sg1s+Zgk!SAZ z*KgK;`fDoSWurPw?b5XRmUNSnkSB2Q^FMFlhXG?7BNKE(reB7#eIijYGL`&dl zJJc)-h$2M62EE<@yQn~t7;wB6kZBMigJ(Gif&dRU7XT8-uN1s7VfuSt^!{M{$F1t^ zs9G-QPWj-F6fNT@nvEQ?vxxf4gZ!#LA5ZFV;(Ssg7Y&P0Pwq8X1@Z6hqvpqAVVQ8-?28WTs`MR z;{97S?mkx4bYs|@oYa(86e@&cAX#`+40FV;qZSB?16WW{s3PGUvJ8%8UgoCbU-_s} zf)=tm4F-30m8}Qw(Hi=wZQeIc=a%$i9a=bINcVx`ChxniWlOnpk%FZVT7xrk?G{+_ zG84Y--fGS_eJXA(>2tb`+5P>=^G_SPc=<$TTXNv+(9PhzI5KijzeN1LjST`N}D<%_a$|k0i(vOpJ|gFnzOtLlAVQB;UN2nc7S036e&g+01OMrvbAV*62J}`v}{9#5C@264q%FVppF~XV$!ewznzro zl$xFymXlZLbuEo;WK6y7dj7u9#xCb-y}X=?r8l^rX42`kn*6+UBZ#EH)yE_E54KpY zDMq6a*#%aV@^stqJT0?w8E<_tYpa)w%j1NrDfMS>zA#*npuT$lRwK?O94D@2e|+-V z@{h9%azLvCk(Z}Ha^+sFAkKPq)}xF(ga`YAqZxoI;^uu@s%J&TLbh_yfQ6Sk7rFi5 zA(M(X*=7#^@TZb~v<*K^`mW2U)$EBg_XJlzpJ-XJf#eu3j_u!N_SZdXZZB#5oxfc- z?L_Ro#y)|rRV>zAs3;AL`63izg5KZ=QPhC&`JfmpjD>~ZG-~jKfMEcmz;zfpb|bxL z>VN@t%6tE12geVi%H38?|8(e}@7AoaTHWibSu-?@4OW4LjVSQc$rZ0Y&ayQ4WYOwV ztA-TIIk{?5k4f)i#lDi1?>7AFS#xZPwgs{gMINd zvj8rR+CL13s1WLtUm>)J51|{d7pR5yUv55i|4Cl8kWya7!Z@C%WrmjWblZ?!V1?0W zgul0I%I|Km!u&lR5E}QAp5?;N!+;kV1+QgTs#+oJM1G+KKdjpG<97?UPu+d$W~1za zd=%tlKoA53dAnsr`!ZL%*9+Lyu7=+$ZHd3T{%%rQA<751LZ?+hP!ve-KuKdGcCbVX zN}wT%1<<;C)>*gfMz0A=&h>mBA8+&YKBJp82tAyYnQ^5sGymcj-5bt%AK>_S)P~8& z5}r17DdiniP*?yW*r4H9s8kNn8QdXD1m?U95W5O8#R8lfETe@QA}A#boCAkUMbrL$ z@NTuN9Q1I(fa^XouQD72n;CT)j!b7%6aPV}ik&v1n`QfmYbMT%^Y_i37;E07w zO|nZnTEoL=$p^!!p?7kDReo#GDrf+btU#yYP$AF__tK5({X7gvdX@`9<6fA*$AjNpK}x&wijSw;iyO&lWvf^5K%qr;`fY`-I;46!!K`u8 zSt>^aKMwSExaXnbp9KfFT@Nhlbtfjw_uiWtSlY|w){#3;KW*y3uJG}6LQ;kR?K`Bg zrDPj48UqBu4oak;A~k~FGc%@S{` z`cBw9cHfPsZJc>+MT;#DYSsy~Ou;Hy!EkCAa|;pVq2BoYxQ~Bay7|6wD|nVcp{W20r$%4IO#%_H(*vzZJ`mF8{RO`vAv{hZ#=8$FHB0FY_PDEDItFaB*}&er^Fc#sLa> zd$0~61fnP-q?9W>9eF&Gq=+Qo#O_Hr9pp+>mVlRwkIpg=b{C-#OH$1#Wq z^~UX|iEz}bA=>|V717f)OhO)5tpOGr4HZR0#aKZ*>gz1te2Ui*jcMek^-DbCubtdu z{QDRbACFl#`S9h`W*$1GA_G8>87MLXK~bRAYfzY<0Ut+x+YjG#A6_TYE314&;GkZg z&H6OkE<&WuV4*_sF}|v}(}Ph2IYx_}O<$e-bIKA<^;>lw4?ON3axu z&PQMI>XUS-)xaf-_Wv|!NJ;wPeiqdICa+!oIMv+I)x!~1ixE6@5KICLS`Jp52|Qx} zsJAe$&@}8eGa^F+!LT&4^9y{+1Xumj1bxe=e^FWM$h@{>S*J(t=Xu>-6EjiZ0`tW^iU{&8bmJNyGmpK(8rJ9z0?3%#C>Vr3N+$pl`}fo4VUTEJFl zhL1tDW!|K|L+V6&WdXpAggaGaI}JqwIF5r#r-dNNkR>Y^F&lZWc(<6=117Fmc{VYx zM0S!^RXmecPwL-YFOx(0Vm|b=9s&wbXf^=_c4&1>l`~11F>O9yS0W;YzF$pQnfOBN z=;r1DS+RiSWl&H+g98)-6~}?0-X0DuQ#2IGg6Q%A$Tr!*NS43EWfT+XelM!DOX}-8 z6j`P?7D-RDQO3vl{#yZ3xs1=Xv}_}?^NjFxba;0ES@wIQR|)fXxq9PaDr#0J4OfE} zR{PsCB*}~eWKn^KK?`CtL6Q`htRiTN1tr>H@b!zHxqQbrv(}&g@IMKT9^d{vap#pM z?cE)@Dk_16$l4*vDkvZzl!8KI21+@~8-EztYk1w4QH9HQU5ptudHoM&K?Mhm8luS# zyTuNPwn1&6Kq&IJ@NPAz>Xo+S`$7HmQqFOsQ3k7_VQ|*KW|hIn6iWHHS2%kuF{b@z z%m1`Yl9;Y&>-CwoHtB^uq?D^W6u}C+rHGhAtz%JO$p>f+B!PlN-kuv(kQKNZw1_Sr zfEy1}QP$rz{(XJ3dryrzPe+Gm*?C5!WgAhsjL)^V0;EE)|829yp7=aH1HN7!JD)z! zD*I<1diT+Dhh@9tdQM$)Wc2Pcck2J9?(^60J^nnjvoHT-bE*mnlWqf86k zf86}#*VE8b=jmf440G+bT1U@5uA1=ZsXG9ih)wM}VA__oW7i&=+V87fr|R@yll(ZdDBEPH zkGIWOD7ngv71csQVTHOV4nvkfLxLcRAT$R;b6^M!Run+Xd5}Q>jT7>$A~=qKqwEkw zJ7i7+7s5fb$Y9+3>r7p{fAs9l=l-oLN%u*+CLcI!Hna26wC-Qp9YseBYgz(M$IHKbh+-=|7#cX656jN;h}49+W)?3@<{YD9DNpJOeP23Ph$sC@U1j z0!C4T5$s?H{p!05q6mhP!6*t?iiXLoMYZxpSr_v2X^$W;4;cU+84H+imYn=?_rb*a z$0O?qA!`P*wUp5^%k`g1rNp95!4hy3VDewl9t z2mplmxFlb@n*uLScL>J3KXiLgJz!pE=YN!c)|%;(c#$_xdA# z`|LcE-OJO%4cG3bAh?us^6#mcUl+p5`^H^NcnXT4;i{&8*C;b-#hG!3_TH{t%7sH= zVWukpgqL$GjNksP@9yy(>m8i+Y4tuG>MuGL|G3fN_@eBhPGTph-+9yqtO1 zWk4Y`M5QRC5<~(8xoFj3-yX9iQ4|?BPh1D-9N-0Kq!WjU@8S4d(Zcy$3N z;s((w!qGD@^4e2tm6n6%Ec)%e4~!Q6!@u0Ox4X02(5!e31HO(W}_LUoz!cWOz7FK zYH3#s0IWWAqt=L-8|JAPF3O3OkynrhLHqV`O-NA;za)uJhy=BUhpYe+VWD<#MRvZ> zdeDTQmY=lCnPXv2=pDmZQm_w!BHu^RY$sP65W-K)VD zU286i3UW(*({nE;Johi7Zzdt%)xrO&=IKw8xylTo&_j|14S_} zX(fwh66qaC%_zGBFdEot4i?1OVn?B-`=n$s@09d&5debj|+`YiT(L35fu|UO% zP&w$4Z+-g!dPyVz70*MGq?e9$49r#=3Qd-m@gz+9LE{#bIFEaSNdL6uQ``5Z6>`!l z`hwFJLR3VkC_B`O1dYZe>g>(Tn6|@b&r8gPw)?PE-^X1^uf;lQATfndYc(jy6QL*y z)EWv3dApWUdbx8@6zL_Y2Lp=Xz_S2k3)(fQg!C6ixI4SQaiB+6DwopZqnbNb{Ls1E zl9``Wch%_g6K@&Iel&E+kw1Fwt%omahxs}jiM{*~1_N(wQ@7mBcLoRmg!!r;9E*Dd z-#|}fWu*DM=^8gZ$tozc|KT*ac=zQWO~zb!`nkXIafu9fJALHaJ&_y(bN8)NP_UG3n{IF78fMD2js3 zu7HLH3=3#=B5d{o==is%G^A;|h}}k3pvXmI008WkJovh5(VX8t98-agPw@tA6mi?fYE~M|Iy*R}%AJ z76F5Xdm|B7ljzbLcAU;=x$1ag*Iyq`xc|s~?xssaYIIxrbYI-<4qhr&Y!Fjs^DpP? zR0(@tFIVReX>d{8t2p=j7-88ponWxA!`4iJHrq0#W*MFI_@f*?pJv|B;b z3V20?qIanO&09p@;RY9%cz=$~@ln6=V(s=yrjT4t` zz4DhpGGNBeQ9I*PIykDiDjaCo?RHS24T8oQl#WGurWv7uAxUR9j``%5m1D*3%Q0h@ zZJ4HYa*m<}6CjwNbM->LT>%kn(9sHb)!WCh$x;BFPFLjBD#&2KfJicEqJU@dxAAT@ zC|4$J<*d%VR1WTkh$sM1U}YH4i~_Ye1I}t7ohaZL1;kE)r&VBB1%LvEc7fRl7!2>A zWcfuy$8nGq0*YqAvJ6x#L5EfiaqZsI0M4i4pR%6EMEKmBKW#`ISBT>Ni?@3|&PXrD z@s@o1cGX(dD$To`a35KPxL3b=ncuao6iedy>k{DZS+MKKk%ombU#@G@N`sGFO}ke! z!tc_ruW@(agtFlk4?TJOsM@7l$&ojo-DEBI5NS&sp}HLK%qHEGy^CicuD~U8ZyN|#@o5i zXo>?NFNxC_3Nn#FF*FD$5YVu4GI#;d6Bbrkg6v>`QJ~7ip1T%YzCx8#0q&gTuY$zi z!^KiPEO>wH*)suFQ56AJ2N?)HY3orzL@N&zStY-{q7d`j~-I9N_gCf3wJ(T@OcZ^?Y1}CLz+c6#y4B~MdefR z$rW$ie_GpO7aT$ZeG@8#_?<5k==8fzW#Oe93XieGn3AjDla@7b>FN=Puz(ZQuxo8# z6a!SO4JAz?rtmyiNrGg`hL+RC%vrQuQPZq#K>M0+B_0?yW78K$&R%Ke;S>~YHs!-f zqk<%}u!@;bX@G(Prwbuo#-!MF6MFx0&x$?QV#X{yG=tU4(X8MIpyce1f4Bv+IDyld zA;Ap6%s|i4pg9wAjfEZheLY8g@4%Q=C8<9;(xYJ1*ddcgOkUPiv?)+AG$6C!ReC5C z3lLL@+OJ{-2r>^FTL{LchQwPz5jFa@s)=WL1X>mTGQCgR=5}a)xnX~X37+B z;_N*%s~R5nhce(Foovyd%E6_369(K$d=OGOBH;ACOHX22R}XxnI;=r-$jt`PA%7~v zXjJ*oV+T)N`E*dbnk#a^Q1lW?LqO(W}bc_s6kzupZ(7KeX z|NX)}G$8~7Kdkk;AQ?S-cmIuhZ+z@n$}`GhEda4fkU)W`1n`U=455w&crjVA>;DCg zRlCmBnXu&4WR;6UG$X5^uvSp`dkf7duv%oO)HHb34%sGyVYHBK1+ks`Hrn()o^kZ# zspb?#piyxkiVO{_h1Dj4qFJDX1ht}A0F}xECRv83-U)eDD?)vp(WYhue%f>KlWJAV z9DSet_4A4AZKBJE9=`rC1?exO#1A%3{4Cu<(abP&^6SH3chsx{{8yz zv$3@+mwk{|knSPbfKNMC1S0~uq8%#U3B+y&%au6g1T?G$f*^o!6jVAbtRjKh;1@G} z;g-=0cVBp;G4Zq62ftjf?fg*RQod25od?Hp&^qcsaWWK!pdeGYQrh5@d~yBfuWUa{ zem>W5%%a0HpyOgRHUYdj2Q($&?=BK+f{NuJ871(v0hG!WMw1vjVqll)6MNR!SYoyI zxQ*ZLIe4W##W+Ebine-Yp#Usz2SpW>d<9f#LF{IzcqinFb}(YmSdeT$Zho3qRCr+O z`|PijXIW({mhnv9a`HNSTwR~Hs2Q60mjMC*&7(sP?TUW}+HQr0rOip{qWXO{IJ!d6 zp*083ckkY!8iGAoSfB<^6i_mtP}&mLPuY|rI|;+XLTsRvLf9?&&^ec`KXu9BF)Q|8 zYxwKyNBp>D@Y+LhyTx`dv7>reCpmiRamQerAzq z9bMc(WCaYZK#^>JJ3!Pb4mQaMt)nv(;*5fvocJ$?G?_KLYqbLtt=e_9 zJ^+mVaa;ctyW{#fIl5G&B{M8U0SyYQ+6qabVaaCWtAw~;Ik2$T=f8c<_ruz(9sE(v zMX3*8T(fXAB#kRLmBZf-5ZY`7!#Khuv&bvBAOHP`555`EA*#eFw0nQIdhDLFN$njx z-RjsW0kUEP$5LQu4!qhCHX92fmwW=ViV8SZ1Id~LN+=owf`uT(m{+!O^-2lvv#%~( zyW6HhnV_}jZX_W+GyhSy7FB*OF+l1>1w4-m^0>18@GX?}_e4&{i&F3VBUdOF61#r) z8FX$NgGxR{3>OM*0nL{@ktwBPp;B>>jApPh4MhPY8ekX##cG6F=M+6>&FY*KNNZ&^r2bN$c!BYURXZaY-L|xOhkA<>x@F=AdN((Odwn ziiKbmz)&pc_mF6o;wZ?J8HCWNIn zpZBT@n@tN|XN9PUC4PocHbapG=qUy&MFoY@!XyDIH4QZip@I>4tVf%DH*-g^I?p<4 zNdQCzg3Ln2(2z(z1heafh|s{B+vj&4{kG?g?bl?>s84E7&3$URW^m&Ec7T{^FW4+k zPR|nJ88934DhEwF+C0nY%k-2$DO0z>Rz=#pUyairxRN|Dd0UD zS1xtCRpY3;dIzt|aVHWUf7B+T(dB#3kdS1Cqh1S!sG-YRkfFWe(bzdM0IV#*VT z*b8^Uj3&yXQiae9WBXLzQcR;2;d*Jq(L4JipNHd{{>^aV>T2+|99W#DP3IYXc zP6Lz046Q~7n_Ya3MC{MYC<p9D}@^j0;smN+<09ssHdlTkqsS z&DK*Cg{2$M!O7FLhOsaoj*c=U(EWWB+BbqiC2zqe*X4w-1V03o~~6Cr2vA&LSh{7ivjR2t8pbjtI@%1 zF+rnNK^AS06+37(1)10(Da2@9ZU?E zxiYSvzbALAORK2If2IvLo}{_!B`%-UF<8In0$SIuwD(=_eWw)!01R4v%CZCT^~(f# zde$lD-{x?_qqJJ#{%=j5a`4nem#qh`x5+T_eD&Iub34?p5FhO8T5KjbclSx{qle=o z99%uGT)c6|w{w#yZ+pIs3)f!&Ismi+Ud2I_M988Dil)J`93(=$BseaCnvrDzMTX5T zfKUw7dL0;wf~6n}k>R1c4lMfgi@#cTgQ$?3f6yf|ooH8V4u1V-VZf*K+uh*Xg~xC0UQESWaEf8)xo&r1r9eq*+dJQ|o zhsZ{#pn}apgVyLkk&*#Kp%`#116h_Ji&hYtK&4SbrT{QNLB0(mKWvDWjY2Vh%eI8p zHDh|7IFiunUS@`_N*Ui*{8!~e-3w}0@w=Z>Xco5|zt#G3;?n?)iYf4Nb$qL*z}h2M zKWkOJ?1I?D=UB7va^mzMZAS^m`*f z?mT(nwEx_#(4&_g)za(rIRm@YyHG9M`??k6)V2)ge~XO2l=SnF1Bu3W_#`G zrO)S@?D?Da#*clFVN+EJ^LQ2Q7g)+wtWzoQt|PC{zj`&#>&TV+b!;|!YLK7n?{2@& zTzXu;MdOf$L&uzeYbo*6)IqJ6z4sLa09cKbvu4ZvYB3E0Jp!H8LypBJH>(`(`zp|V zcibJXokwpq%g(a1(cyu)9U4`*R6fY-HEYtHJ2~{y&BwmaAa6#FD}@=<3#01AHG6x2zDR11Qo9Z!)ibjfF=|q(FT_1AX5Z%2^B>wLl+qm0r0#U z1b|x2!IYbe7tgY#4vi|5SSwVovfmwIBRQ9@-}h8_Lx7^l&}!8%2@=@1q}mfLG_w|6zrw~tp2VCI7b7LuSUhn zZ5Ka|j_^AC)Myztb7Abg$zRtUSE+Qs)4v5El}ZOZ-F^OA{j1kA%8&dcdf3qm&*CYK zJ?r@SZ7h-FPnV$YD!CkyGK=;*q~SyXw|NeXc>gJ zKrox2qn#m@FjuBR6zEheWKn_1Du7jKz%vYNc`wlCqgLqAA_TKHpV{5AT1d++2QPnP z5iGYt{k>oL@Rjy;v^A&}w(rHGTye|6+hfc!dpp$6v6ur`#W4SzdR0Sj# z#@~A$2$oTN-3%UgS~SDQL-R7LJSaxdWOqr`99Mb{ou zwW_DI^3a3tyaXXRrfr3vKOQn07ZWq!;j+0yJ_+~Ml-PRu@i!|b9>4UUsk2v5je^1#(5szb&a*>n(1K#^P>3BM z3=~lfiY}qM3`Ii`Y*6zWC@cpF6pUHVP$$9%Yv+BA<44YSH&S|^KFur51c09pU#OJy zD67MVjcbmN2=jQYW40W=S}{4*)HyONU~$X3Z+1hu{rH*Jjr)a$({T?beA2bncMQbj z23_VP&YRKU^G`phdHin$2mnNNo3^90YuJbD7PP|hRr{6=`=sN5H(huBW{U3QrH5mD zJ^15&+SYz!W}+*%GnoB{FU<<67OkIWoc6}iL}-G)s=j)jAoRfBn% zWJe?vK$TDip=roA3k+HnY&IKMwF3yvAvZT4uFj4y(uGi&Rq$n%^^0co?H^h8J%D7% zsm=?2KJkU#)vE?z{X>A{7qVBX1}pJLmwhz^@1b-XyLR%it0_&L^e)koF&~^tfJ8Zi z=C!bzGNEGuTG2pYXxKR`R1#aF=g|}gN|r!~0)EC>T*lL<^UgEzQ=-cUzw(Ma6_@M0 z?a0+Zb}h|S0Ij^y9|nPfF2xV*#f)D4xZ4U2q23JRGbE~sDM*(MTt2j3+T7dThfGpVOU5C z1<*yAZiy^G&9hJx39?my!PN`TjOI!QPM)kztgOtZ6+(Tpe|EckZemPez9cAFL*=KkQ{ z0+8r1_XkH#Uac8_E49L)-qnYlIG<{)9~HFj-i>F>(p}faQ#5TH+^x#C$TER%6o!^< zIoY`hWl&J-EQ&uR*(`NtFsm*UsxZ z<$Zvo=ZN*=&RxG-pVN}MIu!*)VjvSOs1nK;8nqUMg@rHWrI&$R6aX5KWEon;46DRJ zR%xJEv(TnR3k>U82eWowJkUH?H=w(wrr;q%gUexf~72ID_%S~Qz;A{V2x5K?!RKNA><3FFe)5UBNH}z{8iEa~q#{T#_ zP-~pv$IvjbJQPKNDB2-OB3OojN~MCuVu4DfdZ(ziKUM?Vp;mE_B?=;~g90AJl6rRb z$j+a4ZW^BOJ_hfp%lEy{Bs^@Gl4T0e>2#)u(w;Z#RPZ|+9^|RKmzCq|4P#GTPiv%h zV(UvnHq?v*ELILO&x50^CEh~W1q-xV9(KD3Nd{Q9C`5p!0kvp?QRM_(H)U4ubxg9niz7g~wIqjoypEaBQMgjitW$#_5?%f{n zag#>1BD}6Q7_u1253|7VDu^NliY8F0SkMe$x7)!nd{J1dAcHEQI~1oFAd>jRwuJkQ5u}652V4 zNP|%UgoqGj2`XL(MWJA~+d&8c%Q?VkeTqtDgK&D@AY6#QQ~CVu)bE_tWQ9|J%ae|E zs}*yR*>U!9$fYZ{rp)}ZO_w(c;Lj|s`%a$irB_i;hj#g3$8XP{Ong%JPD0w*{#~O{ zr^`CHy6cu5Uii^~zxsZEX^ZtsDdp*qICuNm)_x8S&h0u^!J2hPYB#M}z8L%7_+>lh zTaEeny3Yr5%7=Kqwk`Q#@xfk>?sUqKE)Dm+=^2yeul?N5)A#zw0Zk{&-L_|U=|HEl z-J8_-cF(aJu*n8!)HFDjhA4@k845H_!)6n}u^ed7ASJf6YhY6ZD69g>Zib$r!BaHs zG#_~4`hzf|y-;XaCG6%u5ggset)IB_*u74^r9G<3Vm>Su8HCY;aDXfoLdVjONXY=g zP%J@Z#ei2UMtFd8Zj+j2wvSo3Z*gww)8z8yf{O{@9*&%~Ze&QDNVHE@?>IZoVkU{9 zfo`wV!YkGs-|<?15vU$?SNKUn)>*tG6XthDB*TE*q5JVYTtrnsvfd&Pd07?lhiIQvr ztujCm6*$l=REh|RNDwtT>- z%ud2^5)=vGDJ>|4hRJRP#nT{=0a1dZ-mBE*>o;8=r{_4ftQ!&cPXNbDJ4X{Y5C3S3 zISoW+p@=HTP{4CC6uS+2og*xE0=k4TtIla#EAYjykAJgt@3N{Dz1MYYQssfC*05#KzH7C5H3Co&!TuAVdU8=qf=`D#%t52CW(v(E>%sK>!6-RNxE_f@p-s+1K~{%@ps; zH=YD{X%>0xKM9WRM8rw)ooZ8N)k_suJ$~sHFW_;w{!MrOv>O8w;L4>UMGeXskPM zYnFjiKl!+6xmWVYw~M#Us})sYVyozKZ}g&Ev-?KHocx?JU-fRdt(YM(DVN>4@9?sj zUv~SXm~69T*YW3tLZgKvJLAs1=NK}24KhRxD7FB!qJoNcfuf|tP8^^>0vH-J%RmtU zBFj)Q6j+A9UNSo)RKx~}IDu6;BQ-5Kp;lFo*u(RO4E;}lqtDoF-|jj4puNt+DN3pP(^*pv(U(Skkl+>;tJ8KhTe_Ax@F&?jGHT_uG|;@ zb(=6lg^0+0lQ*6$CX4oNQ|qKpfY*g@=bb2~iE33N;Q5cAHLp44$4xU%oJ%c6Jy|x; zuW-UAO-Gs~qw}P7mtWb3ZYR9x(5Ge4w1a+w;F{_4)hi*Y~!90KojM7utL^ zZ_n&q)BA+9s#}(7*>?f?^wW0U?Q8nI(Jg!Xu@v9iPZGOK=-2Eu2eJ)&uUE>>%P;#y zuLi{etER6%IJ9g~(5`m1%RUEy+Yi$9KkdI#IO>yT&?|-LJaIo_@8-c%YX@N%Fm@4y z$dDBg48wqCI0&)=P&70e9R$0jMDNV8PA~~CKxiv8Y8Mc*4wA`q+Rb3enmcF2(3oID z#@`K&USDq*d-B?gCK_ihMzm+WvU4aZRf+8!tV#>J)eH~?JVQfPL@1IBhUNg80Zk;( zS{0t8Sy88q2R6^@fgC%7@pFI1ryc6HY7!N4006dMNQ=0i7}saaryqX#>-z6L%%Rro zJ9F&g_Dwrg4A2+THZ9q7rlXZrdw$ue`fGVf5}&70M@}d7eDX~Ba^C2cm9`#@C*8;G zOP>CD{cpbP+Gywd>e~{_Aiplv%lqBGbT_T+s;yV6b!iqh!LwWdEEyR$Du(&KrUsq7 z=)_PbNAr`Rog41|?YX(D&UALs8lHU8Ir`kMk55>%cXGXQVe>zzUFMbQFU44(q$lT8 zjlYqU78dMWZgBI6u@9d-LG0r^IPs1Ui3F8K3xI}3qlGBhAPFLLItLUOjo{dl$tZ$i zhFYZs&l+Gii;xrnj!wEji%7~JI&q~;xzeT2mi9Fi{$1ecH(}Sv{bw$?J0yGn*}N(CJ{cnZYoCR%3t+2CP~OyR3jw>5-jhL8m&d*g5A@=rk&7 z{+d(G8Z@XhA^HAomztHzUIBn`KZi_F;;(HybY*6}D*tjza(B_fH_-dg?n9SGYZ%wl zK3?iqo8D>>fr-e=y0`S`qm`b%y4@bSf3c{z8ys-?dBzt$zD^$my6_Xajy#HLRb96( z{Ho)u_u0Si6(9gmCCuye&j;h{UP&wr7}2LX&RouTiu~LxzW~oP062H!0Y7h3{L-nz znvRVK^?z;4HSxzi<7&s0U){WJaIt)GUoSrJbIX`oU)727d$lh*^XP?s*Pb(LrhL)< z!v@vE*34Xc^rDM{d&9vW*ZmA~KF-EI0i&a#5E_C=AS*IhmH}u2BFj*7MOkP|v`6O@ zmj>z=UJfA zxxr2ZP_RKm0dfg<(HfSAEZM;_6lj)*O;8}n6ch>|kYFmv!{;B?z^sv7aP{6JEZ-R0 zXyULIb;|p>T+gw{>03@Dj;j|LcoYDFd|WIx@ClptCrqnXHSk{`(W@;nRfCUiK6>iQ z7g+`Q;X(fj<@WRU78+LZ-?e!Cg+=+Mf_r5Hz4HJd?nY9@r}u3QdUdK=q0i`jNXyDP zy>>#IUhd9L;y)T7?oN8q+s*CXyw!(lXgJ2BZxJ$5GEO2ykfhZG*vIw=Bhs|t-iYrommZT^G1&vA# zyS)$wg9e4hLV#kS(x||zXrvaH%A7fUE!@N1?@q-~*B9^8&T;r^N^=))?<$hr2-pFG z-V+wd0);aJq5xjeL#9jiejFHB?G~tY8rTIH6vM+or-s#-4h?U|+z~x6_@nALa4xy) z{LSY(w)vo3jZj}t699zyc^F@07i3?)aI<{niouTnAjI3T5S$dZe$Ta8^{NIHqy4N^ zDfGgr+sVz(U%6SYX2mkaOa%3#f)1X&nO5i8t^1*l&JK^aZ9BDp_>h)O7Oy>t)m!5d z=ZnB3 zxLt$JnFXv6d-=iLt}TPB#l+OdqX+l!FzIPg7AuAZXabsIp$MeJ+_DtmK=T9?BSMlD zFuV>l)Bt3NVj-NI96{3#fk#hW43j82zjmd-`z7t)U+f(2o&nJoQyOSe6hqFcI1t4G zmMBp1TG&JibO{ZmvQWfmFEa!Rp+E^DEV(aGvqCA%pE?|kBD^qb)3LQSyW%`+c*|Pb z4jvz7aQ8az<)|Y75E0~+cJ^sO!v~2;no8vYo&i9hr;CkKQD@d|KQkkyTG?WmprXqJ z+{m)9853ha#6__@0te>=Xf_ucCkF>Jz-YyG>HS^ib;mOK8A zE$rU{kfPbV(v{Pb{i2v~_RK1jNzS%SyusZB#zscZ#&z<+co4ylbS(kk)bYU_Qqa| z-g@f3Zb0)&zD=9dm|zvuxOp!b3Qd7fR1xtRqXt3A3;`5FAV>lTO+x_-g)krl0Fl8l zG-#V0GD853Au#s*ZGXEU6~;sbC%z9mhh)qLPYYmqXRta46c%Q|pyI%aT37`DdIhvx zGAV?mHBcA@5>cSYGH6LapN`EiZFFapcH*d><2N)8a?#Hk)HP-~0MxBo@!U^q4$rLr zE8eLZWxTJQxpBL3YJuHc&fhZ^0Q@|hMOx=^e$}=^3+q=aSIo_*jIT?+m$UnxnX3<+ z3-G4bxH-AKI(O{crO#S6saad2aYFB5a}NfER(P~=Mz1mWo66q?5CG`WGGhPtJK{dO zcKVXvR|8rj{?U`0w;tG{tCVp&0{|nJom^Et)a9p6A5<$gtH$0ntCsCJKkNI!9}N3# zowL{PS~Yc8r-8pdw*L6dS~fdz>e)8(8~~h1NOZDW2qq6`@y+OYC$>=b%rE^mxXvm;J(F{0-0j zJ8hXT6D@(mg+ z#eyOd2(g1^Xizi@NtQuTG#E++NGur22BRqrLB39yJH8Kkx2%AZCoVSHcqr-1`QNnd zbn?dY8ZJ(%bay8QD*!NB#|ta=$IfY3CG^!6s(OX6gl$I>z7xS*4l3nr1pt3{jo|I9 z-#>HHnG>PGp}U;4)GG!HcV`Wn)(l@gb^V3Q4n*1L=j$#mJ9K`gtmic?Yeq!(96S@5 zf@A9S%>&!xZ!CW+KmZ^j%r|!C`qNF)vyE;OK5bs(V%(K$_p|Kf_8&i5r$e3U-`1`g zSWFKYcP)$C5qo^gj6p5?{I;%9Gk30yhdk@px zONWHUdphxNHC4`8f3oF-1v|dDmiRPEt#hrd=Cu&5Ht;O-RtZX_)tEPYSvn zx>uhB0IoVb-*fyMAh?jJN5K5)hkoQu18 zZSAaHy@S17a{kWo`(EuJzgJdoIot4)IfqwH?omB(?7+6@`u#d|Xi&LF$GQ<4ipe5J zlSA*PW`6WtpIWcUB4ZXDSoHnSmc_zOFC}MII(G76yRrS-O#J28q@PX21U8ti40kkpeRKNG$GSq9XVv1P0(-#II0;~^V4CoGmvFhRH>%Nk6&~{ke3d7 z&pvB=`_9dVy;@ZGDljOZ7_he=zv7>fV+kJ8Ip$TqzlA%`f8_1#a=k-?a!JMH%7rJ^ zO#ZA<@87m{W{zmv=(orB-+tQt^qD*BXAEe8A2-Hhn?$V+f~8Hd7G|v`=DXt$a0=}0I>h)P0zd8d2PP#R&V)h z_bxiI>f;tceIrVjF4oxZW^P^5Z(ygP{)VDN9DB~*^v%qbOZRJ6`P}cdWBak2A6-jL z?a;bz)$uh0T<#u=e}ehz&f!8*HVCgkuacmr)v$?XKqCQy0W<|LiUNg5P!t6+MT2H| zfMx;tk7=_gih^J^L!(teR%lpd3cN}KP!c$bpirP7iy}n93Meud=4JRQD98%nWN<91 z!)}F&A!EZCt^sUXWT=q|pySBCjeh#=Jric{nA)jRlQHG}4aFMz<(xx@ejMJs`7i(9eDcg^*Uqb5 z#(&vv_PexY$%?(-NLo(SzD@IqY8|lezfjIkPF}u-W+S&e`J`p#)how# zo%HV-v;S6r06>>-SI^jeDZSmHaqYt@)F_Kl->pHVGTsY@^?h9+AG0KGQR~J*U)Biq zEEb;o-J(NF+SU*LJgR)ytLb~fPy4^_*0$!NFmKm)_8p0TkQuW7RP4A)0ls_MG_1B= zVeQy_Ck9-@H!S0MT00*(Ex`6ngS?A27wIaE%e3;!$7eKUfyE=6>Ny;*^PlK6owSZ^Hb|u|^|Z z`^%y2@aV}SG##+{L5td92Y1fyHvHc?UjOX?0f2^s=C6ME+#0lHYR{OmKHiwM@A#=H zy&4zG^fYen{#k7sMU1K%5l~E)n6&Wl_qA%5ozu8-;H&7wC7TX44hjvs{y|jmUlQ03 zox9%f;*BRg!h^~kZCSVM&pHR-K>S@S-F+6fF5QL<4z$VvoZ1nD;vkE5fJji$^jnjR zin0K$N)O2@LM9SaIyDF-L9|OyLg$f-d(0=ht{vS(k?$qh_qs{(gp~?4Eh;qiU8b zM~#}X>B97Hy4EV1Jq}K7*dXNln24}q`_`ZK$G0)CLTa~WbzTue9KZ6+`Qd}xl?HTc ze!8S>x^VA#`D3wHZ~J(7p>@ql@N}YaPsz>gtQ_268mhwn^viptusoh5Qs8=kl^R^S0!_!jJst@bg zW;Fl|o4F=){>a`QiTBe`$TrB5c_>kC=IM^zohlr9qi8%^V6+(Ya>aS<19BqKfF3WZXER;!?5S@0}C zD>5J}AcQ~x4MHd|3^ROkOUDd2v~-J%>8R?_3Qi~zx)*8m%j->12R!S zhzu|^7>0r(6)mvJ%aw;_8OVf!q!5Ub1kr8=t;q0lazKrWL1@<`3Jq(7Laiuxa{n$i zT~3OxLUxvb1g8h|)(cT`E&Ly4*p3N7btj zaqMEI$CZbVKOfb*elgaQ$;++{YuO-txtE(`iBW#+>a#lShAlqKYaF=FAC%cyC&KTf zn>!nS@UBpJ^3shf8L8>>s)Yx9)U8D{y0xv3N@dExpr&9hw82(rLQYO0Yyu51dJtLz zP&{~63r!eVFa{{ z8b{CG?zHz(;-iOx>OkvyHD@=gQzq8O!#y7WZav9&_jFQQ4qYqwNFgFqtCHWD429EY z8?E)meH`=kpXpNvN0-DEyApfGRQ0>@%dskDy&fO9dZ)LwP<1!N-|$Lad%F5JNA$;ku>40?kY7rZ5o?y8O?VcwW#R{6?P{0DcMDIR zuT&*`UB_C%%WmF(%4|OWblKETVu~%Xn~y&%YnGln_ia}1y~KfkIDB>buK0A%#u47> z$A0SV{oC{B6Vt;lUcb}PZnbK{gZAqC;d^Uo@y%7S+Q8;NxZhs}b=c%Z{seUo^jy{HUHv4{MFeWwzHY zTl$UeEi`>SmP*eH;Do zKAye)5|`*f)>>8JfyFnIQ{Cv9Vb zcJKQB(-G>KE{H$K!=-zFyY+o!2vyD4PebS;B>G0?!d#3g4 z{=w8B2lbx{M4Gf@`--|X%P(yZS?==Hgs1)w^D}E(WEbZ}t4=L?@j^iNZUJj%^!szO zRb31d@fv zldJ;Vd!FCuVP<}GzOm3t!zu-#e$Me_14_k~3-J5XJi<`}H;^t-rJ!~-AjriI!OCO7 zmiR26K=u7=iFtMI+`5NV-wpV*PuFViEc=aIuxH%Np>2!VFJ`Pdwn^=%>N2o>H0E!K z!^r7JpY-ccWBIaiZKwWI#^gT=AOJ9S#eq-1UwUFp@6NRXmkjNQYnLC?*n9chqUpo? zMghQ-6$ghjtq{H7)zO)RLD(w0vDA#%qA05 z-ZG-9Rf-$dqT0vN|N$%O%S)jDi_fs~rV}HW-ZpjD{%%=eXXV^r(aZEy}~s-ya)JpTndDXTVE^7%})`Y&v)oXK&v}yGZZEo%08m zf1mGkFC|N#mXTjZl33nsqZ~7`3qxduVr1FKzXV0G$P}8UWdKlVSQE=of=;C>aMEki zT^zNk&IVm-h`*EYzWaU0$>cVVo;|GE?t>cB+kUplGG%aEj9GOF4a*wvMZb>PP*0R7 zzL}DW&mTV)7x5a<+SL$21=IEH3J*SflLR5t0kq3!((xCG^;@M;Y zDc@~A`D)%4QnT$(#HsNdQmV-)^1j~V>VqtwS&KG|`=|EvuYU=N&%L%eaHdIox{{xl`Yr8Hy6XJ4&M z$}2F#3P-55X4quFTwp?USZKPxTE5k-MUC+dn}q-6?aGw3duFaWYX7=QsoY!18Ei!I z{hJsvpz9h|&JiNZc^>Xmr`oQ+TKBDoFWf))a%JZFai3OiRMk8FefRg3tB?IPPMW7n zH(!8TfHTH*uY}79HuM~^9`)OY9#}Hu!&ZN`&d2F?X8DFQi)+*f+}@~8(9uP!PGIKz z)7Q$?s*reY@y9*>$>Wd3KfIh;`f;Bx7i<_ddF~1A#Y^eoKh18ry=g>g%vp3Izg(T5 zqn+x6ZT&O#RrfX|J5V$piv%v}T-Y*PAk$_9mNMY$uUdTAB*eYMYU8oJ+KvoVUr1Pg zCUd5_AOj=6==)>(!+Rl&*&>&&TKQ^8>gHsPwIJVy8xI~g`8xoTBYXOauI!+L}JO17OfsUE!2bsIK1;#Yxmg)&2C?K)Ntg`M*YoHLI2K!Hsa)k zJNE|lt+;mfu#e~e)5jnF8SL;lgwsH1DqnROuVA$9#+diDI?&h!=8@AOQyq@%%wv`N?xo6M2 z);V$6&e?1C-R&U~8`*K<3Mt)k5%F&`>&%9O@pb-N#@&AnKnNkYnex=oeDH!LY_)Hb z`cL0UMA=3NAs9RNz`CE0-s$l!bxhxI>qmXf5oGVB`%Qj*JnnW{NYYa)|GwJV|NDK1 zVg}F4|2z7@zs)%E!=l6QRjw)1b~cHBkXHJa{~smZb{R46*g8T8k{)LAs5O}cww_LI zq!IVGPG(2%bRIkRz+yrO%*00eP2WjWRlmL8df(w{rKjzCq2W zkZX_Ad(c<{pO^p%vzQwjGX<8D0;xtUntUXuFDcbiK_{AP3|)j9*)eowZXPip_Ba~;1~d40jw;^u8S+2+4-to>I4gb;%JPc3}?p&M2+6~BBqbiyj~G&`B( zNLI3N<;5|J7at$o%EqelUtSR3A@*Tm48{ezWS)UwK}=ueRs=wU|gEdrl%Dt!5Cv z#@~_pz31fYi%V(vSKndu4||qgy_x6p+BR|e?$Z;0J~P`!2&vL~6uEgn{m`P*dOLU!C);KY=V? zbCM9nL>{DPsJ@xMYy0Yb*9NEL+f~0@JMO0w-T#g@j9VJJpvk~hX@n4bziR(9_r^2H z>RqP@kqPNJYztYn<4WIOuDxogC-3s|T`!}lVWHMs%)^#n0{Pbw{;#03pJgfIz>;29AT`L}>XK09GBFopD zB%bvr5Z~rsom;l`P}BeR@%3L15JCtZr4zc}j z0r_VBuGche6%-ia}kdRy^py@PH^OK)Q+?_|{`Xe)Otou1xbUf+v|3n|J z-F2nMgoQ`up1l6Fs*MQb_`PJ(Y}j(bRvMS|!Qib+&)j(G|9@#r{htEJFTWiJPFJbb zZSqDYdep;@25u!cA7vAXn8=yy_aeSqacse?UFXLorRTr5eX&!$Z^)0^V_yySqzofJ zX=^NTZ8nbdp0nfhZ?9i}@_IL~=0Ci%wf@wFl*l5Dkcn(Pnnm2J4k!CA-hU-;Oq#W8 z_P}wQ_8-5O9Q}9n=Yx!V&5t|JkD2h((YdkL?u9GFL~cIGAs-IjN|@+T4{LRsym7~Y z(^dX2j-`LRCA}nN@u9>POE>NwaQ{wD*`{?WhkZLN1~o$6@hI7dgBKFN%7UeIlcOhU?=5NnoxAfi;`F7Pz1=y(;}7bDFYqa?$Hk-!%v^XLr_UxNhK4yl=-2zh<%64t zAN)T%i2g64{xv~<|GB1>y8f_-t@?dZjXvwirr6uWL_}gX+R4_v=iAR*wtwRComcwb zduG+YuV=O%y)~)-)YXT6dwk2KNA3NaO(BU79yujgCu8*(+Zz~@cp$Id^u zn5*(N@o4%Dxs_pc`Agct=QhoXU03`6u>8Qdt$WY6&oSGGkw|1~>>U!*eI3zMnsT>t z*IB!k9*k}J|HIh%{{kSd1j|zwqU!gZvD#4Un;YfZO(9cOA19faMq*V6x%Dic%-?bL z>j|q4&)s(FUWs+~_4>`qkG-23P6)yEC-=NoA4%?g_Hj;xM~kuKs|9P;{n`3%Bjed}31u_}aQWfhW{ zD^HM!Hj|0A_Q*T62F~2L>0Dfm|DVRp|LHB(??wb(e;&B$Kzz5IM=!P)8IEsLGo<3j zjmn{Zjc_nJ1I}E3R{e59QX7`ygz|xgGa(^C@u9x&?tc^;pAvrV&f^}V`_vo#%dsjg zrjk231&FRt-gItdPlx|>AKXbbx+Fh(9G(2AFj`auzFK7H-g=e&F3DyiPG3yK#uIn3 zH!k@mMaxQu2Gw?SZ&qzX{V4w@|G$lu|1SaZ>oR-w`HovoUG043QD&5%heKfdXdm=# zRSgm4%fKW^xOpod4<9A<%*uY@@9Jhq4GZ&+s~K75FXi}{x#`lx`Ze9xL>=0}GwB{hHaB0VVB$04vu?Ff9_C;%bBW#FJ!BP~1shDT_iW1PRQ?p9epAJaeSeUeg4n#YeHMkc1&>k&m{I9jp#csbv% z6dtzU$AgEt(2hqBA7I7thd6%WHXgk&Jqh;lPHt8`^vFkzD{ie@#W&@DqvC%6d1EDG`27S$}6+6I1dXGjj4m(z8t=`Gta)#bR}&6-9P;a(G+{cjsV5raY`1>#V6zFg=Ad0n}du3+Kqq%f+>9SoL7@8X<}Q`}+R_ z$e$`_Zrutzd-+k!$xEpX?me}YEi4obZVqgCRE1KgT-F~A>bk(s!vpS)4p0OU`9=$} zj8?qJF(V^4zmLUYbCe{Bmn4Y?LqnxfS=AbyNu^Sm7>1GcjFd~$w9GJ!@JpDjq9}|k z%eFh#r#zc898iUL!<0JBv+^cJNtiM>3;zEN0r3q1=>e1a)UB*OunMA Date: Tue, 29 Apr 2014 10:05:33 +0800 Subject: [PATCH 16/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zh.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index fc7e90e97..9fe2ad6ef 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1858,6 +1858,6 @@ zh: label_add_contest_succeed_fail: 添加失败,该应用已参赛. label_no_ftapplication: 暂无应用 label_edit_softapplication: 修改应用 - + label_contest_delete: 删除竞赛 \ No newline at end of file From 12ad20cf3b8e4067e9b23443b01fd6008a7fbc87 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Tue, 29 Apr 2014 10:25:24 +0800 Subject: [PATCH 17/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E7=9A=84=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E4=B8=BA=EF=BC=9A=E5=BA=94=E7=94=A8=E5=88=97?= =?UTF-8?q?=E8=A1=A8-Trustie=E2=80=94=E2=80=94=E4=B8=BA=E5=A4=A7=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E6=8A=80=E6=9C=AF=E5=88=9B=E6=96=B0=E7=AD=91=E5=B7=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/softapplications/index.html.erb | 19 +++---------------- config/locales/zh.yml | 1 + 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/app/views/softapplications/index.html.erb b/app/views/softapplications/index.html.erb index 925fa7db5..eed781465 100644 --- a/app/views/softapplications/index.html.erb +++ b/app/views/softapplications/index.html.erb @@ -36,21 +36,6 @@ <%=render :partial => 'layouts/base_softapplication_index_top_content'%> - - - -
<% @softapplications.each do |softapplication| %>
@@ -79,4 +64,6 @@
      -
\ No newline at end of file +
+ +<% html_title l(:label_softapplication_list)%> \ No newline at end of file diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 9fe2ad6ef..74d9898ca 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1859,5 +1859,6 @@ zh: label_no_ftapplication: 暂无应用 label_edit_softapplication: 修改应用 label_contest_delete: 删除竞赛 + label_softapplication_list: 应用列表 \ No newline at end of file From 0f51480bab0c70b95cb09c9f88e87b95a8bd1942 Mon Sep 17 00:00:00 2001 From: kg Date: Tue, 29 Apr 2014 10:36:09 +0800 Subject: [PATCH 18/36] amend course search --- app/controllers/projects_controller.rb | 191 +++++++++++++++++++------ 1 file changed, 150 insertions(+), 41 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 75df3bc15..ee57935f1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -138,6 +138,17 @@ class ProjectsController < ApplicationController @project_count = @projects_all.count @project_pages = Paginator.new @project_count, per_page_option, params['page'] +#gcm activity count + + @project_activity_count=Hash.new + + @projects_all.each do |project| + @project_activity_count[project.id]=0 + end + + @project_activity_count=get_project_activity @projects_all,@project_activity_count + +#gcm end case params[:project_sort_type] when '0' @@ -149,6 +160,14 @@ class ProjectsController < ApplicationController when '2' @projects = @projects_all.order("watchers_count desc") @s_type = 2 + + #gcm + when '3' + #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + @projects=handle_project @projects_all,@project_activity_count + @s_type = 3 + @projects = @projects[@project_pages.offset, @project_pages.per_page] + else @projects = @projects = @projects_all.order("grade desc") @s_type = 1 @@ -193,22 +212,16 @@ class ProjectsController < ApplicationController @project_count = @projects_all.count @project_pages = Paginator.new @project_count, per_page_option, params['page'] -#gcm activity count + #gcm activity count @project_activity_count=Hash.new - + #count initialize @projects_all.each do |project| @project_activity_count[project.id]=0 end - @project_activity_count=get_project_activity @projects_all,@project_activity_count - - - #movebegin - - #moveend - -#gcm end + #@project_activity_count=get_project_activity @projects_all,@project_activity_count + #gcm end case params[:project_sort_type] @@ -216,27 +229,48 @@ class ProjectsController < ApplicationController @projects = @projects_all.order("created_on desc") @s_type = 0 @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + when '1' @projects = @projects_all.order("course_ac_para desc") @s_type = 1 @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + when '2' @projects = @projects_all.order("watchers_count desc") @s_type = 2 @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + #gcm when '3' - #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + + #gcm + @project_activity_count=get_project_activity @projects_all,@project_activity_count + #gcmend + @projects=handle_project @projects_all,@project_activity_count @s_type = 3 @projects = @projects[@project_pages.offset, @project_pages.per_page] - #gcmend - else @s_type = 0 @projects = @projects_all.order("created_on desc") @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + end respond_to do |format| @@ -255,17 +289,76 @@ class ProjectsController < ApplicationController end end +#gcm def search #modified by nie project_type = params[:project_type].to_i projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities @projects = projects_all.visible - @projects = @projects.visible.like(params[:name]) if params[:name].present? - @offset, @limit = api_offset_and_limit({:limit => 10}) - @project_count = @projects.visible.count - @project_pages = Paginator.new @project_count, @limit, params['page'] - @offset ||= @project_pages.offset - @projects = @projects.visible.offset(@offset).limit(@limit).all + @projects_all = @projects.visible.like(params[:name]) if params[:name].present? + + @project_count = @projects_all.count + @project_pages = Paginator.new @project_count, per_page_option, params['page'] + + #gcm activity count + + @project_activity_count=Hash.new + # count initialize + @projects_all.each do |project| + @project_activity_count[project.id]=0 + end + + #@project_activity_count=get_project_activity @projects_all,@project_activity_count + + #gcm end + + + case params[:project_sort_type] + when '0' + @projects = @projects_all.order("created_on desc") + @s_type = 0 + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + when '1' + @projects = @projects_all.order("course_ac_para desc") + @s_type = 1 + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + when '2' + @projects = @projects_all.order("watchers_count desc") + @s_type = 2 + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + when '3' + #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + @project_activity_count=get_project_activity @projects_all,@project_activity_count_array #gcm + @projects=handle_project @projects_all,@project_activity_count + @s_type = 3 + @projects = @projects[@project_pages.offset, @project_pages.per_page] + + else + @s_type = 0 + @projects = @projects_all.order("created_on desc") + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + end + respond_to do |format| format.html { render :layout => 'base' @@ -285,6 +378,38 @@ class ProjectsController < ApplicationController } end end +#gcmend + + # def search + # #modified by nie + # project_type = params[:project_type].to_i + # projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities + # @projects = projects_all.visible + # @projects = @projects.visible.like(params[:name]) if params[:name].present? + # @offset, @limit = api_offset_and_limit({:limit => 10}) + # @project_count = @projects.visible.count + # @project_pages = Paginator.new @project_count, @limit, params['page'] + # @offset ||= @project_pages.offset + # @projects = @projects.visible.offset(@offset).limit(@limit).all + # respond_to do |format| + # format.html { + # render :layout => 'base' + # scope = Project + # unless params[:closed] + # scope = scope.active + # end + # } + # format.api { + # # @offset, @limit = api_offset_and_limit + # # @project_count = Project.visible.count + # # @projects = Project.visible.offset(@offset).limit(@limit).order('lft').all + # } + # format.atom { + # projects = Project.visible.order('created_on DESC').limit(Setting.feeds_limit.to_i).all + # render_feed(projects, :title => "#{Setting.app_title}: #{l(:label_project_latest)}") + # } + # end + # end # added by fq def new_join @@ -953,7 +1078,7 @@ class ProjectsController < ApplicationController end #file_count - Attachment.where(container_id: @project_ids).where("container_type='Project' AND created_on>?",date_from).each do |attachment| + Attachment.where(container_id: @project_ids, container_type: Project).where("created_on>?",date_from).each do |attachment| activities[attachment.container_id]+=1 end @@ -969,7 +1094,7 @@ class ProjectsController < ApplicationController end #feedbackc_count - JournalsForMessage.where(jour_id: @project_ids).each do |jourformess| + JournalsForMessage.where(jour_id: @project_ids, jour_type: Project).each do |jourformess| activities[jourformess.jour_id]+=1 end @@ -988,17 +1113,16 @@ class ProjectsController < ApplicationController #gcm def handle_project projects,activities - @project_activity_count_array=activities.values() + project_activity_count_array=activities.values() - project_all_array=[] + project_array=[] i=0; projects.each do |project| - id=project.id - @project_all_array[i]=project + project_array[i]=project i=i+1 end - projects=desc_sort_course_by_avtivity(@project_activity_count_array,project_all_array) + projects=desc_sort_course_by_avtivity(project_activity_count_array,project_array) return projects end @@ -1017,21 +1141,6 @@ class ProjectsController < ApplicationController end end return projects - - - - # len=activity_count.length - # for i in 0...(len-1) do - # for j in 0...(len-i-1) do - # if activity_count[j]>activity_count[j+1] do - # count_temp=activity_count[j] - - # activity_count[j]=activity_count[j+1] - # activity_count[j+1]=count_temp - # end - # end - # end -#desc_sort_course_by_avtivity(@project_ids,@project_activity_count_array,@projects_all) end #gcmend From 0403666cea2ed73974f8e86671d27e98d47e7c97 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Tue, 29 Apr 2014 14:34:45 +0800 Subject: [PATCH 19/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E7=9A=84=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/softapplications_controller.rb | 9 ++++++++- app/views/softapplications/index.html.erb | 9 +++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/controllers/softapplications_controller.rb b/app/controllers/softapplications_controller.rb index 9cc940bdd..3d6a23a30 100644 --- a/app/controllers/softapplications_controller.rb +++ b/app/controllers/softapplications_controller.rb @@ -7,7 +7,14 @@ class SoftapplicationsController < ApplicationController # GET /softapplications.json def index @softapplications = Softapplication.all - + @limit = 5 + #new added + @softapplication_count = @softapplications.count + @softapplication_pages = Paginator.new @softapplication_count, @limit, params['page'] + @offset ||= @softapplication_pages.offset + @softapplications = @softapplications[@offset,@limit] + #new added end + #@softapplications = @softapplications[@offset,@limit] respond_to do |format| format.html # index.html.erb format.json { render json: @softapplications } diff --git a/app/views/softapplications/index.html.erb b/app/views/softapplications/index.html.erb index eed781465..710f36dce 100644 --- a/app/views/softapplications/index.html.erb +++ b/app/views/softapplications/index.html.erb @@ -59,11 +59,12 @@ <% end %> - -
- +
+<% 100.step(20,-20) do |star| %> +
+
+
+
+
+
+<%= @stars_status_map["star#{(star/20).to_s}".to_sym] %> +
+<% end %> +
软件评论:
评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %>
From 0cfd5929d8c4f802d25da5b70cbdba728391cfa0 Mon Sep 17 00:00:00 2001 From: yanxd Date: Wed, 30 Apr 2014 00:34:29 +0800 Subject: [PATCH 25/36] Revert "tag todo" eee This reverts commit 08b27f38a71a6c59052db599e7c8d18e245cf97d. --- app/views/files/index.html.erb | 132 +++++++++++++++++- .../stylesheets/application.css | 128 +---------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/app/views/files/index.html.erb b/app/views/files/index.html.erb index 98befd091..7552b9941 100644 --- a/app/views/files/index.html.erb +++ b/app/views/files/index.html.erb @@ -1,4 +1,132 @@ + + <%=(@project.project_type == 1) ? t(:label_user_course) : t(:label_project) %>资源共享区 @@ -88,9 +216,7 @@
<% @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设Z | %> -
<%#需要交由浏览器异步刷新,或者一次连表查询,n+1 查询问题搞不定%> - <%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"}%> -
+ <%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"}%>
diff --git a/public/themes/redpenny-master/stylesheets/application.css b/public/themes/redpenny-master/stylesheets/application.css index 306d6d113..b73123590 100644 --- a/public/themes/redpenny-master/stylesheets/application.css +++ b/public/themes/redpenny-master/stylesheets/application.css @@ -2247,130 +2247,4 @@ ul.messages-for-user-reply li { .footer_text_link{ margin: 0px 5px; } -/*gcm*/ - -#ver-zebra, .file_table_des -{ - font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; - font-size: 12px; - margin: 5px 10px; - width: 98%; - text-align: left; - border-collapse: collapse; - line-height: 20px; - font-size: 14px; -} -#ver-zebra th -{ - font-size: 14px; - font-weight: normal; - padding: 12px 15px; - border-right: 1px solid #fff; - border-left: 1px solid #fff; - color: #039; - text-align: left; -} -#ver-zebra td -{ - padding: 8px 15px; - border-right: 1px solid #fff; - border-left: 1px solid #fff; - color: #669; -} -#ver-zebra td.description { - background-color: white; - padding: 0px; - margin: 0px auto; -} -div.tags_area { - padding: 2px 10px 10px 10px; - margin: 0px; - margin-bottom: 10px; - /*border-bottom: 1px dashed #CCCCCC;*/ - overflow: hidden; - position: relative; -} -.tags_gradint { -} -.read-more{ - padding: 5px; - border-top: 4px double #ddd; - background: #fff; - color: #333; -} -.read-more a{ - padding-right: 22px; - background: url() no-repeat 100% 50%; - font-weight: bold; - text-decoration: none; -} -.read-more a:hover{ - color: #000; -} -.vzebra-odd -{ - background: #eff2ff; -} -.vzebra-even -{ - background: #e8edff; -} -#ver-zebra #vzebra-adventure, #ver-zebra #vzebra-children -{ - background: #ffffff; - border-bottom: 1px solid #c8d4fd; -} -#ver-zebra #vzebra-comedy, #ver-zebra #vzebra-action -{ - background: #ffffff; - border-bottom: 1px solid #d6dfff; -} -.filename{ - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -div.pagination{ - margin: 10px 0px; - height: 1.5em; - text-align: left; - font-size: 13px; -} -.m5p5{ - display: inline-block; - height: auto; - color: white !important; - margin: 8px; - padding: 3px 7px; -} -.m5p5:hover { - text-decoration: none; - /*padding-bottom: 3px;*/ - /*border-bottom: 1px solid #666666;*/ - border-radius: 4px; - border: 1px solid #15bccf; - box-shadow: 3px 3px 3px #666666; -} -.relation_file_div{ - margin: 0px 25px; -} -.relation_file_div fieldset{ - margin: 0px 0px; - padding: 10px; - border-radius: 5px; - transition: all 2s linear 1s; -} -.relation_file_div input#attach_search:focus{ - border: 1px solid #1B95C6; - box-shadow: 0px 0px 4px #1B95C6; - width: 200px; -} -.relation_file_div input#attach_search{ - width: 150px; - outline: none; - border-radius: 5px; - -webkit-transition: 1s width; - -moz-transition : 1s width; - -o-transition : 1s width; - transition : 1s width; -} \ No newline at end of file +/*gcm*/ \ No newline at end of file From 040e4b27409d678253b3803e6be9d3b3f3652447 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 09:13:05 +0800 Subject: [PATCH 26/36] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=89=93=E5=88=86.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/user_score_helper.rb | 20 ++++++++++---------- app/views/test/index.html.erb | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/helpers/user_score_helper.rb b/app/helpers/user_score_helper.rb index 5b455a01b..42b81fbdd 100644 --- a/app/helpers/user_score_helper.rb +++ b/app/helpers/user_score_helper.rb @@ -62,8 +62,8 @@ module UserScoreHelper issues.each do |i| ptcs = PraiseTreadCache.where('object_id = ?', i.id) ptcs.each do |p| - praise_count = praise_count + p.praise_num - tread_count = tread_count + p.tread_num + praise_count = praise_count + p.praise_num.to_i + tread_count = tread_count + p.tread_num.to_i end end @@ -71,8 +71,8 @@ module UserScoreHelper bids.each do |b| ptcs = PraiseTreadCache.where('object_id = ?', b.id) ptcs.each do |p| - praise_count = praise_count + p.praise_num - tread_count = tread_count + p.tread_num + praise_count = praise_count + p.praise_num.to_i + tread_count = tread_count + p.tread_num.to_i end end @@ -80,8 +80,8 @@ module UserScoreHelper contests.each do |c| ptcs = PraiseTreadCache.where('object_id = ?', c.id) ptcs.each do |p| - praise_count = praise_count + p.praise_num - tread_count = tread_count + p.tread_num + praise_count = praise_count + p.praise_num.to_i + tread_count = tread_count + p.tread_num.to_i end end @@ -91,7 +91,7 @@ module UserScoreHelper skill_score = 0 if level == 0 - skill_score = praise_count - 0.5 * tread_count + skill_score = praise_count - 2.5 * tread_count end if level == 1 skill_score = 2 * praise_count - 1.5 * tread_count @@ -135,7 +135,7 @@ module UserScoreHelper issues.each do |i| ptcs = PraiseTreadCache.where('object_id = ?', i.id) ptcs.each do |p| - if p.praise_num > max_praise_num + if p.praise_num.to_i > max_praise_num.to_i max_praise_num = p.praise_num end end @@ -145,7 +145,7 @@ module UserScoreHelper bids.each do |b| ptcs = PraiseTreadCache.where('object_id = ?', b.id) ptcs.each do |p| - if p.praise_num > max_praise_num + if p.praise_num.to_i > max_praise_num.to_i max_praise_num = p.praise_num end end @@ -155,7 +155,7 @@ module UserScoreHelper contests.each do |c| ptcs = PraiseTreadCache.where('object_id = ?', c.id) ptcs.each do |p| - if p.praise_num > max_praise_num + if p.praise_num.to_i > max_praise_num.to_i max_praise_num = p.praise_num end end diff --git a/app/views/test/index.html.erb b/app/views/test/index.html.erb index 0aa1a5d95..589412dda 100644 --- a/app/views/test/index.html.erb +++ b/app/views/test/index.html.erb @@ -17,8 +17,8 @@ <%= calculate_skill_count(user) %> <%= calculate_file(user) %> <%= calculate_issue(user) %> - <%= calculate_level(user) %> ---> + <%= calculate_level(user) %>--> + <%= user.changesets.count %> <% end %> From 74256d5150862f790ec7e5a6be9baa0386bf1632 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Wed, 30 Apr 2014 09:48:48 +0800 Subject: [PATCH 27/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84=E8=B7=9D=E7=A6=BB=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/softapplications/show.html.erb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/softapplications/show.html.erb b/app/views/softapplications/show.html.erb index 06cc95e30..9292520ab 100644 --- a/app/views/softapplications/show.html.erb +++ b/app/views/softapplications/show.html.erb @@ -56,14 +56,14 @@
-
应用简介:
-
<%= @softapplication.description %>
+
应用简介:
+
<%= @softapplication.description %>
软件截图:
-
+
<% @image_results.take(4).each do |attachment| %> <%= link_to_attachment_img attachment, :class => "soft-application", :download => "true" %> <% end %> @@ -72,7 +72,7 @@
-
+
软件评论:
评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %>
From 37304c1232731d08ef57264e39d14c4c751fe036 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Wed, 30 Apr 2014 11:34:04 +0800 Subject: [PATCH 28/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84=E6=89=93=E5=88=86=E8=AF=A6?= =?UTF-8?q?=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/softapplications/show.html.erb | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/views/softapplications/show.html.erb b/app/views/softapplications/show.html.erb index 9292520ab..7d876d6c8 100644 --- a/app/views/softapplications/show.html.erb +++ b/app/views/softapplications/show.html.erb @@ -61,6 +61,32 @@
+
+
应用得分:
+
+
+
得分比例
+
+ <% 100.step(20,-20) do |star| %> +
+
+
+
+
+
+ <%= @stars_status_map["star#{(star/20).to_s}".to_sym] %> +
+ <% end %> +
+
+
+
最终得分
+
<%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %>
+
+
+
+
+
软件截图:
From 90b53a7efbe3828ecee49592ebf8afc5fac2de58 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 13:51:19 +0800 Subject: [PATCH 29/36] =?UTF-8?q?=E6=89=93=E5=88=86=E7=9A=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/user_score_helper.rb | 129 +++++++++++++++++++++++-------- app/views/test/index.html.erb | 9 +-- 2 files changed, 99 insertions(+), 39 deletions(-) diff --git a/app/helpers/user_score_helper.rb b/app/helpers/user_score_helper.rb index 42b81fbdd..43ee05db8 100644 --- a/app/helpers/user_score_helper.rb +++ b/app/helpers/user_score_helper.rb @@ -54,57 +54,111 @@ module UserScoreHelper watcher_count = Watcher.where("watchable_type = 'principal' AND watchable_id = ?", user.id).count end + + + def calculate_skill_count(user) - praise_count = 0 - tread_count = 0 + praise_count_l0 = 0 + praise_count_l1 = 0 + praise_count_l2 = 0 + tread_count_l0 = 0 + tread_count_l1 = 0 + tread_count_l2 = 0 issues = Issue.where('author_id = ?', user.id) issues.each do |i| - ptcs = PraiseTreadCache.where('object_id = ?', i.id) - ptcs.each do |p| - praise_count = praise_count + p.praise_num.to_i - tread_count = tread_count + p.tread_num.to_i + pts = PraiseTread.where('praise_tread_object_id = ?', i.id) + pts.each do |p| + templevel = calculate_level(User.find(p.user_id)) + + if templevel.to_i == 0 + if p.praise_or_tread == 1 + praise_count_l0 = praise_count_l0 + 1 + else + tread_count_l0 = tread_count_l0 + 1 + end + end + if templevel.to_i == 1 + if p.praise_or_tread == 1 + praise_count_l1 = praise_count_l1 + 1 + else + tread_count_l1 = tread_count_l1 + 1 + end + end + if templevel.to_i == 2 + if p.praise_or_tread == 1 + praise_count_l2 = praise_count_l2 + 1 + else + tread_count_l2 + tread_count_l2 + 1 + end + end end end + + + bids = Bid.where('author_id = ?', user.id) bids.each do |b| - ptcs = PraiseTreadCache.where('object_id = ?', b.id) + ptcs = PraiseTread.where('praise_tread_object_id = ?', b.id) ptcs.each do |p| - praise_count = praise_count + p.praise_num.to_i - tread_count = tread_count + p.tread_num.to_i + templevel = calculate_level(User.find(p.user_id)) + + if templevel.to_i == 0 + if p.praise_or_tread == 1 + praise_count_l0 = praise_count_l0 + 1 + else + tread_count_l0 = tread_count_l0 + 1 + end + end + if templevel.to_i == 1 + if p.praise_or_tread == 1 + praise_count_l1 = praise_count_l1 + 1 + else + tread_count_l1 = tread_count_l1 + 1 + end + end + if templevel.to_i == 2 + if p.praise_or_tread == 1 + praise_count_l2 = praise_count_l2 + 1 + else + tread_count_l2 + tread_count_l2 + 1 + end + end end end contests = Contest.where('author_id = ?', user.id) contests.each do |c| - ptcs = PraiseTreadCache.where('object_id = ?', c.id) + ptcs = PraiseTread.where('praise_tread_object_id = ?', c.id) ptcs.each do |p| - praise_count = praise_count + p.praise_num.to_i - tread_count = tread_count + p.tread_num.to_i + templevel = calculate_level(User.find(p.user_id)) + + if templevel.to_i == 0 + if p.praise_or_tread == 1 + praise_count_l0 = praise_count_l0 + 1 + else + tread_count_l0 = tread_count_l0 + 1 + end + end + if templevel.to_i == 1 + if p.praise_or_tread == 1 + praise_count_l1 = praise_count_l1 + 1 + else + tread_count_l1 = tread_count_l1 + 1 + end + end + if templevel.to_i == 2 + if p.praise_or_tread == 1 + praise_count_l2 = praise_count_l2 + 1 + else + tread_count_l2 + tread_count_l2 + 1 + end + end end end - level = calculate_level(user) - - skill_score = 0 - - if level == 0 - skill_score = praise_count - 2.5 * tread_count - end - if level == 1 - skill_score = 2 * praise_count - 1.5 * tread_count - end - if level == 2 - skill_socre = 3 * praise_count - 2.5 * tread_count - end - if level == 3 - skill_socre = 4 * praise_count - 3.5 * tread_count - end - if level == 4 - skill_socre = 5 * praise_count - 4.5 * tread_count - end # case level # when 0 skill_score = praise_count - 0.5 * tread_count @@ -114,12 +168,19 @@ module UserScoreHelper # when 4 skill_socre = 5 * praise_count - 4.5 * tread_count # end - + skill_score = 2 * praise_count_l0.to_f + 3 * praise_count_l1.to_f + 4 * praise_count_l2.to_f + - 1 * tread_count_l0.to_f - 1.5 * tread_count_l1.to_f - 2 * tread_count_l2.to_f tread_user_count = PraiseTread.where('praise_or_tread = ? AND user_id = ?', 0, user.id).count - skill_score = skill_score - 0.5 * tread_user_count - + skill_score = skill_score.to_f - tread_user_count.to_f + + + + + + + return skill_score diff --git a/app/views/test/index.html.erb b/app/views/test/index.html.erb index 589412dda..eeef0f3da 100644 --- a/app/views/test/index.html.erb +++ b/app/views/test/index.html.erb @@ -12,14 +12,13 @@ <%= user.lastname %><%= user.firstname %> - + <%= calculate_file(user) %> + <%= calculate_issue(user) %> + <%= calculate_level(user) %> - <%= user.changesets.count %> <% end %> From e2a9e58ef54d1cde57f1980c4dfad8554340131e Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 13:55:54 +0800 Subject: [PATCH 30/36] =?UTF-8?q?=20=E6=9C=AC=E5=9C=B0=E5=8C=96=E5=81=9A?= =?UTF-8?q?=E4=BA=86=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zh.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 74d9898ca..46f1407a5 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1762,6 +1762,10 @@ zh: role_of_course: 课程角色 label_student: 学生 + #added by Wen + label_school_all: 中国高校 + + label_project_grade: 项目得分 label_user_grade: 个人得分 label_user_for_project_grade: 个人得分 From 21fe914d8f48a6e80d57f5e3f02e040c68180e87 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Wed, 30 Apr 2014 15:10:55 +0800 Subject: [PATCH 31/36] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E8=AF=AF=E5=88=A0?= =?UTF-8?q?=E7=9A=84=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zh.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 46f1407a5..9acb5e592 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1865,4 +1865,17 @@ zh: label_contest_delete: 删除竞赛 label_softapplication_list: 应用列表 + label_coursefile_sharingarea: 课程资源共享区 + label_sort_by_activity: 按动态数排序 + label_homework: 课程实践 + label_x_activity: + zero: 个动态 + one: 个动态 + other: 个动态 + label_school_all: 中国高校 + label_upload_files: 上传资源 + label_relation_files: 关联已有资源 + label_contest_settings: 配置竞赛 + label_contest_delete: 删除竞赛 + label_school_all: 学校列表 \ No newline at end of file From 35c424814e2742d1e2162bba1f35aed35664f919 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Wed, 30 Apr 2014 15:28:22 +0800 Subject: [PATCH 32/36] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=BA=94=E7=94=A8=E6=B7=BB=E5=8A=A0=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E9=93=BE=E6=8E=A5=E5=88=B0=E5=BA=94=E7=94=A8=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/welcome/contest.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/welcome/contest.html.erb b/app/views/welcome/contest.html.erb index 6c89489c6..daeca6de4 100644 --- a/app/views/welcome/contest.html.erb +++ b/app/views/welcome/contest.html.erb @@ -201,7 +201,7 @@

最新参赛应用

- + <%= link_to "更多>>", {:controller => 'softapplications', :action => 'index', :host => Setting.contest_domain}, :target => "_blank" %>
<% if Softapplication.count > 0%>
From 53574a95926857c42a2b5ef9777f2e7f1ef629f9 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 16:19:49 +0800 Subject: [PATCH 33/36] wenwenwen --- config/locales/zh.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 9acb5e592..15cd1dca4 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1877,5 +1877,4 @@ zh: label_relation_files: 关联已有资源 label_contest_settings: 配置竞赛 label_contest_delete: 删除竞赛 - label_school_all: 学校列表 \ No newline at end of file From 688438241ecf3ebf18f637e99755285e3d2d89d8 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Wed, 30 Apr 2014 16:46:24 +0800 Subject: [PATCH 34/36] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...softapplication_index_top_content.html.erb | 2 +- app/views/softapplications/index.html.erb | 38 +------------------ app/views/softapplications/show.html.erb | 2 +- 3 files changed, 4 insertions(+), 38 deletions(-) diff --git a/app/views/layouts/_base_softapplication_index_top_content.html.erb b/app/views/layouts/_base_softapplication_index_top_content.html.erb index 0a41036f1..93b177b99 100644 --- a/app/views/layouts/_base_softapplication_index_top_content.html.erb +++ b/app/views/layouts/_base_softapplication_index_top_content.html.erb @@ -3,7 +3,7 @@ 创新竞赛社区 <%= l(:label_user_location) %> : - +
<%= image_tag('/images/app1.png')%>
<%= softapplication.description.truncate(95, omission: '...') %>
-
+
<%contest = softapplication.contests.first%> -

所属竞赛:<%= contest ? link_to(contest.name, show_softapplication_contest_path(contest) ) : '尚未加入竞赛'%>

+

所属竞赛:<%= contest ? link_to(contest.name.truncate(10, omission: '...'), show_softapplication_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%>

所属类别:<%= softapplication.app_type_name %>

系统支持:<%= softapplication.android_min_version_available %>

diff --git a/app/views/softapplications/show.html.erb b/app/views/softapplications/show.html.erb index 7d876d6c8..510250ee0 100644 --- a/app/views/softapplications/show.html.erb +++ b/app/views/softapplications/show.html.erb @@ -87,7 +87,7 @@
-
+
软件截图:
<% @image_results.take(4).each do |attachment| %> From c893227609d390f5a006dda0dfa061c52ce61a5e Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 17:47:20 +0800 Subject: [PATCH 35/36] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E8=B5=84=E6=96=99?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=AD=A6=E6=A0=A1=E9=80=89=E6=8B=A9=E6=A1=86?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/my/account.html.erb | 37 +++++++++++++++++++++++------------ public/stylesheets/nyan.css | 10 +++++++--- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 341c050d7..58f684009 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -108,22 +108,23 @@ -

+

<% unless User.current.user_extensions.school.nil? %> - <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province, User.current.user_extensions.school.province), :onclick => "get_options(this.value)" %> - - - - - + + <%= l(:field_occupation) %> * + + + + + - <% else %> - <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onclick => "get_options(this.value)" %> + + <%= l(:field_occupation) %> * + + + - - <% end %>

@@ -131,6 +132,18 @@

学校列表

+
+
    + <% @ss = School.find_by_sql("select distinct province from schools") %> + <% @ss.each do |s| %> +
  • + <%= s.province %> + +
  • + <% end %> +
+
+
    diff --git a/public/stylesheets/nyan.css b/public/stylesheets/nyan.css index 62c47abb2..85751a088 100644 --- a/public/stylesheets/nyan.css +++ b/public/stylesheets/nyan.css @@ -227,17 +227,15 @@ body { display: none; padding-bottom: 2px; width: 1000px; - height: 500px; z-index: 100; left: 50%; margin-left: -202px; opacity: 1; position: fixed; top: 200px; - overflow: scroll; } #WOpenWindow .school_list{ - width:1000px; + width: 900px; line-height: 20px; } @@ -259,6 +257,12 @@ body { } #WOpenWindow .content{ width: 1000px; + height: 220px; + overflow: scroll; +} + +#WOpenWindow .pcontent{ + } From e6288627adda9c789519ca22c872f2174daab8b0 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 20:26:15 +0800 Subject: [PATCH 36/36] =?UTF-8?q?=E4=B8=AD=E5=9B=BD=E9=AB=98=E6=A0=A1?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E4=B8=8B=E6=8B=89=E6=A1=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/school_controller.rb | 13 +++++++++++++ app/views/school/index.html.erb | 24 +++++++++++++++++++++--- config/routes.rb | 3 +++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb index 5ba6d836b..5b405a27a 100644 --- a/app/controllers/school_controller.rb +++ b/app/controllers/school_controller.rb @@ -32,6 +32,19 @@ class SchoolController < ApplicationController def index end + + def get_province + @provinces = School.find_by_sql("select distinct province from schools") + + options = "" + + @provinces.each do |p| + options << "" + end + + render :text => options + + end def get_options @school = School.where("province = ?", params[:province]) diff --git a/app/views/school/index.html.erb b/app/views/school/index.html.erb index c9fca54aa..31bbc587f 100644 --- a/app/views/school/index.html.erb +++ b/app/views/school/index.html.erb @@ -1,4 +1,22 @@ <% port = ":3000" if Rails.env.development? %> + + +