From c9bcfce2586a8e0d8c9d28f286352ec58b6f7abb Mon Sep 17 00:00:00 2001 From: dothinking Date: Thu, 27 Jan 2022 16:54:42 +0800 Subject: [PATCH] gitlab ci: multi-projects pipeline --- ...67\250\351\241\271\347\233\256pipeline.md" | 270 +++++++ docs/images/2022-01-27-01.png | Bin 0 -> 27227 bytes docs/images/2022-01-27-02.png | Bin 0 -> 51168 bytes docs/images/2022-01-27-03.png | Bin 0 -> 13699 bytes docs/images/2022-01-27-04.png | Bin 0 -> 15509 bytes docs/images/illustration.drawio.svg | 715 ++++++++++++++++++ 6 files changed, 985 insertions(+) create mode 100644 "docs/2022-01-27-GitLab-CI-CD\357\274\232\350\247\246\345\217\221\350\267\250\351\241\271\347\233\256pipeline.md" create mode 100644 docs/images/2022-01-27-01.png create mode 100644 docs/images/2022-01-27-02.png create mode 100644 docs/images/2022-01-27-03.png create mode 100644 docs/images/2022-01-27-04.png create mode 100644 docs/images/illustration.drawio.svg diff --git "a/docs/2022-01-27-GitLab-CI-CD\357\274\232\350\247\246\345\217\221\350\267\250\351\241\271\347\233\256pipeline.md" "b/docs/2022-01-27-GitLab-CI-CD\357\274\232\350\247\246\345\217\221\350\267\250\351\241\271\347\233\256pipeline.md" new file mode 100644 index 0000000..b9f3b0a --- /dev/null +++ "b/docs/2022-01-27-GitLab-CI-CD\357\274\232\350\247\246\345\217\221\350\267\250\351\241\271\347\233\256pipeline.md" @@ -0,0 +1,270 @@ +--- +categories: [devops] +tags: [GitLab] +--- + +# GitLab CI CD:跨项目触发pipeline + +--- + +近期遇到一个问题,如何灵活管理分系统的版本号和最终产品的版本号。例如,对于前后端分离且分仓库管理的Web项目,前、后端维护各自的版本号(前端1.2.3,后端1.3.4),并且发布Web产品时自动根据`tag`(1.0.0)作为产品的版本号编译到页面上。注意问题在于:**最终产品的版本号很可能与前、后端都不相同,因此通过前端或者后端仓库提交`tag`发布产品都不合适**。 + + +## 基本思路:创建发布仓库 + +因此考虑新建一个发布仓库,仅维护汇总后的前后端更新日志和发布版本号。同时考虑到产品发布后的`hotfix`,也支持直接从受影响的前端或者后端仓库提交修复并部署。 + +综合来说,涉及两类自动化流程: + +- 从发布仓库发布产品,同时触发前、后端仓库的部署,并根据提供的`tag`更新产品版本号 + +- 从前、后端发布`hotfix`,仅触发各自的部署,且不更新产品版本号,而是沿用发布仓库最新的`tag` + +为简化表述,用`A`表示发布仓库,分别用`B1`、`B2`表示前、后端仓库,则可用下图表示以上流程。 + +![general-flow](images/2022-01-27-01.png) + + +## 具体流程 + +基本设定: + +- 仓库`B1`和`B2`任意提交触发编译`build`,忽略测试`test`,如果是`release`分支则触发部署`deploy` + +- 仓库`A`仅在提交`tag`后触发流程 + +考虑到模块化和就近原则,仓库`A`负责获取当前最新的`tag`作为产品版本号,仓库`B1`、`B2`负责各自的编译和发布,只不过编译前需要拿到产品版本号。参考下图具体流程: + +- 如果从仓库`A`提交`tag`触发流程,则直接获取最新版本号,然后分别触发仓库`B1`和`B2`的流程。 + + 以`B1`为例,注意此时直接到`build`这个任务;`B2`同理,不再赘述。 + +- 如果从仓库`B1`提交,由于编译前需要获取产品当前版本号,因此通过`trigger A`任务触发仓库`A`的流程。 + + 类似上文所述`A`的流程,只不过此时需要根据原始仓库(即`B1`)确定只触发`B1`的流程,进而来到`B1`的`build`。 + +![detail-flow](images/2022-01-27-02.png) + + +## 最终效果 + +借助 GitLab CI/CD 的基本功能,执行效果参考下图,可见完整实现了上述流程。 + +- 从`A`发布版本`1.1.0` + +![result-1](images/2022-01-27-03.png) + + +- 从`B1`的`release`分支提交`hotfix` + +![result-2](images/2022-01-27-04.png) + + + +## 实现细节 + +总结几个关键点: + +- 跨项目触发流程,例如上图中`B1`中`trigger A`和`A`中`trigger B1`、`trigger B2` + +- 执行任务的时机,例如`B1`中`trigger A`仅在直接提交时执行,而`build`仅当从上游流水`pipeline`触发时执行。 + +- 跨项目触发流程时传递参数,例如通过`B1`的`trigger A`进入`A`的流程时,传递表明原始仓库即`B1`的参数,以便选择性进入`trigger B1` + + +### 跨项目触发流程 + +这是本文的基础,具体说明参考官方文档 [Multi-project pipelines](https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html)。 + + +```yml +downstream-job: + variables: + UPSTREAM_BRANCH: $CI_COMMIT_REF_NAME + trigger: + project: path/to/downstream/project + branch: stable-11-2 +``` + +- `trigger`关键字指定将要触发的下游项目的具体路径,同时可以指定基于的分支`branch` + + 如果忽略分支即默认最新分支,则可以合并为`trigger: path/to/downstream/project` + +- `variables`关键字将当前流程的参数传递到下游流程的每个任务中去,例如此处`$CI_COMMIT_REF_NAME`表示当前分支名 + + 更多内置参数参考 [Predefined CI/CD variables](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html) + + + + +!!! note "注意:" + `trigger:project`不支持变量输入,`trigger:branch`支持变量输入。 + + +### 任务执行条件 + +GitLab CI/CD通过 [`only / except`](https://docs.gitlab.com/ee/ci/yaml/index.html#only--except) 和 [`rules`](https://docs.gitlab.com/ee/ci/yaml/index.html#rules) 关键字,以非常灵活的方式将任务加入或者排除当前流程。 + +本文相关的几个例子: + +- 从上游仓库触发`B1`不执行`trigger A` + + ```yml + trigger_a: + stage: trigger + trigger: path/to/A + except: + - pipelines + ``` + +- 当且仅当从上游仓库触发`B1`时才执行`build` + + ```yml + build: + stage: build + script: + - ... + only: + - pipelines + ``` + +- 从上游仓库触发`B1`且当前分支是`release`时才执行`deploy` + + ```yml + deploy: + stage: deploy + script: + - echo "Deploying application only if branch=release..." + rules: + - if: $CI_PIPELINE_SOURCE=="pipeline" && $SOURCE_BRANCH=="release" + + ``` + + 其中,`CI_PIPELINE_SOURCE`也是默认CI/CD参数,表示流程的触发源,值`pipeline`表明从上游流程触发而来;`SOURCE_BRANCH`也是从上游流程传递过来的表明当前分支的自定义参数。 + +- `A`中`get version number`任务只有在`tag`提交或者从其他流程触发而来才执行 + + ```yml + get_version_number: + stage: prepare + script: + - ... + only: + - /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ + - pipelines + ``` + +- `A`中`trigger B1`任务满足以下两种情形之一即可执行: + + - 直接从`A`仓库`tag`提交 + + - 从其他流程触发且自定义参数`SOURCE_PROJECT`的值等于`B1`即从`B1`触发的流程 + + + ```yml + trigger_b1: + stage: trigger + trigger: + project: path/to/B1 + branch: $TARGET_BRANCH + rules: + - if: $CI_COMMIT_TAG =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ + - if: $CI_PIPELINE_SOURCE=="pipeline" && $SOURCE_PROJECT=="B1" + ``` + + +## 完整`ymal`文件 + +补充一点:本例的产品版本号是通过保存文件的形式在两个流程间传递的,因此需要保证各流程都在同一台gitlab-runner上执行。而这,可以通过设定相同的`tags`来实现。 + +最后,分别列出各仓库的ymal文件。 + +```yml +# .gitlab-ci.yml for project A + +variables: + PROJECT_B1: "B1" + PROJECT_B2: "B2" + VERSION_FILE: /tmp/version + TARGET_BRANCH: "release" + +stages: + - prepare + - trigger + +check_version: + stage: prepare + script: + - VERSION=$(git describe --tags $(git rev-list --tags --max-count=1)) # recent tag + - if [ "$VERSION" = "" ]; then VERSION="1.0.0"; fi + - VERSION="$VERSION.$(date +%Y%m%d)" + - echo $VERSION>$VERSION_FILE + only: + - /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ + - pipelines + tags: + - shell_runner + + +trigger_b1: + stage: trigger + variables: + SOURCE_BRANCH: $TARGET_BRANCH + trigger: + project: path/to/B1 + branch: $TARGET_BRANCH + rules: + - if: $CI_COMMIT_TAG =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ + - if: $CI_PIPELINE_SOURCE=="pipeline" && $SOURCE_PROJECT==$PROJECT_B1 + + +trigger_b2: + stage: trigger + variables: + SOURCE_BRANCH: $TARGET_BRANCH + trigger: + project: path/to/B2 + branch: $TARGET_BRANCH + rules: + - if: $CI_COMMIT_TAG =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ + - if: $CI_PIPELINE_SOURCE=="pipeline" && $SOURCE_PROJECT==$PROJECT_B2 +``` + +```yml +# .gitlab-ci.yml for project B1; same with B2 + +stages: + - trigger + - build + - deploy + +trigger_a: + variables: + SOURCE_PROJECT: $CI_PROJECT_NAME + TARGET_BRANCH: $CI_COMMIT_REF_NAME + stage: trigger + trigger: path/to/A + except: + - pipelines + + +build: + stage: build + script: + - VERSION=$(cat $VERSION_FILE) + - echo $VERSION + only: + - pipelines + tags: + - shell_runner + + +deploy: + stage: deploy + script: + - echo "Deploying application only if branch=release..." + rules: + - if: $CI_PIPELINE_SOURCE=="pipeline" && $SOURCE_BRANCH=="release" + tags: + - shell_runner +``` \ No newline at end of file diff --git a/docs/images/2022-01-27-01.png b/docs/images/2022-01-27-01.png new file mode 100644 index 0000000000000000000000000000000000000000..bff028c0318ac7beb835d3fcf908643bd3c254f8 GIT binary patch literal 27227 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 literal 0 HcmV?d00001 diff --git a/docs/images/2022-01-27-03.png b/docs/images/2022-01-27-03.png new file mode 100644 index 0000000000000000000000000000000000000000..93d421d02787e1f90bf78a55c2109c18cd1aba79 GIT binary patch literal 13699 zcmch8cT`jB_AMS1^e7-okANPOqBN<}f{66qr6aus1WYgxKt)lIqEwL*F!U?vbjg z4+RBn)A7GkEuJ~{6cpktYWEckpIEJ=tVLZ>3Oqt%H?9XMta7SmR413w>Arpawr2$X z8K+kAcDaN8Vz$lq$otvNYP2_~IC%zdJ-@On%JW$pG1w*z0tr1g?_{NYUQIdpWJFxT z&3#|gt&{e!ak?4vb9cM8#y_hz+X?2lZ310e60ll+425!KL%MT zwUc0<;bhGj9);ApFA>axm;BrZ&@^Lw5f6;%Mh)bvCj7=#=gdG?hWPdU9V8ATDFj+s zIGbnWbYvaq&Ulr>cBlpC7~CX1G{?Rb?=5d%-S%5uD9ui-YPm_t^^i5D*bM#VhdHDx zKF~iy!bc2Zhb@8*8G4x8fvlt%GsH1ogq>5)Z#2hlX)k{gkBh5-%90T9uQ0h9jK@HD z52Su@XDKu-Ao&x!FV*cG!xy2MOGY$ae2ymn*7AA3Re4CDFFSj;J_G3bB*;KRY5sqDLGlLiP<#yXYLLs0A$O#{( z;;l)T+hZR{ac33((~8#H;H~!sEy>dY)del=GWg4fpx1a2S=xxG_L_1@c2w{yoY#dO z_O1wQ$k5^2(6%r3vTX08zYJ@lE3S!M8hE(0H0Dst5qGV3x97WkLUHpEN1o7@DHgKx z;Ar(7+2_6#hUc(5Yh@$UWFd$iEQSX|X@%Tw3~*nBn(iyjyrrEaZ924(!b z3NBhh{eA<9pg;GBpFnHNzbk z`{9ZjR(96Zb}IiZ-vhyJ#um37+Oa`Kg%6G+Ni3WJMcQ?)!2$UN*}nM^nWK)gkn8}C z^9@c~WsjxwBrwzz6!CB2lHk>lE8`Dd8OS)kl&ne(;`m+VBG0P=A*)FG4EY)9aPoMP z8{$LUxgL558>fKzQm()$X$P6-n?0n{NE4F+->YVXZRMc;-3wqkIfiemX%R-Kwf0z3 z9m<8+`(rYei|Tx7M_)9c3b#$s8;U>56N0hz$B6g9Z*Gcoo#TS9#ZBY{van6<%UgXbeFh#-aN~mbFZo66*7@DsZS)D#Q7( z(7Fdi`f29ooA;J&5$)-pS&(fLZiV`}FUGxV3n#okmFMQtj&W6Pj(+d`zA<)STF6*}D1a%%uiT_x6*VH?7@fWO`HS ztSUKWcSQF#w5BTMCw^MK0^ib_@0lj-?{0LrYU=2y@Re%7p%F!0F}5Gi(nVZG^WK`W zW5yfM#9r&a%dl7J>S9XGGqsiqQ||WOtIS*kv){ zOS4I3mODlTM=Reqsx2!dR^7QHu(R}IHDu%b(-@b5tU&+Mc*^tIUrFDRhw0z%{8jUl3r6*=j>ZxbWu47YZsIZhM`mxq4Fkr; z&x1Gz7HXA)@j%5C?trw4c0=_47>NJ0vd|n_X_5VCt7vOmZ_6TflsCnIV|GB?`A3F> zoSmKBc9-PTeLk0fgRLPCm!zI~*+sLsca?^kCFv|`m~frPAaqOU6s}`_7*g3(ckt7* zaDCHqJ4L{EtR5@>FrdkNT!;OZ<$NzLR}+(6(O>9YyS0+~Y4J`y1aDCO1Gzoi&O>V^ zzHnNbn*FOd3+IDJ-r+iB`-N+nYBHo!tEC_m0hc{RsEi9}GKLasKgS0Wh7^)j<}y7H z+9Qzzjq}z>Z+Ko~d3~IC1^)i~h9BiUyb*GxIAgHr95^^gjD@p)*CN7I1~toeV65`< zM?&TOlSrZAnm^CeH8{h{6!F+|vTkIxerJ+FJ?X;-@4B5yf4$Y7yR%(vd=d;?;D#GW zl2YM}&oW`>gO-TY)FdK-hTUIOT}@+Ax)`y`R{qS)Ny27@BPk3kYpTO}hvCM@$N_D+ zZlhyt_@JY&F`-R27Q!f}kX&-q%Jw^(tyqE;V?urYa6@RXefIx|0A7i24C?EQ7?zS>Y7??W_N zveqkk6_O`$FiMqQz)^Ni4*lqlh2;rcJLv@`$M>oQfk}|&E9uL<7-4XqQPPzOhp5f% z;XJ4E{Q_6TBL3mwEf}<>g*IUdwzDY5gDJ*lCTmnKtm) z#$1x8v|@~tUq)kNV-`lmA-A&t2uTmRanpT|*O6xV`J@z|f^L)<3o^HU$2?QShEhk6 z6OVUWt{?~>;Wd($t*znQ((OZw9gDvk23jT<`{kN@gtx!16l>3kYqv*C-%*1&$@#R0 zkT)Os_PpD#EF28-y@kJw0L$42_-?*%kgbjDqOqYr>%`VXS}7R|>TwG8yx!SrZ!3{hCuPjrpLGCC$~`sjAD8^Pec0vxb}= zL`%Y1Q!|L?u;P=XxKuHfEqWYg?QF*w9yj3C@3p@7JRhkU8@KO2z4j;tC%3gUCww_A z;`epUFh{@pqAtcfR%Gta?Y9j641Cfhbh)2#0Qb@zX^z);?fL0Cg@S$+{N)nRx8b`2 z9w0k@MnyOg-yOxB`omdF3f0j{BC*vLN_PfT&#tX}Pb^u;(G!`QVk4!BE|$bv4`mv8 zVy~CGCF)B`)MDDZToWF_uHzfH_2>J)-vB%#R6Japx8Qxn)^eUle9~!+b##25<)ujZ+2;EIjd_(jaa&^p|vg!iM zoSwX0jG6bWIQo`3B`MbPxsSJN(5q9F-en_Qma?eSn6phg+&OBA?Wd4v!F;;Ip z{Q`sUSs!#$*U$bgO+{)^U3UcAQEColG)XY~yXW#CNp*!K*)duHM|IXzfEh1}B#zl2 zqM=u=$ly_%hT)hL{jTln)9uZLk#VV^O?52oc|Q;ph-N;FQ?3hRZCH5*v9~i47kEf6 z_STB(k0j=nYa~`MLW^NzY1OSQq%#z}ztLcv1T|g?Vl~IC57xoHrHozD5jb~^m(t>3 z8prf>1HOR>ouwqiN0h1PUAQBk9paCd+x^KQswTvb=-uWATi@aHB#tB4$7JLl#{I9(J1(B$A{&Yx)J;l7kJ)b@&w7g%eJ_ zpXCpyqj-u20;Jl*Xs3EwW}|cGKrB*5W?= zLy(HLikNOd7OymN*WUt82zQjp^brQ@PcCbEfn&G9 z3St>BgY!k_?D#Ju%ZJbPfi(Rq02~{7mDg-_ucM6=>*5n!7a?go>*?{7$?UlP4{{L( zZ>#{p$!ca{@8TK_}0i!$%6xJ;4Kn;Wpf zjmzlX)*6D8c}t_0Gvc?l<$hc4oV~hX8ry<~Y6ZVuQvT$Z7rj+A+O9 z|4`eK1cN!)#R)MwV6U~UcfIt~v{ydeGAX+61j_tu=%^n?)BGA2(>O!f95&@Vc$;S% z=arZWch8;C)ca=Pc(H>UX=j2SawmW$ZU3#DaCYhcN9k}(D}eGPo&FFD-s5+*HD5Ze z(^Pa(-{Bo0w(NA>d{OHJwz5akzN^V8vTzY;g4In$2ZzkzpI*7T7l>~@wEf4D?1yG# zAmPEHbX2_diGSO~!G2U36B8xZBLdwPqoiN@ff`_SI2igKa_edp@DL$UIfr<{&*2g~ z4_LN2fYa%pqxCg;fzqh$J@MQ$^K9GB@Jd0Luj>=>{@rXB2FtqG^ zec7D~8*G{!T~r_2CphwNn!1!i?4Qn=jK+R%eaFQnG9Uiuxc!u`aJE+ zS!K2nDy?5R~9%yUOA5O~&UhZ+qTufe{ zQG*t<=Mat&Qd2QINRw&5D{_mBjV*^z;R1*h2&bMU9;?o~xfX-=|>YDU6dv zr8$9M1}&-)!fEO-P5bWVzAmZd#i(#!Pj$$Bmzv_`m@PpW0m@NKVRIBdK?DZ#*iIQp1v7INp?d(`RGv8geU9kdiUp z@>c$7LIy`nmdcumn+f2$r>hICq_g7vesm#hR`sVWHPiq~zM#tVAWvo>ouCiRt1)6{ zcF3r^{0}-Fkba{{AGsK++BInJOOe)}{9Md9KoprL%(FS&!^3B+WLlu8K1 zr?e&8JHpuF>y^~mkTY}CKf-k!SuN6L@8E-przjpEj>DYe(;ZB9oV~3`R>rn_WDa)w zMQ!EFMR>@KgK!<^NZf9pi$mhdyU{`w0jN1TP)=ilf`Wxl{*>Dq)6^Nr)% zEzq8vwE_6J_R?*az~OE-3Y&+GfKg8|I5f!eIBa2DHPSuZIOh zHt5mE+lEdT6&Y6CoTCz;Vs$~_w1@-2enAF)<}R^$>DKFsKit66%y`Opop!G@AG(grSaSY@<&j;+@<{J*NJ1UtIj%r(Db{ zmtqe(e6p9b{k4PVb5aeh^D3=5&MpyEb&+{P+A2YaQ^&-;k+d)sMa3X!QFS-lD^Yc; zfNWgPTyhY84VI8C9cm3QD3BQ2&)(3>+j~3MQM^!c1&=k@bBxZaEMUzDa`aAPd$gou z8}p5EZwmiiCXZ(zfdE-}GytoE_8!_D!S~?0#d+2PKE299fHb4q8-bli2CXXVl*gWC zwC?NcD-smv5(MN9N9&*i=;I2#_I$F*m6_&O*o(EZ(S*(RxLf7J15TOc`ZB~f#Amq6 zQ55XbFbqe)VHqS4iVJBG8u=mG2V3uBt$j2bVw8>ktYM9CNGP6o@jQ*JU!QvjP9@_8 zvI$TPUGx%CewI+Hib?>qpPW{V%8_xuOO@Z2>!w!DYkg|HttX_P4?!SMX%v{;3O*#+ z?HIJ6P^i^9=@_{F!4g7mR9j&=UhzY9Z`v$1C*u3`4gl6L09}4b71<-H{{` zi+K-nfTZpG>5L$o%Vk^XD%AkmEqHls_UArGupRBq?LW+x{HP{g>M~gCm*Z^cX&8{ zckNMV@Ddf1o;sa2t+ACuHmtX*hV^M%C6^=sD~h$2T_RX}ecxMfsAZpP%a>efeF@rL z9a-A$PV`Pks|6(;Vm{{OU{ttr%($jPw-G;U4!&0-N06T6hJ(eBHEAIANWWsz@%yrO zursw*MH^>bdKX?QFKzPTM$c;whR8v~#VD(AE}5quqw+$6JDZ`Kg zUoK0Y4X%yY*y+X{1uol45-#Mv8D_BXabbIFp6T)G#kS5avC;|n;#$$tjUsX%7@fI+ zEy*=dN-%dc5e+b#%X#t>zUf^-yWuS&cblB_ChHG2PAJ>wlu1WFuW5lHiK5B!$w(8d zQf>s9_fEEKd%j!GS5M~!POE9)7<{M1SR*`mU{Js=bHaP(;{{{)-WeUxpsQNrNc8SV6{GCw+{{pU%3*gp z=XzLIRJYnFE6CBWudF98Wp)YzvQ=5id6Yr6 z_Q*)76AD$e z#4f%aGHq4w2pHHdH~XVslg$uUUKoEN3JeDXn(w=ty*#&IN0Ye=8&4x@bX>Gn>Zhn^ zm8fsTauB+cR(hSQr9*(2^G#_j5YsQxw$s$Vxi((?nEe(QaYcCj1`PDrIgKfaeeo*? zXko7Axw?6Q+Z=ap^|zwq65jz2q^Hb#MOL0ahdTJh$4~;1NdjKyRfL9AR94>5r`f7) z72na7UC1oQD5$}$6R8?qn{k!{61Ph~f{hbGPEQOT$#7!d5`H4%N1C-B-ecCjuaaJ7|G+`a zAREJzJL`%lgFvk&>UZaoiVWTldBsvuQzyYVjI3Y`RxV%<+CIHyaOIG(uZHb;Gm5Ns#MqjpHDFnlX*_qoU8SC;_t# zCb6s?`NScCvl&yF`sZBYv%dqWAwbK|bY(l3+4AH)^P0xJbCWJ8V<@1W2tw)YAK_YZ z#qDQ1v_7PSyM&^-M8G0a9uhqF<_S}*eWRpL{e^lPE{M?ydJRzh{`y2fub$6AQ$s{i z!2X+~{lM5u>R64ua7S;1{4riUo;%PN^#K#P^ z#fX^+eo*7W6W6c3i?e$4A$D5PE1FqeBUGs5R-1jx4({1ij-{O=J4vr1!^WHy zQ&5X51DX#n8h3}Y%YzV@Qm5k-b^bcU@GUdiCt{*br1T`KT{AiApmcHvQhR-`wNPbe z-@PcS5Sp=%rb&aYu88L$;?4-W+$P;Y?dQ{XiJ#W$^W=QKmnEPQ07<7%Lh=!&g*Bep zy*aBV<9dXSvrV+9Kw-F!p-043Pe@aaK%5ei&Vc8U zupn#b+43J6`mW4FD@RI?4cG1*j$qcr%Mxph=RdTu#*aSL9bWWV(c{6Wus7C;sPjg6 zM1_anS8-W1eLWLA)s^9(G?J;TKUu!P>a+1usAOriqy&D>&^jcSMYB^GbMRZUi%ln< z1kF<0S$IKI6P&#e`P)Xu{^I&{(0QfUa2=~;f&0tqZKP(>-Q2hNL#vj1Q5K&Gn$`3HF3*>jmq|UGt)IbLXvX zE1B|3Y=dL!&@HXszs=k6S?77C?FD@mJ`-kF&C#cjTDKSQOe}!}VX6gM2{7I&&cm*j zZ9;Fy_6W1Jct8VB@wMb3`ZW8dIX3h+t@^<#2j%PHzcYy2=k{{=1|aNo67Y`RpJ$zB zj}ME>nGq7ge1uCvmB6hPVN*UvVuS=c3HdVE@b|Av@|rB5?NF-RJgOk)H*mOt7L z4OipcQOr7?x8y|q7{uduHAemrPsYX<c@(E14sblC9>Wmk}36aicyLTsuB)%HmPo4-XPw zb$-!5H_%DC&UrXlDHP-ojDvzbU&y*4)Jv)rx^dgPVV2COP=B~we3L&+@q$DL=MGJ@ z%MZP24)$&8&3&`pwGnuU1-EUgj;xou-a+!J%&)ie zC$@j;r(sl75(TGtoJ-zm5G_y17Lr_hSzdY#K$!l-H`GuG>Fip=a?9CB)fAm#3x_7ZaUlTBY`sC-fbT3SA}bx9Qv@gPOZkdsD-~u^Bd~>pDXin;N(Ip)52e0xo)} z5kA_l{7i%^PTc2G){x4xKO8!+d9Z*SKNKq>sQpQtiPF?K1*6Kb@eQY=O(;lQiLrH+ z18ye#(2MwYUIOPwD z?L~138|=3W+xc?ZKc$G@j0CdpbON|?qu{hqz_yNG0(Nur@#Fp+9q{hAdXQ3zlGpby zr)s@t)gMa;#G%$V_jUQ3Ursl*B!HPEV7204ub}knJ1zrLB+?V$Ds5X6ebbwwxpjYn zjL`CV&4HX*ac2?U4tqz(YZ+uA@_9`?uQHacoVC_B=^njz?@mVN%GTc@#xGsSWA6mr z3Cna)0*d|`DuM8_%;L^=gsPBWSNAqhL|x$xTNH$G-hj#VR{P8^&$Pw#>h0*W-n^Cn z>v6ADo(3L%bpdgp?PC&($0Cw;OTilQzr|Waal93lY}@);4#^+W>*m)^9IC={57YwG zAnnN$+1GED7ovoY*)LG=7NUlH*jK`nHC&IxNT>?kj=-%>lmvpFTp*TWkP7D%P@%zH zLITW+SDK(*1Fl_GC8kyBB4(N+=sE>pk{4?=_y^MCOuOl(A~$uoRlIrLPQIw*F|&F@-Tbon7o&TPQOVhO^yA*fjRrW*+gffZC&H><;`adK zQFppv)NY(|U2TM%W%kmRet!mlxNqv75YO3G4&$;;e<)urqrCw%%1V>2t9BjJ?o7qi zL)4eq;-JIW6^_KuG0aZOZtpbmRgcZW!S{Kx<}pskfdhKjAD^piB; zu_i+cqXlNo0FhS@wKz<-b6TE4%G(J=S$`HC5VGW{O5Amo6B@`Tn1~`oYV&pur&3E3l)L@p{c^kc@7B&V_aM?DOQdPSQ<=^4R3P~L z2dp5Fj}R=D6<2~wS~;B!6vs>CI?_*8z=Y_wUT#p0(^9>xpI-5?QfC1(bu56LEdLFT zQ{*mlCyRL#t|PPU3@7mBms-a&!gpui67;rm{RTuW%_ega!HHG_=;<_o(Nk!I9v0>V zr_&F>IN4O1;|Zo)g?>Wb=4#7=I?zkU)txx;>|5pi@^Lk+--3eg%6g_iSj#BIYCMy9 zIc&*6;6A1SegF-S!>3b^OQNM0DG}_jaOj0h;@H)RR zN}=Ut%99*G0;{=*m+6`V*;dMSssN6+F@1OC6b`iiiY}$xi8i^SWjmz;TB|*Rmi289 zteF>k5=l_o%JkctefEhX>NMaAql0*_%}c;A(Hs>ZL){3chzp**<97}?G4Tx0$bipN z+_6~p|MTGIQ+!JlC7`-oI7M;S?L_lS>*l}Nz=Yzs4G4fIhW(@fw(JYQu%FETQ1Pyv zbSI8AS6K=`89P>Z_s<;92%Y-pu+WKa_XQZ?InllUDfN8?G(Xb$V=bOidPNu=NcaRf z#QSWMmc}OjQt40Z=<#?3-}~_}Up62iz^P*bwzi@3VCp9mAT_B^1(GWDw96R&cC*n% z;f@)E|AwW+b2b?dWk{Zuy@^S>2L*ctS)W-C%gxa4sC&DMV%HJJ8}jTTBV z0nd6G+8{1r95>s-Xs+P0fgu11;d?r?8QrMvmwzon89|scRn{Y@=0`1Txvx)8-Hi{q zzEo2NDAkVhfnz?6?Dy3{T>aH2-Gb-G*F806p9?~`#2hT$!roWel@5@awXyis0UtZ? zFJ+>}i<Bdc$$IC4do%13pwRF){yd#%YH~Il^MMH->`Z-25_N z;dG+l4WYlhoM!Y&$}@LNetB#mTq||)-3LLahAh6X3M!6qD*Brnj!8VkBP|gr+sE~{ zp52N20n;}2Ax;s0_VG^6eQ{@>+l4>lGjsmitFJtMzZX(DTq!x_px81Qu8-5N>AuBj z#`gDLfxWNfJS;RyZRltyo%N{Q+2u)Y>-}@E=iJG(+DQN|{H+h<1m84habEnJ6Z!vY z=$yFd-vXUKi&$NC^m^qWvy;1l2xKqu(^Eq-Jt$OPadABT z)3_?v*ph>L*i_SpeeE5~KWFPsLiy7ZOt!24o?@xUXE`^sdzRxtydwW-qcnKf#7aus zU-hwhApy~0L6&fxYlltfEu35CfT0c9Uc6pNkA#kBE|xP-ROZmuTw39sO*f22mxuBLH8C#T~bQpRRs6ZW?@< zW6=Om?YbLXA@TTC*wkjkPvRUN6aj++>uxJNq` z!g8Jl&o@QE=~C+R38(V1rPwr$ZV$M~VX~YK$XonSN{R&Oy-xr+{l0!dk+pX!4_)p2 zx0P{R5*Fg=yNvqRv%nrM-@JuosS_nro0pKELNqdwl`TW{Hc?UBebM1#!AplWO(SI? z-Zf57=FeBy&hL)W6t`SgvXej&-Syica4yN(0e(Tq#9We$i6$Ork-KDoxV zQWsesxeVu0@V{LZalsw|Yv1p8dSvg&F~!P?{Bn9gQ*Xt`839{GG#=V-tx|N+y2SHh zPrrn7PGulYb*H_6b6&uW7ijBxJkUmftF-5USm*Vev$(mkLY@yX&AE86qIBt`{d?lm zp8sB6WBALDJ^zJx^;ZA`Sm=}AMUzbQ3Yk4)Ucx8Fr-r}G_I^fF1DJJ+Gv{hGAKSdT z4-Bcr3^QDl!S~&%MagclX1pE5yy~K1JBF}7Be8SvVRy0uo?i3Rs3zx(4^Q-jqF}XBhD@oZ%d={o{LKuI3YCA0 zivOT29RJ12pLhYpUcvv7&;R}x`aTG!6*YVEw{ZL)R0qJu`8Az<;f_wSD)DJT+3N$1e%fP{1o-Q68SDy@_>Qc?p*H%K>#bVzqfGo*CGeWAYJ z-_Q5E?r*K%y=&b+h=JG4>zsYg-sia=d%uDe&jbO1 z4&#IADshMk6ta3q{S@-$&x}I;F4-*qp!%#vOLlX7M+mRwT{^d8k3pif>F|} z?7!;1iRe4_JRMfOxOQy@otqGgJiGPD45!?RlIv^irY#VKZFg&W3QHX05Z zz*Ix>I1Q_8s@1cljBpt_F6#|Gkekjr{25l_8zDK19LFG0tV1x}qR4&Yrn52VWM9=2 zkv6e8H|6Rqyq|VcE47s>oa_?DoqT{^*vn*JlFvuzR;st5Xri0KnOZr(;b4(G1~M)> zvQv*d*{^ZR+kFMD7U!lP;u4l16#QAId? zK0&~b#Nl2oW%aTx*s^BJVFT~vouzQSo(hc!(Eu8J&Zef&338pS$Gt~dHUK}axx=JF zzz7@-emhHNlzsTqt8Z2FpjerW@KclZ*Tubt9C0g^CmPD-#jdOJKSFicA1D_%rrU+H zN6LWr>SFO}Rl)pq$Vb}N8l}GaJ=+tScg#7~J@Xk8xd7PzPLW}v&d)6jx08AXCS?FP>4N^vX2X|*d30y*<~JD5czXOU%WDvwP=81+BC zXqqk>IGW_BIcp=I&p%H^WNVyWir9WE?jdbUtJV^bukoGBhbX&j(wM>mwbySJ$}DdB zkfF0gli{^{rdpAeDoJhbSc&D=Fp`K_1zHzvUQ?ajwyNZlUT0pO6>IQGweXt6YKPrT z;|#Rfj6l`C#PX;iTUUIJfns}Op^zb;fwiOPulp;hNt=MjS9}Jx-Zm)1WicEl#D75>cRWwkbQ0s6vq6?SqW)Tj`UcEkEWn z9RA{NNg6SIRRpiPywtWSJRdh8+^cngO+%kZChKjYjG7Q-9r=2dSkJqg&Y^-97j(3f z;*@`=k-)`ryu*=v&9b{R@i$-DjvO=oW2QAK^R~pNdC-Z8>g^Eqk>;sd=OzpFAB|Uk zqnN)6XEq0HPaAffq3FI`lL}oN$WW_pdWAjZ^%CuGGLuN4eeqHR-#jAm$({$H85xHpqK#g3Z*{~X z{y7(7LtvO2O&({JWvxG5jt^sxG35GgZ>8LB&a-UxlRn+?@R66kOr(17{)}*+XW{DY zRk21`egYYH&@&^`kaVKs?A}tc<$sPAUmDsrx0O!Ji}hZ-i`DDO#)HtAJjp4Xxz^kY6*7(bgNFi7}3GmL$wzP%$MNr+!0Nsh+R zm)pjt_`GmF0u2=TdyJZJMNdF8K**VglNHJ%$4gunvy-9qA+8dMNpTXNTRk(rd?#;z z$R=cCx9CHqzVSKht+UVqA6v0;kcK-$3MXs{3)rN3M(hrDqGs{3zxTQleHIriAtZPU zA4BFYK&;Mn`@@{RTM>g5XVMa$kstoN$1jbXj6Po1^Hu~^tM;*%#(?eUiUOTZ6`DjT zo`rI4XE&c#VP$4b&iir!@19KSWqEQZcU!k+ekdP)SJG-+X-JA! z1gsl|Anq65aQfk(d=GN+`$6;vR@@F1c@rn^d=BJ#W(g*Mz$GO0VAj#ypP7^1t3JiZ zz4805Bx}~ykPXk}QaUnvkNl}l9F^R(%>vA}i_HKt8cq~JJaV_9DKPamb23suK)`|*O1Pn_s9{pqDrYY$sW0($tiec2|C(Y9>ykMT`UUN)+$TL+DW z^GcDs4sO+2P%E^gs9$>WbC75fN>S@<1*H5eu4;nJ&OvlWUx$S&DyV3Fj*dU3;I4`} zU)`_2Bonh-k6^sJek02ZoHNLEe^Qr-R2dhK?QWGJf0%}i-oA}e6^=&xdT1?iqz7n% z?EJ1?(!Q+z-u!i5%|fSiNRnPCl{aeL5Iv^+_$Ioih)fLM2JuRA%v@x(X>(I+3utVuXcjQ?C_g=bv_eDl``Oj)qbS3EBp{A zS9Xq3g3^u)iIEFS8#i-wnv|;}ZZfOM*&?cX>NWJDOQ995tj(oHV+V~*%;uSKJFj-; zDBBoi)Z5f3(kcOlK~fJHLU*kbeVfcC<4utU+PFwy5js1^-&jM!IaAdTLHzFv;|CZv zU&L^<6vpL@s;zOjR!ebnA4{q{?dR^CrClhE?+)Z9P(=Jb1=FS0C5%7K-4!zD-e_kt zIWb^`5iRmkDkdObp*&8Awb*}>KRrZco>9Q>E}jIaq5MOX$i=jwjpTEgCR?hCJ}GQm z>%;OVDt~J z8NTJ(jU8A}4D+Occa5`_nTw_HZiPUM(Qsb-P|hKI%=&caNs0)l#(*&%*<>HtRB6{Z zD%U|-7L}YzE@VkZPj3QId9LqS&E&U`Tn+zD=N~i$ajc(8PpfB`5(ApSfpG&r{inzS zgQ$%{Jn|?y<%&4a)(<~krAFT2){nf)Yrn~W)K->Y&)fiQ%JxxZ)E>@xhClL zEAYdLR=$^ej7`WWGa_@_m%-c`MO_8NidJSzPtB7;T^8$IbP=@;=K(P_6l9z)P7h{F zt_dvEEfAj~O#RhMV9`x2-f~`Y zC&+nLxk}t$i$;Fj0HokxN4bx4HuDLREcEPEc{*^2pN?)F*wGJZoGtU3% z55&_TcyN~^_9oyrp;ioq@oQ<>;+S@g~6PZV@kJo@8 z!y%C17-RHgJKJMowCnYG(oXco&^{5@JDpKFekY5!nAhbzw3@oHV^FiG7%DQ1K&M&= z_tunVCx;CRsdq7xvvMYq zRHKHW)l`RlMxy-kDU}R3Zq9hWT{=HFSXSY&i6XE^s24tC1f1J_|RXP zI;VFXB-_+c27iH_6i<2LJ|f&aVKn4wz4j^Jmsb3mY!dChZC#M*19@{ zUdlQ;(u6OKG3H-Gz2CiA%$+sW+3=$U93w7x*TK7X=;vbN4_;SAe%Bla569nUID3o{ z*kLy8?Nx4;2OVhAzO-8;?T|(-wZrJm^yc`&V&BEK`VNx}`1!^!b>23qHOh8uHvU^x zmD4l%Esb0b-aD^yvD>rEo72ylF`<*Y5}$`iyRt35PM6qFlxVL>9vZ5a_Hx6}8Ar<8 zY(2M_O8Ux?^bdQk{wAX-Zm% z?~Z7;XY6fQ@{fvwyK@91wXeJ|Hr^DzJUf3VYUN||X2v@N>Ak@l{<>=Hn1i$3jvr$V z*4AuZf;5yUI{_c`plihUVssVQHjR#JA$mQP_BKKpWgnYEk(OL(H9m01+-{%S>7HE1 z-(4ln8=-YA6MG9Ijb1vIgA&_3Vx@ROtPxUn{Rui$AcgyCmTEV!-i_)Y|%j9?40Avm5F&Ky6BRtHffhzp|_Zh$qPeNj4aMZ1d%$ z{n{8HNL=>Q_fL{pqiT19wOPq#udvtK*pe3)Z(?H6X(KuWe5lpIRr$^YO|?t@ZejAn z&XB5(G05aYuFFfI1ma5ClrDDRg`?b6n>mG4r z72%FUZzZ})ov%Lctyh}i^v*+RlKHxz-|6ZZqVrM>UuTDy$-`v}RA#>TnBnj+{zx?j zK>`TnRM>}4*K>WilOWwDUey%{baO6+k^r?Wh1Nxjj+tq=d=I(Uwxh?p8+O$7A zB%djJ={Sj$u4zfOd2h%qLRy(EXUy!9yp=P1;@uA#&?p`+R~_zu2~gZN&CLv<2)L{{ zce>6C%tH>O)W%0@K8J$FPD6*oZ z*k7KbMoAyYF*%#@^Es_vtFya0i_7C0rPeaIeW+2gR2qG0u$Uhsq6NeSqQ@zz9}k!P zpn8+io8zSSc$*K7nR}J6x{-$)cUMiP!aMwTdgGG7kp*NCWqrzru8Uz9kdD>85z57F zaN6Yx_w-!V=t8d^7`f}Yevh*Le8H(T@-q>@VdqC*Q)YrXgIs7bN6&lGR=a%ONv-cQ z%`ll63SOoQ#x+=gf2U>LR#Y8OW)_z15AbACS?R$|-+pF+PjM3Kpp9?+)Vjm&RW;*w zJ&ea4Y~X6T5oHtIIN2^0cQtV?-5NOUTT>O~C58eD*C2AE;DqLMU{k*?8^{VwRl8Vf zHqW|RHg}aNABwoylvty^kIO(FSWYO#218J0666tND$X@?5!*Sv0W64;f-hKzNmcMU z0klmk+ayK`+)xE7ytBv1AH4)mi1_0#(}XDz=})N-2RIHhC(PF_jO{I*f?KA7puH=fvs<4$!3~9>nvDChF*vcc2 zWMW*1Y*pR3H~q zi0gcc6r?-)adLI_TV+K4>(0L!%6$r@8GfIaxVo(Y$=>!fy{(1;2P!9^;HTDmh*95ZvT_m)mus|FGXlQ;y?d{Xhft}Y}h4!Tn zl$}o2qjg%ED2As*G;7Zkp6?4%Jn%gu-sd-Zzr|tXJ7vJ7#dztTK<>KGn_ja!g&KgoW`v;%q%%Iw6LR0m^3wgyJrHr1%hv(mkjr2o4_)j0} zOv1Up;#q)!B~OW;_WyUXt2W@5pX1|A4Go2eh-9bRxqR`5qJOsjC-ERA^>2KPTo9j0s^7u)Kb(?gRuQX9>X@yWv>9Zb%aGTr&%FK|%7b|aE2=SA&=f{t=A(~l;Z z@I~5O;;WZK5vhAjX>>a|$kVKOVzLGl)0M5>?#=bkSN&!RSrlKEiX45}V3w=87?Sk) z*l_l|J=a`{Bz@OWx^a7&3z_HOWCff9LffMpxtR>dIk*O8FTgzUbj-f6&RUki}?tGohC zC0DI4Tk)2pXX*s+!twHhCtFqhH|y`#ZPtwO-?`t^dYqM%yfd7kR-OLN^$u9_VO3cm z&>rC!MNCnm$kr*M%IT#LCw!i4$X(quPzlU6W^Xuuv&YOIz4kG3ZE1z}P%{0N(i8!3 z_+LMla9#r8sPpL8x5n$!saV*#Z zYMBeAm=zOCq3PRu>`wmzS$?-eQFVr{&d$~AizCN_WwAQ0pmq1*$y!@4Py}K=@E7p)H`=gh#&w%ijUM10AgN!EV$L>|+>egKJaRhUBGHs3v z2IS&d`v!iTrs1Ukee6`+1A;`ZeM*0oC-(-*Vac&#Pk!?5hY*7-;v?BaW77)9fUEL| zurLb|=-sVX1DER5M}bZ2`gjIMggS%XD9>+o3NQT(;Vob3Chhn?T`@$uh=q%DGz!~b zWdbK-pNg|)*AqefFVed|BFO~0^7_$7&!n({8j%2YRM78|42}6nQcvD-qZ(z^e)wz` zchCFu#Wzl(TTg%FRL1lg0e~xo$e?(vd5&s6Q_*-aEUV{*5((frFlT+)1S2bU6aC|} zzO!l{W`3#N%)^m&Z=O$M>%uQ9mVU}Q&i>jcCtu^caQd?Lsd3DHA)Y}*Zhjt7+QaG}^#Bw#%|5pJv7 z`mp4@j2|l3{mo<6#5POq^hu}ErI~*qhx5HBz?&013zJzRXRp@6mqfJ(g$kJ}mQ*?` zO*vhBhUhA;q9+j=Q0sdM0w4Httg+1^`68P!_bB_!<%EA5eA>i()xyW@wdk4t8`fQZ zVNum;W!0;Nwl4JQf+wtbqaNqv$JD(yF8faZJcWmowKUf(Lu=ifJ5hZp&X|`Ck8pC) zXqdKrq9;;Eu^HBcCmnP*$e zh$an8cXeWl$|7rR#}X(8p5%ID!?_3t#^29Ewc1zv_pPW#hA0)Q_#Mg>w%FUX_ zT3%7GjpsP6y@~J5uBx|chQH!xFUyKJS?xO~ztT{V^O>h#2~~t!26cDdP@X!8WnaYw z*=!F~WJt5$dr#Jt(V;GxWMWtR6K`gsti( zbcWCcZ5iy-o9*YC{F{q&Rm#i~rPIavm*Tr3zon$5^VO*>!ONFidXZ@S-q#xP z=}7Nvup>Hnpv*O&aJn&-2TTwnfb;q52>tW4)|2-M8J5wnOFzB#Hqwie4|-YB&|xGG zgyij2iRv`tmm;Lnt10HI62*hPM_miifZn}%F>BG~4e|+Cx@r&NelQT*6I68P5>I$u zcuI_EUitRpn2kj=hvIlMIHMmKbHj>k9I9m-g=x#~n61234InH>OX0N+aZ92qN9yHD zi9yLxz-eyWMZ1%jM;7@A8UN;rySEbGU;nbi%w=~) zvGIeeu%y`fw84v^mqY{m9l0C4UIy5LUkA4ZJKF4ZwR*9UCjZd3)(*$>WL(|V ze!Ct5>tkAd))SKcAb_?*}Sw1DyIKT}ZO7LVmDq#OFe#U$8p(XK=(?y%tpyXM{ z;Lc~0^p{t|gGGjxu8E%|Z=OljKXm)bQ&rp>3n50wOKm&8^VBkUxU6hNn`J&Jo-cF) zl4#3^h&vg9>@r%aARrw5wtU$ofDWzaL(1XsN3Z1ua@qw_i7XGP?*W<7Z=%xVtXnZ- zAgsvcav8P!cMnRx%2rdy=I`Y2X+z_HtB}rn4R;l!(x{5?n+>}?>4Gk6$>}zYeaos( z8x2&piqX)}VAX3g$IfBTsE;j#Vnk$zFtk6JG;rtQ;-a3dv7baf`q}E|2p^%wB)L0` zZ;6f9_tx~gv0Kss=W2IjRwg>qzPwy?b(3D$OCBDF%$c>>gP4vA9RCMY^NQf|KBT=k zAk~Y$@PNOdZu34Cxl^HUgR{rBc~Fe-1xXw^X6a!vo^jIdmWsz+UA4ccS$f2p#EQfT z6OFP07h9HafhMNR>lY@8t~l(cCy{b{;^Qhniw58m0om=;IOPVbtOI9~$&l!xbU+V{ zc(G+`b4n74*gg~tk}rnf%b8m-%z9CBW@CfhkW7@>Yv%W0&qTGe#W)BE$J{Lo(V7ihvWqJ`YqlUDgZE%?_)~ zV^EZ?N7_||OBEPs`3^)?4!$@9z5JhCF3nh^BHjhYya21z9(jBN&?o9XTkyffSJeor zVyDkGl7)(Ew*m(pw&3^-$F1UUY`1LfjFpsfOGqZ{yR*1#Xc5F7>@r?BkxG#`rf(Y) z0$geAgyWc#EoU{c`ze*D$_F5lb{4Uz);(R{WGAlcwawVFU8}VTC#E`w<5-4cFzEpn zmty_OVL_cR%P?gt)Twp=67m?+JT3+v+M}@+MkJTOw|}g9f*&|k!rJ-bMF^1`zG&5; zHO2gwQugv-bn2OytM59zs{QRP)F*@k=T`NsWl}f00t>yl6q{Q#Dtiwe+Sz}ttTZ`0 zexZhXbCE9Y!O*0)d(#AK@$OhC_eau)M(n752;?xpeEM{In`QoTr(&=&iZcqI``PcGIHw((~@~ou^*C$wI5Dyln)vo=)YC1M6dQJ}q0TUy)L=^G4KbDNT(tjmVqJ7&Z9Tg(-nX$Z z!vIuYsF-MCV_CMQqRzHa?+yM49q9_m(r|NDRXLidjM1kY4<(k8aruuVWo<^Bw? zX-Q!1z%}cCOP+2NU9ogrs%D0$hoh%GG-@#qIzu3z-RLqPt;vNxM(o)23Kq&RMsIGp zqNR_cBM$ZQmQI!L4&8X1K;2cyOvcliJtgvxxCuhb3$JK9}~PH@VnbQkF#4GnTJi_zDW!d3UNDnvdNav{!NDnF_+gQbH)%$ zsUU#$!HLzIG()U{!iWgClj&JR37lZ>w>v*eNuswX4@4A zu`AHu?MoNi2o6406i7qy|FjhlSka5N92(qPTPt}AMoIV>%+p-;@gA$kexh3Wf_s(9oG~tQk0e{UQ#rDh{tH<>2y~4dcD;Wcw zodKBe-TlGgdv27$UO0#7KldEdeSSf@n+*jn`ykfRA-)|~TtXmll*BpdN4EJ_IL032 zD%$^pRRwR$XxAN2nAyXeR_?aM+_C4S-z}4FxAd?!&mE4cq5#39%r)vUVDKChq^l=1 zjW1^(LA4wol%m$CAHlQSedb0?{^Dpbm`tTe%uhD-4G%jDp{S`+U5h*_dHa2^#c6+m z6Q{XGLWa9iO~;C|ph`3Uoej)=v&&HQpi#By8^Yos6x8~&G2RkQTOoL3MXXy%tv0kfZjtUET!XR#p2EQ=C z&)S{k_rt;pfSN+0Ko_ClMa=d2QdjIJVhHh?}`-AJe10ND) z>JNWe*%!`7Yi@=bLv5zl@+CV8mGD3+R1)IX_OBcO#Neebhc7#{xX4mtzgT^igTCRY zE*k|%=ij4TS{?r%_}HB8us4P%7(@-)ErIoJZ$3|)k7lei7Q9rvpic(lg7`kd@7(^vjzR6;`=*0s`~uE;*WDzYCin4$UVSjiz}j<1iZpoT6Yy!w(ddY~ zm701x(CV?;@DA$;bp4-r`G2eIN7k`@%EC`0(n;EX;;pq?vclXBgC; zWuW=p4i68*R#2Ak??(~fy6R7_?)YE>zY$E`!p}|Jl=+w)Pj{lTW6)W+zYyBPmVD0$ zTD+R*O5e)E6Y7r;)7Vrl@I;BrF91Y?g#tipNo);Hnq)ld{9kC3dJ&P4)+BuI3~DYP zd%mDJ1d%2XJ#!&yVC+C%(+`u}%o@ z!nk)tNR`EK%UGO2#V=?}Z{1y`iJq(UuyWx{A{sp-R2j11Yoq+#-vgaz$`Q`w4JXCG z5>fVkWC`B5>|EUpZ`ZG5V`jPDdVKLAImaO}hThVl#zj_>R?>b1Ank8i)ApPWqU_x<|y^*02{*>-v6 z)K0=<&>JocJw*RM<>RM)kv}nLF}|4YA@lar*q7KVXdN&A=*900&!p^oqjgo>{JBmA zIMbUEU%IA6In0`XTBocix1-n#SdPVZ!w*4|;BPj2GgUH+%$D8)4JYxIfQ{?!yTsUh zg;2xLKn66%!o|$LN#0(u4jv9|DfEW)dCEP=Thv3$S>O6WUFYo~1{6fgq5J8K3qGO` z9|7%W9_bIHUF-orDZU3<--7=6!5#mMN#doTBx)S9W3At9mPVWkH z_VR1&S{rjtnR3g++kg(ZBlcvh)VBMEKqKFK<8Wy}%>bDG^bK3p6IC`0KFPKB|BNQd z=p_{pE)*oaf1Z=YmK%K1&Qr@t5S9>7);APLF`mmAqt+R;EHcVyG32%5iL)iXcP=5J z-<8TwzGwhXADw#Ow{ZMa|Wewy=!5Gz!c}^g$!hCY9(ZFwqKR;^ok~gO^7-HoFsexES`?7SFKmDQVtAAT1 z(Q~c?V|*RM{brpHtLgkdDgEhE{N$SsIQ?NTqU^@OO4n|2|9w67-}eLp9fIf-PdZp( zI*g2bP&S@ri89Cg-~hy7B)?WPRd1wcD10C3QOX~Tt6=CkJXtVfAV%NbEl(g_Q~!@E zKcN15CHwtRrps1$Ps>Gv0;b5sgYb;ZLQLrmy#4hr){*}dj?jPKIde&r>(S_8iGGV5 zrJ|5<5f(>#N$j}Xy2Kj&gpn_)RCYTtQde9Y;PX`^+u+Y-zT7RS2aGX;CJeFs`%?}?pJ?GC`zn}VFQP4 zv@>CeVKY{bO7Tj0ECPC<8HXQQH&b4}-J#5PL>;G-^|`*>E;Y5VkYv_tq*E`|8~@2R z^Yy9MH7E?&r<(oJv`3W0AWp&Z9?XB%jV4nWVmA8V&&L_nzhqEfQ{^O#8y;4)McrF$ zv9HNNzZydEatMj6I4vUUia;qt|cUe6#nm;#|&(qtG$X_@{~&Ki@(&hy}2nj^zcy& zJbEK@AZvD;=Of>jmp)Ii2{OmW$mLKSv3Ji=N92fK%@?#AMPAUHwcx58p;LhM{dFdw;#*->ZSK#v*G^Oh6Dt zE8jnfC3sIRqaOVsm$J%w&$Qd8aIb8-UkQFf^fvM~DOFnksBib@agr>9!&fklkrjMd z*)r8m=H`@6==V8l5X=%Im)&oG=Sd}aeauouU|^<{*oKN{m0ebO&Y*hBL8c4uqkQ+;kPsD`)&1xqis3QKnuKC`i@wqj|w z&S!tMJP={q*?&`@QaPF1KZq*Bo&){A8o;g z%q}M*$XD2d@J|a+wb@v$Iq4;!MpogG^CIU>1}N?~hEqbqd5?nD$@05U)I*9Q{ck%N{v2~8P?@OXsfkFa z>67`uQT7N6Cr~IHBiCyITww3XM!wCXgpq4qMs6R#QI!-d5FC;(=H8}h8;Wemo6_^; zU4WRLLa_8J$Ow?{h8mAD<8n+fYDW&t5@|}FM2?X@BWCld)Qm`&sOUL?nGV$~dKWS% z+NC=pReS|Psx4!q@Ho2o_f{s@M!Er&*5I6G_xYX-0Hd|4Q+%~F+&L$@tItjH;%w$9~5b#PmS z^`%oXYyIZ73V5Do+-_8SbZ?~~i}#W4ynnAP*umOAJDa*8x8-a3=HOGV8EyE9)&Bn4 z^$El2XKF@VKd18o1SgH2K%6t#W4+|FY4bG8Oapct1rLvg()4e2P`Og96#y?`CtXV_ zo!}3U9k#_1{b|3TPmmQizgWV#%deuQG?e>s^&&3yH=fB&{;(W-BhzAQF*Gf3nXMW69>;M z)z&Hc192WVCiIho)W6B+De)-NeE?GLKSj@xXGzxz(?d30Tp9gl6@5^e4&u5cd?l6E zU02$t(ZG7P#My)G3b(r+@4J3Q2MNm7{c{}lOl%s2(Dx_o3k!=;tGB`Ri~ErqX&S4) zZtbT5nE?w2Me|D<&UDng*OkN430e*hvnT>K6+}gzb%p;boy8~KK zT^ymPO1KciN@$3S5#XWtLZbG`;Mg8sj+%R}wy<|sP9LJ+_h?e7GUqOy{E%H0fdlnK z$<@f`{RMH_4sGzBxOdHUgC7MBoF0{u9knI@YgikUXcbF9gpUw}3uAQnIA2TG*u(AQ ztZBa3V3T94S`@TQ6Uyz#@P0gl0kEpGRi2eZ1Ke5o6(4{S5*2;KG-27MqByG3 z2*!z1`=~dcUPUa)_TY`r6qTa6-qt%7hXGb;{4cAxl1as>3AK}_4AYtPt}ZLd-tNvb z&Cq3W;3&8%Tj?TyLC2t7csm-~^Pi+aw($>XFicd^?!T5a2P;Di$pdk``g6D}kmCNs z5r=?Q{WWe_9TWOdeN)^gW6($<8tUU-6D`heO_%2(^6AcDx#I<;D@Po#<_**`*>RdP zUzV=Ol*Qd!5ud3p#hrjF`QQl+-B~TE(`rM5+`~Ew)-q;S!Yp!&SA}|HOVA& z+StuP43vQvj%{vB-;wHk?wXrSdu-`gnXo69>jHq(BcPAr-g^sRHDdJA-WGlqUDX0^ z!(?y!nT{+~X_HrWgRTAMLy;|G5}je0?ObVVYFHPovl;i|<^Gw!-!pG4^KlFKAaG9s zkdzXTbEO0FqyAC=PTBAGZYKNcY%s95Kk{L2+xNK~6-Zy^fBG6e(3Frj7wGgilW)4u z`HkojqMp`As$M8JjB*B{SKNDD~Sc zAssI2qJ70m8~<^Vuy%jBf3W2J2J6~;L=Z`h-F&%6?qu*m#SGaOkZFCSYU`7hv-22Af#*%d0oOywfFj0-#>B$fGTe)sHt}qw6 zGMVA?uL>Ay_#L)P2qeZ2@PX7$jho{!TkX4pj1slA`{enjjvXKjn2dHJ+?WA%!qEN& z_ach<-`L1Xp5+bN&z?IG5E1q9AY%a{ zW1+*8Y)8Zf!ZwI>Ke~`>$@ssHMxM24AQWYzMwKm1sgl&$)phdp(Nhw>ui7^O_mhMc zssEQmDg?ahpMwPzc-quYNw%!PX(NK4F}s&sB{lHl#}nM{=>OvKAfkVtG|Q^>WV|Dtzr+|MB`?nf9wkPQ M5|a}x5jODsU+dGkoB#j- literal 0 HcmV?d00001 diff --git a/docs/images/illustration.drawio.svg b/docs/images/illustration.drawio.svg new file mode 100644 index 0000000..ff40e42 --- /dev/null +++ b/docs/images/illustration.drawio.svg @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + +
+
+
+ A +
+
+
+
+ + A + +
+
+ + + + +
+
+
+ B2 +
+
+
+
+ + B2 + +
+
+ + + + +
+
+
+ B1 +
+
+
+
+ + B1 + +
+
+ + + + + +
+
+
+ trigger +
+
+
+
+ + trigger + +
+
+ + + + + + + + +
+
+
+ A +
+
+
+
+ + A + +
+
+ + + + +
+
+
+ B2 +
+
+
+
+ + B2 + +
+
+ + + + + + +
+
+
+ B1 +
+
+
+
+ + B1 + +
+
+ + + + + +
+
+
+ trigger +
+
+
+
+ + trigger + +
+
+ + + + + + + + +
+
+
+ A +
+
+
+
+ + A + +
+
+ + + + + + +
+
+
+ B2 +
+
+
+
+ + B2 + +
+
+ + + + +
+
+
+ B1 +
+
+
+
+ + B1 + +
+
+ + + + + +
+
+
+ trigger +
+
+
+
+ + trigger + +
+
+ + + + +
+
+
+ (a) +
+
+
+
+ + (a) + +
+
+ + + + +
+
+
+ (b) +
+
+
+
+ + (b) + +
+
+ + + + +
+
+
+ (c) +
+
+
+
+ + (c) + +
+
+ + + + + + + + +
+
+
+ get version number +
+
+
+
+ + get version number + +
+
+ + + + + + +
+
+
+ trigger B1 +
+
+
+
+ + trigger B1 + +
+
+ + + + + + +
+
+
+ trigger B2 +
+
+
+
+ + trigger B2 + +
+
+ + + + + + +
+
+
+ trigger A +
+
+
+
+ + trigger A + +
+
+ + + + + + +
+
+
+ build +
+
+
+
+ + build + +
+
+ + + + +
+
+
+ deploy +
+
+
+
+ + deploy + +
+
+ + + + + + +
+
+
+ trigger A +
+
+
+
+ + trigger A + +
+
+ + + + + + +
+
+
+ build +
+
+
+
+ + build + +
+
+ + + + +
+
+
+ deploy +
+
+
+
+ + deploy + +
+
+ + + + +
+
+
+ project: A +
+
+
+
+ + project: A + +
+
+ + + + +
+
+
+ project: B1 +
+
+
+
+ + project: B1 + +
+
+ + + + +
+
+
+ project: B2 +
+
+
+
+ + project: B2 + +
+
+ + + + + + +
+
+
+ commit from +
+ A or B1 +
+
+
+
+ + commit from... + +
+
+ + + + + + +
+
+
+ commit from +
+ A or B2 +
+
+
+
+ + commit from... + +
+
+ + + + +
+
+
+ Yes +
+
+
+
+ + Yes + +
+
+ + + + +
+
+
+ Yes +
+
+
+
+ + Yes + +
+
+ + + + + + +
+
+
+ commit from A +
+
+
+
+ + commit from A + +
+
+ + + + + + +
+
+
+ commit from B1 +
+
+
+
+ + commit from B1 + +
+
+ + + + + + +
+
+
+ commit from B2 +
+
+
+
+ + commit from B2 + +
+
+ + + + + + +
+
+
+ branch==release +
+
+
+
+ + branch==release + +
+
+ + + + + + +
+
+
+ branch==release +
+
+
+
+ + branch==release + +
+
+ + + + +
+
+
+ Yes +
+
+
+
+ + Yes + +
+
+ + + + +
+
+
+ Yes +
+
+
+
+ + Yes + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
\ No newline at end of file