From e928f65e9b4d21270974251bfeffb8171afc7437 Mon Sep 17 00:00:00 2001 From: Marcin Sedlak-Jakubowski Date: Wed, 10 Mar 2021 15:06:57 +0100 Subject: [PATCH] Review merge request project settings Including maintainer review commits: Fix variables names in HAML templates Regenerate the locales file Add context to locales phrases Bring back the form area Fix disable_merge_trains_setting spec Remove incorrect prefix from some i18n strings --- ...ge_request_merge_checks_settings.html.haml | 13 ++-- ...ge_request_merge_method_settings.html.haml | 16 ++-- ...e_request_merge_options_settings.html.haml | 8 +- ...quest_merge_suggestions_settings.html.haml | 12 ++- ..._request_squash_options_settings.html.haml | 2 +- .../msj-settings-merge-requests.yml | 5 ++ doc/user/project/description_templates.md | 37 +++++---- .../description_templates_issue_settings.png | Bin 9315 -> 0 bytes ...ption_templates_merge_request_settings.png | Bin 49367 -> 0 bytes .../_merge_pipelines_settings.html.haml | 11 +-- .../_merge_request_settings.html.haml | 11 ++- .../projects/_merge_trains_settings.html.haml | 9 +-- .../promotions/_promote_mr_features.html.haml | 10 +-- .../disable_merge_trains_setting_spec.rb | 10 +-- .../user_manages_merge_pipelines_spec.rb | 2 +- .../user_manages_merge_trains_spec.rb | 2 +- ee/spec/features/promotion_spec.rb | 2 +- locale/gitlab.pot | 70 ++++++++++-------- 18 files changed, 116 insertions(+), 104 deletions(-) create mode 100644 changelogs/unreleased/msj-settings-merge-requests.yml delete mode 100644 doc/user/project/img/description_templates_issue_settings.png delete mode 100644 doc/user/project/img/description_templates_merge_request_settings.png diff --git a/app/views/projects/_merge_request_merge_checks_settings.html.haml b/app/views/projects/_merge_request_merge_checks_settings.html.haml index b099eb6800ebc8..74b156f9b5ee54 100644 --- a/app/views/projects/_merge_request_merge_checks_settings.html.haml +++ b/app/views/projects/_merge_request_merge_checks_settings.html.haml @@ -2,26 +2,23 @@ .form-group %b= s_('ProjectSettings|Merge checks') - %p.text-secondary= s_('ProjectSettings|These checks must pass before merge requests can be merged') + %p.text-secondary= s_('ProjectSettings|These checks must pass before merge requests can be merged.') .form-check.mb-2.builds-feature = form.check_box :only_allow_merge_if_pipeline_succeeds, class: 'form-check-input' = form.label :only_allow_merge_if_pipeline_succeeds, class: 'form-check-label' do = s_('ProjectSettings|Pipelines must succeed') .text-secondary - = s_('ProjectSettings|Pipelines need to be configured to enable this feature.') - = link_to sprite_icon('question-o'), - help_page_path('ci/merge_request_pipelines/index.md', - anchor: 'pipelines-for-merge-requests'), - target: '_blank' + - configuring_pipelines_for_merge_requests_help_link_url = help_page_path('ci/merge_request_pipelines/index.md', anchor: 'configuring-pipelines-for-merge-requests') + - configuring_pipelines_for_merge_requests_help_link_start = ''.html_safe % { url: configuring_pipelines_for_merge_requests_help_link_url } + = s_('ProjectSettings|To enable this feature, configure pipelines. %{link_start}How to configure pipelines for merge requests?%{link_end}').html_safe % { link_start: configuring_pipelines_for_merge_requests_help_link_start, link_end: ''.html_safe } .form-check.mb-2 .gl-pl-6 = form.check_box :allow_merge_on_skipped_pipeline, class: 'form-check-input' = form.label :allow_merge_on_skipped_pipeline, class: 'form-check-label' do = s_('ProjectSettings|Skipped pipelines are considered successful') .text-secondary - = s_('ProjectSettings|This introduces the risk of merging changes that will not pass the pipeline.') + = s_('ProjectSettings|Introduces the risk of merging changes that do not pass the pipeline.') .form-check.mb-2 = form.check_box :only_allow_merge_if_all_discussions_are_resolved, class: 'form-check-input', data: { qa_selector: 'allow_merge_if_all_discussions_are_resolved_checkbox' } = form.label :only_allow_merge_if_all_discussions_are_resolved, class: 'form-check-label' do = s_('ProjectSettings|All discussions must be resolved') - = render_if_exists 'projects/merge_request_merge_checks_jira_enforcement', form: form, project: @project diff --git a/app/views/projects/_merge_request_merge_method_settings.html.haml b/app/views/projects/_merge_request_merge_method_settings.html.haml index cb3fcdef4037bc..f55d840e14bd9e 100644 --- a/app/views/projects/_merge_request_merge_method_settings.html.haml +++ b/app/views/projects/_merge_request_merge_method_settings.html.haml @@ -2,32 +2,32 @@ .form-group %b= s_('ProjectSettings|Merge method') - %p.text-secondary= s_('ProjectSettings|This will dictate the commit history when you merge a merge request') + %p.text-secondary= s_('ProjectSettings|Determine what happens to the commit history when you merge a merge request.') .form-check.mb-2 = form.radio_button :merge_method, :merge, class: "js-merge-method-radio form-check-input" = label_tag :project_merge_method_merge, class: 'form-check-label' do = s_('ProjectSettings|Merge commit') .text-secondary - = s_('ProjectSettings|Every merge creates a merge commit') + = s_('ProjectSettings|Every merge creates a merge commit.') .form-check.mb-2 = form.radio_button :merge_method, :rebase_merge, class: "js-merge-method-radio form-check-input" = label_tag :project_merge_method_rebase_merge, class: 'form-check-label' do = s_('ProjectSettings|Merge commit with semi-linear history') .text-secondary - = s_('ProjectSettings|Every merge creates a merge commit') + = s_('ProjectSettings|Every merge creates a merge commit.') %br - = s_('ProjectSettings|Fast-forward merges only') + = s_('ProjectSettings|Fast-forward merges only.') %br - = s_('ProjectSettings|When conflicts arise the user is given the option to rebase') + = s_('ProjectSettings|When there is a merge conflict, the user is given the option to rebase.') .form-check.mb-2 = form.radio_button :merge_method, :ff, class: "js-merge-method-radio form-check-input", data: { qa_selector: 'merge_ff_radio_button' } = label_tag :project_merge_method_ff, class: 'form-check-label' do = s_('ProjectSettings|Fast-forward merge') .text-secondary - = s_('ProjectSettings|No merge commits are created') + = s_('ProjectSettings|No merge commits are created.') %br - = s_('ProjectSettings|Fast-forward merges only') + = s_('ProjectSettings|Fast-forward merges only.') %br - = s_('ProjectSettings|When conflicts arise the user is given the option to rebase') + = s_('ProjectSettings|When there is a merge conflict, the user is given the option to rebase.') diff --git a/app/views/projects/_merge_request_merge_options_settings.html.haml b/app/views/projects/_merge_request_merge_options_settings.html.haml index 80dabeceeb0e63..20f3933d0a8830 100644 --- a/app/views/projects/_merge_request_merge_options_settings.html.haml +++ b/app/views/projects/_merge_request_merge_options_settings.html.haml @@ -2,7 +2,7 @@ .form-group#project-merge-options{ data: { project_full_path: @project.full_path } } %b= s_('ProjectSettings|Merge options') - %p.text-secondary= s_('ProjectSettings|Additional merge request capabilities that influence how and when merges will be performed') + %p.text-secondary= s_('ProjectSettings|Additional settings that influence how and when merges are done.') = render_if_exists 'projects/merge_pipelines_settings', form: form = render_if_exists 'projects/merge_trains_settings', form: form .form-check.mb-2 @@ -12,10 +12,10 @@ .form-check.mb-2 = form.check_box :printing_merge_request_link_enabled, class: 'form-check-input' = form.label :printing_merge_request_link_enabled, class: 'form-check-label' do - = s_('ProjectSettings|Show link to create/view merge request when pushing from the command line') + = s_('ProjectSettings|Show link to create or view a merge request when pushing from the command line') .form-check.mb-2 = form.check_box :remove_source_branch_after_merge, class: 'form-check-input' = form.label :remove_source_branch_after_merge, class: 'form-check-label' do - = s_("ProjectSettings|Enable 'Delete source branch' option by default") + = s_('ProjectSettings|Enable "Delete source branch" option by default') .descr.text-secondary - = s_('ProjectSettings|Existing merge requests and protected branches are not affected') + = s_('ProjectSettings|Existing merge requests and protected branches are not affected.') diff --git a/app/views/projects/_merge_request_merge_suggestions_settings.html.haml b/app/views/projects/_merge_request_merge_suggestions_settings.html.haml index 31a85a204bef54..12ab905479a191 100644 --- a/app/views/projects/_merge_request_merge_suggestions_settings.html.haml +++ b/app/views/projects/_merge_request_merge_suggestions_settings.html.haml @@ -3,15 +3,13 @@ .form-group %b= s_('ProjectSettings|Merge suggestions') %p.text-secondary - = s_('ProjectSettings|The commit message used to apply merge request suggestions') - = link_to sprite_icon('question-o'), - help_page_path('user/discussions/index.md', - anchor: 'configure-the-commit-message-for-applied-suggestions'), - target: '_blank' + - configure_the_commit_message_for_applied_suggestions_help_link_url = help_page_path('user/discussions/index.md', anchor: 'configure-the-commit-message-for-applied-suggestions') + - configure_the_commit_message_for_applied_suggestions_help_link_start = ''.html_safe % { url: configure_the_commit_message_for_applied_suggestions_help_link_url } + = s_('ProjectSettings|The commit message used when applying merge request suggestions. %{link_start}Learn more about suggestions.%{link_end}').html_safe % { link_start: configure_the_commit_message_for_applied_suggestions_help_link_start, link_end: ''.html_safe } .mb-2 - = form.text_field :suggestion_commit_message, class: 'form-control gl-form-input mb-2', placeholder: Gitlab::Suggestions::CommitMessage::DEFAULT_SUGGESTION_COMMIT_MESSAGE + = form.text_field :suggestion_commit_message, class: 'form-control mb-2', placeholder: Gitlab::Suggestions::CommitMessage::DEFAULT_SUGGESTION_COMMIT_MESSAGE %p.form-text.text-muted - = s_('ProjectSettings|The variables GitLab supports:') + = s_('ProjectSettings|Supported variables:') - Gitlab::Suggestions::CommitMessage::PLACEHOLDERS.keys.each do |placeholder| %code = "%{#{placeholder}}".html_safe diff --git a/app/views/projects/_merge_request_squash_options_settings.html.haml b/app/views/projects/_merge_request_squash_options_settings.html.haml index a5dbfeb16d829d..61ffd4814f1730 100644 --- a/app/views/projects/_merge_request_squash_options_settings.html.haml +++ b/app/views/projects/_merge_request_squash_options_settings.html.haml @@ -4,7 +4,7 @@ .form-group %b= s_('ProjectSettings|Squash commits when merging') %p.text-secondary - = s_('ProjectSettings|Set the default behavior and availability of this option in merge requests. Changes made are also applied to existing merge requests.') + = s_('ProjectSettings|Set the default behavior of this option in merge requests. Changes to this are also applied to existing merge requests.') = link_to "What is squashing?", help_page_path('user/project/merge_requests/squash_and_merge.md'), target: '_blank' diff --git a/changelogs/unreleased/msj-settings-merge-requests.yml b/changelogs/unreleased/msj-settings-merge-requests.yml new file mode 100644 index 00000000000000..d8dfe021b26798 --- /dev/null +++ b/changelogs/unreleased/msj-settings-merge-requests.yml @@ -0,0 +1,5 @@ +--- +title: Updated UI text to match style guidelines +merge_request: 50383 +author: +type: fixed diff --git a/doc/user/project/description_templates.md b/doc/user/project/description_templates.md index e3fa7ca6dc09f5..2267cb55f1691c 100644 --- a/doc/user/project/description_templates.md +++ b/doc/user/project/description_templates.md @@ -20,7 +20,7 @@ Every GitLab project can define its own set of description templates as they are added to the root directory of a GitLab project's repository. Description templates must be written in [Markdown](../markdown.md) and stored -in your project's repository under a directory named `.gitlab`. Only the +in your project's repository in the `.gitlab` directory. Only the templates of the default branch are taken into account. To learn how to create templates for various file types in groups, visit @@ -28,10 +28,14 @@ To learn how to create templates for various file types in groups, visit ## Use cases +These are some situations when you might find description templates useful: + +- You can create issues and merge request templates for different + stages of your workflow, for example, feature proposal, feature improvement, or a bug report. - Add a template to be used in every issue for a specific project, giving instructions and guidelines, requiring for information specific to that subject. For example, if you have a project for tracking new blog posts, you can require the - title, outlines, author name, author social media information, and so on. + title, outlines, author name, and author social media information. - Following the previous example, you can make a template for every MR submitted with a new blog post, requiring information about the post date, front matter data, images guidelines, link to the related issue, reviewer name, and so on. @@ -130,21 +134,23 @@ with access" or "Only Project Members" in your project's **Settings / Visibility template text areas don't show. This is the default behavior, so in most cases you should be fine. +To set a default description template for merge requests: + 1. Go to your project's **Settings**. -1. Click **Expand** under the **Merge requests** header. +1. Select **Expand** under the **Merge requests** header. 1. Fill in the **Default description template for merge requests** text area. -1. Click **Expand** under **Default issue template**. -1. Fill in the **Default description template for issues** text area. - Since GitLab merge request and issues support [Markdown](../markdown.md), you can use it to format - headings, lists, and so on. +1. Select **Save changes**. + +To set a default description template for issues: -![Default merge request description templates](img/description_templates_merge_request_settings.png) +1. Select **Expand** under **Default issue template**. +1. Fill in the **Default description template for issues** text area. -![Default issue description templates](img/description_templates_issue_settings.png) +Because GitLab merge request and issues support [Markdown](../markdown.md), you can use it to format +headings, lists, and so on. -After you add the description, hit **Save changes** for the settings to take -effect. Now, every time a new merge request or issue is created, it is -pre-filled with the text you entered in the template(s). +Now, every time a new merge request or issue is created, it's pre-filled with the text you entered +in the templates. [GitLab versions 13.10 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/885) provide `issues_template` and `merge_requests_template` attributes in the @@ -152,15 +158,16 @@ provide `issues_template` and `merge_requests_template` attributes in the ## Description template example -We make use of description templates for issues and merge requests in the GitLab project. -For some examples, refer to the [`.gitlab` folder](https://gitlab.com/gitlab-org/gitlab/tree/master/.gitlab). +We use description templates for issues and merge requests in the +[`.gitlab` folder](https://gitlab.com/gitlab-org/gitlab/tree/master/.gitlab) of the +GitLab project, which you can refer to for some examples. NOTE: It's possible to use [quick actions](quick_actions.md) in description templates to quickly add labels, assignees, and milestones. The quick actions are only executed if the user submitting the issue or merge request has the permissions to perform the relevant actions. -Here is an example of a Bug report template: +Here is an example of a bug report template: ```markdown ## Summary diff --git a/doc/user/project/img/description_templates_issue_settings.png b/doc/user/project/img/description_templates_issue_settings.png deleted file mode 100644 index 7f354f7c2886fd232091289f5c8b21373fb309fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9315 zcmeAS@N?(olHy`uVBq!ia0y~yU_QdYz$nVW%)r1P*ncODfq|JJz$e7@|NsAKX=!C; zWxxOYRxESfzkmPngUwnLg z-n@Cc{nDGeckdb*85I{7zkK=f{rmUNpFcly=FFeJf4+bJZf|cdmUF zFJ8R3Wy_YJprDN#H}2ZC>({Se`}XZ~b#*;-=#Z_g?Z=NFA3b`MoSZC@b-=>H!qU?6 z-@kvU^RCU9G2`{?*K60V-M)SM;lqc&efw5hTl?hwkLc*=w_koOU%q_$^yxGAKgrL} zFI;-_{Q2{81&2F3J9~P1=FXkl(9jSP5+dCd5Ed48{rdGKOP18v*S~%Hwxy+I@#4jC zadCx(g?p~PZQpW#)v8sOAAd13Gkg5_aYjZ)Wo2bsTidf|&;0r?eEIR`=FOY4X3cu} z@uySA8N1fg4<0;NuwcQD-+%x7{nxkS;rCyEj~qE7n7O~8py1T0Q||8WiLSShQ%-^=Drtau1f5mshU7ZCHC^>9OZ~ z_wH3IJ9_Wcw_kt$_4f8E79Ux^e!X?`sdd*5&OP)rD=SN@;@J6zpCck779V}qwBcUn zg6nTS|B}u>q|_f45D@V1-+#U8<25xk?d|QiUVMA@{-?|Qg2OjIST>!iUw8M^y-&Hh zxf3T&^z`(cFkyn`r0C$u7Y|&27dP|Dq}`8}En9Z_>GjV)ziqwn`pJ_gW;0Un-Mbe) z^-|8F8)6;4r7Lc^cAY(T=VRc+3)O4xoP2a;-np$4cRq@qemP-X+o1;+UVVN4tH z%Hr))9({bd>&_{o)^LS#*V$(_doC)z^73B(k{h{O``27Ou;|FMt+$S^yt428_s{Fj zyv*9%yXgFmr=Q=Syx zSOVi>^prYZX>=`GCX^eX7sPtC}@0u+1{9EymqyUG)xE$!9YP{|6K~e~fq&y7I`|ia*mXfAq1b z+tzgHiQc?b1`j_>(JE>+tyfM>zHy{|`t47@|8AVS%J}WJo@@`D>60uwUsx>ru4EP( zFiY#m!c#(g{wtNjBR-o4nYH=WRP0m>iR2VZx9P92-W_pIaAwArJJ~aTm_3TR7_iRk zmhhYAeYzE`YI>>x`<}6DNgtM3-MRYQ+x=Umr6cedJS>#7hwrg<`7mImE@6?g8l zL&_!9t1Lfh@E}eU!>+4*C&3x8eKkmq|#&kOy|BH=Z zH+hO0n>{tty2-^e`^O7k9zChIpPsnwUI(uQj#SM&Xilz-$LmHBGY ztjEt*AIY0s;IF-o=a_)>`pkzt57O3HohjcM)YAP~x+G=Q`9*8IrM?ylT-dYjY7E!9 z>ETkBmUem0E|Q*_!P@5g$IXXlamQkYv))@g zfIZJdDUM~viPi46TQn!^`Fh1*W7qlUlt*`G%nG=!?z1Lv!>ov|rLPyvDm%DnjpwYd zg#sI9MDVSf9&WTT#4s~BPx*OR!i^(e;`fH#d%Z*bU)=2@-$g$6D$e^N<|c6c*7FtX zpBE`UoXf8)-Ar{c5dx~4V}OBes4%Wc4vN1*Z%8fh3dQ#0&))WYo8i*EMM66 z?ARlFH?_|V_cDAqZ}{rOOWkt)(mwU$4$o^Zza?gKA2@qHT+w0MqM0T;vjb)v%H_-2 zV(xxA!l++y<+`2Hg$*U&G#r2CJKYwXH7{zN_sP_-Qn4u~9Xs6orn^Q?obozZJm5lB z9_PC0*G-VaY2n0`Z5yoREwh9#d)TZk`L=Q6#^W8^zpmpkD9`=%t;3&ZeyVSc@J6rw zR=Tfi{Dm+6C}LNw%y=Md%F!+wyd}a%=UYb4yUjB!R%9LO+n_Xa$FYdqS!&agS6Uf& zyngj+%dtgk)^?u#b%QlUIJ)We)2YiYryYIbyRvsqbYr6M`kzcmtkzD-9#3+X+%hP9 z7k6ncg9eMb*rlXhca3JA?Kr(;Vzx88(MMUs>^-a3YZl%y_^9x;{LS%NU!V5<*L`(f zU#VNPj=MN%LfxA7Qj?E;6_b6}WHR|??p^Amb6hJk$u+W9_3Cjwh1oZR?i@UVWO008 zTXzUs*74)+iytSRJ;J+j+1vNG7_L>j>Aji5fB0(STJe9Z9Q{7M@Ag$gBRodIq`81-f z)4kirCZXp@QSBS1O`W<2WqoqOeC|!Tbz-NegjwO_d#%&WS1Z;iubyeKiD$ztiMFqw z6*KzI9*})iAMfK_WW%z#_w(=B6_SM~Sres}N@e6%oO^L<*5@gH|7DYG9j0GBBA@N_ zwS)PvNJymcY^&}2eyVwVZmRpDTGYXx={u*-E&Q$8ywJNT9;?L9Wt@4#yu)8zO~%*9 z@~M&atQ!GgDo>$tavPL9Z%w&LJm=t#|?B(T``wq5>&uIGUUGn9l z#G0qmt(_Qx^{uU~|7Jh+wV8WYY*;TvEF#q3g}Y9orVi&%IWnaomGX>XXwO$+OFwo7djhk!@ah=ko5AcSJ6! zTy4pW^1oM-uVua?N9|gXS8AEb#)WGal56cQ#noHGP<3zR}6Y@}6Aicd2}-@a2o2y}jA7 zFLOpk#2qi&m0GOQQ;kK1y{)3ZXytv>V>pv-9{1kDXZckp79LO2g{iK-9oH;oM4Z+< zS_E=M+}vrelEp!#%sYd*)3nrbPvt(j!*!-Q|B=W3ik|#x=D4nx2)t9^e_wKpGVt7k)ro^4K z&suKzu0Fm?@oT4U@bRq*a;rMDUZ36T{m8NBWJ`1B`iTn{otm-E>(%s0vo%ucrG2yC zs$FZIy-~(DM-^jWb=&UUVsO5}sQ$=wLTuyKe+pZCmYTM-YxkRT3U}Vh z8Cx*Gn8+?|L*^4`wY8VNB+o0U0dhwp45Aq;cMu=8$!I|;(s?b z=B_w$#GYkZ;XB#Dv>DE`BWgO_q^Cqb@jrS++uCGqUf%U0&BaMd0&Hf6hxf#)>9ucC zv$L`^GdwJ_y;JeM`T{Yh<_UU}HRBWxA%J-bI52BOR z!Sww3l#I^fs%fTC(8c1d1HTloZLJ;TAPlLQhTo>&8@#n_okA1f86?bI+u_3zK(WKFhGZs&(-hW8IsI5B;?E^M;9LJ@OTon0iI%TbwJ&^J@=N#Tta(a{WcG0ipA0{{VE(EZ5xT8& zuG$ov{?uANbH~59u%7}avy2wmlv=6R^{x9ZcHqP1l<*TCFY0EUU7_~wR>$(+C7shw zylIlS9j$bB@++CRlmF_!o!h3~rPKYmT~TWFEFWbPjvKuPICeBRmp3zWoylN`j-zzD%0G8(6839*37}9&*oykbKft68F!E&q#@XBYvYg z|88{b)fu&^6OR0U-x~V;Uh%oTmX`Ie!%8nt-97v7_rqeBw7v;$w4A>xaba-Y=;Iid+=VV#^{{3$1MZWsV-v3*It!GqrN?LDy zxo7Uh)h7#*ihNeyo3#A%cYELZAYt8mKQeeE9p^-S`nLVn+Do_Aez!R_wfbaegs<=U zx9(=|PYO)(?$`4@vnGvO*FGYsuy_4Oe!g%1N8O72(!aU4%w$${7y8ZC+99nxDLXl& zqr~J2zKu6ZVlYSpX9JD82eByXkaqZO*w%_gAE59#46#nJV z?FX-R{HgxCs{6{lOErss=2idO{Ak|wJ8s)fKAl@@;Mp4PK5u)+?AyOK-mgA3v!i!j zTg$xrZu2jl(ci3WyZG**X(!K{-U+%9Q**B4=+hscZ)~3a*k{?{@}n_6=Z=}U30z%1)8jw#Ibm*s=QmTjCHH&KFP;yTIx3zxQDo+4TpcJyXxZ_=Z`6GLVxyXq`H z**wcR>U7-Huk*C3>JFAp=QEkSI(br>8+(RPwY_P@^D}2xXYIDSvGnuN0=uofanG+i z=ZjzV-}Y+dmu(l1K3nE~e0IjNpIbLPReHDMY!9F0#)#^3r(0(Ky)?)B?Zi}paQ4sh zYCXT4xVYpYH-;yev zyjo{R$JGzkE;1?eLZdd$n)+^1R@vznYl^exdkWScyMIr1vCAB}v)}eFyr}J3pWLdM zB(0({bdVcPHNiI z&=JZ}>aW|UXs`9zO7~mJy>oN6UNj6kVl>NUh2@m37qjmLUn{SkEfx0EzSi~8ydD4I zU2@ko-g_9_XdQ4VG|?O!angzfHnk^L(yoy`;K15~i+y zR<&<^Z_v7G=aP<8fs1#Gn`hUpjQRQX_AaI0H7?h?_cxb`3D1|mQxo!BKUd4#HD>aj zcPT3cJ__ysxWp@xL-6#&@(zm|Hkt8hUvKm7Y)-nM_DFwAs@DawdA2QQyBbB zYz&B=Q>GJf#OQ>LU~#zns+}I)D?i!HJ|kafc}DxA{Ps)x)}Bh(dtM;oilJQAY?&XI zx5OUNa@o)kI_KYK$$2Wrrycf!#NCpuZ%pkMeY|F@%5$Z?e74d&kA&kN8#+Rxd+hhD zv0)eD5j;Jwc=8(|X}ih=t*gJBHxmrsIzvfr$LU+nM~x3EO>=zKIb-Lh;M-kqK5rDx zStiaqvG1(s7W3S>yT1tgUprYF5~Lt!`2JeZ-TIH+_cxsL+V`~ctdDZ)LDw9<<+96; zpKR+`nm(a&$~3>!{GvN2x4wI-*vTlE&sW;E!8+{W6OXf6D}G+t{75R&^-Oz;!0wKv ztCg?Dv>pwqtb6!hOMBhsBRi(weV$i)*`siuY~;L8!fTd?{+{Lc!|c+!gLgxgY(3Rz zQ9Hf*=ER1M(2fMb)fVbo=DJib>Ymb(YEl_c?2&zQw_4~w4d=}QPCrtOT+e)4{#(9{ zUvTRlrJeDjxrX!VYZ8|2{lI7c+3(C8>C<7h!pY(&Ck8k8VuReDvY}re}=G zV%g@txwB6CODL}H_&I?mNqA#P>hf)(H=idj+pajz_3$=3-}V2@rj&hu*>@@RORs*^ z9+kA%Enx+!E)jF=BxLv7_D*TN;kWu>$ozR?X&n)jY%`yyq`WX)_+`m~@V!Zu4o9A| ze?1pwG-t-==d8Q#g{KQ|lrU<#;i?lmb9z+k(JNnK{vTVPFWBYT@Bbw;{Km^m)pqy& zKF%!Jzf62eo=SOc>7M^zXspvVSsT+M+un+=3mS%3O;2=JxVa z>bdpDezb4je4a_^-hY!jvu$sCZ_)g-uA)iz_Oa(DiZ>r`ueUsW{-5z1---!qt8Q_% zA79QEF=b=Yw$rArZ){EE{%yJ2arAwj_Ikg{`n>I(5kAQ*8#^O*Z3_O~_2x5Y@rDeK zF2h#^J1fdwX-+=BJBeA|*^@alQJRl;Phnss+syW3lH&8XPP@)$6xwzyC33EYQQ1A= z?VA=@Hpl3$<}ecVEx*%N>8%|cuU)9+{?kf3`GBy=bkml%W;bo;(yRJ^ zf4lK+=_en1_U0A@e+#OfymqtbiH0175QtHZQZGQiKb=GU`!tJxn?%IAg<>`;Qb3rp_-+cRbXLdd> zuk-OcmwxVj3`a!qi~xoW&kPnaWb-9BFdc3@T7`s0ZP{u(()SG zmI`0a+Og0}@6x=K>8`G;JBltBPgjredpF@nLddqb2|KjRS9$SG+s)Fs^xlc!H9KeJ zKA9M3{HWv0PS)o)^WAfYU-OeR+Jl5|$$J9$} zv=nZg-)F5ASvbKu*X{l4at0ZNjqKAsytC5$`y_nZ?$#+vAHUc#>t@?5HQw!pDUxTu zTqy{iysY@#6Y*WYHwb56Hu4Udl*)PAcDbI(j5)0~UL0rTo|x}UGx2nOnp2dg-<|l$ zBk&QYs7w3|6A_Vzhc9(zn%>D%4WFqM^t0mN>i1#K=jv>kDHXBleL$t^WQ+6VD|hZ# zeWd99PnJbIv6`m&c9pv_Y5_I%3>3bNj@nn$a4jigndB zrK?0vshnF8m$kL^RA%4%r@*>+>kr<+*t` z|NbqdnwpwRZV4visCyjfbM#+N#-cW?}p3?=SKJ=95vz(?*ntT}l3wxpV!gt!f+>)C!Pffocp_Vj{gv_V4c@T_~Z?p`#1y+XZH z^P&Btt-Fs*U1jUUsN=aOe(J@@q@~l7HXGeEn-zQZ-7~gm*Qc+Rx?i{%RoxkBuzJPJ zBS#OtRl4mrr*Qj{Gh(ZjEZptg99-Nqd%JVeh4U(M_IZ=$KlNWCx4WR_`~>~QJ4>I~ zW-PM$vLWj8S$iv$f5zGWCd*FNzT$K{z4747%O@XR@l4W85qbV{^D;HhS3#RRch)-b zD%){RRFO;U44AzCr1zuD!j#`;&*;!_eQSyx@XcH&c-+Q)@A z=3F+6mCMoGn{)V@sIm9y^oXywd?ywCT9cEVl`u6fJSTSlO|_4X#RaPrK5lz(%Ju82 z7}q4Pyp@}^K%p5FtFTJgEYpMM*VH32+kZ5Ci0^l6osrg;yQJZ0w=SD$FQ0tc%ylm( zR3x@!e%DyEEK!aB;I6=jV!<8}>77pn^o6%SIAC66shd8z*gV(7RpsPQts{ zc^0k{ibIv9g8Fh-whQF*SPraq0X8W5h(CMkk6qz~xB|9}F zg_`TSk45iTb=a*#S6qCz+_~7d50&37xc5o-ePJwHdCQIO8aJQZ334gV$;_SdcB58) z^65A4mitY(Ltmx+6Ac+^&zGB5v==_M zK4Z>MdoK96<(c^U{-10M&P%>===^zbMm~drAp?UDGef7MA;Sa-28K>Xh6xf4|D8K~ z_ZEC~iPBYJTM+LR^LtmX-2NZF;=NnMg_tkstJZzk_3g;jZL23pG%#v?^s73z?)kkB ze-3YnUX!#>e@E3y$LPUX{r7sd_c%Kl3+5a-FTdR`dG^Q7>Dw#+ov_|_?YZ3lZ+!VV z39R3?W*-WBTQdK7eO1zuXq*4*uWz$hx_7gqz|K&~1etS1wmbR32K?#l_MfA-k*nhU z;w{$CEB;;b{pTt5zu-sr_Wbp=`csbQ9_ri?W+S{@_Tf~ErGINIZlAavoy)w>{?b0- z^dtruEyKt69?$<_UVcf=HbH2+y}`D-kM*tgrfg8F-?;Vh!D$K`WtMMQZ}wr)ky8wh z&wA%Z_fC*tX!or7*jJ&jucRldvQB&RwHp)4rajN+5C3-g|F-h~t2mhpWe&9Rng3+l z=PIv!{_*9K^Dka4c`#vRYt}TeKh4)xd1S8SOY^T`U|weqq@tF(^<+$*W7i1odk zD)ee=R`$KS`I513j$bJ>KRb_a_2s$k-}0JbTE0buZ;{>{_3f6nl}&o&F0U4eQ-9R@ z?7lZo{_&*nV&A^pKl84&roGs{uOvfFY}Scg~Hb&Af%rv%VP=yb(HQ ze&n2AvjDRb&wuZg_Wk!O?tge4^O!09Tx(XrH_f=5Q#)^!Y@U#aC4V&7zh++UCphn~ R$f|=NX-`)_mvv4FO#t2dL$d$? diff --git a/doc/user/project/img/description_templates_merge_request_settings.png b/doc/user/project/img/description_templates_merge_request_settings.png deleted file mode 100644 index 587367bf2fe5e7e35d54ecc9863a7a6acfc336f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49367 zcmeAS@N?(olHy`uVBq!ia0y~yU_Q;jz}(Kk%)r2)zE!b{fq{V~-O<;Pfnj4m_n$;o z1_lPk;vjb?hIQv;UNSH+{SEL5asB`Qe^F7(bIvJw3gGf&$4^ zq0Y|EfBydY_wV2D-+zAo{ORfGxnRM9>gww9^78H5xBvb7_wL=hPoF+rw|-rFdwXSN zWk5i{`Sa)J&YQb(<;n>YCd`>LXW6o4!NI|g9zA;d_U)uelMWv~{Q2`|>CA02XU^QS zXHS2B|HFq5Yinzpnwqw5-Fo)y*(_7G zym9>a@h@M#96We1EG(?JxcK?==kw>!-?VAdix)4JELrmP+t;3+p08iOzIpRz)~s1s zSy?Y%zD!I^ynOlc>eZ`1e*Adgz=3byzO7iXV(;F)U0q!}cI*Nr!(U3qi&^sDO%Ya;Epp#Nt$v>C2!}RC#Pj5`8@yj_S>HyImh}d zPR*EqbL;Ove?R{Ey5-DMkCwv;2ivwiJofM3|Ae`JCthBC{NiCU!54?7j9=Z1F&)Cu;$zU_B+UwE!t@nYJZZ>Ht9 z#8Pe;mF>|f-hKPSyh-%IT=}xI2jJ>i64B*Rs5N^PI-F1^0A+f({4Pie`ho+_@(ag z)VHUO`kF@eAI)>TFP~?5``+aP(%qR^akBNYrPiuXK9y|M%?^9?N>uA}>>9}gmw(I` zB&0*F-H!dfA6Z%T>-M8BX60)*H`+Zrx72`Vca6{V`bp7xTVk$BJ(;$Vr-1!qnR=4> zm)BD^-R+BT`&}M#Y{I`a#YvXa4;j4qv@ynS@dTzx2cv`R&Tr8aKj-1EdiV6R)&4vG+_@F|Y{!~UF2HhlTJ5XaV(q4#4i}VPId%OqQ_cIan|^yeW|+Cw zCidg?-OmMo3+<9WnmExUp~BX}(==OyAd+ zUUrCz6S~yQdE8$(#cLV&K|LQOzEjL{C6Q_;7QJ-2leILr z&O%}OjWwlj_K37;#!kPzVSE0UH6HU@PM0JlX`BD0lY))9OD-2*c=|Es;#qJr$6YV9nEsHJYu2f<8-F(y92Iq*w%p{`)ztjR z+^?tKK7049X1aK$P>xzW^Q`};4(>l)6nWydkICF?E9O`l`|okvWgX-9>fQ6Z@nu00 z%Ti+FTz|_6m^}QMzH9xZqMwR+_ElZw3O$din5SL7pMGoBm(UEsQ1h=}op-IVI>TuY zyG-uO#yLOTl+I3D9=CM`@2sfbRc#Uzm%1t$|I~Xw)86vpp^5QNW1_x2PJCK4>DViV zD{mL8?XI!(jOgJx@VMZIqJ#XYxZm5f?Ce_;y{Y`YHG*XhG!!mzb?Kt)EqHyh(D~sgrs; zL&p4x>_eOBcc0`Gs5r!aZ-`lZjQ_FY=d!QdQlj&dU-N&c?)Z_`?q?i9FJA1Vpb4p)DUjN2==^cN$+fJtX_GR5Rk=@RIcS`oYb$PO{ z`JZo^!qCh_!ujYQp?O2CA<&%`ORDKhLa2LwsMA?sVoEdqf1EY??DQZKG^k zQ*nk(#$n@7moKaJ-mgx~Uu+_t5Y(H0_wXlmS#4>ppNmg@%~NWbTmF8Qy}->0dw0lf zsmpo!q;pm1#;~8_(vl&i57{`?+7U(uH$=jjH&`e@jmX zmc?-$p7QS2^*#Qt*=)ca@m9=PAAS;jwx? zn_o{(-F%R{ZvD=0rYru*74?ekDt^*iX1RaaKL4w}k@oN3y*&AJ<;$*H->=@8y>oHJ zUiM&#WiGLN53W@tNQg6(ecgXA&1Lb^A|~@=*QcI7c3QfMt?uZ-ed#9OeShCOv!=DJ z@8u`PSpw?QV?S*RejIpj+N1w`XAS0`{vM$xpL^ND^qOaK*sGSW+?P^wc{eIL>q*OJ zoSV&>akVgY+OI=gv+nCT7si}>buHwZ%!boEpZR0iewl{kfaL+JjIU+axB_3c`eek4^QbjBjY_cQKAh6 zov{d&O}>A7@iw7WrZw-kihtyo*ZAY*Rhd4af2$>ySC*=6w>5e3KPy-3xLf~~h{lA% z+0VU2Q~A1Om#-3geBXa*Oui%QvmbNXx|HM=Nv@yo@s<0UOrMa^3-0AJUsyTm22GsP z-u6Cd;jI;A+av=G`SzVq?=Agk=U)7p~f;J-t0x z{oN)j7x%OMPmSi;&O7~{yJp8GvsHq8FF&dGnqFskurJi&e$3&Av!5s2`@a0Q?w+2r zs!uivFJC1VzwBs<$efDMZ?AXX3s`lX`@(+Jurm|mBaiupha|J)sT{p#abT8A&RU;? zE?4!PY-8(_7J4pO&)PfXPNA}@){2O&mt&uPj^(=kR6IwkzOJkY3I$ox|29xZi;-|(znmEyQd~B4eo3zzX+L3oh`Oz=gMK{-Nd_8a8y+W;bTt9;|Z$^CkI4z)sDgV+={mzfe zoYu^k&b0M>-mgFBPjFVc>GA)a!}ax;-C6D9va1&PEj*Yhx|yTr=$4F^`_{hS_ViZB z+ngMslSfZRKA#*o^C_QoxQ%X^zO=Dl^G(UKpQV=^w%vOEYrDGm@>ODA?=9Fjw>vy_ z|Fxg%<_SA?B(?6BxmvEOp#R|ewgmRmrzgE=QvKOsH?hIbr+=k;VtLZ#2oL|WW{L7Y z3X^nJWi&qXAT z1yuaxQai0Ba8TOl)VUKAY!#Y+sGL4kc&&4Hs$A2(%<15DzqMVM4En+ z+AVGVvHnf$e}9paLhsj{6Pw8x#=IlNk%e_p(Siq?1RFzZl-6*l$2r)_2}B6mT7)?0 zO`5)k!>!kFxwxtN|F^4Oy?ZtDsO^4-KJk02&-0&Kvi!xmRWJSPXZOyxEZf7qXKnfv zoxJtNljr98sU14U6c-!se2>TXOHZ(Tt^1s+N1y!TT%(g#Ul3a;%d6dbjmx+2L)Pnq z{oy&wrkq|`H>35K^F)iYw_4>Qw0lQN#43zx#Tk#nzA3Lb1kSR_l%n>P0(C z&(G_74+%IEliH@TYpaWPg?dKVwXmF2U$uI5t?`$>Wd>{CKAqxOT4DSq@~=-r-K~zt zPNq|J+7IaB|JR(s0G8D^;Uh z`IyW6bYz%n_e@m3xO%%l@?G6$o4A#tb7yUNxJtGq=@pl4dZ7MXFWcN|@1-W3Sts?` zS97GvYH)1k{_|xC7xT}a)AE_8nbZ36SJqEhx-Z-G__2leD%X5(-56ZD)*?XU@uy^| zmuU&dPEOE$@MuBw#>cS+2|Lfcjnv!i=cKe(_}Z*_8;@Tse-hLmvu@4H3Uij$ZD*ct zxFkRGbcJz;rd)&NbH%B17X~gk!~HlVdE2GJTCSaMczkQr^uN{JSH80HQhL0E^y^T| zyIQ8jR*mbkR!(PG^=r%5)D>RG3qLKm`0MV3s8vfvlFqM6X1Zd@w8ml1zjeXWk3P`d z`x+cD?dkCsj-0*2aO+AyyT^Yi^%T*WTLLm2j=`kiq(^dWV}01dgYk z`>`voneC_1P39PoO=Y6-f zzQ?*hLa(@b+Ua$Z9r)L>Iq7YNgw4yy=9k`U12Rs>=&iVNVe|2VN}gwP+C#qG>WkF# zGfP|T7`5q);B?$}!3RX-KFVOrpGp{ZVXHyyA0>1_9I zbM2h}UVpv3JwfPP3WCCHZjH$GQcMJ1nN}bUOP~ zlfQEl=Ly+43Hdo0kBjBLT?@VcGH<5ZhU%iX)4XKX-SX71<5N1=X!&i9>t3~v@B4YS zhgU4kzUP{%x_<|27|Y{>DpJo*ghoy6+u`t|npO?~;Z?}tja^1Rr z<@vaVdhMwvv%Fa6JuNzQ3k25spI6Yk3X_~ zjr=#pKBgP~i>Hbj&ud*~-go+rk8aN1zRPZ(a*w9RJmWH*zFOgH(Fx|OZ=PnY`|dY8 zIVYmJRw&NuuI^=)GXHgVgE|lMUb?>DeoCN+eeRKW2j^{GaedG9J#mvbC)kEdPdgp? zX?5|1dHIsA2G2HePwty7{QUi&2kUn@7!^8;PcJ-C#@Dp+x#!`Z%h(R5Zha~L;^k4h zb8?rf=Qh-z$#oP9-&ybD*Z6RgA5*X71{>=)$@90%^&i}LTD;(PmTZ5)&27{DV)`%M z6fd8qG5w`vb*;W7JCPb`$#jLTVRK9Z&D8x>$tlPo%Txze!oSZXZ$_6FhHRje9 z9$KS#{5s$9bsuY!Ywk~;S-MIsBlep}@X4ysnzyH#&28I~x3hOnUiwFK(zG>?Ga2|R zuioP-&@2o)I`i~L4#rcj8H|=sslBm%r=`#RXr-y5#&I`W0)@^TGXH$aRQPb(wacGx zJUrWeIq|x`SWN5TU$f74|MYnr`9{;2_rY4z&(A{|j(rR$_cnicw`6Pf|Db%!JKf)s zUzfKAZDZZ=Wp)uL4BuK*{X6l;irH`Tlklw%wY8fzGVA$RiAOVN%;aIVoXYfhH}C9^ zZ>-l;Ud@|c{NQV(Uc3y`inG_P`*(LJO}F`RqhI#h686`t`L~!`akgBy`>{Xq#G8*d z<2;rym;JH3pnu39a^2pYEOYE9a9MM9rsYQ%T{Qk?@vAT9m7(o=DTPq})@^B~_v0c~ zE_{AIZ~q&cEBwi_Gk>1DXW(a67M5P)b*jf(Li*N^E15H%|Nh!`>aV@2^;|8s*P$Q3 zw*9;lRdqU2hJCX+r`sCW4@+$;HTZsV{!Yz&pOu*E+M9gwNRhD{`*W>xne&xj-PPH3 zc}4iVvx3Lnm_)DME%GgR%Om^FSpSBn#z8YhpRjkGYejynTHDrkGh@#W`Iiq5{@d2Y zoESX0aL(!QB-i>g7iDYS1th%I>b7|N>Cdt)8$Lcu>T7>H_1L!3X&Dt8->!UK8ggXz zGyR*#_LYc4rc@C<@rd>6=%w4gZm3C)c6#I5&HDQHrT>gt?-|^s+sed##CoW2 z4%oW;+U`9MPP1KqaJZ2@>f7EKukTAddbr2eRS}D*^Dn@uYd0T z6#wX3c-{GL|9dB&ocr&~+LiX(cih&idH(FW&OE+nQrTU?|6cEkW?P^B?_I#D*X8zt zXZGE=Exv#Cw|%Bx?>A1ZUw8EPzHgZp)29627Nj7+!NSz&KnrTae1R+1#4g`ny<+X8 zI~*+44J;}i0vlx$5|5YmsMfpcF^dS-pE>C3xyfOJdQ4k-g(Pdl{X$vO2|{|@EdOiu zlslWJ?DKiHH>Aq7G~H;uQRP>=$sYU9>+DK8^zh7i%lsUP*%;I& zoPN%Bs_4VVYchp1yLqQapUz@@x8USv%ZA&l_~z{}ElbwnjGMsn|I=*68B)ueHbX48 zdHz#e@qTlRpM$eqzjvz2E7_$s73;1@6@iRMpSbI^SMH&+&l!H!aJ9)y=NEc9d-cOP zLHvoCObc8?t3XEd@A&iFFrsbtkyLrFc?!EGoDT0eed18&6C-hHz5m{O8&qqTeU-D( zk}rw57jXB))36ueTAZhkuVi>FuE)(%edMX~j?2A*(~Ca@tP~f&#XG&&;Qn2w>^J{6 zlt1&&RSB1=*F9;xevR@a1?gi#PKNHB3z=0cCpGFUZz$byFivl`){$im4m{EvY2v5W zoQ}~exH?Vy>7SjIw%Z#d9*0=Qcu!G9;ioTrA7|J*(HU0=WXPmKL8uc)Kqk>CCW z?wkH+?j7dEoBk|k7dzdb`t#fS)Su@kTkT++{t$BcM{4{krs;I@DA(;NO* z{5(8fWS=&Fv3;HR<7$C_v-gxO+~HI|-%xLl=uzKe%iUt?43|1N{V#rd;#2?jC%2iC z)LL5V9$T&Y?Y*kh?M(9oe8Bl{@~!7<7iwOvFJ+F~Xu%)bU3T%Y--os5?;kk%=#TjE z=RK!;zNVcswLB~?^sD|7-z%wiNA=b!H0=)G{zNoL-Nb133)w@GyK?VH&A(B)TwHGd z%Fv+y`l99bv#+i{8!`9XeEzy=lIcJ8XU^?9KAS7npvvs=O1{&{O@tP8T$jS zX$$YC|E*$of4l4N^r?Hdp8DUE`fi_A=*dl&Ez|bvPSZcPeuBUOqjgy|e>NS;+O@zt zxA|sXW~$%nY}*Aq3+$NkUumu{*dTK=sns&6Qk&^QWXjLj8pv?oq{igI1l|C{Wt)SwvgfhD}YR?1Mzb?MHq5X;*Use{PtSQo3Gy-O0Z!&ZT@Z z8;hRHwr9P%@ZZf<(l#R+JIc}TgEjTp2{g=1HyXK&ps8ilsA1Cy6Rcp51?F!m0xAjfo zPPd>}9sk}6J?GGw-kNoi_okAzi^da&n2C#iO>k0k~cB$4DSqZJF z$#tzQ>rx`6GN-+#tJfTAkPZqEED&T)$eVf|v4Wi37T9mEH*WRP!eC5FoNzbolqGF4pCS0B|f40-o zRqZyj7GK)qlYBUZgeh0f~VQ{oowzGZal^+K7;220j6_N(guSmJwJs(SwYdvXDqPxrdbvq)rH&G3$I zE32gHaptM3zAK!${dGfE_Pcv=$*(sSJ$H5bfBb|5POOH()u1Ne?{K<9w8&XSAJD*EibE8+)lgsM)sijgL-?tYd4(c zC(IQ3$Sw2qj7h?#n--??UPT^l*O}8DpHR8G@!!b|9s7f6$ER6bxM#jZrF2^MlnfKC zs}>P;+yckm2>S%L))j9tX1Cx=3Jku^Lk^^wAqEH|9aflf88ju zO|kOK^>=Gz!_>Z{+URY+zQycE#I!@pb-x91-SH4y^6{j}@%Pu81e5l1D~G9w>a6}# z+I#8y$3|1Fcd7>hTOw|5IxhX&OSm-CBx0L;!cLXw3D3EIl(xj?bhz<1;CTYJU_C-dGbhQ&ZoL+qhq3=YgVGLHdP9BKZ=QpWPHc zsZab9+v%TEW|!1Ge8at2ujgY|;#-?*7ROH&H>+E`J1GBU_kZzon`&cEZj#eZm#m8m z{$bS=QI@D2zj?Xh&EwIzV&}emwRNx*j-7FI_mq`eKb$UR+I^31)`1dp4Xd zNs7F#_G9hAqRmOx1$*zh-*V=j)@s+BT0fir*Hq5OX+A!O14Mr7ZNx9h*kcwC0wnPQA0v@k|TXo!0oiG_iEfbo)mpe=b->9p_b3`Jr<9mFl$G zTz`c*+F6ASE+@~a^GfPW-*7X7|Ml-l$JJdgCv3daG389`*9R$*cY;f8vXm#4MzK}j zOr3T%Ff%Sh>XpUXjlR`O_+nUQ>^M`@dRpP~^b33cl%7~^zs+^E!CG~dUo)Q+J7iC2 zO8P37|EOJ5Fc(ycBvy*@v-kHD&oNkB{ZcfjYgNim5$>fs3crQ6e*9h-u?Dd=3~yzb_{XYXQf|M_vUZ>sh8D+=Bh7;c5K*zetC5S4!1WSXY= zKC`wL$u2jU&n*)BXR`KcJ)h!f-UGX)sqju)xMJ>9$%zLz4mY>d6>ZPkRO53yA~|H& z^v`eKUaPpd>G)LMg|iGJx48#A6e|1PtuMZ^U|EmF(~WZ?u03S-E#NoJ;7>fY_6DDt z%AHpx&%!-kMAaURc*$2)&>@B1~8*H5?RB>RSY{cDbRU)Ob!GwuHGu80H{)^9Ff?(3V9EpuT0 zyCuc*PBE$Ec-|1ya1m2fWK?37n3DQ|X;TM>PouQfiU&-3+uH&~++B{(ie~-HSW~&b zMgNanu<2*pcQ4;fXbHS{+O&fG|9`xH~suiP3MaKwRE>96TeFKnLBjdd0mlk=YRDV$K!i{ z9GhV9ZhApjM|AwUVAhKX+I$ucU1B#5&%S;5?86^M)=O-!#hYdroz9Bfbyr$(wf*L; z?Pk?m=Ixu*?IOGO);HfNZg*zw4LEndwtwq{qng~uonIbRzMt86Np{z1-vzL>0FQ&} z!vlo>MadL5gjD>pF|3o@KQ(Ga(1|^(ZZ(}LayZ>_>wWO%3w6IU9X9j(WhTusI(o(B zM4rw8_rJG#E!WQI>zHsr{ktg}rboVUwmx=qQMp;d{F4U_**#i&?;Y7ut~~E) z(*co-d+LMkNC^t7EUw-YnIa@Bdef!Y==4ANFQPwI#og9_()n$pmeoSbj(5LP>wce1 z-0!nx*;|RzI?27f6O6Wc+TRJv7LJ@JA{Zs}MtJ+DBc|)W?>mt#7VENptIncG!?|kv zzE|yC6uUn6`kC45=I>XF-y^gt@JH=#xgsw)<WJ z1h1#jF5FdlvyXhyO}uPw_G;_;x6j_5U4MOoU1PaaYgOI!FFNYSP8d08omE-CF)ncZ|kcZa>aR{w3QTHc;Hmz{mCtZdc$GbK(f z`@P+Ik?h@Rm2Ok^9{>g4uczDICf+Xk`>kMO!;8FK&D&bMVs%{3`&Le~S>}J&eoI*X zNuA}QT!L0PV)t`IZ%s8Ws$I(&XqF{*?A*l3$MugY@A?|S^JoV1k|Sx}I%jfqXUl5_ zK7M{h|5R$)>DGVUsqU_e6q5dZ>HhcdM~by6ce{*&Yhv8JSD{z$t$ljd|GJf!c(L}| z^1=%Y|MaKd+-&^$v+?Gy^Mh|k*X(>2q24EnngeQrU#S)HJV@Amc31D;?23i2SJ%u* zd>@|8yTLyGG57JMwSRu=t^2JdpFZpL>aA=y=IhKiikr)4(W!P<@Yaejzb%5P5mHll z=gYX`q$uh+uATb{kaKh)6dshopSH3-BwuoUnX7JT2ebmXL^qIlOlGx zYoCHm`?)_oiv48UtK0SS|CG0M#AgQ1)@c?we8% z4y4_*h(EXRRZNlQ<0q@97;ESUPj&aJK5FW6uq|TWv6LL6&Ni*gv(FTk=Q`$D`+bR; z*y`-V|5GM#`*Dr9WXtPO(|YFi6z-oBy7P46)Z*gE?K>~reJ7-+RF(2iIqh8NqR`v- zs(*5I%6PGbo?KZTlV;s}yu7FRZA9{6#`8r5K|z|AeeH`=reuHm{Q0I+X!fVtn>8M( z#ahzePNo{%pL{b?alQMs8+(qKah-^`WHY(-=`krYy=CupjlZvb|3q&3)9338gqLo0 z*=-x@w%}1L-{)NKH>X_BEjzeK>R$2sz-!CDKagFVK7U^R{fn~6DU$mpeolS$sQ99& zofTS`99t6mwS7cX}8NY$}TGOp7e-ac(qsh-2% znNxJtJDmND&g9e;8qN1khfh528S?SaneaBbZ`L}~FBUb0@=G2)7WJcY-p0v~tHNYs z*DbeEn*A~|ud}@HT7OWOb40yIOL_-e<@>!kMwk7fzrTyjJNR6h?~~MS|4HhrkBdwb zj%B|-Z|;Lj5z}tZn0^2JC!Oul(oZutOk5xIt@Mh9kNQ+?U-Q*xJ&k6EryYN)lJO?x z#O9hM2bX{QwDc^~v`9YjX?f)*xx%+b-qrr)yvc^w-E7A9d)ZCgv!p7@uIs#B%gDFt z$NjF54R(=zZZi)T{nF~0<+=T6-Dl(dbJv?z)>*CF@O;YU8*2U?|0VYsDm(u;aMtUv z=jN)&#QWOIcTV0Ye8xG<^0>Cm)Ig6bj~-Wuubw{jl;LB=(!6h1Ki#X|*)?-&(dW+D zKV$D2@}Cw}Em;PVVUj68@{2cE2@jujT=RVr#e^utugG)^MZ%==|c|MMT{iN~fo&Mr` zZAzE!$egb?fA{>osHFxPFQL4C&+ppWzu(L2m+Uw@^U;ZRv-Ib))+-B7{GX@4)ZKpD zY1x#Ud2bo{`t0xTtK7Wr-?Ou~?S*fPnSSQ7gV&=st7kVSHN2YDQFLVD`Mcek!QNGm zAE(@mm;13Wow0yn(H_0YYpOTT<0$r!_}*ZtePpfv^_5K-8@}#c+vm6Fbn5)MPmh=$ z{xYHN*wH=PHqQz9-I&h!;d^|-{$AI}wx78*Gi5Kyyl#9LWm1ps9*K`+;ujXE1k*& z-4w515U}j`*1dOiUh`*ex9*L4Jz?+jaHILHQeU#KS9N+7o$vPCU-O`Ql3R`Cf%`YC zZBPB5_Qha-clu5|75e|f_ja0^PR(Jgc-!(OZff-*Rn7@5)rFn{iW2LZTv&EWq%dkZ)qJo?QqXsy~o}cUNOekUf7XzQuoU5i2wJ(?(Ni>XVCmU z=Ao&_mlHuha?Hco$9_5OrG*p2&Vja=6({qXg>pxN@TN+-0Y_n2uLh@I*A_|BPi zx5IMg!k(YKyZ^j?|G)OL_4J?h`&DDVUGrtWb8c>u_Vk-e1Qsox_?y90XEy(eJ5TRu zAKIa=WOnLD&i183R=jEr?~8U;1{z4_Gvr8L+SXdp`O2*SWmn{SIhm=4o>ugpt$k&F z;%n~pn=BD>bNahBS!YzQpIS0Kyt1s!>Z0=H8sh_N70NBu<&ITzuhL4Izxg)9&Dc%i z(|=a8oY|4Yv?&gIi zM^ocC{~UU9c3P?1H>0ekvSX9K7`>hsreo$;cj>8A1Lw54ZzirgB)(-XYkpo(<-MmK zt9$kyJ-2Jt)}KZ5D#DE zhdpzI*gdlitF?VZt)H@do_bNI|EHOT`@zpf0W-F%#nf$|`^xCSq-w+F)D6!y^};)s zZIxcmzawwMp&9c#Rm$$p3)}Q%_wL=%p3|clsv^o3xf?FtSo|^iT~Xqz^!Vmkr_Ew~V%#^X9c--;~^aWV>#hpLO~|-N&aUb9s(@ z{Qu^4|Nei!l>ctl*PoNNCT<6hc&`7mchC7e7M8dZ}2kW%;J7qR~eHj!xFZJR)RkQfC9W$<9uX>uGcf8u< zpi=Sw#NWGXX8yFE^}{Ce+oP?8-y_#A)OlAVnjBnWByfDz-~Vc**SQPsr#<={E?c6Q zEdKsOgxWD#-dRl=7yz3{BVmn9O3E1-E%%KczgT?--w@$yr+^k z@q{074~u4~vhz51GvY9dHdBSb`i;(RW#6q1Ty;v@5&tbt+tc%?uo>Tmld*nZR@^-h zSH9}P{AZiChaS7O#VGp3lCO(?=p?s>JId+b+uNgNCE4-#?7r(=OBQ>_{rS3QigmQs z8s^|rrBY`L`SogVvESWi-fj4P?;f4P_uDs}H_*AKeEEQT(y5@Th2A??7^i){ywX9Y zdgk|?ZJ(QW-P!wE%lw{w;d;l*+1FgtnF{}$eslguo~!@C-h|UXg})1>Yzx0w=^()3 zh>2<@1eXY!6&{LoJ$UY->YTqu(_>rj#_O0m%AB>_cjutxq1U@VToM0SAEgTx>^=SW z)BJ^2#s{V>mMmlPN|$bkjbHty;)mPj#r}WxZ26X+Ua@MS-&a0{J3E)J$@^HVIDJ)n zaH8sz=L{NpfihP=t`9!5Q}p<(YaY#853GFl`Fq##w^?^PGA}o4@%N=?*1h7inVQYo zxX%8;%j^5BN>{{e5Dt51`f1MOyQe;+wJHZp+$URjG+6jZXX(u|jfQ6!KIl7W-ddb^ zm22t_fww`c7-tnYwDcz2{b68bd_GZlOJe%U{^R`%(p8k14`crWB!kJLj-N ziQwi`<;8Wb^|5yux);9-G|hYY>B8*kXC}R0lOMF@eegEz^T+1KS(L0R{Ia&yu>JX) zzN#w@-sWPWBHMitUOBUZ;x?(IpM(!c6P>Zu3G#h%;4UZ`zq z`O7dn_tT6yvl;xa9De@k2ZK+Stk%y9*5~eSdsK0&Y{lHHoJTFYWoA8kp>UbeKB<_e z`RC7{E80)x{@a|Rb8Vs7l-`O8$sYb4*3u8kK1p2F{q87xT_{ia#l-hKi())a$1d8c zD^=N``tzss4TfvWJhpER;+lFUsB!hLACDBDwK>)c@Xyt5ORC_%JK6Gg%l&z?w&WJg z{NeTN^o3U8iM;D3_@95-e5&KaY2zu&GcMm0bibqjo9zm#%bC7A?BAXKC<;H+?3!Cu z=`8(nPJyLTOjpO>T(Qu*^VVFB@k?uL@AjKBb>r5Eb?=WkKfjcyS^tIovE^eu_Ysq=hx+?jGF$xgO;&8-a#zMd-wRm z$ydc#e>#-&tv;@{QR7{abkgJBdgqg?-E8NxdGGJKP^`B?Atpdf>K)4#MCCs;y?F_%r@^I7aF~C z|J>7i%~e%)HcEN%+>XPNH9g@4x85;ld`d9#Zj+w+DX{W{CVSPYj~{mGuy%N@yjFPj zzIx_u#og0pDeRN-(fl5@$zuLH>EycYv+h5($@@J?>GhK-M}Gz7pU$}Yj%)VRh^^-* zO>#~5Y^!}B=g)p_YH35XW7Lc9-ZfKmd>_A9p44TyWm`|S`=$Ad&$tSxcc%a9^k?7u zB3>iogw-rQ*;KtI1rAK~$XIgqON)XWovN4lr++_iuX@Y*=t0Ky=PpPoDY2H_PRAs)h7Dhq?o<_r`0!#RZN+b#8CZp)35q(=e{rR)a`wIUi0i7^@X`} zcIsXb@nYW6cuU^l^fcYP2G%JOJDnW$!b~QvaBL1VSFK=nQEW>1GqLvR{@u?ljnl1` zK3J<)eqH?h^H!(j&ux}p{#kTx%Uu7p*;AfgJ(FEoy{C7+YFnn|={_s{47(lwS=Rrm z?wwIQsb>GQzNPOHGu8X9=QQ7&c&3m|J<(!S^v}RAclaff{)$>fx?P;AK2NrM~RP)QK zl)v!xV*8S(RhpaM-1uE$d(yau?}O;+31&9p?*eY+U0eORsi ze(`O;lM5t8EU({teuep$u;TLP8-6go%=A0ET`v5m7li#rR975cun{WlF}{LZ?3sI^}D8ZX~xPe_1cq*LCGOWr8mP( zCO2VA(*FH>mW18oIlSfE*JJ;k8;_k``N2F|Q;q3)x$LTXk*9~3@aSH$K6UHf^OuTO z{*+Gs%vzTw@hn|M@mlehwFPSnw@dd|&Nn=BzT^G3j6av7R)6nP`BAKdb=Q%-vi*|N z(YtN=q`xcF?_XNYJ}>@HZL#$CeY-2P%&YI64R8Oq<>`}S_2G{uRi)4HPU^SwvTcn1 zbe#2ZyGZo;4c|C=vIAbNy8rFPvDWhc9nZDur|1NH`?UASi{yuAbr!ylUYk+ldC}?n z@`>Eu6@S~#Znuq>PH~{WI#Dx$VA7ZS*`?@Rb$y&GRCa)?Yn!-4 zd-T$hH@kE$J`ug*T=t#qu0!&ry{dsaUmlpToIMoB*PqC&z448MvtirLm}7=l8-?c< zTC8e3^GS>4XmLgUiJ3<#o@RaNc(HGe=a0CYRVUuv3y8F1 z+`e69rnuRK`|swnO3Y|qnjsK0U%Jci%u}I5HwqZd3b!g;Ke6}8i|P+dyVksWm$&%z z)fb*&7w0A4_PBUmy}$Gmvux6Q^V41*mv1&|*}84^xAk#HWFDIO`0-1$U>;P3;E-v*zgy`&r|&=82Uv$SwR{6FF~({YeMuQ%R9O-F@tj zJ=%6=)0!&r{FgfBm8@SU+}*oy(;l|Gd{3W=oevqDp3bb))-{*v^!*@~JmYj)eP*6i z(~riuwV~^4Pd?s0L2>gv_3-P9jq>NK$w_{iKfB`o#d6b>odz#z-)5JeUL+~J!11Gd zWSQAZt={#uiT6Z*ztjmfs(t_MB2N~`fs>!^0y!|Wdy}A9`@)5;lIQn)Q#~!Gn47;? zbT9wpPxtTXtO;=8{}_?J^Q88Q_BZc%r=}W7SnXBKRJ3c9c063MKhEQH?A6G_;rEhw zif{6`XKsubmCC%uNeh zXFn~nJ?%Ngn(~~QLj8&W8 zfXW4hR7tj0nKWnaxv7?R=BKY8z5H>yWVP$YKHJBOcW7?Tk*hJ<#K8GFwPV@8%}9=v zxLYA&df5Eq$?I}E^M%8noL%wovsm&BZ#9R>f_DO!cWIqgdA*uzix|^7w|GL}M-uEqa%MQMu zrQ!DW`-Emr7scy0wbRs-z6I#9>huJ3ZjN&-KT(yxLg(^~Irsb)9cD6?EphARUw0%i ziJ>rW^FoQkfAWRqW$n{_Bh%b{-{S7&voCs6k~EwZ2Cs z+IDul4`z<*c*~eB@$CPx?<*PgpJ>NR9yGvOmthsGKQ;HyuPaxo{+%l~{k7-9#ZR@) zue0||mwcw5UQ_k_;gcta=f3>-EBF7eRtt+_|Nou8AHR*)`;oWh^N+vN+xN_te762s z|I1j_$oRW+*De2??{BS=zF)NPrTqWI_dc^{dF^7T$(vODJH*U`!IMelqKb&OP}w1^ z*@?mdEP-aaf&v0=0U{w92_hm~C2KUfpWokix15tP?OAJK+M1PC=i8TL?mGY0>$-FK z{g%lg7r%ZGnyxUN^HKbb1b%txqmLh6G20#H{h@02iksJEA8~)0u=RQPifJ?T*ZrS& za-aK!?|$n{Z!4budi0jmTZV`~oC(Lm7k=OLW7Dka2e-n1er$X9>FQFsovVy9|3)z< zaHU7s_U_U9ZfGoe?8&XA?VA~L&u*G#I$fc|dsBHqklhXI$Dbz55k3EdS0;S_yOIqv zcWS+!Qs;56vaa@3oaSm%?Hn<#8S4`)57_3VEuHY%xaz9$&+W34L*wS8?>g;sj^AkY zq_5}L160$?BJO{%5<9&qHvOT`OjgBi+Ziji&dLbmc=So;>%1w|{Xu%s)m2sVnp*X* z>5&Xa*T^lnT42e!L2Gux zq}bi3)f!gc=6fUFP&keI!tvN|ALstosP^CNBrsil-ZrjTk2I&}*ZusID!A#hR{hSC z4D&X<-r0Mr@@F91a>vr2AA|3GGBy_d;Sz6F`MmI5@NOBys;isz8blxdRzCbRn&ECg zzZU;jzip{SS(>-&DuQ%>%PUGtAt)Erz7VPva{;4;6W#T`d zbEaG0H9TeL+3{q1L;t7*O2@U}d8-Y>45 z&cENs-zX^xny)9?)NP%=&1sfk(~s3g>+4^e&aB$MR{sA6#g?Z>751+85xBqi?7Z1g zQL|>P{!yr0VffK2^Yx;c*gCUK3jZb?`eFZNy@>L5wij1bJFc#nY@hd+`)Ads52hk+ zZu|b{AG#^g`eWL&i3&mzPx^Huew~kBH8Z!j8MYQcSb=?iJ*TaBbBr3t!y=*YrPKR` zE}gDgd(G5VpEWOCi~kqH9LMdG&Tl`yE{WgDdiT;JC4s{EGE*o0+Mi{?e)rP1*oJ_u zPx!17uS8EP_`fSaiFKRb)aX5;(pv`5VY7~q=UQnIb((A6&E>Lu z)$8(HQDj=o$DD>om8$odqIi-6qWM+MtL*d`Q-UX|g-rm3#inG_HM`z?Wxlb*=j>B{2G>c#&o(@@yT`OHPdtI)LAnlG#529> z?jwrTv0L``M>2%((k^Rhe=4!*0b7dpY=&H+CDV7Fe)VsM;BrQfJNF z?aVa+ISJummz<+MC?8U{8?4n!?3nJFcDh&A1CM}lNyz0Gd zL-kW;!HsGC53kMNy@#QX%lb~iYR!&sAN1rK-xVD=yI04?hks>Re}aC4Cdy&q~krn>1)e85``%3Zx>vn-l+*f?e? zzE_8^4%(NU`C} zkFG~~LVEo!u0l%tXQp*3=)Eag{iX0sEJIbCt+&I;%ls!NuU4&WeLN%LbMoYA$@$Z( zWsZtze3#mLMWlN9r5CX#-{Yg?>|Y!^y5o^tqtKl`m5VCZp1x9X5WjX&NAL)1Ojui6 z+o6I~#s_;RomxG8+wprf$EJIoWZUreYSEjk3pX<*X9xVX|90;0%1#~L!}07d{$+Vw zI8xB*=%6U#;?$r}*cAPM;nb!L%o9I0y$E59vPkN++F`}@^aa7hZ{;507)N*b`=4DJ)?v6>e{+3m-^TLJ8 zVrH9mO<8+`JLAi#vj0b9-d&)c)SWbvQ0vQ;|QC0KWvHmh?se7b(4_D-PTIgl|w zivoX~J6Gfvd0<<`t+JmNBFZ2C5nVUg^0Mwzjcsh5)~5?3IlfZMN(0O>{}`#A;xPNl{nI(IxJkRm{+Eg?BcbxCXNb}R`k<%`J z-*HbnHQjQ-MeXZXKg(Kg!Z9 zzN`#dRj;|Y=T-dGceh&Z=kJ)iDU1C9!^_b76(@>(-la)>pZavsr#cU=Y^9~Se>yMM zlpN>Jy{$C4HpTKsV?qCqFY4SY|4p50_EmLb?5q#F!zZME5S@^(C?)rJxyh;QNl$;x zSh+8y;(O!9U6Gew+?;b#+H&T?sNcO2-n@ZdF3#Bat0j!bZ%=@x%u4lL7ZY6MFMVd2 z9Vm6jqa@ejC!fZ@u*vuIwu_qf-`eEx*<-$-?-Sn)|D(6|+YRx~78ZB$=Zb&e& zp9&FgJ)5)7WAdh3dC#JYWo;atZKh>C^73Dte%@ryKGQTG_oTG%9OW9e_fOo;VBVW; zHrZM0^xwllYhM2rUB|2XGh&id@^Y@W;+wC+{|JhI(YxFA-~^Lz-n`Q@5_P|A7T>93 zepJHt>BN(T#!Flq{6d$wsI9F7^)t(kt;leBGBI?D*O9z=rfh4`Q#_>X`WjiE!^C8Ry%aQ@y=hO^;)Oj>D~3p?A^OgC~)P`x_>(AKP_GF z`DP0)2%b7Qb^ibJ!OULM{-0aFWYfYR&Y8QyKkYN!_G?vXu<%+<)|(Y)Dtmlgt{zJ~ z`APfbMw6A-Zd^KIwtm68P3BT%)3%>jt-JILH+M{Atfki#Ge6@_j;;H-P1p_`3_5&r zo{aA2qjT0woIQ2%`(Nj;2xRBvm`L07&MTNW*K(Va<}be!JJXe$==b{RPY?Y~6A#^BGHs%L(l5hr_7ilxSBF;wrB}`l4=BGW&1-#n`pMP0N8g@0 z@}Vb-OZoA}EpJSsr=7en!N7j@*O?oUT_3W)X082uYxh$eBO}kFt%eWC4 z#^$_z+mxsd{!dOvOybWyzho5hb#={oko$c7opjB9@4f;WZjza7x%#i~gDa-LQ?s<{ zJXWsE_dEAicGI8TT?bw-nR~t9y=&L^o7uM-9{GQJ8M{l=TB0*(+SVKAIXljD{571F z7d~&}5;4YKo8Nr?Uzz1F^=an3$uo@t4xKJqIOVCxX(7ccuWZ~Z|0EX2JbN0om1F(l zuZPQop-z0E^ZHhh*8RwR8&^(a{%Nw+f3<7%?)`=gd^5C99Z`RtJj*LG?%Bgr!A1Yr z{9^MeuOFK3-s`h1BW}UmO);nU>z==P{gkizqn}>_Qoopo8ZG!SSq9|5R$cBZk!45g z$|4u%?wp7Y&6%94`z=^x(VbAmlXDC!Ll?d4 zVwk(?&3+e1aUgcpWPhgq$G@sv?{@E7RUiFo->W~9HKc3LRiBtBmgaoz=H`o4&(0J_ zavj+bX8Lhs_=VS-!|sA;_Y9hc_ZGs&kLk1_nP;mp6kPxsxt z=F9VU+_`-8iuCD)mzKNR*;U_-{TIfx=|EOIZ`SgRyVkpwuzlITXS;J}$N%XE zFG=q!-0i+O@NV-4z1_{>7hZnacJad2orgus?Hk27bF+CEHb_?oGr#M4%*f7AWB6?u z+nuTWKhjvxt2bi!e>_(l6JYp|{=g|zmyNMO|CHkE3A2K$bzgt`r!`}>y<^G!s6zov zA6hr(*iN1;dAe%PelD@KN*8x}^{6n!+ng49^lI_9vs;g@TKsqag$D-?Tsxrj*RWv4 z|NchN{LM-=PxgJCept|pujlI>`&(j*j)z|Rc>K%b1E&Aitz69fe)Y>s5BEoIpP$&l z_`@gi-?1vc$e%xF?AyBL@ift;-qQ>w1lg}%vt@gv;Zn0m@eI$q5!Xt;Za-k9lKrMB zfBM<_7xI&eR=?ssCed(y^3%lZ8UIr6PS&}qqmRpn^3ec9f#MPGtXuUgz)6#wjL)~pR{y!21+i#^^M7iAxGZqvK%bB_ox ze~2$z_kVfsldk<6PrkdH7`-NWUrw$8Q_lv*+ZKLj9kupZSy-w&D6q(Qg!VmQYE_GI z=429aXl&7t=~|?<>;Ja=wDN1*?kYhmf809vT-+uDz~T4@&xwPANd}A$*A+o`6a2D%Pto0`Zpo}ThHSe)cS?V=JMD6 zB~PmsriM>nntJ}C(~7U|dz}l{EGTe|YO8-0`5;Q}`qz4iU-E9cy0_nN5bB%BfBu!# z)Z6x*=j=Pn@9%$geb>?5>x-r@efrA&)v*Vrf2Tc)aD14xrky;bv?5_2M3*pDV+s|PXn4Q1%>r~^Gn)F>UKdSo|g*YyJbYn^E*IEDWzU8)d zRb0DZ!H4+9#V`6}U*7Eg{cP6dE(KQHp!I+BnV$RG?Q-NDtAqY9nfXc){-$1Yn9qDxEjzpQjB&$H>5$vAl2%UGBf0+b z8&Tca!hzGGw`|#y+vBua{@2UNy6_+vF`+T$4&*-3Iy8@6h#YHeryy`aT+w&j{;mUl-#h3w$l z^nGc<;>D>cUp=qPN|IK4%5<&g`4$ERv3u=8H*Ag=yp%Yaa8EGxUivM${h3CGUMw^B zTiLFAs1hjs?3nQf7o=n?9m5NY_ApNMC?-8 zZ4+~NJ}xf)T{rZleY`s2bzh#u*6K`Mu7Cqqmx#@=RN*Y0SaE6DjF?YtIZuu(Xm$__ z-#bVC5R2Sl_BRazubFulFU>p4ZsvWiz)5u0N2x2b%(psDw|`a=D*DXqbBBVy7CVog zdWYclX}PzaxX4^Su}6Qy$&I0k*)akkKboV8T5P8DZ!^ftirvn2w zZCBi^vu3kxl6AfHMoFS*OOEKJD|a3qO;q$){-627f1|*48$FvZTw&S1+UY_1(xTq8 zTXWnsbM$mi?_5@?m}_#_dWr7Y-7ov{Beia+ z|JS`}+qu~P~(a zO|nlVb+^0D*}3fJelGblQJ)^JPPDZ8_^x}McF;zLb$6O;jEwBtOGAEiOkRCf`uPIU z=p!oxHgDO}%WN?@QrqX&mLy0p)TLxr%AfzWdE!&Xh0bfOA8ZnSz9r}Kvk6DGo)N8X zaKEIMr?EnS|FxbTM>&h4Ra zX17*h^Pc(nB9q0lB!46dhN->zGy7R})+NJJ2M_OQTPOEvxW_*Rb!sFZ*z(d(<<}kOYO>flGY%NUpvc^-egd?_q3Ew6@Qd&#uZk zPhVy1G ze^GiV>{?Mzc%*7n-MQ?WiVn;AoLn~?GS{?foV)Gu>Vhcc$g9bZ3n$mc@g=XCpZ?v( z>|5H0oo7A;7+kJw63?#Wm|XmMO8KM4bc0)G?!Wa|EW;Cg@cLZI%a{A^$}ju5d%bW> zRKzl$?d#b*SIPbv&wkv!^>>5P|DD_Y zcIEF4YVVo0{^ZAL=}S^yYqn1-KXv46($3qrjH3EZr z_Gikwnctj#?9*ut&=y&?geP!r?9#BG>jV`T->wRd+LzKD7Jj<@!68r0{;j)m159e( zWY*`-%{7_(Flqag#ak|%$b4a%Svg_Ov$s34tm9TswQhTvmmg+#wV7?T#)_I9Hj8&n zp7#C1^S_C|E6=~P4SHwIs=T|z$G!XIy~OEP=H`wAFO^cgIzk@~uzSU2RGzOP@0B{)HWF%|X*H z@P!LpI=@zK_q?-vR$2x;`lG9yy6Df|>JJNVefLT`Fgxs3a@xs~>rrxBzMp>msPVXe z|J|Khe^>IVykU1VE>c^Nnt$t!%1TR3Pmh^D&u+_Xe;0DZdr8f$2XhZsQ(C`vO8_lg(C7>{}S9$fIR(aU02-InjmFZ}6Q zdg3qV^xwgJw?q!PHlCMm`qnmU%N>0`?kY3+OU&Hn6{j2%EB5MopItVkcDH5y*_|67 zue7h{{QGQ;*&HM3^Xo;woVQ+hU_sNo+&RUM4@fQYy_d4tFtTCcBHeR8!#*1Q-@e2t zx%64})AL3dbvfH=OGMAG+|=&3i-6`WGY#9jZ^zYZ1rPN9pWiLo zUzunADJ?;*bkCdBXa5vVT|NorOjfibT8ZJ#_^)aEb!zXdQ@`e|-~6ShGC25lMD)66 zb3}M#nz}@7pLj3ac&h7J@at){`(N$}UNwJy`+ug}bIYFnPF!lcFI+hPd-(N51@Wee zhI?wg&j!z)RrY9M%vsCK1HuJQy5ttEu%Ea1{Q0Hzzqoj$R)4kXKoE*Le<@{hR%=|s=ka$s+rTgdfvQwKD zOv`_B`r=ayvz&#gzxkFdnD#OM^>5AF^{%I*cl=G#eSXI9c=VioDowfm)}QZgh)U?* z9U6c7(av9&H9Sr~tTkM|hxgOurLwgj+~>b|?eEWAQpWLKbWQ%Ge)}#vA-Aj68nqYp zY4inre8n5obnz^+XQ2Vth5s=+L2rM*D%tdSOP%oT>0cJnWE;oPwdH_ zUzwhnP#d+^;>(=ojglPlzFoJ|x4hp|8TI}2%UQ1i)At#zIzDOYrkg1_zL`5;HdhpJ z>ZxD!WLLhnt^CnpJHyai=g=PytMxv)&)xTZUi9?Nn>{anS1a9J70d|KfnoM@Q^>8YGt-Svq_6@m(94Rs~LT`=B@F z_$_{pziyA@*0g6=ur5ksSt0ge>zyle_C_tPJ$6#I=T)|MIM;JE#b);R7KX9K`wogV zY_Dy7`LkFv=W6mvFQ(0%DqdRJ_u^(9Jh*W6j&B+g8@KHho_m?|`C8u4#KYfXM3&j> z%|DWPeXX~cakA&~$5m|SBPK__k$%1Q$nDjcMOj59)|VOAPfzE5CjO$qVolK1!WVT) zGb@^=zLQzab1zwCz2xUuX0yV}tGszPTDSTw`BHi5JcD7d)Y(V-k{VY&*m8UGv6}lO zzoOoK*&0)s!jzzA+2{Sdu*Xd2P1eDnT_0U;xu<1@s;pnZ^`~`pYSi4z6*ppSOU}$337%*M1y7gDz$nQO%u`gxH~-`>|-*Sz+BD{S>`@)hgcm6dYr zQ}zqqz3`Ebt8~J`4%k`%*Vr#=Z@sn~yPe*sb3o|is%L3a`u3G)zi~Jc*E^Rc2m&Gn<&bC^56vuWSadHbQXLgr9Jx^G(YmhYDGFCMx3`S$JFZ1v!)(Ke>2ZKh>n z{(*n`rt7CpSn}F4#AgRvPH%41)@i#L-*p=FByT;-aCM7Ptn%;PX?HWXr}zF;+-lR8 zyTRg4zqe?`?md4v!?sMg^M$B#2()K^r`5(qA&M1<|&=F?_MqJ)t8@rMq%+& ziLbl=GcHRqIW<#hr;gbB65GG`*iWhnzJJp&Cn{|ArGiOeInA+`M6*)ejyB~<_#Nij z*Yu%r6_4hPt3?sI=@UYd?@PT{xAd)FrlrKj<*BP|>=K(fuU_56dB3=DcG(ZJ>$!u8kdyK378ArY4)X9KgR@ZE@;w{}j{zZG06F-4z`GP_zePkMf2bxJVsH=&hog~AE;^1QZ=8>r5W$zf}9<`qO%?^sWy9SA};xu(-SVv)gHBk7&c12?EET9h*|HRi@`g{WsTd zJ}aV5o7J3m-ST&yK>n87oAzA2dbQqh+o`OZvqEwcL;R)lJnY?b6CC&fRBndqxhvqkUx#WO-zNc&pUpSoJ)B|35LyL~n*PwlNS&S;+2eHtuefBzMlQ; zezth_t#=x3EZM?SyHWfy|0L(CxvjDr_q*7-{*-;cXXeoz-`}kMbSv_f`Ic#y`K@Jd zS?+O^-eS|YxcqjZ&aF9X_suMmHxGO{bHUxvy9Vp7f4Ue^f8+9}(njaJ=WKV1+3c)V z>!0tE+TPmNnyGDTxwkFs^zOo3Ri{l>J*OYPnkZ!A{^(%G*4)LZ!mC!N>erkoZoN&@m7W|`IM-vk%&vwC%YW^AjbC>v?|$@SCEKdLW#X4}C0>|Zn6Y=Ec*d;E z4@PggbIWqhB-sct-j0Z1+s$abjrCiP?Xgcr*EBAt&3(Ad zOuJ$x&xU>HJwJQ0e_6atHg@69Ya(kczFnO7LHvrAP3o*~jwd`8*q*z5ulu6UJD#oc z)Mu5|h&}P!9M#If-|1F*j9cLBYjUA_;h8P(g!PMxbz)P*Q^yk_{eVU zRSjXkOhL^xan|fp<+E-v-ZW@G$}0cj#N~bWSHJolBG9IKKOZOT5KOxkn3t2A`YcPS zQ1-W!YiOzLuIcu{rn;p^ZH|RBpKMw7^zHPSsYg>ozJKa5jRyt5gO2)wbx%Eh_8rzc zFZKEDGq2l+{pPmk{(resp#AHI>&>r%8LsZSJ;(IZX@}hptWxWi&2u;=8#!NMa&+IW z`PyevRaabyTC*bh&5IKie=b?h3f=hiz>y`f8*RVytt|VQCTO}X$#~<^KTW^9uTPw^ zwofv8W_RH8JlQLM<8GGjm~(jdq!(O9izL%I#H3mdF8;Q4+vZ~in_6S{#e{sn_v>8W zT?r0v<2{vL{4)9#)>o@#e{x4Hdf{Bm^M6x>^GkDw(0fHYE9L+0pKJQ;|Gea<&z0J% z%UYIoUE)pOSjc~BjdoU*_tt9NpI7&~Pme!)%Ao!`Z{KFW^{eOpJ#U-MgY8C`{Asf? zp2eQbzI{QU>S>QUe|rD+^ZQ+dj`wDDoZWk%ZL;!V{iW+lZ%2IVNx2q%tW19L%8A#) zE%@T=e}2!e`}e!PKsfo^3=t(QRa1cj*^;lDN)6ij!q3*+ui?G^ZQXILRa3>!Km7FT zm_pInx+nW? zzYX6jDE=ii_dV<454+;_RldBs*QR$fgWPxTipu&QU-#%-iP|{#cuLIKngd^U9-TP# z|JUuy?f)3ho_VuapZ}u0amDVt_gNn9F7*m3G2uV#mB0Jmz4d+vw%7{bdqTO!{(yWp?_MN0x_A zCv*KuUtqNG$Ema7muFqlS=r2)s;%})?CWo@ySwspol3UGR%Cl>=CK$0EVI6{RI>J} z(b9iMR%K>*>Yg<1I<0r=No4L@{|B$-59?=T*PmM3d$U+SKcSvAj7dxQvFDlAtTXbS ztK=R&oxopov3y(b$%W6>KbaG{JwbRkJ9|j&3*GRYfA4+F%V{ZlvsQ003$FySd_Oo;lJX%&~d%rQW(NemwQkk}JME$HF$UHNDs^ zaa`%{X*0!LxAa2VrLHPmFf6P-e`c=h-}h_e17DTRe5WvP-_|KcU8l89JxRZR<(l2^ zS? zbWhHjU5agonC*Uqls0+Cw(>1WEZmseGk3iOj3s^vbiRNrDpY{STi?U3`*%vPLN^XAfVt(9zV-N2IQFho`PoJbn7? zqRD$RzJKD~z+x-rwmLyw+u05%kbvWsxfYPJVYQ@>pXS+U->ywIG z_VK6Uob8`FGglcZlr8vivonF^)$Yuf-qn@5ihEM3b~@f@`&Bmc0bl8(CH8NhT0i<* ze>`CSRMn-PD|u(={Ebo6U*DN&J5NRbcI%S$wW3mSdKoK&r@So5GQP|6O-%IW-aXM% za(iNbFORQP)j6A-llK1k>4d7EY8M17`AkAtb{OnBeL6O2$ICb6{nt9CNpGm$Db+tw zP+ReZa`;u72CLR-sh3XwOv>_Uw7M#jJo#kO4vo*9Gwj;-$un&A(~vmvp=h7e?6ry( zuE%AKa+QV8Tws}Pm3#SgUErZLJLYZAoRa1-Imp}d(S{e(Csy4qDw&l3)~RHxnf~tC zF&7?7Z{DMG+12Zax#POHn6SWY+3{QVx5jhnf8MJ9>}{pw?(L5)IOa;swd)n#y@yA5 z-)i2%{g3VLt>{TwclUJdsi4$a(mSj zkDQpf7yj!n^<2qqaedp;>dMRw!k3jjf?bCVnKig`i<$KPIn1V56$Avtqy&|dgLVA(j50<2gJ70>L`MDp?Yl_G#3H$!1m#gi*|8wD( z&u;%?@3&@xgtG4Hj{BkC_3DZ}u-cx2=nJIVF-*lmnP|(q}#xoP5UB8M+^)Iow zR$wnuC73^Jy@ugZ&z18mI6Grn5($ne4l*$((u1ch$d&lkLKnDOjX%R~>mC=-+0Ny;s`EYkO_U+kYpo z?0aMSw(w@xX{A%D&VP8+Kihx&WbLJ@W)@c1>@RqDkHF*D_iMJeJ9|G}%UaV#%qR*} z&9m5r`e9PnHG9AAOm1=eao{| ztfKnNl@9JxTki9i+RRMJ{W?Y4??a8p%!?CVf6(JKh&)>{m)k90b<0AwlSLtaCcXL9 zwK9@lXVGcVz{(BW3yOPX&kHiXm5P=YyA;}4I7u_U{rB&j&6hW&*4duAWY7Mk?0Z)4C z%ciw**EZ;>vV2;UEmj=Ge)XN3*bCmr!P&Fqk|%4r^S#Mc6JK_=dB=v9&I6o6r*CAK zE6Hl_EBe;Wo$3BbvRwP?$TVAV!9=Or z6pq@yw~8id>=*uoHKc}1FY7OgP|p3vy-4lb+EU4@7jpkFO`Y{_-C@B?6KCWudhPzA zP&&eG*C+SPkmGw&N;7j(X1pzk`0H_By0F%IZ)UH_4aSnfZU0!-N9@yCy8J|u|38y{F4{w@TnfqAl?%qO+zQ_QJwVU2cYOF5#9@iaZX|`~}(Q1afz5!;Q|BFt3a=ycC z|1Wc6jYqfnxl6Aa_pUEs(~AG@f2l?#=UD3(_BTy}>v#%S>mFTOHS-E%l*fARXou6C zYyVh#tl~POuvY(jrqn#aW!yo34cZ#+Xl&AnmQFeBvw3o|RnZfMH68sCYa`+}HE}Mv zntw6rX5NyCkJlxvP5CKo$NGW)mioa@42!20xhqeLW|+mZVXldM)WX$_#(699ls9I95EnEA~}wQ#ZTd!K*w`lb^chL?;QdL@?My(W5k`mCqoKmL6d;(Z}GEjVe? zuaC(xnuTYUXh<&ce3!MRdzEK1Lv zp(!^rWe@n~`xfrcIOSX0{q(P?Rg3PlwQivqwri&AT)s7*r{nj`Ql)9)uCtj-j=oen zB9NoL)~)z)cjH#BvgU86w=lo=w%FFbBDbU-_J;D$(gpBb!KUt)>i|m z2*=u0%tzC&{h09cO}5f?hn-n=iYz+KlS=tc>t9fQWqoE>f00z3Zq7>cuUahCaWx7; z$$r@tSC%B5N!;nYrqk)2_B7)ug#t&^PKPOr>)npHCuqJcHelCwiQhW@M~dRMd`#Rg zxy&sq+cI;T)_sn3(-S3AZJuq`?^?CRc1gF%gCBP`ubzKa?q|S8>7f|M;UyNnoXUy_T{zDI?VPWCzJL^K3~%QymjfXs)Kj4g+8q5 ztV`Nd>gp`2!P@-n(~_IZpPh%UJv+3bD{$Y(mEEa%J1V8TBIh04w=`H~8gGC6f(z$+j#p>71akkA z)7ivhIjv3U^n|ecx}sYy9-kq5Z$a!2PWvAd63u<5iJrUGcPfD&Jn~nz$zZYWV`u_59H*P0GvF_Z|Ht zyJlT)#QA+Giw$$?WfeKNI`_`#+C8~q?{;DLH~w5==^tU zKUj3+i}9<*$7&yMPjC@=U*RG3KqURejY9!@Qat)9-= zu((dGxx$y9IN2KDwq@M*W_3q00Z;<_Xa}v-wn5kDcrg=JeTdlHW{EI&|Kp zXUVfmmP}+VkVxVTxh-0`YM%IvNA)+YchA?@WWpyO-Mu~dZti97j!f5FmPd>FjGWwA z+!8u&)SY%Y;;NY3ZRIpaP^RRDr&=FN`qi5UR|KwCD}Fe)cJpMPP36*?KmNb*|G-(7 zy*ImUpNGu7ynI%c-4e#?@84Ctf|tL#vU2+?_t4VvR|{vwE%&jVcF*IdS<_MBTVBC= z(^lX5a-+XXhyTc&n@4t}-27p2Wya0STQB*ts{YC?O03KKXXALSV(yOCg+I0$yv|kG z^rQ4!;M}K){<$GDLoJ_FUD=lZ{PyL8n{~c#(RvU&`;GL8qKyXE{v@|QIsVLWe_3iO zcSpXr49A%a{+;UF%l4^W6#As|{KJHzH+hW9)l+-9w>y;(DHY|5K)^mK%-qzP?w;AiCr8>{Z zIGLLM%$dJi?fWCGlALe@{r>O?+qGc@_B|a8&CI>mHmknac1-G~lAYc>*_lrt zE!QfPc&4-A(G}h=U-TTeC#N6xw%YZ4R`#b)|6O>uhnhWbU?O6%th|l={;Ho&pFUkZ zf9%PHvX5Ijr)}2Vth@W+y5sEO3R`ctW_@q%&(33=v6$^Am-5NgUB-8dD`#Go-|jHw zY47{x{EN3N*s!PScoqZ2pvW{n>%l%CA*b zWxo`j)it$yJP%^l@~+Q2p4Z&mT3+`2N_Fm>-%s@R%@13!CE;Y{OShk;&whH_ew7dD%6em&^Xsot7h{NU=u+znSZ7u3WQd-tB-AwKzO&8i(Y=9HO#RJovf<`dTx zF&#_&IU4&@*Bk3!*|I@(o^$1jl{K<=Jt8yf&c4oi$g^{1^$EXan}kg2dcGXf>wKPX zdCTyr(q#A2!aME^P{!N#*t7~ePswl3vTvDCq zyJwB=)7Q5j$2=_#$*7;Rj`y;hMQHS9p=a6Q=a#c)N8S5TXH-7>rnSZ|o%FbWkEfe| zFPV0eA@@zmInQqgy{czv>dsL#FWwv@c@^a97CG0{GTFB?iYA_nT)9uVuroAp&nxYx z+Qy|Rr;3jm|6D#HRCV5(dMBH8x3*4sy5@$zxcbuK)=NiC1I1S_?9S=f7j7Ehd~x>a zBg*A#ze#B&S}wEDEvx=AbK1VS8{SO*bI$df-reG}DYm1vedgX~rSnD4;%A;&|G#p&;ifyb9#_5vcBEHw+q*{! zE^Re_l9o12mQ!l8^|H66H?u?EDkVR9`BVL8?Z$!bw{Vx4%ys7F*~m_vn!5bt8(ER^X~yes-roKu|Np-9 zl$rA_U`I-xTQnAceTkpj@^J2Uf5WG(F zoapY8I=e4zXLm|3zB&2nJDYub-~8S5xc~B2!L7wM1-rJnsoJcMwVW@t=J=;&o8Fj! z!qQ%U|IgOH-@cnm=1=?STWni;@_X%%k87ch({|jv_~Pw}In%aw_v};@X5W9oSR;Ps zO6A~r#%5>EH$D7uGfZ0v;kdkDgIJl{LU;aJq?q0|pSh~>l~ew@8#00u>uycY?h0m- zoR}J}r+j(K^~q1Q|LwDVUmd^4Vwc&XvU9uBc5Pd>;5a;{p~3gt^xN+GP4_FOY>uqE zq;_t-c;;NIzNup8Cd~es`tyx|=_;N1r*@r~VR5fM>CLH&Y?Ue65XWua`ibS9+@3i7 z*y2+`(>5pB$IdxXbg-nbW-;698|S`WS+sf0t`8}ZOBVNBdottEpG|j^*A=aQns)R2 z_UC5|C!F21s`tRx121nqJGp7n=amPmbn@@%%--9a^xsG8^Sko8)>{4FGeeH_`Gx&A zj9S#63{G@)k^4^c&kVb%v^DvZt6IPB>Q5d9l9SxGeVRJc%IK-(ZtbP(Z+G@tY>HS~ z`FR~Ehg^>_h>bb%DAw;%?y~F!yFR2@7A`*gtUh7SGK>8>>^a%dXHK2nG(X?}l7y{L zKxEj~!harCau%VtZ6d>p>`Wv2pPrqay16{yO2_-I6qhOQCGU$y8fOUJefNC%<*Y)f z?0_f>=RCC;`}9h(qMFpM=2^z^DcwF7!ktV$PF?H}yw9k=@66XZwKfXr@}kc} z7iI-dGXkfvAaEL!er~=xdgYYV><48F&BN~**(g}uu|F)b{7Bx$#x-BwUP!pzw>)oF zOSRv($FFY-^SEZN|8`uHea?Ze2UgyiHPs+~cafcK#N|)NzE9qH`^-H@!^zLB=S(!M zz4wz(=R=!U)^VSw(FX#~YsSxXcUQAb@8sSo%la(l|1UP<@#>{JnP(pT6xQxP-SObd<XTiOTNqi{5^ip~^axn=#4=7IL-Kh1mR(Iq!uPAD>L z^3lwhFHV1|Et!%2^V>$nd5Qnl_vbEJU+S#+c8~At!!--fzFD7se&GQIo#<)pI@R_| zqbsK^p5n2*b5_N)^9E@bRgxduoX#?uUu}O;^Vq4=mD8*xyf2*fTvTG^*Iw$ZX&-xA z@Yt!2MVEb7=rf$2{#1Q-=9DUzX}Mf=XEUEgz7vXkmzXmlJ<|7C@qEQ1m8Y5)ExgR- zC#l}zd&M>}_14+*500<@Bp#|^0Mc9fXPbq>ra6oBC1>Bd{vgHDb$Zmc?(7`Xndk3% z+Z+~s={WbP<|2mI_r8aiPr2k`eX;z_%aGF%y!)TAfgFD`IV(l!^zqJP$s+HIHq|t$ ze689vWA8kTjL)yLr#=mkKKgobO;eV}(#8{sUhNfq?vu7~g2Qgl+*;#J^V2J5v})@v z>f|bmPn-F5iQ9VFCy`;3S!0?1*!{Q}HT7xj8hh6%8fVS!EMyEjtH193ahgc-FdOy--W+yZ*e|+xT z?1RtFo!feP?$fRZ8^53ZG&AA9*A%TC+>vbZX49L)Q-tzsH)h%TKfX3AbYuT1$=RzS zuU1(8Uj1PIo4G%OubdD+5dX|0?yRb?W12+Y#MKsU&TJAaA$*oD0x1lFjIU2Cb#*my zcfav!+%1!}GUIL7%lW(4PcBh=uLS5xh~l2=9WjydaB z-`(<0Z{Zitdh1}XqSFOC*W|I}m9IQ){EYA6(bT0WI_`7j+X7~+J2&^m7SXzei}s~W z@stVC)Vy@WbW%rO%!bcaS%Kkpt2$k+?=!uPVog2UCC4Aw^@^j-sW4X8#Qle;@BUXS zcWzq}Wx}>$*TOaO7q&gCxys9{xztk3uFNIvfR^Zt-dFD0tp)lrEE)c{S(&S)v#uXF z9~g4@+NX`1H(p+t+ zx!2vhp?UA&=2hP7q%J%7^w=G<(Kz^Yrj|?-*BMFQm5NpO>#i>EnRt5pqT2@(D(dn$ zv(K*cIl10_>y9L4F2x$%swf#RB+i|Sh{D{#qKwI`l3R7`qVSaweO$b z@;WOZ{B`w2Hja+w^+nzy-zV+L7MXY8iI3FR&3AA3@xEKFv22yPfz`v030a%@1?RY@ zu%xWC)mhi4Rr^8erE*ftc5b}~6>HYr5k0(U#@07B(gzDZx!TG#uzy{ecQm)E`;>=Z z-i76HVsE)to_Zs->GT=Rn17-PuAKV>m~S}BCjBsGx!->>^q^u;`_p?W)0Zo(SmQ7y zg4Bg(`({`DK1!dahqI2KiAjF zOqS<@l8ljF`pXV7ro~KS&39`K_<2tz`SjB>H$PObxUVa(GCfn|qebe@J4{RVs;@5F z+O1r?8RYt9ejnuS6(lDnCd&G?hUip2WZ$X9<#uZA&rKEc>#bT#MV!BjghhW&6}5h` zS0;PaTI*Xsm=f%jQhuw%PJ7sMdh?e{Q(7EupPgjIqP>2zSm>RXr#es799x%{=%9I3 zGbksqGV!6_Hpz1?trMf4+|qL?x#id^aa%z%?WcCdn~t7_P^}c1V>QQ8BQG>({b@9f zpLV)$vtZVH*(=!^Mw}Zurk$SpXhwY6)pg2+DfSyd?%kKfv8_MPkt3%1wglg;)t^>P z{=RS9{9PL&TH2g%WbT~f@-e!0r*3Fh(d{o=p6)okwd7#*!=BSgJAN0+&f0Lw)FUOv@n`V4a9 zsn$o`>xxc4&9V*Npi?h{ zKFgnPF<0}VXZNY?%Zx3#j+zUAQ?q6(pSDMGPQS!Llh)63HJ9Ej;*#VHsf=t zpJVm%lZ*rNz0<2=jVt`VTz+Fz95wy-)Ti67x`^&MD4zQD#l+Q3Hg{?bocB&H*(v=x z|9p~Wsn*Bug>%GALo}WF3+o>o*tPvhf#fWq;%+OyQy-%5nAbYJslD5BcxP4cTWgn@ z*CV^TvZGs5CY@1_*|+M7Y0v6RW7Z{KpKtXIyzZGUmoR;K>$5d&#!DsMt_y~^cx8=@ zNibzsawfLJC*zontBOyyMGC4*y*;u@OCO#hbIjRo5Mt3N4#? zvMF?q*|F76K2_In+qVX0zFKYB~N@vzNpx3beB`)`(3F+5^LS9*Dn?;RqC7}zu|M` zim4OC-R|s5=&f1)Ti~+X;tyRV&n7(EY|QmanK4=V?5gd-{^B2Q2+m|&9g-nXxP3`~ z4^Q%;wYOQVPYM3cm~=jWy4< zO-NQ1`E__oqfc{r(v+twi#~PCS?Z+s;%)J=ZCq@zVcoK)XKtSO`d9OjPdzDD*Yz>P zx19N}@S|5QB)IMD?Cc#s#h3a_->+J~K9=Y6{qq&)&AqRQ~t}P7XPpG(yti!WmIMa9t?R3!<1bcy zSJj^;rT0FT+5h07()Ujp8Nz=`#<#dVdfUHe|5-`vYOb`X^GDS6t0yo0@biy|!&g(u zxf=67-CdiRals?tyQE}Z=H5LCC0~1I{r>sYy{ux@f!|*?n)5Bawe+Uc+xVF=X-_}Q z4!ivH>W$R4pTfJ0^~$YdznRampP#+s4|l`;-Hfc|jZ^Myj$OyTBD2*qSIlGYyyv%M zIr3snW93-)zqdQE@cOjSwx<%iS1NFrZ+r7$h1=&B=cHa-UNQe%;pv!7pA^?}C>+x> zK4V`Vsa&%x*MdzU>E(A{>LKXch?$L=s4v+0K-{?+=PsXNHSIo(`$`pO+Vx4-Xep&y6nf| z^EpQ+?*^Nff6?pcjfU8?89K*qu(h2wiQ@ZF$8ewhmOtH02!s)VuvvCLKO{V5<>k8R-HzW)!M0xls-Wsh@d>|qI;47;}^W$4j zbUU?AhFMm6$xS{LrZ=^H?WyQ*hExBv{AqZix%{~j?}7?Oap~}HHT-fHZHs?pnA|V< zex@Qu_WF}s+P`D-CfL5>H#)H9-#K2}f_QPuHQ#1lEq_|{O;zXQzsjmpIj4EzRs>~j zzN2q^=Jt)3#`a&|E-8yVd%thR^9MVt^1t(0Zoi)TL*ensGv(*`d{+OR{(j}=-?3#& z>MbG{q%}m!o_?|MWNDZ2tK&+`-_5=%`||m6bEB?>aewcnOx-mz<1`1K{QOPku_@Cf zpXHjEe6ckBB_$=)Dj$1k`tDcB0mk~Pf|Semt(wQrTvIRjCVk~}8CD4|_7`rUe-q>s z%Dn!1>~~xnD)~8;quzP%jY$(%%sUydb-AmTeMsmWpRn`sA(x-8cwaYZ-MrWWwOdBb z=Jmm$%;q;!+bX%gOP58NmPx%^9^;tX6!iDhl*J}bxy)wUx%kIs+vO#NSm(NJ%uet( zHL>cs$oMAnG{?LZX%f$NOgPPR_>X*o{o&sYShsjoS}zS{zt8q1fm`d)@xF?$`)w*O z*_5^@Y`ZG7VxG;BF6FN1k^gfq?dHE)qg(ZJ%4gL6duhM#$5HuzC)*{8 z59uf^;+WDTFE6u#d)h&TTYb`%(qEs3eY^KbsPKn`Uw^s4qn+)R;t!p3EyHSeoN#>n zf6A7`&-03Au8rK5KmX3Lqc8s^?%T8Tx;T8D?`ni1}|GwXk|NlZ?$GG^B-uFxP zkALjA8O}X1Jyl81de+>I7dhAZzE4e*`217bwNlqI^g$?-$*Y<$outjXveH5WH+~4Y zIMHsuirD;z=x^BdoOD$=9+zi(&z*8` zcEF3}AAb5jn7;7B`5zg{es`XxzR^3P(vbvnZ~C% z9)uk^!t_dSIjd;>?9;15wl2Q+an{P2E7v7%sABY1?6|i(@XW=SZ7PdWZ?}2n_X@Gx zQrA1*donsgadnwy$!5uSOny0MbYGoa>T~MB^Y|90{C^_9cb#|b(IWP{HH_3M;ZN68KWk& z9o;$2uxwcY!Vglk-nBN&RwanK^4_R(O=yjw2R3eQHY>HlIk%Ryro}TexBOA=lqa z1T(v03}$ouA_4nRz$e|8VixoE4`%G%^?Lv~gs;xJz&i z4+~R<|Bf2b1gVFNV(d(>Bi@G@>{#_*K6&%0zAcWbeNU<~S3Ws3spfk4)T2*hA`M#d z?mi8wJdr=+V@l+@e?=Pvr%XSa>>VJtV5yMbju>_8o4doNhbvCJ;H~+~x%+fkWI)HQ zsaeLR#-TgHCQBaG7U*f7Qa2@Ln_AKiAK8yQ-%i#B^*nvp_vFqE9`@_2#ZJAPvhjMV zcTm{$|6jM;UlN!do91`pY101sW4yagn}&SIy4d!!Y?1oIPo@hDRlg+c*2!bLJ=y(5 z;Y+>Oq5gr_Zrm*u+*uCP8;(A;irmo2yz8`yUH*}kE;g3FSJ{u4=}eryRBPd$ zxzp|~Iqhxua?-=1)+=ql%8U;LzdEA%f5~Zo(O(6UTcab>veH(GN}T`gGU2p$QB;5U z$<%D6liBe%cb$%WeyT;nyUpxSZ*sa{-_@soJtL3ZSZM$Mm+?xI{*5yy&)08$_(^$z zVv$J3DvpBcg!!j)i*~$xQN}yvl=Aib(w!{&lRI1mzDx>Ts=vVJg3>bPy=I&v zx;N|Ita-C$X2~tRq5eB{$-Qk1vQO5U3hG98pI#TGUQ)p>tT+3i7V{^c3Cm2U8)=^2 zy8goZ2jQ1e_kBBBQ>vHzJ4~c{f#~XEY8wjXpEh_CyRzd~&g~shA*$(1Jg4tI67#oa z2~XNa)weRf659>J;uB(iH!;26Q!TeRdhd;_9dBmO`c}E=OvNT0>FepoH%h4)thejh z%pRlX5}&mUA~f+cCG}@RJV5E;mpSNMuwLyO-+SQ1%oLlGT@LrX)pxw$QOKAxS3mX}Zy>Y& ziPTqG@-|)fXD@2VJgjlZD75nR8J-PG7i?<$rL4J4)rR+`+!6P!RVm7*#-Zg?gjVk1 zKIkB@aYu98qqEgQ6K|d}x^YyzXugm81?v^@vO9!4+jiTvC$-01o8>+8%C6%xC(N8L znz%1%MSSKJ`Sya6r7;KB-rrohY=x18$g4`$8Z zwr{y@%B80^GXzYcxbA-X-0<5WtFua6Cgbj>i!bk8FAIN_f9v5Elj%yD%Oj7RFEIKq zJpF!fm%+9@4X6JI8=hGxkyV`^eEaQO?G@)A&F{cky#peCcH(B2bwxeGFft63qn|2I(&mUdN_Ewcvx;qvT-PB z-M-|}%rnW8C*g`uh>Dk+{F%H>{%Mm+>uqw{@cebbu7|EZWsEYpTJma@{5P}jk6ju!Cr*8#)^+E6=t|Dd{Kln! zcJAJN!YAfx{F@82c||%3E~h{ATffu)@Vv6veKqdZ%Z}{dvMk6qE-pi;(V=y%can=Q z=hq|?YoEVA?9v;4Ke@N)YD?FdC>L+d(2A%Sv2RS4k<*JeU1XmjA9Lqfk;Cff%L&ut zd4hC{rd0`*sIE!NUwL@SoX2IMuiN+fo={tLtTQtAz4D4r+fJxFbvFyQI~Y<`AHdG< z%>I3St0u#`ck>_3yMCum!dQ6SX^(a4fzIv|cH4K{&XZg9J^Jga2f};Lm@_@)y;@~w z%yWL*hSn7l{GSd_oKqCDOw(eaZ^!9FaSL=`7e$*z6?J)itXO?oUisA2?XN%0EU^1} zZ>ilJv)T;?eFm=IPmQIQHK- zePyAp)}?n_rOxk=J0R}z`{KS9!BhLI6^(h$e-lh9iHxqbIC)>ijJN5%h}zNA#Phps z`rG}N_ZUP@e=ZWfMtI%nz!#erKbv>!Z~6Our{iwi-f()U#ewf{0j3$S7xpD51u z-ds|(yCY+V-sJF{uEN!}{|{}Dtk5*>DcmWtutW1ecjvG0on6n*EZCv*hIQVTU+=5t z|9Ic_p(9?`cKgw%aZA?4U0Zir^xMw!elLG=uljhaE7mc0Mr7w^Pyo+JkDp!jH?V)z zmsq(&3%{ww+f6n&XYMcA zckM#_rqiv-Au}1yNUh#3yW(Zys?}^!Z=>wrAyB zx9s_y+I4K9(~EN^^AGS|f4WI!!@=-tm$|-u+~Xrx`i$x0Z5!v_D_`Fj*hDW1mw0%+ zljBO#QcDpF%SW3wh|lP^%k=)NV)b7*RzCf@)#>-;+YQ6d)MZEC$WLY3`1bdTKOfd< zf8J*LJUvWn--~ya`4#R?2V#A$#+T+jH%JT5TNbLhKN-sna+r6@5f*9rKlPM;|NYyN z)>gl-_MJF;bGiM#*-N+fm$^h0Gyi`+wEV`?5M=ktzUCHTh17*wLd1wlOwph*EG-Nce`)y?k~cdO%DIgnctSk zqxD?;-;KQOy*d0f|DC5k+mf;_w0C?w|w=k&*3l3U4E**=J#&<|K2HLWfz~;Evn`UuGyRIaz0e5!$G~9 zd2RNqa~gr(%HK0{42^nK8lP+|x#ZwgUUN#XTJy^7TPwVGJhA)lwEAdh)ypY!gO*yJ z%Qzsp+V|#D##5|8(jo7^Tz<9aTI*ex$LGRrtMv9Jy)iU?#1T6yWMX8ulV5zy)$`L| z`|7P0pYvi_+`F>aI=PU8lAo4sj9T%fr0U`J$!ZsT^dD>0s5$(ev$6S`v#@;mEScYz z&!vXePx|xj-I-6j4^7;pw|p{F`r%i{PJU6`satozN}|ju_FTZ+%Z^{JXr7SCy!dOG zSIko0-h#Ym8#?dpU0?N||CjaN>e#RU=FSN@^lqn5Y{c@?7ljF5qJ+vm{E<*QzVP$T zn=#)Hxh;Dqrm!Qa$cr&}*7aYSTN;jXeG!Sh(4n%?$Mnt( zAF1uNIMKLN^WOYN8<}mkZO(f%XE)moLFva&%FENQ9o4tlT&C3`+~QTQyhFEc!Bq8w zwr*BuKW!|(IMMRbWskC(KfdNjtStP$!Sc86^y~E%!C%FHrH5XPwp`f~Te5T7>X=rm zss@(5E|wRsrgg_H%v^o?<|DJlrag&g^?qwg?KQc0XMVG5H{08ZQY#j_WKJ)f>c?cb z{aD)c{SJpVaZNnD%=UR!oo;k;e{$!q#yz}q9$d6Y6@I?s`szgyEWBwyIvW$C4r-T6 zT|XP^IA?WdNw2Ko%T$r%tCc6D%BOjL36#9{$s+0J-OI+C8#s+!etRzI;1Vc`eI{lf zuq5I(XHMZw`%77C0t!D@Za?;oZ}#T>zV~(hzr6pxElv^&C#>kho1H}9svn=g)Az`0_v<3lw6KMzW;(Asty?f}?b6tD$(3b0WZafl`ozxm+?e(F zLDwGUew*pLYo_-K7rGeh^-KQkOPt`l+hNJJ9Wrjm>u*@!p0Bn|mv6mDS-5eo=8}L} zP7{@`H7|0S$aZv*!h$_rQY=r77ED+j;lj$VWM~=KGf!fXgzBU3pV{xc|2}_r_W6=F zG21EK67Oukf3JDrlfK@x+W+?QYG3Pc>S+3B(!mPW^)O7B^*-OM6+oB1B2{Q{G2rS{M9DxO}v z#N=n>)+;X(85m@3JY5_^HrANW)Jx~H4o;T;f8BoTsTCU!Chn?hSZT2pk zGu%-h*rFbPzw&;E%!VSHKNI$7=4}Z6vsv-gw-38l%zJdpKlV&fq}{i*I$tyS<4t1w zUU6>gTK~Sla?O5Qt&V&7mE}8P{PvmJE!*Ai;dY@UvQ6-+aNhfC3m$KZ&SHx1iQe~q zlWbm}Putz3Yd6k+{c?Yo>AM{{`4c({D|svS1dEG(zVmdCMf|CndtU2Arc0l&%Xz(h z{o~{Rm)JiQ++W-1T)Z>I@~F)M^;<_jnb;e}ev`JT5B|SP^y!H?r*`NFU%gZNIXx#$ z^T1Nm$&Y-COfo*)U|wnIUoc<)b}FCrn`_qhZI;E#O`Tx!`J&8p_lVlun8e4qP17^m zPsdD3*}7zR{4?S3soUcCA9EFlZZ&d~nLc~wav_{qWm~FZxAy0(YHw`AOxw zwVt)~vWV8HV!M3*vuQlt{`b+9qU*hqb#B@+tGDq-FMqv%y6^Ol^F=IdrZ4sRVsd)c z>Tb&kA1-ZKw{iVZi>VK;mn@xE8Rz<9pWWO&xdpq=P24$IT(A3d*(uAFrqxR--iaUf zK4oNDX1HHuqtGR#tM5;WTtEHfj#sphkZ|?2659!dGy4qc7xH(7{^hWJn0EUq*T;>q zg$bwM?8|Apsyy#B&*NU6n#)=neW$utT)az=XMHy>U*v8Vr6TGQ$~j{8sV z5O0or&ibwG$Eq66t(~VYUwYY4k|+PNs`Jqmn~Q6!*UUM*E%n$|r3d?2-#4#OU;FLS zeAz^O>+&T#cCAgdd9LNFJI!AB)z_QWJ@vOY`@g?Y{$;keT}s~9wbti%)!sZDalg{> z#fx>}9ciuh+Aq|mC)KvBo7=q6d`DNt)Y7lEk51bLj&FyHZg-%}$7hi4ly?)JZZ;CAJ|aNE<}1xdPr6Tj~|zx!g?o>m4N;D@D1 zsR$DTUqj!b!=XD1_KL)3F#NGt`nt7UtN6IpJ!S^Jwy%AM-|Q9GY{bBBYAi0d>U0G& z!;k0}EYleqPBSp<;9-bqJI!z)6~tg;IFQQl;M4z&r%ic(`a{*GhT#79hHmx zUS}Y^!gi^Rsms#O6AuV;O6*Y9-Fo}xzE7r)(~eiP@YbrE?@B93=zFu|#$mauSMH|f zm&V zvDK=d4^3`*uF+b3vw;1&l2PI6c}*(wFYEPxJoeU7?o2N$gWmJkcWfP}n`;Co_ZR9{ zGM7Fon*MNUP;%cbCL>w=U1jB}Go|@pX{`Vcw71PM4J_Jz9S7 zxph{KwdZ}oZ!3!~s$3WFUKIX!S#00^?~~$dPl1eof3GrddEi5@_;+6-^@7g}SFMbB z^vOp-hELk~%C)7Y^DbPfej#+)tu{UR?IshE!udH5y!G^^>(0Kdcl+k^8y40(AJ^RU zQ`+ZNQrh-{>%7o;@7JH2B9rYUUaWeak*C8@Q2G7b-JFe63V+Vrbv4ZU(I=->5gE(3 zX}$f#p1Jq=Lgh8)VzX7(=S3uKue)b+*-&oA8dDhTO_G2d{t`}IOg|$W`Dc!e)NtF=E2F6y+w;>mhIFG@G`lSq2)c%Y>}Vl z!e*ICQNKiQ>P=p_`tw7-pdhZ_stT+21ZlO;eRD8xQt?a2N7CC)AHMBrsdr!bljP}J zPuEYf&N_EGawEfmr#5rX=U>>(ar60Um-Mf5FC2a9x$ozXrYqN$ZF*}HoTI^iG}Pa< z{?)l{r}KYa{9QTmzjAzTp73<;pO2r2w9kEW%i(my-if7&DS2`qd%AN{X7zKKuC#ZPr9C1Gxu?81?Ij-l)$Z=&`oCVa4+~c?P5*wYa?*<*-$8vY9C_7m6 zQ?a+*srK~33mcwpn(G%GV=cEnWAfhrPqnvh5_BjTB3R( z+nJthwXUwtp3Q}2YBy7AXLSBvFgqt{)5#pOo7-#ezBz37+x|`3`MukB?~-=CDJkUk zy=L;db+4?x->L5Yz4Q5R$IBO-p zGrh2jA!@EWf0@R1yYCWNQ4>?21Sm!CUvqvw(}`K%BD4dit=wRL({o{_Ktj0nk_sc{ zw}#VdR~i+alWA#9y({$bX8GZT?QRSG-2JB-@x>}n)1T-){cS2+sejqR<+@qCs#ACU ze>C&+rHwQ5BCGdUmZ`Vgov3;@UN@reo9m`OJKb-ThdJ-lGirX_ee^-SLfxev!KRIY z`N0NEJdYW2Sr1(~#B+30#{WE>{^Xfg?3C6QrPq9%@TKy`!hgA6Pn0aZS9jqp_m0Qw zuDmNfKT#*`=6>PKohx2WFFf~j_DkIZf194_c_qZk#TVI?d9RjPojCnn+wP{{Ju)8_ z9k-6|=sOcKM|62K*M~M08F|;r_O8-=~#lKgq~-o8(_G(tE0WvAwEpb3Tt+cJJossfMZ|TQe%PKdgJZ z^xpl7Z7R~%i>_VhaD8dDYRBuN4`k&-<=?h!h(5MSt?=Hv?v%>RCbM7*R%7LfX&DvH zN4@M1M*Kf8@vGM95>C<6iqp+raU7hbvpAM>T+AR2Q{jur}qU#e^gFujf~Sj zeJ@HXP2BddMY>-Q4{w;z>CL~mSfjgi12Q#Nt2QkBWHD_!(-tYU6iM+nGSvG0pgK(VL<-T{5vpJr^wWEs0~ySP|jWFHfxnBqnL%r>14-ScN}$(6-CRO=KfLmWQC`} z{NC+HbX6o4Nr{}!6`b~0=zC*$WY{&Ot4lMNIJAb%ic~OdOuhNUG3n;J?v$G^mYM?YY3b%SUv_?fD6-KeLt^b^N)TuHSP zb$*8*S-<5@naQfOl$jNt@6PsnO3W3m`@Tx%_Y4o!H(xhpPCeK)(Y0DVWYMGpo3!%W zKC#|6J6g2wY|$I9)SEB4x+CkXPrEz|VoP0A{QIMotnlew#%ttNE@=pT*X2-t-e+QP zxb8#H6qBzUr?-mrUgghL(%}~<6#2pR)F4DBUsUmAPT|@K4>=bFuNQC(+8DDs_{shx zfoU$cKV?l*%*ZraEPFy^;?}MSn=z2MaUg{yqVXiP?W!Vd-(z8$LG%a?LCqvd26lo<3#^>(>f~~f03NS zQ=?Z-{8}X5mjCw1dCpZ23K;htDl*gKOaK1ZMCO8Z_vGHP4Uu-;N8^udyc0LSPkEd8 zip{&WSWHvw+3I?+I{vK1v^)WYi+&utU6pq#Iy`^7&tqEurDvNwWK2%)h@A1VQsMp8 zxA&?-mutEm@>sBL-}h3!^_tUcD=V)$CT%$KVMn_DYvX6Dbyh!Wl{h8+%Jh$(h1d+Q zgq!<<_>X=$l{D>oXk~{|_zk1XD;ZlXj-<^Vf^dkDnbqn)h*m`X$c9@(sd;w<8?a=ub-hc*@;l*|FTWS9%OT9y(Uxu*cL$ z^`5Ap{%lL>Kwr;Zsu(FvK4&3 zI__BgX z73)5#vpM37(dIKrhNsUMbsyFF{52h`_~ryAtVn{YJA@U+gg|BKaT zq>8=%>i{zG9{-e?2oCoY^Xk2Gj@Gk@WhV!myA?7my6VUK14+3Yr!HLHG_%*k`{lzE zXOeOoHdO^(GTX|SsjI0Ymd$)+(lKGF?xRT?BXq=I)YeR`l~G^iollqlHED0&YnvTf zSf=ssdHvrHXN^Dpef0bKubd-tx%5*@ zyDr%|*~~A>GwgGV3jVw@4V`nx*Lo#yp^E+gU0b$%$#?mD*`D#wXZ8mBn&|vYmzo3Gucbz8;jU+(ytwpzLHH=mN; zYJRgBse!I(N42K?kNEZccz^t#HjBD%{0*1H^V5F5e7|4G_P3#qz3$)cqT@Q7@5N5r zeYC7PNNR~_j^|ys&Ufjqo~4r+GXF+TvXg9>yz{82IN!5t4!_vTx8-D(={>OuGJbHY zutB!eGn(tt35E4WE7!PLShDMg;sc5E0Y>fHK zd0>69^?@}K%d~#|KYi|Io7vQ*j6Zy%5AB>WCHHFMrB%)G$NR5d+_hje^I;!%-A7h= zrR6d+C#DJ}PM0i5OmTNJwpy{9&)V9a?U?=E?bp>Nv^dP#<~e(t=j{t(zvoWd_Oe`A zH)Cm*;~(?-Z?@l+|K7McxAEwN#QV?P^YYGBpW{_LUwgl}Du`R#g8$mqqto^{|SwFTeh%T^sPetdc2dP1*izO|!O%y#?`QO~J_XoD_ebaaEro@G~3E^RfzB#VD z`src(jCY?r%cSDc^AFi>W7VIy`DD}&zKEO4K3A_XyBKry_Sx+(zgf+$JiB?y>A0=? z_N{eOxzw?~*FNIyri*X#1ef;;=guoI?|0A*&t9dLVtMUsZNT%u!*O}L-aM*sUJ=Z^ z$8X|a{lkAGf9!a(`shZjC(}AZa%}TELqB_|uWw3|`LOd=;OX0k7)>4GRg|1#>gJ2i zOMcIolYE@}=JbUB&tDej=pM*k`n&kXeMXb%7p-q(UCquZ`KfmL;E^u2O`jR$q;dMP-oooQt{=6y#qam3 zQk%=xv{g8DdwFVaZ0EG&HX2#x4%V|)a=w(5ktxa6lRkU)4yWDu&wPqmJ=?E;s%n_N zD5q~rssFp8aZCQtBSdEvw=(xE!{}Z#DhE zm3!u0)-NSN$w!|!%f4#ejtVJhmOXX!NJTEMOww*%+w+oo@dq~V-=uT-Y0hb@iv{NG zfB7CL88_)O-_Y5v_`Se0^Pk?{&4vkP+FDw-4%hwfeer##VZ7bvZ}V@i*L~d;AOGx= z?wr2vYzD2CsI3(?f1d8&nUlTdd? z3zAN{JmdApZH7l*cDtl>oHoDtaq=1!=}PWRd9mr0-*&&zbw2-{cY0x7_ql!9yJ~K) zy31^LiHUEv-hE-SybaN7>wkYZ0P@CzT(!3I=l1HpdVaR;banr~kB6+h`?eO$Je@D~ zI$QIy)`mr~Z#T_$XA*o^w0PT#t-Fqy%{nN(^1zf=pEC5rGxc^?I0QWZWFyivThD$< z@{Jxn{|cMCjP<8d?bjc)bIY0Qap=L<$JVQ#lx^1!V!ky)_KDF%MLqe`yOXNhV_71K z@6=W8)|kxgzrjdn@AtV;MKf=1blbKdz1?*B_Rd*9ZGI;$J$;|aZ^!<9%0*ut52q#{ z$bG|-wU>4G9<~pi4~zJ27m9gxf8blVGiJl3)ZNE*`3$eP7VlJkx@ofi!{UdVymbuP z!*}MGIV<;{Toktcik!*&SFUg0;Cz2=AZLr;^HZ_N7v=v?0$Y-ce|dv?T);er+54P zYrA_)PTHJ%`u(kMDi@!rVhh`qWBL24+_!$=H<$MEo+-E~@nObO|8~9qMeI50^Tpn6 zmeO0lIYINk#iHr{&n4`%$k__RoF-P(uVdd@Do z{zuy?eHTYxVai*x?Y8B$`%jD}YGzcsmeq8gKPQ{|hR5n}wDxb2TC1%SH%eQsc&ypL z-*S5PhgR9h7rBhhMrRhh{w%S3Up&7>j$w@6W`ozU2Tq#o{?Of9HQVyR^U5uqt!J5PFMephr1PQs-Y=EHM^*<_{`lB1MU734fASfYk6jgCBD|FQ*jTd5 z#=vL3h2tKneUmSpD*w_c%(Bx*0EC|y?er0V5{?3(n`QU!zGHv+|KuriI47NEnYdHW zzSru2;N1V5UTm^Yj2u(eomNa;lkVd=;WW!fj2 z5+XC%xa!28j>F%Uu*b@U%P8AU64Z2kzQ|0q)3j>-qAz7`hI&r|o^ALYaA=#-#mT2x zCbCUmd|`Q|IkWz;#RBrJhMrZ1nyiYmLUL>uE%h!ubJo)8qiX63@usvTB257WLRCxr zICwP;It#r%aq=X_6qyMsP3KfP`}wILgX#_aqsMs~ zS>Sz>i%FMe^p@|Izj}Wf$vvMElEPu_xox4GM_1KBr%bG{_0+VU^_W~vs#F0#!AyCsD5)MXot&Kc;URg3wqA>yf~fq#K>{U+GBFEg$ycbOV$ZCw6g4yVV^i@_q+~O zL)#P|Mt75WMK^m)Vy8{&JaXaC5;=3B>5mi}PP(qz$fqMjL!?h9Lr=8icPVSbrlfcXJpY^FSVr@=UmVUqY{kwWk_A&#*p#YID z`3&Y23Cb;k$`T2x3!k1l>^)sg{?WEOw^kIF+RqXAtM~gjn=W${+ZLXvYestxv++Jj ukmf7eaFZ)CY2SvWap!VYLN>SlNoF?Qb?s$QY1~H8q?4zspUXO@geCw2|1?Da diff --git a/ee/app/views/projects/_merge_pipelines_settings.html.haml b/ee/app/views/projects/_merge_pipelines_settings.html.haml index 5dfa50a0271c6e..7681381df62814 100644 --- a/ee/app/views/projects/_merge_pipelines_settings.html.haml +++ b/ee/app/views/projects/_merge_pipelines_settings.html.haml @@ -3,11 +3,8 @@ .form-check.builds-feature = form.check_box :merge_pipelines_enabled, class: 'form-check-input js-merge-options-merge-pipelines', data: { qa_selector: 'merged_results_pipeline_checkbox' } = form.label :merge_pipelines_enabled, class: 'form-check-label' do - = s_('ProjectSettings|Enable merged results pipelines.') + = s_('ProjectSettings|Enable merged results pipelines') .text-secondary.mb-2 - = s_('ProjectSettings|If pipelines for merge requests are enabled in the CI/CD configuration file, pipelines validate the combined results of the source and target branches.') - = link_to sprite_icon('question-o'), - help_page_path('ci/merge_request_pipelines/index.md', - anchor: 'configuring-pipelines-for-merge-requests'), - target: '_blank', - rel: 'noopener noreferer' + - configuring_pipelines_for_merge_requests_help_link_url = help_page_path('ci/merge_request_pipelines/index', anchor: 'configuring-pipelines-for-merge-requests') + - configuring_pipelines_for_merge_requests_help_link_start = ''.html_safe % { url: configuring_pipelines_for_merge_requests_help_link_url } + = s_('ProjectSettings|When pipelines for merge requests are enabled in the CI/CD configuration file, pipelines validate the combined results of the source and target branches. %{link_start}How to configure pipelines for merge requests?%{link_end}').html_safe % { link_start: configuring_pipelines_for_merge_requests_help_link_start, link_end: ''.html_safe } diff --git a/ee/app/views/projects/_merge_request_settings.html.haml b/ee/app/views/projects/_merge_request_settings.html.haml index 86abbfe0e637d4..06f14c84da6131 100644 --- a/ee/app/views/projects/_merge_request_settings.html.haml +++ b/ee/app/views/projects/_merge_request_settings.html.haml @@ -12,10 +12,15 @@ - if @project.feature_available?(:issuable_default_templates) .form-group - = form.label :merge_requests_template, class: 'label-bold' do - = _('Default description template for merge requests') - = link_to sprite_icon('question-o'), help_page_path('user/project/description_templates'), target: '_blank' + %b= _('Default description template for merge requests') + %p.text-secondary + = s_('ProjectSettings|Used for every new merge request.') + - create_a_merge_request_template_help_link_url = help_page_path('user/project/description_templates', anchor: 'create-a-merge-request-template') + - create_a_merge_request_templates_elp_link_start = ''.html_safe % { url: create_a_merge_request_template_help_link_url } + = s_('ProjectSettings|%{link_start}What are description templates?%{link_end}').html_safe % { link_start: create_a_merge_request_templates_elp_link_start, link_end: ''.html_safe } + = form.text_area :merge_requests_template, class: "form-control", rows: 3, data: { qa_selector: 'default_merge_request_template_field' } + .text-secondary - link_start = ''.html_safe % { url: help_page_path('user/markdown') } = _('Description parsed with %{link_start}GitLab Flavored Markdown%{link_end}').html_safe % { link_start: link_start, link_end: ''.html_safe } diff --git a/ee/app/views/projects/_merge_trains_settings.html.haml b/ee/app/views/projects/_merge_trains_settings.html.haml index 37e8e083a53613..b3cb2df9984dc2 100644 --- a/ee/app/views/projects/_merge_trains_settings.html.haml +++ b/ee/app/views/projects/_merge_trains_settings.html.haml @@ -6,9 +6,6 @@ = form.label :merge_trains_enabled, class: 'form-check-label' do = s_('ProjectSettings|Enable merge trains.') .text-secondary.mb-2 - = s_('ProjectSettings|When approved for merge, merge requests are queued and pipelines validate the combined results of the source and target branches before merge.') - = link_to sprite_icon('question-o'), - help_page_path('ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md', - anchor: 'merge-trains'), - target: '_blank', - rel: 'noopener noreferer' + - merge_trains_help_link_url = help_page_path('ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md') + - merge_trains_help_link_start = ''.html_safe % { url: merge_trains_help_link_url } + = s_('ProjectSettings|Merge requests approved for merge are queued, and pipelines validate the combined results of the source and target branches before merge. %{link_start}What are merge trains?%{link_end}').html_safe % { link_start: merge_trains_help_link_start, link_end: ''.html_safe } diff --git a/ee/app/views/shared/promotions/_promote_mr_features.html.haml b/ee/app/views/shared/promotions/_promote_mr_features.html.haml index d1d6b2ed4f81e8..7d9671896175e2 100644 --- a/ee/app/views/shared/promotions/_promote_mr_features.html.haml +++ b/ee/app/views/shared/promotions/_promote_mr_features.html.haml @@ -1,19 +1,19 @@ - if show_promotions? && show_callout?('promote_mr_features_dismissed') && !@project.feature_available?(:merge_request_approvers) .user-callout.promotion-callout.append-bottom-20.js-mr-approval-callout#promote_mr_features{ data: { uid: 'promote_mr_features_dismissed' } } .bordered-box.content-block - %button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => _('Dismiss Merge Request promotion') } + %button.btn.btn-default.close.js-close-callout{ type: 'button', 'aria-label' => _('Dismiss merge request promotion') } = sprite_icon('close', size: 16, css_class: 'dismiss-icon') .user-callout-copy %h4 - if Gitlab::CurrentSettings.should_check_namespace_plan? - = _('Upgrade your plan to improve Merge Requests.') + = _('Upgrade your plan to improve merge requests.') - else - = _('Improve Merge Requests and customer support with GitLab Enterprise Edition.') + = _('Improve merge requests and customer support with GitLab Enterprise Edition.') %ul - unless @project.feature_available?(:merge_request_approvers) %li - = link_to _('Merge Request Approvals'), help_page_path('user/project/merge_requests/merge_request_approvals.md'), target: '_blank' + = link_to _('Merge request approvals'), help_page_path('user/project/merge_requests/merge_request_approvals.md'), target: '_blank' %p - = _('Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project.') + = _('Set the number of necessary approvals and define a list of approvers needed for every merge request in a project.') = render 'shared/promotions/promotion_link_project' diff --git a/ee/spec/features/projects/settings/disable_merge_trains_setting_spec.rb b/ee/spec/features/projects/settings/disable_merge_trains_setting_spec.rb index a02fd48c1657e7..aadbdccfb3daee 100644 --- a/ee/spec/features/projects/settings/disable_merge_trains_setting_spec.rb +++ b/ee/spec/features/projects/settings/disable_merge_trains_setting_spec.rb @@ -62,7 +62,7 @@ end it 'unchecking merge pipelines checkbox disables merge trains checkbox' do - uncheck('Enable merged results pipelines.') + uncheck('Enable merged results pipelines') expect(find('#project_merge_pipelines_enabled')).not_to be_checked expect(find('#project_merge_trains_enabled')).to be_disabled @@ -70,7 +70,7 @@ it 'unchecking merge pipelines checkbox unchecks merge trains checkbox if it was previously checked' do check('Enable merge trains.') - uncheck('Enable merged results pipelines.') + uncheck('Enable merged results pipelines') expect(find('#project_merge_pipelines_enabled')).not_to be_checked expect(find('#project_merge_trains_enabled')).to be_disabled @@ -88,14 +88,14 @@ include_examples 'loads correct checkbox state' it 'checking merge pipelines checkbox enables merge trains checkbox' do - check('Enable merged results pipelines.') + check('Enable merged results pipelines') expect(find('#project_merge_pipelines_enabled')).to be_checked expect(find('#project_merge_trains_enabled')).not_to be_disabled end it 'checking merge pipelines checkbox should leave merge trains checkbox unchecked' do - check('Enable merged results pipelines.') + check('Enable merged results pipelines') expect(find('#project_merge_pipelines_enabled')).to be_checked expect(find('#project_merge_trains_enabled')).not_to be_checked @@ -112,7 +112,7 @@ include_examples 'loads correct checkbox state' it 'unchecking merge pipelines checkbox disables and unchecks merge trains checkbox' do - uncheck('Enable merged results pipelines.') + uncheck('Enable merged results pipelines') expect(find('#project_merge_pipelines_enabled')).not_to be_checked expect(find('#project_merge_trains_enabled')).to be_disabled diff --git a/ee/spec/features/projects/settings/user_manages_merge_pipelines_spec.rb b/ee/spec/features/projects/settings/user_manages_merge_pipelines_spec.rb index f1f4be779cc80e..10fdded4d4c0b3 100644 --- a/ee/spec/features/projects/settings/user_manages_merge_pipelines_spec.rb +++ b/ee/spec/features/projects/settings/user_manages_merge_pipelines_spec.rb @@ -23,7 +23,7 @@ before do visit edit_project_path(project) - check('Enable merged results pipelines.') + check('Enable merged results pipelines') end it 'sees enabled merge pipeline checkbox' do diff --git a/ee/spec/features/projects/settings/user_manages_merge_trains_spec.rb b/ee/spec/features/projects/settings/user_manages_merge_trains_spec.rb index f3e0bbe642b2a8..89be6fc9539ec6 100644 --- a/ee/spec/features/projects/settings/user_manages_merge_trains_spec.rb +++ b/ee/spec/features/projects/settings/user_manages_merge_trains_spec.rb @@ -26,7 +26,7 @@ visit edit_project_path(project) wait_for_requests - check('Enable merge trains.') + check('Enable merge trains') end it 'sees enabled merge trains checkbox' do diff --git a/ee/spec/features/promotion_spec.rb b/ee/spec/features/promotion_spec.rb index 49346631cb0cf0..ad38568f6414b7 100644 --- a/ee/spec/features/promotion_spec.rb +++ b/ee/spec/features/promotion_spec.rb @@ -24,7 +24,7 @@ it 'appears in project edit page' do visit edit_project_path(project) - expect(find('#promote_mr_features')).to have_content 'Improve Merge Requests' + expect(find('#promote_mr_features')).to have_content 'Improve merge requests' end it 'does not show when cookie is set' do diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 3d05dddb6eb28b..cbf39fc297cf2f 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -10853,6 +10853,9 @@ msgstr "" msgid "Dismiss Value Stream Analytics introduction box" msgstr "" +msgid "Dismiss merge request promotion" +msgstr "" + msgid "Dismiss selected" msgstr "" @@ -15653,10 +15656,10 @@ msgid_plural "Importing %d repositories" msgstr[0] "" msgstr[1] "" -msgid "Improve Merge Requests and customer support with GitLab Enterprise Edition." +msgid "Improve customer support with Service Desk" msgstr "" -msgid "Improve customer support with Service Desk" +msgid "Improve merge requests and customer support with GitLab Enterprise Edition." msgstr "" msgid "Improve search with Advanced Search and GitLab Enterprise Edition." @@ -18941,9 +18944,6 @@ msgstr "" msgid "Merge Request Analytics" msgstr "" -msgid "Merge Request Approvals" -msgstr "" - msgid "Merge Request Commits" msgstr "" @@ -19001,9 +19001,6 @@ msgstr "" msgid "Merge request approvals" msgstr "" -msgid "Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project." -msgstr "" - msgid "Merge request dependencies" msgstr "" @@ -23714,7 +23711,10 @@ msgstr "" msgid "ProjectService|To set up this service:" msgstr "" -msgid "ProjectSettings|Additional merge request capabilities that influence how and when merges will be performed" +msgid "ProjectSettings|%{link_start}What are description templates?%{link_end}" +msgstr "" + +msgid "ProjectSettings|Additional settings that influence how and when merges are done." msgstr "" msgid "ProjectSettings|All discussions must be resolved" @@ -23768,25 +23768,28 @@ msgstr "" msgid "ProjectSettings|Customize this project's badges." msgstr "" +msgid "ProjectSettings|Determine what happens to the commit history when you merge a merge request." +msgstr "" + msgid "ProjectSettings|Disable email notifications" msgstr "" msgid "ProjectSettings|Do not allow" msgstr "" -msgid "ProjectSettings|Enable 'Delete source branch' option by default" +msgid "ProjectSettings|Enable \"Delete source branch\" option by default" msgstr "" msgid "ProjectSettings|Enable merge trains." msgstr "" -msgid "ProjectSettings|Enable merged results pipelines." +msgid "ProjectSettings|Enable merged results pipelines" msgstr "" msgid "ProjectSettings|Encourage" msgstr "" -msgid "ProjectSettings|Every merge creates a merge commit" +msgid "ProjectSettings|Every merge creates a merge commit." msgstr "" msgid "ProjectSettings|Every project can have its own space to store its Docker images" @@ -23798,7 +23801,7 @@ msgstr "" msgid "ProjectSettings|Everyone" msgstr "" -msgid "ProjectSettings|Existing merge requests and protected branches are not affected" +msgid "ProjectSettings|Existing merge requests and protected branches are not affected." msgstr "" msgid "ProjectSettings|Failed to protect the tag" @@ -23810,7 +23813,7 @@ msgstr "" msgid "ProjectSettings|Fast-forward merge" msgstr "" -msgid "ProjectSettings|Fast-forward merges only" +msgid "ProjectSettings|Fast-forward merges only." msgstr "" msgid "ProjectSettings|Forks" @@ -23822,10 +23825,10 @@ msgstr "" msgid "ProjectSettings|Global" msgstr "" -msgid "ProjectSettings|If pipelines for merge requests are enabled in the CI/CD configuration file, pipelines validate the combined results of the source and target branches." +msgid "ProjectSettings|Internal" msgstr "" -msgid "ProjectSettings|Internal" +msgid "ProjectSettings|Introduces the risk of merging changes that do not pass the pipeline." msgstr "" msgid "ProjectSettings|Issues" @@ -23858,10 +23861,13 @@ msgstr "" msgid "ProjectSettings|Merge requests" msgstr "" +msgid "ProjectSettings|Merge requests approved for merge are queued, and pipelines validate the combined results of the source and target branches before merge. %{link_start}What are merge trains?%{link_end}" +msgstr "" + msgid "ProjectSettings|Merge suggestions" msgstr "" -msgid "ProjectSettings|No merge commits are created" +msgid "ProjectSettings|No merge commits are created." msgstr "" msgid "ProjectSettings|Note: the container registry is always visible when a project is public" @@ -23891,9 +23897,6 @@ msgstr "" msgid "ProjectSettings|Pipelines must succeed" msgstr "" -msgid "ProjectSettings|Pipelines need to be configured to enable this feature." -msgstr "" - msgid "ProjectSettings|Private" msgstr "" @@ -23924,7 +23927,7 @@ msgstr "" msgid "ProjectSettings|Security & Compliance for this project" msgstr "" -msgid "ProjectSettings|Set the default behavior and availability of this option in merge requests. Changes made are also applied to existing merge requests." +msgid "ProjectSettings|Set the default behavior of this option in merge requests. Changes to this are also applied to existing merge requests." msgstr "" msgid "ProjectSettings|Share code with others outside the project." @@ -23933,7 +23936,7 @@ msgstr "" msgid "ProjectSettings|Show default award emojis" msgstr "" -msgid "ProjectSettings|Show link to create/view merge request when pushing from the command line" +msgid "ProjectSettings|Show link to create or view a merge request when pushing from the command line" msgstr "" msgid "ProjectSettings|Skipped pipelines are considered successful" @@ -23954,16 +23957,13 @@ msgstr "" msgid "ProjectSettings|Submit changes to be merged upstream." msgstr "" -msgid "ProjectSettings|The commit message used to apply merge request suggestions" +msgid "ProjectSettings|Supported variables:" msgstr "" -msgid "ProjectSettings|The variables GitLab supports:" +msgid "ProjectSettings|The commit message used when applying merge request suggestions. %{link_start}Learn more about suggestions.%{link_end}" msgstr "" -msgid "ProjectSettings|These checks must pass before merge requests can be merged" -msgstr "" - -msgid "ProjectSettings|This introduces the risk of merging changes that will not pass the pipeline." +msgid "ProjectSettings|These checks must pass before merge requests can be merged." msgstr "" msgid "ProjectSettings|This setting is applied on the server level and can be overridden by an admin." @@ -23975,12 +23975,15 @@ msgstr "" msgid "ProjectSettings|This setting will be applied to all projects unless overridden by an admin." msgstr "" -msgid "ProjectSettings|This will dictate the commit history when you merge a merge request" +msgid "ProjectSettings|To enable this feature, configure pipelines. %{link_start}How to configure pipelines for merge requests?%{link_end}" msgstr "" msgid "ProjectSettings|Transfer project" msgstr "" +msgid "ProjectSettings|Used for every new merge request." +msgstr "" + msgid "ProjectSettings|Users can copy the repository to a new project." msgstr "" @@ -24008,10 +24011,10 @@ msgstr "" msgid "ProjectSettings|What are badges?" msgstr "" -msgid "ProjectSettings|When approved for merge, merge requests are queued and pipelines validate the combined results of the source and target branches before merge." +msgid "ProjectSettings|When pipelines for merge requests are enabled in the CI/CD configuration file, pipelines validate the combined results of the source and target branches. %{link_start}How to configure pipelines for merge requests?%{link_end}" msgstr "" -msgid "ProjectSettings|When conflicts arise the user is given the option to rebase" +msgid "ProjectSettings|When there is a merge conflict, the user is given the option to rebase." msgstr "" msgid "ProjectSettings|Wiki" @@ -27491,6 +27494,9 @@ msgstr "" msgid "Set the milestone to %{milestone_reference}." msgstr "" +msgid "Set the number of necessary approvals and define a list of approvers needed for every merge request in a project." +msgstr "" + msgid "Set the timeout in seconds to send a secondary node status to the primary and IPs allowed for the secondary nodes." msgstr "" @@ -32344,7 +32350,7 @@ msgstr "" msgid "Upgrade your plan to enable this feature of the Jira Integration." msgstr "" -msgid "Upgrade your plan to improve Merge Requests." +msgid "Upgrade your plan to improve merge requests." msgstr "" msgid "Upload" -- GitLab