From d8a0c1916676fc1fa5e0eb0739a79a8fae9d40d0 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Wed, 27 Dec 2017 11:29:49 +0900 Subject: [PATCH 1/9] Fix XML oEmbed support discovery (#6104) --- app/lib/provider_discovery.rb | 2 +- spec/fixtures/requests/oembed_json_xml.html | 8 +++++++- spec/fixtures/requests/oembed_xml.html | 8 +++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/lib/provider_discovery.rb b/app/lib/provider_discovery.rb index 04ba381010..5732e4fcb4 100644 --- a/app/lib/provider_discovery.rb +++ b/app/lib/provider_discovery.rb @@ -29,7 +29,7 @@ class ProviderDiscovery < OEmbed::ProviderDiscovery end if format.nil? || format == :xml - provider_endpoint ||= html.at_xpath('//link[@type="application/xml+oembed"]')&.attribute('href')&.value + provider_endpoint ||= html.at_xpath('//link[@type="text/xml+oembed"]')&.attribute('href')&.value format ||= :xml if provider_endpoint end diff --git a/spec/fixtures/requests/oembed_json_xml.html b/spec/fixtures/requests/oembed_json_xml.html index b5fc9bed09..8afd8e9972 100644 --- a/spec/fixtures/requests/oembed_json_xml.html +++ b/spec/fixtures/requests/oembed_json_xml.html @@ -1,8 +1,14 @@ + - + diff --git a/spec/fixtures/requests/oembed_xml.html b/spec/fixtures/requests/oembed_xml.html index 5d7633e713..bdfcca1707 100644 --- a/spec/fixtures/requests/oembed_xml.html +++ b/spec/fixtures/requests/oembed_xml.html @@ -1,7 +1,13 @@ - + + From 093af89c4365608cfbdede92d65fa8ccd79430be Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Wed, 27 Dec 2017 11:31:30 +0900 Subject: [PATCH 2/9] Move the mastodon on Getting Started column to drawer column (#6109) Getting Started column obtained many links, and it became much taller. Because of its height, Getting Started column required long scrolling on devices with small screen, such as 4 inch phones and 10 inch laptops. This change moves the mastodon which took large space on the column to drawer column. The drawer column has only the compose form and has more space. --- ...etting-started.png => mastodon-drawer.png} | Bin 34539 -> 32449 bytes app/javascript/images/wave-drawer.png | Bin 0 -> 3269 bytes .../mastodon/features/compose/index.js | 1 + .../features/getting_started/index.js | 24 ++++++++---------- .../styles/mastodon/components.scss | 16 +++++------- 5 files changed, 19 insertions(+), 22 deletions(-) rename app/javascript/images/{mastodon-getting-started.png => mastodon-drawer.png} (56%) create mode 100644 app/javascript/images/wave-drawer.png diff --git a/app/javascript/images/mastodon-getting-started.png b/app/javascript/images/mastodon-drawer.png similarity index 56% rename from app/javascript/images/mastodon-getting-started.png rename to app/javascript/images/mastodon-drawer.png index e05dd493fe806f3aeda546b18080a9575b10aed7..a1fb642a003b2e2b652b1e6022a84f08dc76105f 100644 GIT binary patch delta 12951 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 diff --git a/app/javascript/images/wave-drawer.png b/app/javascript/images/wave-drawer.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9f9e1d85d222e7bf80649c55783db928cc79d4 GIT binary patch literal 3269 zcmV;$3_A0PP)001ut1^@s6g=d3U000U7X+uL$Nkc;* zaB^>EX>4Tx07!|ImUmPXSsKM(Rp&%%Xfiah$vGp?EXLrxe*|WFK_v&}P^Ui(m)%&9^03-)i za&jUp1V9oujpyrZM-L7OrQ@Ce67q-u9MEL3Q3mz zB+Q9QWg|A;2uE^K*+~eWMOcHK%u7R<<8*%wq9k03b#neR>8v2Js>0BCN;d#BmWmg|Ia{mc>DM0b#AAq|FGEWDr)1 z{1=~?fAfs|=E-8keB-sVd==h5Dm5*NuK$02j{mKs#PmPcSpDkcC~kls@)kf!2Ka+0 zkP6a}kq(fh)1tD{RwvqTPTs>}-;JEv?ysKOApnGE09?P$PUmH;^;WM7U;q&a0#P6d;wg%2n4*SC!;TSjt z&W7{hy>JCw2cLjD;4APgcns#lFW^NKK#@>1lmbc{Wrngxd7(m4(I_5jJE{;>j;ceo zqPkK2s5>Y=Y993gjYU(@bhI|w677NxK(o;)=nxirdsz0W?7SRJjwu%}S0;B!Zcd&mZ!I4uUnYN9 z{yANYZc9(3SJ3>SGXkoO>wYXY!S`*r2ZCmXO?H27x9h#1ZPM%Ju z&P!co-B8{Ay8XIe^o;cq^^WU3)ECir)6diI)_-lFVZb)1GPr9!z#}tyosIR(xx^b%gbg)_fZU8$Fpm_V!QC3ld$!)gVYPUn%Be(bNP}-5dV>;J4w{a(NXTr{3^7Qgb z^WN?X+SQ#eo1dFM^_}x~Ed>Gvyn>0{mb+`dM}Hsp{m>r6J%{&vDdZI1EYd3~FZxu> zF24DL{tp#Dtn7{6J5*v)a&#YdA9vsQew+P`rNX7zrBeqy4|J5#%L>ch9t=M?P;OLS zbBK5-{Sd#xqoV7u^5K1lKUKz7j#b%JwN=Yh@2Oro!Z|W}lzFtZMz*G?=HriXKi;c# zuI;E(tt&rR{Xd!g)Ko83UsV6Of!n}u^lj{GGHq&VmT4|&fm_mB=1zp2 z7(VH6va40QwYH7cR&)xSNUL^-VF%Q)rDLHpwv*o# z(lv6X&LS&;G&uV{jpOVfq#C)ynJQH1b@ z$@h&P%s%vg4Ei{;ocRg&sp7Nx=k71=UmmR_t*j)oc&x8c0EHAB9Sy+i1^_4_08odK z{2;KF$NtPR(^}tB&EN1^X8S4=0BUmq2w?&cgj5YujMW&_1AsTe{!9R;D}JkgDmB{B zV9krviA0m~m6bO^0N~UC_&l+)vfR0{^0^+_>;nLL-mT@pRmmZlGpO+#zSV*mgGgGod|RCwC$+)HlUKn#T8w2+f{J5XdXm-p z{^bB86)CdVtN9tshCNPSPr(2!; zPixn@{!aH1T7NR0b1%}%>)SiC%xH#6<4L>@Y34rViqZtWR(FD#C)LE(2Cj}FP489x zx0t~9jOnwU?m2%(U-uk$uah*rYtFw{rwMEVTa`5&j9167M{iZWw`ks~btE@L;)SYi z^Rbl{it)SJ(Ts}h@L5-G<`G@7bD zNxFAC+ikFMVgj4M6?!XwQQvy*^hfDD zMz>w-IQ##zCh)vkx9aWEJkM(H+U#p`Um3&N8mZ3rS9-^@qLLdTP5)N2OwilSbpEA1 zVKwwj?voZPU5DscBg_OgfwyYzY&svcC;ph3V)kh@@=@ +
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js index 11fb6d3651..2f02f245f8 100644 --- a/app/javascript/mastodon/features/getting_started/index.js +++ b/app/javascript/mastodon/features/getting_started/index.js @@ -98,19 +98,17 @@ export default class GettingStarted extends ImmutablePureComponent { -
-
-

- -

-

- tootsuite/mastodon }} - /> -

-
+
+

+ +

+

+ tootsuite/mastodon }} + /> +

); diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 63664d6074..3240b38a42 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1758,7 +1758,7 @@ position: absolute; top: 0; left: 0; - background: lighten($ui-base-color, 13%); + background: lighten($ui-base-color, 13%) url('../images/wave-drawer.png') no-repeat bottom / 100% auto; box-sizing: border-box; padding: 0; display: flex; @@ -1771,6 +1771,11 @@ &.darker { background: $ui-base-color; } + + > .mastodon { + background: url('../images/mastodon-drawer.png') no-repeat left bottom / contain; + flex: 1; + } } .pseudo-drawer { @@ -2072,15 +2077,8 @@ overflow-y: auto; } -.getting-started__footer { - display: flex; - flex-direction: column; -} - .getting-started { - box-sizing: border-box; - padding-bottom: 235px; - background: url('../images/mastodon-getting-started.png') no-repeat 0 100%; + background: $ui-base-color; flex: 1 0 auto; p { From 3df85a843ce9715700fd9323ef48f801935bc221 Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 27 Dec 2017 18:21:12 +0100 Subject: [PATCH 3/9] Make host_meta/webfinger replies cacheable (fixes #6100) (#6101) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make host_meta/webfinger replies cacheable (fixes #6100) Drop common code for handling users and sessions as webfinger queries are very basic, public APIs. Also explicitly mark results as cacheable with “expires_in”. * Add “Vary: Accept” header for caching since content-negociation is used --- app/controllers/well_known/host_meta_controller.rb | 6 +++++- app/controllers/well_known/webfinger_controller.rb | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/well_known/host_meta_controller.rb b/app/controllers/well_known/host_meta_controller.rb index 40f96eaa25..5fb70288a2 100644 --- a/app/controllers/well_known/host_meta_controller.rb +++ b/app/controllers/well_known/host_meta_controller.rb @@ -1,15 +1,19 @@ # frozen_string_literal: true module WellKnown - class HostMetaController < ApplicationController + class HostMetaController < ActionController::Base include RoutingHelper + before_action { response.headers['Vary'] = 'Accept' } + def show @webfinger_template = "#{webfinger_url}?resource={uri}" respond_to do |format| format.xml { render content_type: 'application/xrd+xml' } end + + expires_in(3.days, public: true) end end end diff --git a/app/controllers/well_known/webfinger_controller.rb b/app/controllers/well_known/webfinger_controller.rb index 5cc606808b..28654b61d8 100644 --- a/app/controllers/well_known/webfinger_controller.rb +++ b/app/controllers/well_known/webfinger_controller.rb @@ -1,9 +1,11 @@ # frozen_string_literal: true module WellKnown - class WebfingerController < ApplicationController + class WebfingerController < ActionController::Base include RoutingHelper + before_action { response.headers['Vary'] = 'Accept' } + def show @account = Account.find_local!(username_from_resource) @@ -16,6 +18,8 @@ module WellKnown render content_type: 'application/xrd+xml' end end + + expires_in(3.days, public: true) rescue ActiveRecord::RecordNotFound head 404 end From a52820a7fd0ea470a51467da03a05a8fc454a26a Mon Sep 17 00:00:00 2001 From: MitarashiDango Date: Fri, 29 Dec 2017 00:20:34 +0900 Subject: [PATCH 4/9] bug fix (WebPush does not work) (#6120) --- .../mastodon/actions/push_notifications/registerer.js | 2 +- app/javascript/mastodon/main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/actions/push_notifications/registerer.js b/app/javascript/mastodon/actions/push_notifications/registerer.js index f851c311c0..1d040bc8c8 100644 --- a/app/javascript/mastodon/actions/push_notifications/registerer.js +++ b/app/javascript/mastodon/actions/push_notifications/registerer.js @@ -51,7 +51,7 @@ const sendSubscriptionToBackend = (subscription, me) => { // Last one checks for payload support: https://web-push-book.gauntface.com/chapter-06/01-non-standards-browsers/#no-payload const supportsPushNotifications = ('serviceWorker' in navigator && 'PushManager' in window && 'getKey' in PushSubscription.prototype); -export default function register () { +export function register () { return (dispatch, getState) => { dispatch(setBrowserSupport(supportsPushNotifications)); const me = getState().getIn(['meta', 'me']); diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.js index 9b18465f55..5d73caa108 100644 --- a/app/javascript/mastodon/main.js +++ b/app/javascript/mastodon/main.js @@ -1,4 +1,4 @@ -import { register as registerPushNotifications } from './actions/push_notifications'; +import * as registerPushNotifications from './actions/push_notifications'; import { default as Mastodon, store } from './containers/mastodon'; import React from 'react'; import ReactDOM from 'react-dom'; From 9427823d5c46bcf7c1651dbb103bca087b387e1c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 29 Dec 2017 19:52:04 +0100 Subject: [PATCH 5/9] Add more instance stats APIs (#6125) * Add GET /api/v1/instance/peers API to reveal known domains * Add GET /api/v1/instance/activity API * Make new APIs disableable, exclude private statuses from activity stats * Fix code style issue * Fix week timestamps --- app/controllers/admin/settings_controller.rb | 4 +++ .../api/v1/instances/activity_controller.rb | 36 +++++++++++++++++++ .../api/v1/instances/peers_controller.rb | 17 +++++++++ app/controllers/application_controller.rb | 9 +++++ .../auth/confirmations_controller.rb | 6 ---- .../concerns/user_tracking_concern.rb | 1 + app/lib/activity_tracker.rb | 31 ++++++++++++++++ app/models/form/admin_settings.rb | 4 +++ app/models/status.rb | 6 ++++ app/models/user.rb | 15 ++++++++ app/views/admin/settings/edit.html.haml | 8 +++++ config/locales/en.yml | 6 ++++ config/routes.rb | 6 +++- config/settings.yml | 3 +- 14 files changed, 144 insertions(+), 8 deletions(-) create mode 100644 app/controllers/api/v1/instances/activity_controller.rb create mode 100644 app/controllers/api/v1/instances/peers_controller.rb create mode 100644 app/lib/activity_tracker.rb diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index eed5fb6b57..487282dc35 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -17,6 +17,8 @@ module Admin bootstrap_timeline_accounts thumbnail min_invite_role + activity_api_enabled + peers_api_enabled ).freeze BOOLEAN_SETTINGS = %w( @@ -24,6 +26,8 @@ module Admin open_deletion timeline_preview show_staff_badge + activity_api_enabled + peers_api_enabled ).freeze UPLOAD_SETTINGS = %w( diff --git a/app/controllers/api/v1/instances/activity_controller.rb b/app/controllers/api/v1/instances/activity_controller.rb new file mode 100644 index 0000000000..36f52c38d7 --- /dev/null +++ b/app/controllers/api/v1/instances/activity_controller.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +class Api::V1::Instances::ActivityController < Api::BaseController + before_action :require_enabled_api! + + respond_to :json + + def show + render_cached_json('api:v1:instances:activity:show', expires_in: 1.day) { activity } + end + + private + + def activity + weeks = [] + + 12.times do |i| + day = i.weeks.ago.to_date + week_id = day.cweek + week = Date.commercial(day.cwyear, week_id) + + weeks << { + week: week.to_time.to_i.to_s, + statuses: Redis.current.get("activity:statuses:local:#{week_id}") || 0, + logins: Redis.current.pfcount("activity:logins:#{week_id}"), + registrations: Redis.current.get("activity:accounts:local:#{week_id}") || 0, + } + end + + weeks + end + + def require_enabled_api! + head 404 unless Setting.activity_api_enabled + end +end diff --git a/app/controllers/api/v1/instances/peers_controller.rb b/app/controllers/api/v1/instances/peers_controller.rb new file mode 100644 index 0000000000..2070c487df --- /dev/null +++ b/app/controllers/api/v1/instances/peers_controller.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class Api::V1::Instances::PeersController < Api::BaseController + before_action :require_enabled_api! + + respond_to :json + + def index + render_cached_json('api:v1:instances:peers:index', expires_in: 1.day) { Account.remote.domains } + end + + private + + def require_enabled_api! + head 404 unless Setting.peers_api_enabled + end +end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a213302cb3..51a978f440 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -121,4 +121,13 @@ class ApplicationController < ActionController::Base end end end + + def render_cached_json(cache_key, **options) + data = Rails.cache.fetch(cache_key, { raw: true }.merge(options)) do + yield.to_json + end + + expires_in options[:expires_in], public: true + render json: data + end end diff --git a/app/controllers/auth/confirmations_controller.rb b/app/controllers/auth/confirmations_controller.rb index d5e8e58ede..2fdb281f40 100644 --- a/app/controllers/auth/confirmations_controller.rb +++ b/app/controllers/auth/confirmations_controller.rb @@ -2,10 +2,4 @@ class Auth::ConfirmationsController < Devise::ConfirmationsController layout 'auth' - - def show - super do |user| - BootstrapTimelineWorker.perform_async(user.account_id) if user.errors.empty? - end - end end diff --git a/app/controllers/concerns/user_tracking_concern.rb b/app/controllers/concerns/user_tracking_concern.rb index 8663c3086b..1e31329411 100644 --- a/app/controllers/concerns/user_tracking_concern.rb +++ b/app/controllers/concerns/user_tracking_concern.rb @@ -17,6 +17,7 @@ module UserTrackingConcern # Mark as signed-in today current_user.update_tracked_fields!(request) + ActivityTracker.record('activity:logins', current_user.id) # Regenerate feed if needed regenerate_feed! if user_needs_feed_update? diff --git a/app/lib/activity_tracker.rb b/app/lib/activity_tracker.rb new file mode 100644 index 0000000000..50e927b0ce --- /dev/null +++ b/app/lib/activity_tracker.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class ActivityTracker + EXPIRE_AFTER = 90.days.seconds + + class << self + def increment(prefix) + key = [prefix, current_week].join(':') + + redis.incrby(key, 1) + redis.expire(key, EXPIRE_AFTER) + end + + def record(prefix, value) + key = [prefix, current_week].join(':') + + redis.pfadd(key, value) + redis.expire(key, value) + end + + private + + def redis + Redis.current + end + + def current_week + Time.zone.today.cweek + end + end +end diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index c1d2cf4207..dd629279c0 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -30,6 +30,10 @@ class Form::AdminSettings :bootstrap_timeline_accounts=, :min_invite_role, :min_invite_role=, + :activity_api_enabled, + :activity_api_enabled=, + :peers_api_enabled, + :peers_api_enabled=, to: Setting ) end diff --git a/app/models/status.rb b/app/models/status.rb index 8579ff9e45..00dcec624d 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -135,6 +135,7 @@ class Status < ApplicationRecord end after_create_commit :store_uri, if: :local? + after_create_commit :update_statistics, if: :local? around_create Mastodon::Snowflake::Callbacks @@ -308,4 +309,9 @@ class Status < ApplicationRecord def set_local self.local = account.local? end + + def update_statistics + return unless public_visibility? || unlisted_visibility? + ActivityTracker.increment('activity:statuses:local') + end end diff --git a/app/models/user.rb b/app/models/user.rb index 578622fdf8..3ce6517a65 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -122,9 +122,19 @@ class User < ApplicationRecord update!(disabled: false) end + def confirm + return if confirmed? + + super + update_statistics! + end + def confirm! + return if confirmed? + skip_confirmation! save! + update_statistics! end def promote! @@ -202,4 +212,9 @@ class User < ApplicationRecord def sanitize_languages filtered_languages.reject!(&:blank?) end + + def update_statistics! + BootstrapTimelineWorker.perform_async(account_id) + ActivityTracker.increment('activity:accounts:local') + end end diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index c7c25f5283..4f9115ed2d 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -46,5 +46,13 @@ .fields-group = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html') + %hr/ + + .fields-group + = f.input :activity_api_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.activity_api_enabled.title'), hint: t('admin.settings.activity_api_enabled.desc_html') + + .fields-group + = f.input :peers_api_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.peers_api_enabled.title'), hint: t('admin.settings.peers_api_enabled.desc_html') + .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/config/locales/en.yml b/config/locales/en.yml index 325391cfd3..e4425b424f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -265,12 +265,18 @@ en: unresolved: Unresolved view: View settings: + activity_api_enabled: + desc_html: Counts of locally posted statuses, active users, and new registrations in weekly buckets + title: Publish aggregate statistics about user activity bootstrap_timeline_accounts: desc_html: Separate multiple usernames by comma. Only local and unlocked accounts will work. Default when empty is all local admins. title: Default follows for new users contact_information: email: Business e-mail username: Contact username + peers_api_enabled: + desc_html: Domain names this instance has encountered in the fediverse + title: Publish list of discovered instances registrations: closed_message: desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags diff --git a/config/routes.rb b/config/routes.rb index 467849c03d..80a2c6d13d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -241,7 +241,11 @@ Rails.application.routes.draw do resources :apps, only: [:create] - resource :instance, only: [:show] + resource :instance, only: [:show] do + resources :peers, only: [:index], controller: 'instances/peers' + resource :activity, only: [:show], controller: 'instances/activity' + end + resource :domain_blocks, only: [:show, :create, :destroy] resources :follow_requests, only: [:index] do diff --git a/config/settings.yml b/config/settings.yml index f03a32e50c..4a2519464b 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -47,7 +47,8 @@ defaults: &defaults - webmaster - administrator bootstrap_timeline_accounts: '' - + activity_api_enabled: true + peers_api_enabled: true development: <<: *defaults From d9c2806048dd15592eaa89b462ca6ce03ad80c3d Mon Sep 17 00:00:00 2001 From: beatrix Date: Fri, 29 Dec 2017 20:43:43 -0500 Subject: [PATCH 6/9] keep the same filters and page when doing custom emojo stuff (fixes #6112) (#6114) --- .../admin/custom_emojis_controller.rb | 24 +++++++++++++------ .../custom_emojis/_custom_emoji.html.haml | 14 +++++------ app/views/admin/custom_emojis/index.html.haml | 2 +- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index ccab03de42..d61bafdf02 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -3,6 +3,7 @@ module Admin class CustomEmojisController < BaseController before_action :set_custom_emoji, except: [:index, :new, :create] + before_action :set_filter_params def index authorize :custom_emoji, :index? @@ -32,23 +33,26 @@ module Admin if @custom_emoji.update(resource_params) log_action :update, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.updated_msg') + flash[:notice] = I18n.t('admin.custom_emojis.updated_msg') else - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.update_failed_msg') + flash[:alert] = I18n.t('admin.custom_emojis.update_failed_msg') end + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def destroy authorize @custom_emoji, :destroy? @custom_emoji.destroy! log_action :destroy, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.destroyed_msg') + flash[:notice] = I18n.t('admin.custom_emojis.destroyed_msg') + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def copy authorize @custom_emoji, :copy? - emoji = CustomEmoji.find_or_initialize_by(domain: nil, shortcode: @custom_emoji.shortcode) + emoji = CustomEmoji.find_or_initialize_by(domain: nil, + shortcode: @custom_emoji.shortcode) emoji.image = @custom_emoji.image if emoji.save @@ -58,21 +62,23 @@ module Admin flash[:alert] = I18n.t('admin.custom_emojis.copy_failed_msg') end - redirect_to admin_custom_emojis_path(page: params[:page]) + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def enable authorize @custom_emoji, :enable? @custom_emoji.update!(disabled: false) log_action :enable, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.enabled_msg') + flash[:notice] = I18n.t('admin.custom_emojis.enabled_msg') + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def disable authorize @custom_emoji, :disable? @custom_emoji.update!(disabled: true) log_action :disable, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.disabled_msg') + flash[:notice] = I18n.t('admin.custom_emojis.disabled_msg') + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end private @@ -81,6 +87,10 @@ module Admin @custom_emoji = CustomEmoji.find(params[:id]) end + def set_filter_params + @filter_params = filter_params.to_hash.symbolize_keys + end + def resource_params params.require(:custom_emoji).permit(:shortcode, :image, :visible_in_picker) end diff --git a/app/views/admin/custom_emojis/_custom_emoji.html.haml b/app/views/admin/custom_emojis/_custom_emoji.html.haml index f7fd2538c9..fbaa9a1749 100644 --- a/app/views/admin/custom_emojis/_custom_emoji.html.haml +++ b/app/views/admin/custom_emojis/_custom_emoji.html.haml @@ -11,18 +11,18 @@ %td - if custom_emoji.local? - if custom_emoji.visible_in_picker - = table_link_to 'eye', t('admin.custom_emojis.listed'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: false }), method: :patch + = table_link_to 'eye', t('admin.custom_emojis.listed'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: false }, page: params[:page], **@filter_params), method: :patch - else - = table_link_to 'eye-slash', t('admin.custom_emojis.unlisted'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: true }), method: :patch + = table_link_to 'eye-slash', t('admin.custom_emojis.unlisted'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: true }, page: params[:page], **@filter_params), method: :patch - else - if custom_emoji.local_counterpart.present? - = link_to safe_join([custom_emoji_tag(custom_emoji.local_counterpart), t('admin.custom_emojis.overwrite')]), copy_admin_custom_emoji_path(custom_emoji, page: params[:page]), method: :post, class: 'table-action-link' + = link_to safe_join([custom_emoji_tag(custom_emoji.local_counterpart), t('admin.custom_emojis.overwrite')]), copy_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, class: 'table-action-link' - else - = table_link_to 'copy', t('admin.custom_emojis.copy'), copy_admin_custom_emoji_path(custom_emoji, page: params[:page]), method: :post + = table_link_to 'copy', t('admin.custom_emojis.copy'), copy_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post %td - if custom_emoji.disabled? - = table_link_to 'power-off', t('admin.custom_emojis.enable'), enable_admin_custom_emoji_path(custom_emoji), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } + = table_link_to 'power-off', t('admin.custom_emojis.enable'), enable_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } - else - = table_link_to 'power-off', t('admin.custom_emojis.disable'), disable_admin_custom_emoji_path(custom_emoji), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } + = table_link_to 'power-off', t('admin.custom_emojis.disable'), disable_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } %td - = table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } + = table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index 89ea3a6fe3..3a119276ca 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -29,7 +29,7 @@ .actions %button= t('admin.accounts.search') - = link_to t('admin.accounts.reset'), admin_accounts_path, class: 'button negative' + = link_to t('admin.accounts.reset'), admin_custom_emojis_path, class: 'button negative' .table-wrapper %table.table From fc8c2c9b4afbc89f826e2ec4dc7200043d3d85c3 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Sat, 30 Dec 2017 10:44:19 +0900 Subject: [PATCH 7/9] Translate Korean (#6131) Relates to #6125, #6099 --- app/javascript/mastodon/locales/ko.json | 2 ++ config/locales/ko.yml | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 0798fa7cf3..7e77b78244 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -213,6 +213,7 @@ "search_popout.tips.user": "유저", "search_results.total": "{count, number}건의 결과", "standalone.public_title": "A look inside...", + "status.block": "@{name} 차단", "status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다", "status.delete": "삭제", "status.embed": "공유하기", @@ -221,6 +222,7 @@ "status.media_hidden": "미디어 숨겨짐", "status.mention": "답장", "status.more": "자세히", + "status.mute": "@{name} 뮤트", "status.mute_conversation": "이 대화를 뮤트", "status.open": "상세 정보 표시", "status.pin": "고정", diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a60884b276..9e3505a721 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -265,12 +265,18 @@ ko: unresolved: 미해결 view: 표시 settings: + activity_api_enabled: + desc_html: 주별 로컬에 게시 된 글, 활성 사용자 및 새로운 가입자 수 + title: 유저 활동에 대한 통계 발행 bootstrap_timeline_accounts: desc_html: 콤마로 여러 유저명을 구분. 로컬의 잠기지 않은 계정만 가능합니다. 비워 둘 경우 모든 로컬 관리자가 기본으로 사용 됩니다. title: 새 유저가 팔로우 할 계정들 contact_information: email: 공개할 메일 주소를 입력 username: 아이디를 입력 + peers_api_enabled: + desc_html: 이 인스턴스가 페디버스에서 만났던 도메인 네임들 + title: 발견 된 인스턴스들의 리스트 발행 registrations: closed_message: desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다.
HTML 태그를 사용할 수 있습니다. From 5ec1a9b4847af41f3e2c348d133fa60d858f88db Mon Sep 17 00:00:00 2001 From: David Yip Date: Sat, 30 Dec 2017 17:15:20 -0600 Subject: [PATCH 8/9] Use ~ notation in components for image references This uses (more or less) absolute references to external assets, which allows imported stylesheets (like components.scss) to work from other locations that may not have the expected path structure (e.g. the win95 theme). --- app/javascript/styles/mastodon/components.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 207406cc08..0366d7cba8 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1758,7 +1758,7 @@ position: absolute; top: 0; left: 0; - background: lighten($ui-base-color, 13%) url('../images/wave-drawer.png') no-repeat bottom / 100% auto; + background: lighten($ui-base-color, 13%) url('~images/wave-drawer.png') no-repeat bottom / 100% auto; box-sizing: border-box; padding: 0; display: flex; @@ -1773,7 +1773,7 @@ } > .mastodon { - background: url('../images/mastodon-drawer.png') no-repeat left bottom / contain; + background: url('~images/mastodon-drawer.png') no-repeat left bottom / contain; flex: 1; } } From f19b436c83e8b233ff8f7b9596386687b3bd3587 Mon Sep 17 00:00:00 2001 From: David Yip Date: Sat, 30 Dec 2017 17:17:37 -0600 Subject: [PATCH 9/9] Switch to tootsuite's elephant friend for the drawer This version has a transparent background, which works better with the wave. --- app/javascript/images/mastodon-drawer.png | Bin 46174 -> 32449 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/javascript/images/mastodon-drawer.png b/app/javascript/images/mastodon-drawer.png index 8fe0df76aa0e7b5a819ca6273051a7aff129fc43..a1fb642a003b2e2b652b1e6022a84f08dc76105f 100644 GIT binary patch literal 32449 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%0Arc|r&DC@j0pAQE7yV9T$8x=q-T1FG zx+FX}!~l5_-=h~Lb)j!r!xbMo3=XfVy`~w)Of&Yp{_>8f(xglxL>w6>Pi_dJS&Tcl zAe}a<>7Jadrx@tDnSUOHGpM90F@NJIe?8^=BU}+Knv2Yr$M3Ynm;XShxfJq-1`oAw z)30>}PSP7=?^phC2^IRKaR!3oPc;hlbGU(veoXqs`gooIpHfI&O~zPHpylax8Re?>DVOTyOLocmdYzO&LI zge&8J@i(4+q7D<=hJ!d_ziZ5&!JPG4tXe}bKK0Akx5w>StmjKy_&64@a4<-r)#%gJ zjIl}#)iZL)9_#Jd&Z*EZC?n(&ui8w;sN%h8zolQDCQ8L%!Tk=V!BM67)u%oj(Blj7)(9dLW9 zbahPb>U?@I-&Yri`t_$pMfQKQEHR+eMk@>~u4-I)a#B)9r3=ABS}U3D!z?=2$s zp3fe-5EOwKprQ4dRj51rDTs~`N5NS_4DEyQJW%zXSRu%?$cGADZV^6kBF0AL91Z?l z5nMx9Oow3vRQ6{Z*inW3(I06HxP|k9m!hl1Vi}W~bi{9%O;?B{!00O>Alyb)6RS2I zZW7!M<`9D&Nr>?hddK*CFr8XC&8CD_g}&qI$*eyP&YIQ~1wei&Vo&LhJ$dgu$1jjw z7INNUIBLM}6Z_7$;<$`Rg+n&=#co#PF2sf6f}wRtfP+;=ZrAhc2KOSp$XDb*J$#h9 zfWZPP0Mio(6CVh=ar@};hq^Mc0X{#w56y!U!f3Ls4m^Ju3sD7dI{rcCP||D}lv0yB zb3Zo*TyNcu#uZ%wzZ_j!(5}&A@GNnf!hl-u#;%1|>ujdA!vB@>UdYvRVs{w)GUL`|CuJi^)Elvbr*2BfQ3!R3lhuJ}v03&&tCLz^ zK~=-o>ds>nB>GIo#ky|f9^^wW~cx&ke>2 zb&0iOxG}+r*!`KQJ!P0AEf{oqb+11z<$dltK6NcQDI7>5#PD}{3MsT5y7Us&@zrE; zHuN9pxc6#)^vy{(sK))Gwy%U)1@lgOqlHyP*6?-W4@JxQmzIp`n~^~vz0zP$quP~o z3}ohA>)5-JLU^q%aR6&%r&bLm)LWZppvcJ2BNg6MuTAXUOz6<(=hmbrP`J;)=poob-53fguC_w*J#SWk6)c*s{^2bxR&|lvnD#U zr!ThPm)wvy@}Zqg&HPu7&kq@e*b0MnB#?ySMGE;=!7pB4x&1~HR9p;e4l?J3z^y_@ z=YcguzoEiQz!-~)RC5!$wCq8C=l-1R{nffeAc%WT`V9EtnFKxoVx>AgSY3OI5o-^} z?h}b(Znqc>sD?(ltM3jw!UMwVb=V$FRz#a}+x@%TY{`{Vmq51C+!>=ccRSXcqelbd z82MWhjV>YYS@X_|P9Z+EaF=zdrUr&~4s9310525x3^t+qN#$S>nOVSL9x>9Z-S zQZ=5WKC)m?9EFP~a?OIL8I*Dz#bwq3GAr#Ni^ujg2Xa8ht@z#D>NU6H)a{%hhgrMP zdYhK4bD|dGb2d<{qXa4yeD)l|)}$28TZ5Rwzu1jPq4C+8PjMdM- zYk6C+rLk0byc9;qG&+(^`3WOhDHx8dGnE&s@+WI!uG0_cNASOL({R?+6-;elz(vAFcBzMD%w8-Ga3gS0nQ3>61Xa67Z(>O1zk*C>uQ`K! zOch;B4QsU7NJ>>>{zi*o?+UwjoC(x=CP#$oPu7Rlnz5r1R#CrDBYzf}ch@o?_CH=D zBk%HV6%cyQ1_c5qHkbniN5jL(3Qi?G$8PRJ!wyA^%8bUwC)Kc8j>)BxO~71%}vq&e<{CxNxW9*`Thkh0N zeQ2)fI_GvCqspu)Bi<6|7(2EvmNa1~ARA)=2@ERJ=P)Yq(rpOEkt;P|)2`5;a``|d zBMsD_lm6~0E)%fs-}d<5#H7HPB6S<=dv2ti9ydTV&P8nwDqP%6y#Ki;tkKcS5=YtH zWe9H5@3?++towe;VzM$H)gvLa+Ao@?gi&QK(bG_qr((#lV_>#C#Rf52%Vi!pMVy0k zrkICKtP0xS%->4pd%K$UtMC4F!QWZo9AU4PXLTlTqj7S6b0^gLc)TPCaflqc?c+>HxqqwqZ2zp(~7Z!3dp|Bb?c%p6c z_iaXv-qaIq`VLZi9}jkSt#M#d_wlg*=MY5%aJ%K=;!f9)ypWgIZ_4R(&o!4Qvea%; zg;`XP$F9Lr=CC2l+kh`%Y{6PLtK^N$jJ4}ZDdp4_{!r@$0i3tZJ1ai8MP`%1vt0H6)tKa(>GEo z{dD&%Rlrw(=O|((IB^{XpIvaq7L^B>3tFaz_NQ^h?}9Yw^VKH}R0a^-pN`43`l!*Z zAhs@D7HBt)W#7q6SK1q?+tCc0XhqwDL(Arh_yoPnPR!Mz0GF1uJ4Cvu01bcv*{)6tbt?c=Geag~7p#s(B{?y0Ih} zTWGtd|ILJ?!=TWBO^1uj{N0!X8wo$Lj}!bHP2MRc#b302a@<+V6G*?|t2Yv0D6Sif z-aV}NZ&7XnUR-pE+J%e1I>1-lQbU;UvmUUR9wqw*XB9ak66 z$)0aBXv!PTp2N{!TL=hMqw7IOGJhP!izC8fV?r?Hj!*h{z14IMzK~zes;(gn?tI@& z+wKkF#uwwyt5`6tN{`VJcD;Kle|Nti)jY=Qd!>S@TVq2ZIJmI8x;<7A_z z`CTg|=KcqD2GZnTs7SZpnCD=ZDUMDqN&koje4WFmr>@D}#hPJT8acLNo2)VJpq6#!3hW6GZVWn1e*}+1Z%#Hh-e<>j}GgIPRYLXVk~4TM1+y zp2Odz4Aqka)yNPty{ikXY;DpVvDazH@Mil4W(;gr1nNS>uD33``I4{s5lNEH9402R+>+XZbrfgZ=?q|5z&?0eKklMN5ArCr#;^cr)QZ zo9J)ONWMUvH?_44oKQu&5d~1g5R8^(N}`?;ujxlNKgjBYI8w_b6!`fU2&VeufD+5G!#jxN{myWNRl9iJG(6E_S@6W z*OUO1MrqaBqFH+|F};@1D~{nf$5(*WK+`F3esb3roBpGW!21*UPk4t?28V!kje#DDeSrIen z@cdkeFKMhj+4-O|FOWoP=C+dsK6_cm7H7h++1v-bpgb@yZ6^y#TJ{wCgl<+z6;t? zHVHM*Fy-TM!QDI_AM2~Op5LtDJVe_N!ZSOwwrp>*8_3p~(KTD%VEPbNwz zoUEjHjo3+&zUBuS8eyXtgyA>G(UXT>55QDPtQk9?d2KO;@yIO=6;E)9T{W{QxLxR= zJ8R(n2=bxm=@*x3dNkdWV*cdmpQr-r_z&^%y9=J2DSC}oO1Gm4ObJD}al#k?sFDR_ z2jR@EyMPYE{uI#TT+|UVS>@UQGC>M??@g>gV62VtwXb?iQQyND3JD26SCWMH3+nLD zR2iQHx`LetsXdFg1hrbg+j4?*$eMG`B*CCltm_&Xc9idGf{Aiu6PYl3=JRg}HC~78 z{^2;no0s>Q0P!=&21{U$;6Zm;%<|mR*zeC3?ssw^$8R%2wWppfWvv;Gm6#v!jZS=_ z!Wv8b>gDtN89MPQt@8d(UQTc&PWq(X7RZh*l1{nPs7lAZT3-btI?k5^WywPP-2UU@ z!t3t!xuSBa)(2em*|QpQWN`NboeE)?7&`hVg^u9eIiJfNo5Ht34An?olgEpM)nt>% zaKhwD>b8l;fhPDW{&xf}Q)`q}Txl0H#3YvIXBJmxLPrbVQ!*s_7W_sWZRuDdOoWTP zErJ2heXnicgTg3~I)qc=;p8@gm%>HXKu=z~&Hbd2Re2~ug_oF_LUU?mnR@SNl?FGq zH-RqU9Yzs!NvBos_m5G!c)GYwTt916nMe}v+aZoI0hw{^BA1LjbQ z!t?E#Nl+5`1yP6*KKhip3sk~J0SjGh%n})r@|U3!7|x%S!F>cia(V61&nl3lJ^zFa z*Kjx;@5!bz!qvr1&M~2aNful@hW!|ajVo&t(V?T;-%7YL-wLL_Z~n}Qs>g+|0`hmf zcMUE#<3#a95As7UZEZ+;XMjx|sM)0BwbB+M*Y1C6nsz0V8ah;7(s|JI{ubFA@Up{*8g5?MN=>gX;0W0}t-u38h$p03*;~=VN0fQ6w$O8n*2I z(6HjXr@%tpG}+d{Q1P;jBy8}Q=K7wC(#Aw+R)ugF=>LW)B=UJs1K&+WtHR(%R*P(L zi@!qu2);Bgu?cg>gB-DfymIg9J`K?@5SSJOdd07T#%3d2#5y zaJZ+z+BZKBL+#2~s=v+6>^CXCkuBualze`%pHx{*<|qSW-~_uj|8#ZxpOUUR5bpo~ zPtDnEP8-uFhneZ_9HyI@?(UlIZiZocPEDNdj$xec7>Cmx-}mSD^Cx%j^M2j?{d_&2 zk9sR}HM+lTp(}Q))b!YUq35OOpe^0Ado?||Jkd_e05HSqBXm0@{beayMlV=?$*!QI zq5uk?lVW;6_|x?{!Vx0QLQ%q(2?4ZZ7FA?N7sa(K^B!Bhfy8Nlt@h=6S+|xsMoa?^gHlee7 z@97V*$G9CvVp95806g!-Nhf0OU^@C8n{sL3+TSCIf#zO4b#p+KNz!b{Fgy=9I8c8# zc+{9opqOfySQ)2%CY4x61)^V`A^7Kx+U|Z9?+{^r{w4z_oqXm`#7hO* zm`cQ?AnZ<@W33x~d2>)|mPuoOYSk*1(zwx?B)Qdl zI5O-4D_sc!e;&M_|2e1XrnO+l3kn3zZva>pxDL?AD#@3wj*|y2-|`zKLRRtYukwx1 z{3l)dcoq##P=BOHW7xP}Pc_$GbbZdq3BC);b#o^GXm{PDd$F~LZ#9074()9fSG|>j zH@@5krvM@kFn=I1g1v*o5{t!W4R&?xLP|yIzG_Lo6nulazVsxuMym{(HSzO@)9p?D#1(Ox_JF2R;4wf|Bbnq} zCix+|yLOaEo7&N?U|loqs?{KJ#~h%7SXf7aed*1dM}(h@@(&CNho(Sx*Q-OXe?wR9 z0C1{=74*5A{KJXynh{E6_LeJ=WA^PWegFHa7JEO(3E=?7w=<4)vpi%af4?Eo{NGq& zp-X&}q44|-OvpQWZLj|W{BXAk^nUl>HQ>@UsU`*rVNRloO_h0-7j?UN=sI3xtjnV7 zs5C(2bkn4S)6Lwylm2c97JH?q&Afn~8Y2_$_V$+_i`VhRz!BVZ3-KcNad)rZ3Y6WM zd66~-&rG0ngjT@RkB;a6H4!q61OAAcTe5rW$%PfM+9HkP%jNZK&qzwGcQ+2-(mq4D zy*Exg7&aq!77Iui3D1&&& zba;OK@AJ?f8`dU+h)Wbo48yg{MmrbBO&2AYx+@X!4qOUoxd8mb<9Pmk05w8qVvMH= zOSZ`lI{@1gFX3zC&g3SJ&^&Quf8#O~f5PlP|DGu_D{p0Al1XE@4`(4QbOI?egE|OA zVQ|&iVfXw{WvltkJ8?e>N&Sk#wH6m>5WUTC<6ElxEp*-rSnovb@7iiXpBaA_$*_IW zr!aT2&k|+tzHAFuL8Au#+~=DH=n-lw$yLBrFEy6lL98{eQn8*uu$$w2wa&9$FXce2vj2D1rLV6#OEAPCi~N(~ zDyC8xoeix2K_t5Qx@@1Bx0uqSKE=f*>1LQLc2YFodi)wfjp@$@m=ZH*+Z1tnDP#k= zo9 z2rzpDuUp~+Kx%Us{(txy2A1?jhzS;I7gd-cKq^-M=2b4zhrEqkPuC)LAVyCVWgOi& zAOPBz;vMc3R?_TN>6GWub!r)5N{o0Cn(9}@bfVPh^vSvaBay^v7jZSH*jHn>V@{tz zN(Q)S4wn4BIdV3<#ZQMsde#1pCV{2D%uv-5V>~Oa(j~7KG`BEz3!M{8eFVr^7xlEQ9PfDd;qh+nwIAMfk zeJ#P#N($TnZPHg!Co(TCO^KRoP=w@45=i|Pjj%3~glYfKXTytS0EN+bJSg_1=9*@Z zw!{>apW_@*PnSf2oZ`9q@iv@drXuid|TD(L42xp?iVrZzT*8J2XSwHCk@ zh2(SP{O$47bz#RlG?1QqGvZvP{Y=aGjNs^5M+OmSoZM?o#mP>O4TzTd|6BlM{+-fu ziS@0V+wWD_IRYKLJUP9U$VYbQny-S12CK|(QIL+NN-(vm%QPVRSE+gjdYj1YkI}i{=}r z)p75Py=Uqc8U=qs?OKGJvWO!JA__2oTmIZSQ=Bc>iUg9Sm-sV#)1dJsEYBLYrCT(~ z8`WH|Kve%Fq9~MaxCk}P3NMlYOouhJEAujxiTG5VSxO!78`v~gI559nODD|2V=WEr zROI11xw+3bwec}RHlU~_{XEfkFEiEC#J4xUCvTeHU_Sbu8!IpT8*P;}qM-F^ZSv2f zgv_j8XO-X0OK0w!+MdZKzkiS6CGkSnO@MslrfC(q>Q^EH7iaU?+1OL#I7+CGM=r6n%i?O*W&drnI*E_;+81c=Fqv4t>o=9k?5%Y7 zVz8eWnb??(r#$g*H>^^)ep>XYVjO|qjUqj!#`2y2L0|s^aXt(B@r)*dAQ`of9b%mL zHeT8$_Hg?o%PZ?m$MwA7NZt7cSDNkQCawjqNo3L>ZZgC?5fv+m3I#8J64vb8&X?nJ zdf5YO{Jd;n;N~z>xnF+tP^m%gFlUk1)^YZ5B|?oJwLpe9?G`M{NkpE_`@#AAT7r_3 zCQ-Sf+Gfn?YHJW5hSL?^ZSv*Zz2<4$Lo?@zb*B`M#1!X7<){0kZQBTH&2>SovIpMpJcUN zN`c=lGZjt)8{9q`^e>GerqfqFxxQw`)`fKKGl0~dh`v#xtunAUPgYt{ zV5k#F?P&;@)8dI~{6(`6^MVR+ee}|>ihQKR?N5+*RY-}Ofi!Z;RO-?%@(d2S#3u}0 zt~awqnwBG8{UCcDOuNZ4ro1`FJ!$#9t^BVq8fbWqB_Q@FeC!jl zvWP?#p%V0Y33AEo3(H%)k|Fv`C|;tc++VT(gOM>R3c)W~e;t@HaKCUGWTIyhl0(x$ ztu^~Pa*6|yaY1_GnIx0v%i|X;fsl78VW!TNEwJIQm(P^sxDdss>+C#c4DKoX#Wtp< ztpiyU`Ard&I{q502(jYcA5~U#emr5=ez9Zs-n(9ZI4*{A9nfL?y@ORlTh<74e_~9q@`RPC z8^!BXO7sUm2nyqt%PX3Exdy$wuwi*W>U`c?1}%7Xq?L3o6yG<`6apd<@J2O&Pr5#+ zude+mW58S;!B-Xufa#A;7%r; zm|j=nAZMEqZN=o&J}(M>52`r&4`dfc&`Orq4bZ#nO1^|SER}s$GZQ^c&*Hh@kJ;5( zUX(@Rapr|eoJ11vSj^jE?AP&ABD{Fz!!uI1;nI__j!IL05537uqq?Dh4oL74YC+*x zfXzra3+y82II#)im&>>*Rn`lkf$NhmC)%Gpz~Ze_rCPh1L_5PaBQM43^*OR)7e1_B z-C+r}zFy}mE-Saz(BQ(5^5P^?hTLLe`f%)67sc$tzES1Ml1F%bZ@!%U1q!MQS(jf; z{@e7jAf{hJ*{sme%*;Q{q-6Zk6ntWuWc&229Z7lX9U}x|3hO#ivtZik!7g<+PR+0R ztYMuszBZ^rI>YfU+T}a1-(x#lRt>oz+|0}W`PiQ~dA#kp#tnVJH+$;*cjuWh6uaj= z@#}L$>4tY0=4}n9*J=~+!WwM@m6T@$`K2$?jqdswb}Z=SidAD`4%$BzBlwL4i$T#O zjg;T6@SvOena$ozN*T4+c*dToy>XEoX+HuiQx@MM!Xd05PD3*!q&5~hUW z_{1kA{y4uN_NoUP=PSEzm1W#4dG{|Nfr%dkC${^ydAu$dM83G6k~YlrUOkXkh-*xL z)|mHpFDw^ydsK;$B^a^&tgqL;-8Ch`DGvr|67M?ZV4m^Hfdb7kv9V*Fx8{bR?>6rO zmF>-N(Sh0kqtzd9vK`elx=oyPI;Y?z)zV7Cx_?FxYRdoeYA)zh5ZPa3^dKls;&97h z3`*^_Cor@0XCQf-)5%UlFq>AE@&Z6cilIg{)9{HugShlcx&CWy@HUlH84@Aqm_8U& z6wItPxCddO>nBmTrPZl^i{&gI^1nQc*J-90BX**e%`$Q!Zmm{e{I2_8wTy%f?M3-a*4)VU}vP*!oy_(}P=6$^_o~zD3 z()kCJRlZ!)KGG*B4ocd?E}3vgHW2_I8ZR{5Okgffp;A{$rIS5IAPaiP<-1y<&kST% z08tywyo-*uJ}K;R=Py+iFaMm|7pkz<2zubx8A|YA$58}C02>u;>d>%DKLvhQ?mD$ryKU#3zPB+xwQP)uB?6jl`n^)tkM;N_g6 zW5VFH%MP7n%V&Z!J?&jyrpk|pQq8kqf;Y&jWs zG{J#ugS}Wvg09V*ZN|FX_06y{mr9kYNlvnF;+)M_H_Kw+FI?H`!`p6%!ue9nIv%#l z=YdrytJExDni}FL)oC}&`ZuW-CU;FRx15i}6c%4RL%#aIGTU9kmwhUkUeVY*-|Mv0(q61S80w~n^=<)~+6h8CVFf~(a(CNcAH)RBTsOIAo zmTgz+=}ZNd2G6=hk*3xTf-B;nQEA#wsjhH2y_Bji{2GZy#(hzx$nY)6KK%`m~yiBv=y1j$V_Q2d^d!bKDOA_20SVh&gbZ6pSQ7-NN z1wG`8n^T(Vhl%W}$CN}`d|=DVwS8KPLkpyX91*^N5uR3zFh&h0BmLv1Ehaq9g-6^i zb@e!u-^&;M`^&_4@!KnIq3qw}KTUGIid!3jD(gVIMq|MNeMTB%J>>-?|llHrbTqXYAC z{m(p}RAg$Bb9dEjG8T2!wt>afy#30&7$7q?x}33)y9>DNYqG}lS`V9{T1EjEMMm?Q zXPm}}`KQ=w@q}J~T(iaRvKE*TeaS#FNXlsiCz%_-F8~(p(brQvoHUWD8=WR@R=MK# z7*Z-;x3DXx)4!Q&^r1iO$HkM zl&R3or@Nh&?Tqv)QZm}SUIkL+94@8~=z#)}cYuI9Yix&{z60s=YgBm*$~GGJ%xn!O zup`mq<{9p`G-H%Fgf!K>u{Th03N*U%`KEIs#C zc&m-xK5>3A@|W2R*i$KQwk+Q4QPJ^WV{)7b2HYV*zVuc4*a%%|8tgdNywk-aPOB{X zSZR}wYS~oBI+=Og>E`qbG$3nMmpg@Tw&HG|35)*AWtyGji|;kymH~s&Q3~qEQ>*j; zc+aK!K09>w5B&ms(M2~_&sHu*eLOFPI%@3lqZ-f#Y<0=s&1S>ds6(i7_7Kgu`e1aR zwzO&XxGgKTA)qF8&Fm(XETbuYt0O1@sP~zzBjMi|U-cxIdt9}oQ-O~C97Y`RrBps^ z05oK?O)*_foNm$R)=czVTHoB{rtik|Q;4VU-M!7CQ`z5rbTJEYJ3FgDpzKMhkdVAV zloHly8(|8Y7Y15|y)GR4E}e^r2raXj>0VHsIcw!xa~b@08mydhNb?5Q%H5;vt*`F{ zg0Y23@Xr-k{0CXs_gyxi_xzZwRhkwBQL_?0Et_C>y6GfUt=}`nx+Re0%rPPwPgG zu3zsm?sQfh`UK zwk-IncQ7DlTI~eqU5|=vkKV}eQ?-5rHh4Ivlv!}OL-x|M3;9HaswX^L5Z*k2G^bLT zb}w+L_V_fAwwUk)Z^QP)jooUFU`i68ljr#scO}j;eSY^%)+UIRFa*EU4 z4V_o>`VOv!A-j#j(9Jb3LlXC5#J}daVk<4I6yl~f2%?WVLC??WuS*QGgh zzEn?a?LBV4^drXS6oGv(?soG~B?6Kx_eKDgnq}*@xp?SX!I~s^fb)}^sUcuN=@s0q z=WLOxvqj5A$wEoJH^xx~pDR+D9%pTU{e3Evh4S&Q#Z6AUUqPW8 zX&9=V6WhG*U1PZXrG7@ee6^s6#xH`iVkC@^x>s3` z`BV{>{F+)NY8EwC>c0d9zCyjMVx8r>F$%SS*+GF(g6(5%E1s^?VKf~Ra2xql(+vEy0sZ+;~Ti)NB z2wx7Z>RkysU`$*w0heop*j{%CcLmuONu=`p{ixB*B zA_v@eBAZCu7wh_YeqDdMz&aRjoAvc~N%4L~cV3I-Hbbcyb#)Da-#Gd1#yS=Ay_|}I z69_)O75`QhrX6jajD8NX^HzXUN#xz#Yae{wEY)Pp@@}_YPyde@$!CpwCHEJB1zn7aj)0c-4I**(I(`{Fxitq#G z6YWIDl^=QHPw*FR*7A#S>rY|3Ne&&*riRh?hPTvW;Dk>WZ%E#BY(GX)QGvw}*tMht z@U%nSqB&RcmV>*M-=N;cpw6eN&LH)KE1*y~v_la;r>x%SuP~{UGdCNDD3Rl~`c)S( zmLky0D0I)f3o{S-U%#4eEfnf9?6S|=(%NDA#fFbAY$8K{&G59`v6g8R;4qM9JkMPu zUr8ID-Cb#DKjGqamM)@KWy8nr90K5k!f$oa_xQPIRJ&M-XQRfXD}g&$=r|a-PFJyT z?_X8VsU~p5ulcK_G(&-GsG^}Zv|8WA7$UNU<*xtcl=gTiSt;xLQ+MVmr?>m{qz!h+ zg`SQ{$yd<~%VpI<@S+r>{1l@u4ls<1KJ-%fJiw$@nWNEaH=!46te47?^1Z$-^u#bClZ zt;XN($5@~r${6jOr+a<5#AU6qV{cdzV40D4VnTvzqE>6&W6KF-@EPE4vFb1#iqMLN zgj$j>cDvcCYxG4(PR0&4pF*|dx3q}ZZ8So_0EBd!i}U!p<6$y>dR3|g1Af7nRxzh! zp|rg?Kk8z@)^_OvOhIY8KC#8~*Q)kjY#Yr-cLs|`SAy^peSuxrk<{v0I~n?8{5Qcr zlDT3lB9gF4CtA5v6y3MYVwJk)W=?U=)DtJuyAcekK*@7nys-kK1KD{{IS!DoZG~K= zIxrtKIU`5)(s7 zOB(GaZ62Z&Wy#rJi1ZGVFOw}w+1=0X5TABa-DB}XlQ6w~ZmCNow&q}!)i`FeXb+4m z1-i^@{0)2jmlZUi_A;_WVw0i2st~*j0;v=7#VO{#r4MkYT$Eh6>!BwEZ@RFCcN3rC zx)bS}vb%C7th#rU?FNI&)Tkm#Z5Nh-#_#1cystv!Cfs|3=85{aCl>Rms9ilQ%^( z-31sT$7QL}1e)mpC?^ZqFR7b%&{PP0(&3@uTRrOw9{F50eJ0K*YnLOHaD*(w~3M_^e^a zi1$G?s$AN&=X1ei2Eb&z82{eUsW#EZ<9u}AW6f|u+ekmetT-}1v(y~dqt|hpDd2LJ z1y_wX!tkdC&a63I_%i;BRB|8*fZgkokuNP7E`CeNDfd&>nVL!u?xTlktABaYmw1mXzX6#C@*(D9pxJr@(pysF#@T*G)Ujx zrn6sZ>fb*_)vS{f%-y;!oBqz{k^A`AwYVYd5L#Ydnh27Hhy(A6%M3VgIFb1Vpz(*T%vDfqA0kvC)UNx<0cO>t{bYkOHx z-`i%Zg^P}osvE4^(^?c8ToA%mJf5U5sJI%~lzqAo<@B{pE(9R#IE6wh6CLh$q(d2a5x$^kHJW;3)qWp3 zL8vFTZ5U0}A(_#_N*(F!uy#XnrpEIp7F5sd~|C=`&B0 z6itvQ$d;kgNyz#YzQJ^aB=*LnY$>N6Y{}U7_Hn84axMhq*p@JwofZri(;8`Q3X@z(k5a97 zET5DMN|{T>g=*hT;WdVHN4cj<1R}$K&a-D54;Mm>N%(7IWxr=F2u~jfc|8{g|88Hc zC1(*hK$178%>}*ny1TDg+~3dLGxZWog$uMKwEVoae2?|aCATWmh0MIq%!m{CjZTGE+TNuEqdMM8<=ImIP4x;)Bt`4~Clg94c zo;pH==X1oYofVew-A-1wyfV-zu3m}$)2B>zNnuemPW6YT-79l*VyX6$9^i) zdiNjgqwx+H*(iKYnS`$spTZ70k8?9y$>bu4uqu;P5WoIh2(t9$&(3L^^86zIQ9iu5 z(@e@AzEFO4ndA=u^_VERlxtoq#VG3@v;#S%1F_Xv^vUUlIPIsq0a@<}ok{aO?v!<{ zYw5KLA;W$u$uFmQs#&888IPxP!#Sf3tO6e8Z++_hv@~7F z&2AEe?lP273jBGrsGoM?UFU`as3M1->0LNh(6b4b zNlw4jU8j%!x|Bh4j?$iYHufJHQeSmAD0#~x(qo@yD#C64{mxwf?{2c+Uoc|@`C>GQ zk)WPyn1TRs6kG%jGOz0z-2!@U)9`+FdqmZ*BV(};i2xVu;FC!F7;>T4;()b1Gq+Wm zsSyZKJ>Av!+%RZ8%e+e3Bh#-Ub$vgH6|gMt>`^$qXjp?OEmLT?xsY9Ty?Q%r^lKZg zsV+Wo8UIZL!=Ft~bpt91tC^t!_RoG4m1vE%={QJ*{l3|hTUxF)Q# zo+r?{F8Jn~xhu%piUALcgQ<632|W)VaIatYT{Qs;L*G5~kZam#=OB4D;M^2qt#RuR z)6kg8#D*g96pGm^2w&U~`rijTd=PO-X2=5`Od%78AKTBr-}CSzUv>0kB=7Oh?c`Ov z4m9P3u0jO>_AjhTKTlGyl}Ql?0b8e<)~YxU%{k6%B(Dqou^+&AX6EHWNMk>+dvhKP zEUA{+%`C_@=k(g~e1Zd1a1&IayedzUKUk-Voy#j#9@bgrLhQK}Su%M3%0BDtfvP~I z!trch>d9yI+S%U9KW$dWG_X2ui#RZP@Noez2Wa;4k1v32d@ynvGSzq~fJ?^h`*VgzszAW9S&2EdK>u~! z9)Ti&eHcrA1&W${5$b#YD+kzpe}$myr7?xqfST!TxUORRZ&tnG6`X3j=%P%rjque+ zZ{yQpJ^yLj-%kitpdtriQ>Fit{sCMKScyhDs009uyLAvc03X|e$~n7*z9SBh0-9b^ z-=OtE2IM}0szz%5x^ZS|odmj=Xpw4{EvNknB>Yu}{@WJ0%9Mc`)?3WydkD&ntxOky zYFA)hjK_`q#gk+M|0Q_vU$GrijLN%zXgp2UdVgnLIP1^-{+SV4`zLKjEpt9uSDBPO z+l~l^B;c)MHR0o5Bnt#?e{6^9KwEDVSf))q4?q%|1IX)NvAfC5(2pGa%oBgyQQ&T6 zDI?mIY*8NIV&wWfk$GE?PSyGy1;7TjxBK_g$DRCvy^M)b1S=Q!Y_x?ZumfQx-}Tmq zvpaqpKFr5QRYac!?!x4wv9$sn8e~sdO^wJRbMUq!r+542W%7PFe6f_FT)PtnoO+)O z{e#U5#h#8CO$Ltzq37>%xjpX3hC1*d9Q?G4*{@6TWPu37+JP5#NIk z=(VavqwU3uyr4HHL$3NKeqFoExM1G?8V9VqgZ;j=i@o<0%MM(!P}45Ckjiyf-!^eG zy0d_@hRz$quLPpQwgtQ2sYp5HbM0CC7ddVET;@nViEIYIJ%LzlzB{3B<>dfSYP;C) z^qqCFGR&!hKdZQq47VT>GBo-OYNt{~R0c0kQNVy2wS%Ijs#)tOlz%Rr6yhHNQVWwW zo{*eR7KM}A`pS?bYmViTel@Ftnrrft8a?AW(j;Kunzi{mj3IxcU)|9B56a5Qsg+Kg z1B4NA?rTiA7);Vg>q0D1|BE)e(%o^BfWC;##W!nosQ#1;+e5H?TJ7aT^y16WQ}8Qu zOgC2YThivr4vL-`W};Uf6q_=K8kL0*ZZ+;HF8k*dSV|U<0z9B#YL|eCGRqrG#(YJn zj)nB$gt@z4^)%P`xuKhXILQKMI77{Jph%cMqNV%ew_|}|A}lB_zo{XbKZd>((R3;= zqa=W3jl6UjRbKs}%a+ghLZVQHgfv^b>OE|xc&U`WXlU6-<4ts5wOw|xmAe6F0eL1k zQhJheEW5>NuO$~DEJfmQ%}4e8EsAs?HW*V?G@w$|J<#(*$E+}=X)xcX=zj|#jVDO5 zr`T5^|8UI*3G_r1ImS?WZEud}h~Wa;-U?thSR_`Lb)y1k6Y9wN-SAePhXDfHEph zy?>Zq0FQ2zn!`hBHuxu;MziF?M~`*9esr%P>af_jAf)#ZuLv=>rIntU*(zO>GT>qm zBO6m=GBEf$1{~{A`~vwodFbc&3n7lKSN}a(NR2K1#IFM}QA(g0(9HXhZ-u62!o_BF zza>$F(6jJ@mf9%*Z@c?I5pReyQI>!jbyPaXnOer)Ez`R`1`&4g8Z&Hwgj7VDCUwvH z%w9ct$W*m_NQiz!TTp5E4B+4vxmOlIBfs7odOZ+xv!mY2bRQ66VPT2NncepGA7oO2 zz+$3QsOpLg(>$Gj{!MCrJ{>1#2cE(b*d@lPxTrE98aWP3k2BU6aldj}x?FN@5h4#= zaG?o5;(W}T)n{&e$#{6IQg7TBeHK5dX{1`x$Tc`5xIR(Ucsk3Vd$kPZ$d|x{mJgqj zO<_ELIAdM;V|SYY(&-Rk;h=vjFyTT;hh25k2y{FUd)i@_c#%+~PedoCl++9-%_K=y z!&y+XN5)baL5=o799;HbJ$A+o*s2X{nzp^n>Qve?fS#4gwcHmaBdv~s+G){$|1VP= zeiC}bz~)cY>~x*va%TtJ=ssEcWB}CDqtHJT!EB%C(=yD$7)J>Z%eZ8qrgkFp&K+$@ zgwQ5}_CD=E`FfHdR}_sEH?cS+_rv$AnC$^+?3yPp2ftflMUD|}8~RljBTPBo>}|IX z0Otdk9)a`|Cm``4!p6T zF-O6^NW7?dNq{6wj5`}pkFPfypMG+(;{%JorH%=>x8YMr@@ycpxm(5I*J&778F6Bs z@c*|dH0Eu|({g+K%hxnHB+(O1PVemHeQra=Ec<6 zb`=*4PrSwg1E95gT6H&BIHv-wu-V^fj>`yzE@qGUern_|Y@+vN+v@ zoM{qA&!74o{C3`5B{K_rV&45>&|@q}@y~s<1=b%Iaq1pqo4qik9`zU)C{Sw;c}=em z2f})Ve(gy&=w~;w#F_B~5CgJp>elLFjIC1oMWzSH|A5OUPcRyF`Nby9i%POUozq zpRUK}|Ga1c<zx2wvOXl?vp)OP9agSoW?3 zw$ce@u37o{`37F~9^;r@%|YJ-%YA;(8#HYc_*9jED4CZ8S66lbg~r#uY>177S=i}%6b zn3Uf6W#5N`@Ksn7C(jIJG+pH`0A<$IT=)O{HZEuRJ}BlYc=YJ7sZp=ut5KEl)lb?> zw{{Pnm6aF`MF<{5jj7hpFD53AgP*&pLi8`*5(! zE;a;Dzr^}5z-t1m?cS%%w`rXYL!m{wS)cO7nEeuL#-Vo4x6dE<5A0fmG;eBf*&(>&WC5EvcG&q zIfSZas1+UMW~S)bXVpyqyV<%SABnVT$j!<-nQJ1cTqEoI9o2kCiHP>KU^LRr~rEBw6KLYI~2vhIWr_?*bdH=#BOGDBdO= zj9DB}${iW%991P9Jo;X=(+!VJu~Tw_r~z*GwJ1xXGwtMDuKnEDpt*zMp^r({;p!Em zk025_S&t{mtTt+e2Y-fWOqjFx+8rR*ctw>=em_3G`=ezvW7&t_r_%Xy-xx+|Q+@_> z&?4{PfxyzsJ>F~hSh(DY=BNl;hUipjUa!EPPMI0!WmZm>TH-}qjg8YkdPdA-@=BU4 zBTn8q|1yZv+D7RPHjhhxVN=(Rd>2)4oq6zQ;o*xp1$L_Udy0l(>df69?%DD7-9VaQ z%vg4X8-4Q6T+7wTWxre;iIK*9%B}F(L1WS<<7^u#yzOAw3~|tKU+c@#8qX;pI#b<3 zfa0!;iOao7){sxqBsJ zD)p#?hUe%(oIVGy&3SO=`b)ePo*8C{7YWdWRj@=;fe4OGYD`z#Rw< z3AI#-25ti21A~TLZAUOZYm5O2fKQGN8so-P44l?x@ia+G+>-JO`=62sX>Nie+xG?S_+;u>6Dbr1+dg@R@J-Y~fsj5^_h zCaR(C6;1cwFGafrLGmBZH>m)gW!oSzAwklsboA_jMhW-2vP#R;SP3iAK%C#@2-nJ9 zJ=3`64_K$qeK2yX=k4)GA9`7fxR4Ntyj+$?LNPc<6rJk0r~o*$ zBvV(8*T1L&s-PbiGMQ<>ULC3WRW0>R$WJEI02eGQ0M+zpsfl{=A_|0>nMwP9f1W0* zC}(8U1z*?Fg#CBS$T7f`5LHgnjvN|FNSLF04DjI57q3T!Lx5+DK9iGDl7xzX3Hl%J Cr$1f* literal 46174 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 G(EkB@rDeeY