From 78813a9c1c0fcb8e31c3cdc6233a81325ef7ea0c Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 22 Jul 2024 14:13:30 -0500 Subject: [PATCH 001/142] Fixed version for doc generator Ticket: ENT-11721 Changelog: None --- generator/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/_config.yml b/generator/_config.yml index 09b56e8c4..2b6e24026 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -22,7 +22,7 @@ cfengine: branch: "3.24" core_branch: "3.24.x" latest_patch_release: 0 - latest_package_build: 1a + latest_package_build: 1 vagrant_package_build: 1 masterfiles_branch: "3.24.x" From 3ca28fd6bfe82c5fe52c918e77e0c64f87dc1de5 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 22 Jul 2024 14:23:07 -0500 Subject: [PATCH 002/142] Fixed path for assets --- generator/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/_config.yml b/generator/_config.yml index 2b6e24026..ccb71eaf1 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -46,5 +46,5 @@ asset_pipeline: bundle: true # Default = true compress: true # Default = true output_path: assets # Default = assets - display_path: docs/master/assets # Default = nil + display_path: docs/3.24/assets # Default = nil gzip: false # Default = false From 5cbab4af6ec0932e56327502e7bb143205ead2e7 Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Tue, 16 Jul 2024 13:25:05 -0500 Subject: [PATCH 003/142] Clarify that cf-runagent --remote-bundles requires explicit bundle resource_type access promises Ticket: ENT-11987 Changelog: none (cherry picked from commit e7571517fbb2308babd277a8c81cb63da2c3d3a4) --- reference/components/cf-runagent.markdown | 7 ++++++- reference/promise-types/access.markdown | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/reference/components/cf-runagent.markdown b/reference/components/cf-runagent.markdown index 61eea58c1..324199fef 100644 --- a/reference/components/cf-runagent.markdown +++ b/reference/components/cf-runagent.markdown @@ -8,11 +8,16 @@ keywords: [runagent] `cf-runagent` connects to a list of running instances of `cf-serverd`. It allows foregoing the usual `cf-execd` schedule to activate `cf-agent`. -Additionally, a user may send [classes][Classes and decisions] to be defined +A user may send [classes][Classes and decisions] to be defined on the remote host. Two kinds of classes may be sent: classes to decide on which hosts `cf-agent` will be started, and classes that the user requests `cf-agent` should define on execution. The latter type is regulated by `cf-serverd`'s [role based access control][roles]. +Additionally a user may send a list of [bundles][Bundles] to activate on the remote host +with the `--remote-bundles` argument. +This argument takes one or more comma separated bundle names. +Each of the bundles requested must be given explicit permission with an access promise +matching the bundle names. **Notes:** diff --git a/reference/promise-types/access.markdown b/reference/promise-types/access.markdown index ccb1df1e0..72b97f2e9 100644 --- a/reference/promise-types/access.markdown +++ b/reference/promise-types/access.markdown @@ -7,12 +7,12 @@ published: true Access promises are conditional promises made by resources living on the server. The promiser is the name of the resource affected and is interpreted to be a path, unless a -different `resource_type` is specified. Access is then granted to hosts listed in `admit_ips`, +different `resource_type` is specified. Access must then be granted to hosts listed in `admit_ips`, `admit_keys` and `admit_hostnames`, or denied using the counterparts `deny_ips`, `deny_keys` and `deny_hostnames`. -You layer the access policy by denying all access and then allowing it -only to selected clients, then denying to an even more restricted set. +By default access is denied. +As a policy writer you must specifically grant access. ```cf3 bundle server my_access_rules() From e69ec75c703b9c3acb0781730a1dbc78b052c734 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Wed, 24 Jul 2024 12:59:29 -0500 Subject: [PATCH 004/142] Clarified that sub-separator is value_separator Ticket: CFE-4424 Changelog: None (cherry picked from commit d1867b909979e7dc67241a6d91e94b0c6e8b4f28) --- reference/promise-types/files/edit_line/field_edits.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/promise-types/files/edit_line/field_edits.markdown b/reference/promise-types/files/edit_line/field_edits.markdown index 294c5d59f..b7153b5b9 100644 --- a/reference/promise-types/files/edit_line/field_edits.markdown +++ b/reference/promise-types/files/edit_line/field_edits.markdown @@ -13,8 +13,8 @@ string: VARIABLE="one two three" ``` -View this line as a tabular line separated by " and with sub-separator -given by the space. +View this line as a tabular line separated by `"` and with sub-separator (`value_separator`) +being a space. Field editing allows us to edit tabular files in a unique way, adding and removing data from addressable fields. From 226c9b852d19fd8508a726b6c0881db7c95dc653 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem <4048546+olehermanse@users.noreply.github.com> Date: Wed, 24 Jul 2024 22:05:32 +0200 Subject: [PATCH 005/142] supported-platforms.markdown: Removed platforms no longer supported --- release-notes/supported-platforms.markdown | 38 +++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/release-notes/supported-platforms.markdown b/release-notes/supported-platforms.markdown index 0746f465a..1e6a67ef4 100644 --- a/release-notes/supported-platforms.markdown +++ b/release-notes/supported-platforms.markdown @@ -12,30 +12,30 @@ for all supported platforms and [binary packages for popular Linux distributions ## Hub -| Platform | Versions | Architecture | -|:-----------:|:--------------------------:|:------------:| -| CentOS/RHEL | 7, 8.1+, 9 | x86-64 | -| Debian | 9, 10, 11, 12 | x86-64 | -| Debian | 11, 12 | arm64 | -| Ubuntu | 18.04, 20.04, 22.04, 24.04 | x86-64 | -| Ubuntu | 22.04, 24.04 | arm64 | +| Platform | Versions | Architecture | +|:-----------:|:-------------------:|:------------:| +| CentOS/RHEL | 7, 8.1+, 9 | x86-64 | +| Debian | 11, 12 | x86-64 | +| Debian | 11, 12 | arm64 | +| Ubuntu | 20.04, 22.04, 24.04 | x86-64 | +| Ubuntu | 22.04, 24.04 | arm64 | Any supported host can be a policy server in Community installations of CFEngine. ## Clients -| Platform | Versions | Architectures | -|:-----------:|:--------------------------------:|:-------------:| -| AIX | 7.1, 7.2 | PowerPC | -| CentOS/RHEL | 6, 7, 8.1+, 9 | x86-64 | -| Debian | 9, 10, 11, 12 | x86-64 | -| Debian | 11, 12 | arm64 | -| HP-UX | 11.31+ | Itanium | -| SLES | 12, 15 | x86-64 | -| Solaris | 11 | UltraSparc | -| Ubuntu | 16.04 18.04, 20.04, 22.04, 24.04 | x86-64 | -| Ubuntu | 22.04, 24.04 | arm64 | -| Windows | 2012, 2016, 2019 | x86-64, x86 | +| Platform | Versions | Architectures | +|:-----------:|:-------------------:|:-------------:| +| AIX | 7.1, 7.2 | PowerPC | +| CentOS/RHEL | 6, 7, 8.1+, 9 | x86-64 | +| Debian | 11, 12 | x86-64 | +| Debian | 11, 12 | arm64 | +| HP-UX | 11.31+ | Itanium | +| SLES | 12, 15 | x86-64 | +| Solaris | 11 | UltraSparc | +| Ubuntu | 20.04, 22.04, 24.04 | x86-64 | +| Ubuntu | 22.04, 24.04 | arm64 | +| Windows | 2012, 2016, 2019 | x86-64, x86 | [Known issues][] also includes platform-specific notes. From a4e4c012717195f38af3bb4db641fc3b7a7ba93e Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem <4048546+olehermanse@users.noreply.github.com> Date: Wed, 24 Jul 2024 22:07:31 +0200 Subject: [PATCH 006/142] release-notes/supported-platforms.markdown: Also remove 32 bit windows support --- release-notes/supported-platforms.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/supported-platforms.markdown b/release-notes/supported-platforms.markdown index 1e6a67ef4..0dbf9322e 100644 --- a/release-notes/supported-platforms.markdown +++ b/release-notes/supported-platforms.markdown @@ -35,7 +35,7 @@ Any supported host can be a policy server in Community installations of CFEngine | Solaris | 11 | UltraSparc | | Ubuntu | 20.04, 22.04, 24.04 | x86-64 | | Ubuntu | 22.04, 24.04 | arm64 | -| Windows | 2012, 2016, 2019 | x86-64, x86 | +| Windows | 2012, 2016, 2019 | x86-64 | [Known issues][] also includes platform-specific notes. From 78ea0be00b0bf84be181ce9ff45f491d97e2d849 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Wed, 24 Jul 2024 15:57:14 -0500 Subject: [PATCH 007/142] Removed the beautiful reporting infographic (cherry picked from commit 7f4f73f1ac6a2f9bc95951ddabee929792a28948) --- web-ui.markdown | 2 -- web-ui/inventory-hover.png | Bin 816 -> 0 bytes 2 files changed, 2 deletions(-) delete mode 100644 web-ui/inventory-hover.png diff --git a/web-ui.markdown b/web-ui.markdown index c873d20a7..a01e0d422 100644 --- a/web-ui.markdown +++ b/web-ui.markdown @@ -117,8 +117,6 @@ attributes are also extensible, by tagging any CFEngine variable or class, such as the role of the host, inside your CFEngine policy. These custom attributes will be automatically added to the Mission Portal. -![Enterprise UI Reporting](inventory-hover.png) - You can reduce the amount of data or find specific information by filtering on attributes and host groups. Filtering is independent from the data presented in the results table: you can filter on attributes without them being presented in diff --git a/web-ui/inventory-hover.png b/web-ui/inventory-hover.png deleted file mode 100644 index 2c71e78dafa423072a521349b08760499a76c7a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmeAS@N?(olHy`uVBq!ia0y~yU_1n5r*W_W$%sc2Ie`>sfk$L90|U1(2s1Lwnj--e zlq_+LC<)F_D=AMbN@Z|N$xljE@XSq2PYp^4z6vo5Ier&$=sDm4mqi2r{WY93LpQfo;UZtJl~_-&$}0%w!F{a z5VBX-;{DgRn}2AxEN|a^&X1WRajV?>{O-TE+xsW;vaL99PK-gJ1%w3p|0}cXFlhhS zBA{T?{_)krYZ?qr90-(XVag?1v`4N*;85`%IlaSc0~uNbP>|AxkDOf}EG-;3IL|+S z(2)HAVnX28q!+Cne>d0f*tgJmM$oLB!;*(1YC2V`>t&8Tzx4U-{(JFJckS)#d*9E0 z{rcBG$LYn}xYN%pm-CkY7E$!-V$Jep{=K*C_s7S?=g(zy;6OnMzVl4EOpZI>7j#mv z;jewZ{f-nXvJwTJpvQZ-EVfS&bRxVYZ?DG=DzFa(EqD;uU)TR>toO`#K2Xm- ztLNR{u1TUq6q@bP0l+XkKq4YY` From daf8b0da5023a204a8cd1f594bd51713084d9e1c Mon Sep 17 00:00:00 2001 From: Mikita Pilinka Date: Tue, 30 Jul 2024 15:54:13 +0200 Subject: [PATCH 008/142] fixed outdated screenshot of disabling feeder hub Ticket: ENT-11881 Changelog: None Signed-off-by: Mikita Pilinka (cherry picked from commit bc7be3b8067ae125bd976e2054fd2d788b6a15b7) --- web-ui/fr-edit-hub-disable.png | Bin 89467 -> 29564 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/web-ui/fr-edit-hub-disable.png b/web-ui/fr-edit-hub-disable.png index faa26396ac059980e3306aab36e9b755fcc126db..4e1bdbb62bae4e73a94c7113f2622c0214dde49e 100644 GIT binary patch literal 29564 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 literal 89467 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�e<^J7f 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≦4k{gI#NDi>6StzuH=Y&2m zgm#IJcowr%(X$8IoW!eM`7tODMM>P_QgBqXOm+UB3_0e4{ZPS>7f=8)0ft;d9hjB^BAs))_M^8sMcBFJE)Ph7M; zN}&;3hr>8n zugdg;em9O?y1zd37(2XMq+r*T(tyU+DWllkQ( z$koRr7ywT4Ni2K`|GCSerAsc1?w_DG8)2*kB?nLb1-!#F3HxeIa=m8b@afCbi4pSt(edH6P<pHN)q}6hD&bOewG33TT`;`f0E!wFAD-wM1`5fj+nLdt$ppJE zVu*iXDb*2qYpKMjV5IMpOOg-)bE~yfiRfIrXcljqF~{PL_yXQDqHGS;bKSP>&VMDe zKb~m*>5#IiyoX8THoPoo(kP@4*?i3sv%VmnQN5m2p+GS!@MHbfonn2D=&3gM{Ip5wrf$J+`OJCB4 zqaxE^kqgDVB!X~A-c&sA9?KV-xR;uW{@ZiCYfP7SkS8Cy4fYa6+;M-Rxl}_7EDsR{ z%hNX8cMNS!_|ige$0^1=shKi(0NBL-<+f+KJu0}jg>$)C#>u)HX|JLosZWz%GaCvA zkClI8HRrvU_~+_YL0+>NE%@U6$)4F~{1f-j36(fu3eAhTjRzRQmn zVURX#&ksdC9`#nhT)I&jHy@ctqvK?CS*26^*Bba}I_F=%k@y0*APM&jp<$U6el%fx ztJzm7auu+VJbeVosL0AAr8lW_#eF5!6(qYiW{o{Y??4b!dX=2zEQF*mNVC)&%>wbo zkG3@#Uj+c?^Q)7V3P^D5%+{k^(|UJ75Fc>9!Yr3zb)qtf2a(Kc4bdhAG+W=CJh6z| zapA`Q+8~!Ts0nX#j*r8#C?0{z)%>QD4uVKh`Q#tZ0(8@AelNwg|EcuzW~)1?1#Zn1 zxRppRQ!ZFjb-|pW^c!{QRhqcW9pc>jxdZ}bne!G%YcehdlK*b+hDT$L=b{QvwRfKlzTwn48nYVCb>yF z3ox?pF^pxv`vTuj@(&Bz`N2$@-@b{QDmq!FAd7Ezzx~HMT#}Mo+|fV2@`#LxTDGA8Oj&_>^U}2ji_Iw3c}h`EW3V>^A$?XPt~$hQ>y=4i%Pd7;wgV zWEo4QM?CARz1V`OR)0I^nmn13ZgS0#m(8X2Gvwx}hDjtgUL{0YKpI2sIGimW_{u=Y z%(+VCZT^mpA4ST&hkycbbr6_BeP_^aT%pM%C9-Zct-p#e09ICBy7V0QxSEZ9(`3jq zqsxNtU=KUZ&~j#b8~~?!-9AaXlAuo5^_}rCmTJS^+5=@rJs;~#t9F*cRsh)8+$<1v z7y{iZgUN)Hee_!7gf1bec#S{`OI)2-LKR0O_Zei;P`K5N8j(l>i^Z3#)c%t7UYopI zQw^8}poQM0-}7Q+x0|x$vo^0$k@;*7b#Sahg`EXBsDzowHb9VAPK6xh$4iQ*?&C>W zibs5vi;?Oyl51_S5PW`y-{V_CTp$PWbGy2-m|*0|g2pdSS~V9frdHiE=-J?GMp&QW zXaJYuJ(I_myAt1+aEDz@e02NXg{PMp{^`1EpwvN^6rkI&#gWos= zTbI`7HXkhMgyo}|B&W8Q{omADv{%y}T^Bt0wsAG9VJf`Kej$if3JLqL#a0*Bn)#;r zn&Y`^mQN=Gw_MGf^0$}*QEkc1_46pl*{*+8_LA0#<8^S_C%9H(uaZBg$ioCCtalgt zHvWBotilY)rUl%FZOe=T{}+4j8P?SHeT^a>EI~z&6a@h}dZah$C4eAcrS}#Pkq#o# z5|SViuu&{X@6t=?Jw!o8=}7M)LVy6Fg#<##UGew3?{h!g&;NU$=Y97VC6JxH*IsL7 z&N0UrlZh2IyaaT-OT65rPEE;8(x=YzttmB`L|Mdwq zvi@IxE%p*njs6^3E@vG7OXez&VEw<@f$_Q^F8*_5RvrVisXxd6?k64odWfY@(NKNk zx>dzJT`G`4a)WW%t30VRDf5a?Ny-bX%R?+-7THIyuvDL!{g;JhQF@ypzlR1iHJfOG zM3z21Zig5_O%3p_Z5O7h51q)yvV9DUdO=vU;<$)c`KKde9N?=ERtfUPm7^?S>Du5q zaLE9R&GL<}p_dP{gtaVT(R5G1AtRc;SHi3FigR-R!Ub&V$7l z=Ko_8Vw{N}0DO)FYK;&eF43}Tc;s?U!NY76z)@}7wq9qzaFG5pmomeLORUdIHLtg> z=Lph8By6fhnBk@U^j482PV7#yyl69nPT~OcEIRjI z1owl3mkZ6AGgFA^$3H8Vv3q9}6vNu0G`6!Ig0IdiZMXZk;P#{eTFn%|Ho+XHABW2H z=i5JCGM}Bx*w>z-yb_=VOR)-lp0g6@xhzt)e84gGz|3D_h-IuoR^P1s)Kn*VH+=Dt%fNbcL}fD7J3@L(dC zlC!Sp<1C8~-_C(wJ*!_&0qhKxVh|M;pe znr5rK^x>_??0nNSxvV^R#XGk%h|&nPmZowB0?F5 zmxj)hEgzm#!xPsuBLU!dr3ee{+Kcw zvX|)u5&fQI4fm~$ZT25Q$VV`~)Oa%M6xzeY&9fQQ>pQ{Vn}S_)_q$=M9-sF+df91{ zZH5u>PyQAek&v}+st5uhFEl`2J!?7m2}=0gyI|@|-#c~Zgb1Gx_0|LI$9|E5=KUfV zCc{2Bq@J!66ga+Mo^pyKW1o6+wv9o6I*ne@XlF~x^lpevmCYWEC>PXKonu{>6c;-<(mLwKbsWw zG>GX-+9fH^T=NYeu#;D>cszE!!pb zI13T}tM_jtP|8-1#i92GG9v%I{r>)zceDUhwJTXc9Mr!BR+@gd9Aa@}qvI1TF7TYB zw=5SGw*nrC1&vO|qLHgO(6`F75czdNv}+Ir%p}^!H<(Vf%uQGa%(eNQnU=o|*7h6u zJz_c1$kXM&%Uo(^xUPT-?q&9KT#a;FeXS6BbR9-qnwDW8w7AP-f5t#{Uan@QZVcWD zmbLVQ36Wz%y%A|aC;ZFQrM+-N@5c}aBwizcZ!@vFvVsQ+mq-qOLEMhE`8r()GNZ!j4*ZD9U&mjjpGAqT|fci}eRRJySa%v^)u z4Evxdu2Vqlx!yv-VFz1$fhq5Lv~Ot6KuZQNZd*5GY#Y*1UeP=0y^OhbO-puZ&Gl*Ls>kcTUIakihnD4MS0@%S`+tXSzi-gB2Yw` zrf6wxt+mkB46dc+YpsdHc5meqwwpMXn?ZF`m3{S<0AZB|jH%gS^kqv=e6fBMibSFv zVaXh-{z3ir`cf6+3P12JOFL+)0<;bnbg);%G=Hld?96=GJAAhczVN3%?_C;}8w9_dd&ow*4u=AGm7HFrV77Vu!H>lE0fr z&-do^=;hMIs6x_in`Hq&88NFm8jG;Oadyta9zKNKj3HXB$bWfi3&NgCsBR`Hb zkU_msPYm*JdmSbCjyA2}na&!02psMz@p)y%fcb3EA6%)2v2h`;F9`r&Y!dxqMjF5K+!I)P!IWP61TsV`95(zWG- za+&|;S%#CPQTm?FTsWn%7`Cz@Jtebg>tjD-YX-fD3=3`#pK)arCFH|zFN81_$Ti{r+@uRB%B?xOIIs5GK@Vhd++)z0yHH+O2ba_dEQ6s(uNbVp42j@N(VEv zT+fv*6|C6;g^`H57INuqC+y%+aK&8gw>?rk_slNv)JQ*hC_~e*dr_RjVE_ z{abZ;>^XtQdCCfXJhm1MYP?m9H6#dkfMqcU<1`43JFPw+rGI5;lwb5}Tw3ot!S>8G zl)kdwwk5T;nY`d}0n|$E(*>^vKdk@REY}vL3Aa&9nER4IzenQxIFXPsF{dO$nfs1q}99Wod z#TgGcms=pG3f!@(&TeS!26P9Ix9+LJ9q)Y{P>=Oh zp{CWWo8ZJ|C~G-w`Uky;$}hgvZ|XBVe+(EA+3M(5|HQ(6?H9(}%~xS|es>j1=zm$fr2edJKWDEv!Rp7aYB>Y&z2UGr=KXUN?GgYg}f7Z=su`7s}ACT{Nm)tuFjt>09lDB6TK8qt7#iA6mTwANEnYtD~a% zsXvw|pd6w=!P&$QUfJd8PBQnM5zYvGv|16~Mzu=c84%n7Eqe@^T-Tkb`nu+M$uSb- z64!k|q7b_Ps%^6%8FHg8DB;gb)&C4%fzitdK7AH1ZW0i9F!*qI|j z%Mi3bC$PJ$0=tQz1k3c$cN!0{V%pZ7kgOZzOW(O)>_DKM;5>6xf6MbdluBvk!LV8tjyYymnS0Jo8|GQ)PCGv1jPCALz^q{|fX*e;>@l z4*n&Qi`cy6UFSgJ{F-(EhFvWcU}8={{WS~JStsVcMiYPNB~MX6q53U-n}9sb(r3FJ zrB4qf7sI+2@OHIc*3^NF1I{&&Nv;DCRutgGL;$j=FrZ9E!qI(ku~LH^8`s7~ZviPA|x%sPC?A1sOqS1hy=J=C^|Muj?A z)hv&Vd-mejwW(;>ZXor?`I)84wARi`GaH}EC;0MQC&nQ2$#5@stOS?OELQ}Wyj_VD{e%eJ;y^62F;b8y1!u;F|ZULF|E98^6EU_i)}t^MoLD_w%^F%?bV4-0=37y_&+Ibn$%G zUJm}NA9e)Dlg(R7BM}3dNDs+OGZ}aAH{Ua0+w^rqL0Z(fqRmw3*e|}S24Sw#9dDZ6 z54GOzPHXsCTkMI`c0StF_h|2l@5*MQph+3m;FjC#3~?#?HR>jhW<2IuI`{5w-}83N z1OWsNr>bW4b_InR6=$g9_{fZdMZAajhZHc?d0T>pE!#No3_)x&+K7S$03J9N(Ta)c zA)AeT_kf!Gm=^4V(3B058KHAbMDy`0t{&U!uxZ-KEm4{sPjG-t1bNYlEWK^&qa#gc zf*3C(uJbFcDWtLfnEsG8*Le^OI|qeNOgf}Y#> zLQ=&JhXEj=XDWgl++chJ#)my95;X=mC7q@#X}|m)7^HMU=xA!R(saS?*w2-Na}Nn4 zt9^ZnkQ*>fzl1&?-YaE8-w|(?2{mf*Fr)uG39WPg?LWuz|9d#M#t-C;-I07g=MHx2 z@EAax1O?r&76XPa=oMDH0pnqD%K<9a4Nbr?&4l$a1{N9KEG%vca7R`xK5u})G67U@ z+{l^u&wl`|>HmR%gP{ZXd8J!__Bu0!1Ik+UJE_XD%y(#sGm-E_8BEXr{GwBYX zBauY&JJ4r9;>6`*i_#+Kv|l^_Taxj|hI?OL^c4X3Qp%H*J-bwJifsqj@yY(V)SKHM z{|bXJO-MXq0W?UH!ix6+D%IT`XFLp;@6Ss5hTPVo?Qg`QOQ6$CoK@>y7VQY1*J-_2 zfvI`2ivPm>RU2$9fWhT|8KU=0S2sKzwvxk^sUSc$L6l7YWR9>QcoN`44t5DuXoc8c z02xl8X^>HS02WMvIsm{}3jy6*%&BR|B3C`zv^IagHGIGTP>cL-Bf0Mau&8o-=R0w@ z)S=iw=bLVZ`JYodA5&p5ix7;olaKuc3|-CmOp132CHhy!b;KWb0+>zyCurJ0NB;JRUk9Q_kCvbgq(rUJod-Z&IWsG%y7meSFla|DNoDEGOI1;ikJfk4>+I zr&~(bTH=`VV}~#=-MH?Rwv-A4^4=ORV=-iZ;bv7FDH?lD_8)m? z;2tp+8lBuJJCtMORAKRX_~8S=0(S!w;0AqHo2xooifM7bGVUREn5`;=2{^6b3U}rw zwhN4Nv~wgbZ;^|xE{*>tQ%m&8*@y@G)D5R^aY9*Y$=;Mb9n5&#c-Lr!Ga|R!P3Urs zWm-_qwQ@M7xW@rN1|#XFSXr_JtRFau@7?k^=u9Msp0&NM104o^F=nEG zS9u9{Q3wP%y`86od3{Mg5biJmTC8CQ!X<##%#u6MjSpkCaUnuAhE%gb)D7 zKY-FDjI1l~-}Kh_3N+*xP8_Je4y08Nffz2JNosqVU8?>f z!s|&5tC(8;%>IIs^=Q6xF5K9MxiQ3U4Dbbuy+mF2{tXr|JDD1H2l}SQF}_tEVL&tD zzmuVXTSGnm(`6@Zc^(L7x>(!4zZE7(slUsA9q9XB%03zMtg*Mmfgae14uJ8lqGww% zW6m{LfHcclbCa7}KtG$Rtrx_{{n@%>sL&L1sECYt+7R(fF~T_G=r}$tfBf|t9t3ku z1APZfK{$9qEYN77-z-LF6zwdoUF#437jn+TzfV;CN4A(o^ER}M^OqfX7-`|R*q)Bq z`QObac=54af<$v_c&Oz(oCn4GHO^n>*yP2YYPSQW=|w~j- zMJK{W(!~cl6#`=PoU(@8i+s4W&SN_A)BnN~_`+yT1B8eBd8di`Q3ig2)EW zME6f(XdkhhbUes+JytK}1;UvPrHHx{1ue`C)5s!cbz0=kARX}QNjIVSS~N@ip80A+ zeVwzwR6?KwL^XQ+L+h{l?ib6y0LSAG4*4j9GU;!))3|mMovs=){)BBkP{3te9gJF^ zJ#)W$QQlYKR&kb%9U>x8zwSg}5(-KuOJ;v#5mQ7D_6(5~vr(rkpzzsh6N&5`)+YnG^F0zH)@2gx#y&V&d#_lhcx2?m&9|+f3tuvZA97^K-xSKrb$U$2{a90l z(-IH8}xWhETgsG zK5*<`_Me=NHlv>NbzV-@8yi>ei&Ryiww4 zHS+rp_>JnL=W3Y|vbKhBrNp9LZ}SIG62b}xNI0{iD=S(*> zj?_f&6wB;0Q-=iP0W)`_`j_XD5LrX+0{5ZE&$DX4S~zi{aj6}Dw~Gl zhjEUlLw%MQJd?uyWy9 z$e|h%(w(rxRMXY813q#gF25-ttJYQCY>e`I;B*MaoZG|NworfGs63arNVw@Gzf!4K z6j<0u*=jBFE}AOL&y2}ZEV?*0o|IlSyDSzPiKp$_DWp0OKG5!vhWZd_q-nA{Wue;_ z<^L!HB3A<=_7^x#g}VX z&msbC#QRBC^~Y22e~Wu0m0b=AGRK)aGVZVzo7J%^5FgI6&zkVq3?8G|Ym>y1XP6tP zW5tq@*$=OrI;)Fo=UlT|oaf=+z;WP!K6w}(@nyfjm;-%n!=Kfmx{2#H?Xh^SGep7^OLj%CM+H5bDbtF5_HAeX_e<;Jj=!+iWwg` zWCB_sOV9_Cu>tZa98v1$76f+8TcQpkl$4dmptY2Fa>`A?q1Sw|kGu zSQbrIBIPX)ytDqz420a+m{A{_m9qKuClT7G*pw76DAq`yWFPJ`#iT-R$e%FFio^(M zj2d0^14c=%vDn7tBCp^|NrSi97fosAeML?c33iWe4qx&EXlHL^%R+@v1@{{_KQ8td z&ONu_Vr?__s6pGlh0g7lykmX$*wPExOkcICvlGpP714R{LTlv$T}PA9b9qK$u{)kL zv8qSSR2I{b8@RJW{)U7yRTE#;6s!p#_uig;!>_Nie>aGz?c~?bdR^m&_XnQb@ksZ_ zSv=kUy6>}IlO;P=XATPXE`NbP9XHxcBtN>-&2`?hcIxF0Hq2(CP-Dn~Q@zNwnr%Ki zYe$b(ogUL@S#tD440d+X;tF2*?UXd+!B7v~?0EY4%d#fH^fkmiTAbVioNjJETO1gw zum>Qx)ncR0R_YeZ5scjmoxTm{^thp}v#CIcC6>t?c7qeQX5&x(JB;VORpgKXF_XV; zF9dL1GaODL&MY%qkWGxYGBsJapY;yAvG)ci+hfQbZ)y=nW~XWSv$U1-7HL<&PgEmr zE8th#&3J_`;g|R)!gDx@3ZgDLs+ubnPNmDktfKs#842OaZ1#$Vxn)tLijk?tauxnB zkv;AEh-J)kS8oxjgoD5Q#zboJfyoC(XCb_GcBkyv3Ovz zyBabj*n$dx*+3WfY}K~eDJ!6_VGX6YWi=!XowT*{Qo*{($aWK2?aW=j40X|A7N9em z00AMBwdAN((om8q=VNBLV|p(8;dO?`%-#l0y(aUylK(=NmxfliihD7Xs1LoY;F`Wb z+tP978Wy=RaQY!xtZGyIy2;PnpZ_{s{H%Qjr>|38N=aB9fn&r%`*%l)e%6u^lF8^^ zj`*EVagq_HzHBb+#xECYwxRTnvac&V@+NK{rsIccKNjR_$}ORnxwdWkejgTJ^0B8X zz8*>Gk=}gEo1NZ1eqC41nEfM170c5 zPtN^DgX+WLcjVQrpr1me#mH0>(j8*%dq}aD(BH6`JI*pW1HmwD2Q zR>`@;1Moxl(<_CNScB#eA8l|VgX+KIbhO3ey(y3k$!4?60!-+yk488-u7%s7B=Nqw ztm(kC5=$44#JY^9WWd7kUgJEg`)h~3fC)zdjS^6v;nDN&Qp{7o0|}q^Zbtr zuf(G6sU_=g1On;h(z#@%z8FuZm#sYPj{BicW$|GzV7Y3;X%3Ouj>>CDcNgw%C%1WW zfJ>t(&pr0}L2>k$({g%7n~9UnrO+D|B;K*pKK&u?@!rnlUpx`Z$I0V#kO$Z!q)tie z9?F%jihR{x;#yGl7It4B>O@};**H{2Qm}nLWQ}73g4;XYe+@A2tcp3KyZ8SQh>nC- zG&?+oU?fU5v*O_8bf8Pevf0Vb9PVNL3Ijy5G4)VU$hDFa8<20@9oE5xT3ymT&h3>> zHRFbpG!qFg)5IJM`W^&d1{y5b#G2vHy(U!<+Hw*(Tzwjs@_r*Y7e-}y?W4z*zqS6u zR)eZ<97@BLHQp-yJ(bq@jn86jR~N;*#J{2=qgmZ_LX(iUb`oz=+rJA${!JFO_4*Yx zerb5PN?w7%GFkDJ!uT4JG}T;qEVOSCAysCv-XRLjyT6RT zaliwi{aez8|Jy)H71Kz{?Jq!as!q!Al|4o8s7$w6e$FHPy9)3~9s<(n2&(R(!8J_e zhh?17ziY|sCf^E9w?)=@FvMnnfmW5#?Ot)}cJT%A;KpAs#66sn1dAj#8omhK zQRm2tG|OMsfpSSom|QHZEWWcWTHr(yOW?Rk?+X$f98T#q_P=X$?gP?2gZr51;~$fe zMXm#j9$gx47Ui_BN-Y%w#Ep>lHp<jXnc}zcUG9#`5e^h{(ZpoM zi>D-ziMd&=A>w{P`BM8HKSH1~of4aGv#;8ITqH_5oDlm0yF~6VpAwJQZu=2k<`n9% z(;NeI^Fc0nq8-=0ubkUb)|Ho6KruZl{lPd6-c@t~A|7x7^L$)Sb7Qh7gwnG18bCM0 zC`;SIkqOIo3#c{L9FwP^tN^zs%tmE-8eb$ot4(jPQ5NBPe5>l^A4zQYANt;F4j#^n z^0%Rj4uIzr#9LJK&}{Zat2p}&PROnh4wx-fpt zIQC*b8@Z@Z>LIWtWbbjTgw&twkWF4#9#qc&hH7_Dbr1P*?gN5K@oky=ZHt`|Uy4jI z&Kq`5vqLVgj&_%P^=ex(#YxX0xiOyI!fBSk(&CO;v&H| zEukT`q`*{XYn(Apw2|6ixii~6$j8R2^_M$2>F*%#`K-xPZdTQBuA-wkYcKU!$E@U5 z9Rji(3gN!}$RRP_4s2j?VAh=CRm4}@ zPJ`cGI{{%lptGhkAtdh|upLFkiwm;HYHnNyXD(=DcC?}~@xnGB(~M_J0{nSn5Mkwm zhoZ$N+H8kn&}VlEuw#5a^-jQ_ytEDIhuiY_HNl(Bw?p-VcR}A(*Fy_{1Ahj%VV(_~ zbW#_(!jjqkpFIlhAl7_A-pwd@$}^|~E^`_bKEuQ&KovnIuq#oNB|r1|A$o@(!JMbWm{hq0X-mb%H`kYA^`k8&B{}+aN-zU3F%vA4BI- zX42V8uewv1W5zsAI3B+G(M-BJ!~S8&;wjdy7N`C-^xaTk3^5ju^K@77eBCtz@&H_J04&n6Rdz-t?F)CM12x_Rambz`tie`v{Veu z+JPk{FW>`x1;1Ybtjk&wFW*8LTN zPuhO!aKNsW*v);7SvuAUJKN!5j+4*s+U4{X?|yGdi(CDAb(?>Y1e^d8*b=Wk`h5d{ zC(qOeHW(u*0sD-AAqpsA`(FCEaz*mU;~)Bly#mE`3#sC$3oZLKRjR0-GMp=UF35!; zwoMzuBt*e_()qY0*N)Yvhtv+Vd=2PmzmdZ##T#~3?VQPo0u`*0_y zx42YhH5UCfLE|l7=ITx)XwP17fkvt`w5a7ma{$?{WXbPNzKp1#5mK4tiLPJ%BeHXQ z0}VtQDFq zyX%GdF73}LIbmi(!$sz48J3RKGhiK@z+LYpj{321E=v;g!M zbSojumG{e+tbO%PHVmB}&v1Acq90bJF>3lOM>ld4(KB_1J77fzIyC6Kv1HzR|5JuH z_TmlPM5tly+zhSX#_GePg7#nHE-mWB==}B>dQZZmUPIixSz!EaO~}6i8i984MAHnq z$MD&!d2_V#t{tI`2H$C8;r!I?>B&b0F#$2-2kScdBay%kvU8_+I*ywc#Hb`L*eYe)FfH|DO-s>SGkS*-XV7kRF@JB!FE60kkkqeGLCk2pLhPlKl%#&GwVav` zo#3~oztGmL5mu|KBox*rZqCc~^we4!cKXffxsLpFm3nMe0Kcw3<+BzUVS8-#>0Fy@ z%RI@u+~4+Dr>DfRolhFV1uZPDA~H1Hn2J0 z+2*RTm9$b(Yo2y4?Pbrv(YO$DPF4?$+R9T&S-w33*f2?w>dyX39{7;9jG9%oncW^h zS8U`!Q`=^Nad9C(W#(XYrjoGLGt~+u8x2-SH~fCHl0O|%>`*NYt2LYG+od_ruNqc= zi{2@uQ@w!#Z6uEyXALTD-qiXYLxOeWvfVrih^o|}8Djcls@>ulc!O-@$ixvAo153> z)MBAm>>h9YYfTmD-ub*eo4fP<^dqpM^uxeJD&{U2 z1x7e>vxt8C&Mw1st5mRdzvJ{`P|#mCEm4`;8tk2%KGty$bZX`vLF<3LUKu5GE8XI! zc=FRs7Tuu2T#s64^*O5X_PCAE;N2-X{NzTub)&Eb-p&OUGgz>dljBiACw$^2LppV;Y>Am zcX`OB2iyO}^A`I1u>fRdJDJT3cqtdNJp?e*%_F|UZHA{n1#R3}a3RD(lSwdeP4&~e zVSKSLtgp3G?@Lyq3aEg1KA8rlx2<_8KFOF!vA5|XiV%Y!;1MvcSV%7jwNS)#7p6zo z;uCx9y|tYxEJ@>TntS~L&+3W^z<8`UURGNEZu~@9%1}QrzN~UCKEW)iNS*-Isr$8C z)qS$&`LeilRhW0qPkF32D6-f5^Z9b~Uo6}DeI-HS$TBlho`@Cs2olZV{B##Rqpb_O(%w>F`WR?fh&3a;hd)2l0_gU>k1I|HFK zmATs)Ya$a+V$?`bglpmS3v4O@0Y?T<+c*%n69@(xOH(y0rqcnTBU>ic-Z5rFO+mFY zJM}ql$k~nbB{uxGR+ph@l#Sn7VWrr<*$sD{{W+&eKz5&wC%!ZIlv8k0+;J+P_i3eP zfnxBMH@>?S*1tmna)~jsR@Vi+BDCr4=(R@FGOMnQQuz>1HHmh%ZKC8y|1n%I{ zuUH9kN7wnG7OxxCnk|A?N;h*m@`%1r%`cSYW*T9ufLX}dktfLogw1l0(hj?IxP z*jI(#kCE3`bw;{7+*Yk=6-euHu@-|NannQCX+|$&zxTUyp%)xqRuQw2GP8e$Jv{(7 zs925bU}3>!sR><~{TC>x?w#u5HmSD^I;J)0t9idd0vibZ9%>h?Ck;uljO~ z3O9~(T@^Y|xwmklt{a*q9NnoR%r?mVq8N&!QMdom9P=y-D&T;kRa|{mD>AfMN^{nA zKSgVco&036{=w-d_qxc(!j5JX2CcRAe*@<7gy_mp!zc;z6xnM}_Nd-mLUL306kSG&CD7iXy`%pqp0Ep; zCEB?dH-!FNAr1npxo{Fj8y|V})N}|t9?tI!Tur){yR4`X7TlMkaV~`aEEU(k5^;C7 zxIA=MWz`IpsFc#N-bMbr`#QeZWPjwMD6gWAPKZJTC4v9bo5*DW$~3wwQpI!j-I@gF z9KpuS&Ha$q6i{#mCL059&k2zW`M`q26Oi zuBLtNRs`P7PAs+G9|XKsJEQPy^C!~!VvnmXn#%t*%Bo0=7U3QDe3HYlGiW++6a|n8 z->UXxIazakQgFLkC7SDZZlrawME6dMY2W)G`;t(|Uqi*l?ZXXuZq#PB#+FxNRcRDJ zxT~7W9j$d(P7THCvmcna_Vyw{_2Y>;2|D+G&IN z8u4s9EHlb;%O>W^xj4n90^3}y z-5Nmq1}U7BH+c#4Pzy}DRAsIxJ*F0L@dsJdRCDfYttJ&Q&i4BIi1oGRN1Tddzm&|a zlI#w>#TY>fH?@@*&C|YkK|rFlj#b74L25a}#Hdw{hM(TDnLw}-p+6K`EbVXk4)ubf zT3o!XP|C^px;W{YpRcs7F=*AJbStFWnt}gfR#c?k2kpBRUmk6?j_8SM)xy22UqKQS zB5X&Dua%OJMOrpEnbH`u{Mz8xF|OVYB?dE;7K*utfE9~~$pd8-u+SVYUi`T7FK@W# zY%W~f<3Lk0!s1DGtFCQ8qi_Lbj?!a?*RGE&m+o0;3%$&4=*{L4zww&`FKm0Q@eHcx zE}I|sS8pD2*I?XYGg8{7vMXKzy%>Pba(FhZV;-;;fB ze5T@6BRdu0@m~>d!&_QX0hsQPk47EHdti~;|qxHx{j9bBPGNy52}o+ z=l4ZJ{ zpsC@id|f{4UA7b#A}7mUIQ-AX;+V<2-w6oU?nP zip}!CL66=v3 zg0ln|>GYX;!&N_Vp3B;@L}TF);K=)y+-R0~A17-%zp0apEH9XT#>p>IUQ~=JXl5EE|jx z5MTE~Zt_XSwmRgfR(h5-_SqF^B>H?XIFyOKfk`B`9*Ia`2|M&uMP?#1i4ER(`_mil z)$enN_IYyL{^ogCVM5+uA2p+4SFVP)ks`&@HBY{3J{Br%VB64WzFfLIEd}Zxg+(&G z7MZbymR@5j*AO1B1>;S{i&EYiKykN|28%6U>Wl@L89L)--YzJUpSXAkZo1U{t;+kB z_n_qC*H-ApwJeT2IO6r+n)uAt+(e7k+6Hm&4ZdCu-C?8IX105r?`^Dd{a^8Xbk7g= z(X;1Z^Ap_trti_a>sjPqv3rNSuhg;;J-$_HWA8v4cg-N9y^MONg0n7*2TiNL14Rpy zOD_*Tw{Hz{n{m`?&X~$$4HO<2@LUi6Ke70-vJ9wO4#L>;}QT(Jh zX4?uUhwyZ(kd)8yH%dZs+~RvA>DSv~9~k1IdX)Xl7Pqj+`&OqEeG{F!A%W18AO7&W zI(000!@~-35M11$OzRfmJSI?e1j5?o z@aE*u+A&1+k2<)c$EVcO2Bd8POceCYbO~v`Rtizlx406Mxw1kEIC;CKpbtYp3I}PP zRnxwLi6$QIEfdcp?r(Cl{6KMKkN>(BLNf|3>?`HsJZ&rEL7;c|70JFb8#un0Y)i6= zHx;_?ML*4$35>wlMmdrRMSy$1)@*nh)%!&Sm^hfzEev0xB94Dl%)uH3NL;7UH1BI+6c|WrBB1`tHlu?F<%FyHnp&wM zlq+(10&qmDw4}HqJv56lrXkY0*FMB7MO_mQ9l)y!$A9UiEfxxAyU+iErfX}|JZauD zA$7vZxzllq3SoKdZh4ZTH=sa9p<2ViK2dt1C2bi=UN$2qS?06!jfm7UgZ~qk`R=5v zhuFKx5(A!uE;G1Bb7^&}dQQRA!Wk-A9BL2m01dh-(ZY8pp`gOjT@sYs z%Ez7xfK}FxN}cSX+jpH}TQdVo`$~j9iA8~eLRmglctwMAuo?t+E zSL_ayx5lIq#^r!xNBH;j=#9RZfhuSUGm*t7f6kzBU8nL-3{gn|4THoz#oyOCrUSnS z7M5?P9ka{)<{Zw}+E$=qTF-FV;`l!9#VrEba+iP{0mk^yAXPISn8Pkt(*{_hmDAbG zclF)+E3trx0Du~ck-db))raM86v4}3PdwU~zh)j>{{!A0nRkzH@V=ur!Ml^eC-zxF z8T;&Gc%7(Iz}08_FEBK2Z<+jLT2QwKbDa8upa-Al#_%a#Ouvi8^M9cF6z>*|kD_O^j9v?t!-!%Q9ID!L^kPo@uM^#k;@|+?M$ChOb$r_}ee?mbG)V`Pmd%DiBdAISy1#D&D28o! z7?Rs9APv6Eyxbh7KgUXa8?}71qP-OqEnc7eROw^|Zq7VEJpm$3X2^pJ;$;4*9G!y! zh&zfv>TO{iR~WB8bP3cSGG72EUrxoD&?>KM+IOD=GP~iWkAT70*KF+E{tDPdfa52Z z#4jdm7aaeSJbk8h$B`1yi!UNx+%hsh9WDlze#83i^d=|^xwL~GPXT|7Jnp@eWF6P> z*3ztOJEazpKDZW`Q2BW22UA|;y87_f=jSy9TR+kwj!B>gM#mk~YQWi{@2rcY=fnV5>JCB7iarYE$W<`j*=VdfhBrW%biuz3?i^Kc6XUb914ophyr)dG%@+g^!i3t zbjpQN*JT1%M&F~BQZ&)1U_c(MMAD=^LV6QiuHDLEdce!v`~0jNQ2NWg#wu4DlH^`{Pi-03sqhpT*F0Z5nMZnd+l(@#Q4sXo0N8NmTg*puTlFs+@xPEDcWDK}%Cz|0B!Mhs{FG8@eIA5< z$9M86^gB9Tq#XOt)KQBbG1RF;EHZKb;etsALazTZx(=0-JZJncPugN?^?8otCstLo zI@Gsu3!`$dS*Fznzq%Z((R?QD?a8c~JvaT}!mE2g(LT0fw>>``RRwuR4hGMZeieX% zHx1EA*n37fo<-^RJkFx1q2QVqRqmvzDzI}6wKS^T)poFshFjWT7YC8K0$&;#gI}3` z3w`#DQKkBB@ra2Un`wea)jpbU4<4(<&@U}YzwOKD2ToV-^qDO7pLqGgd=n39Uij_q z1YzFs$tjjCpoJ@e?l|S3TgIf5AlvtNRoy@uk%t!O)v9PA!;{j~xoYX{TH^7LjNFAYYo$je0J{7rD#wF(%i! z*fp^>8sU?-NLS2o%MmKTCN#%ceHsAXw#h^0hLMoQp6H02DHY!di`Cv`<)O2~;||3- z6J|!v*B&K#PN!_Hy-q)o(r8L*1ob(>gHdRKVzyT0VzL!~{BgYZ%-+(PpycE99qWEK zdxb5P913mjH?r*g>&CA;b~x3Q9^{OeZh&R&$z`Z2&uack19fLk6W`&Jkj$&iv9_Qz$L`IJP;DJsQGr-S zr5Z(wbdNCyEaLPEd>s0i2)5b4rO=tv1Dh%j^{A&^K=5CRDyv?P#_aCZEi zveti{b8*hy$%ShX1MADq&i>x_d7omYiI6tl;X$oes{DAoF>BppQ@|*fD>K!o8#BN} zsxwc1&kh-J&PdE^9P|S==M(NJ7rX8BXc5i&zE^_H>;v-IV3uei`ad==nBKX*qMt;^9HTjGcY&4vv@H^Tg(G~cKo%)S0-ov>n){( z4z75aMNM5B8TQX?NB^-I@|2WjK^jr7qAlS`H|sK&c93oo%oqTs(sQ1LgS+}3>)*V+ zHm~d0AD!{{`F%DPW<{-TsFJSBTf%=tj~8Xtx^uhqdwp-i&q3#izExSVB~q$~pu4*m z1Znq_mj3B0VtvZ%Bm8w^dyg}t8D+((FAbz)^tMvBugFDyFp(u>_|*c&WcTPLCGEm$ z+6=0L%9BDK64^^^AM8X}>2%{Rsq)9$DmdX3yHOU`dLz%ZLZ{5#>8kszrgouA2o(7N znKL(eB65hLFq&Y+d_myjcaDqRW+MCMs%dZS-U0)oFtM@eyTy|W>a-H)x}em+HAT$e z336k-QcB4p^!lpQUaLd+J7EE80kISVFVCT@$pRVTO-$Ft_ac+Q>CE>@gdX9u(TdMD zBJmZ0v=z!zaoL#wD`u*l97LGM2%qBoAW}bXyBRU+CBMzolq^Mwvsx|wAQC|K`5P3^ zTAZUP>0LB96{Z-x$K9o{VzFJ% zgso+*x@$g-v&uNbE1~?zV~!*B>zM8x)g$L{J8yK?t~xnLsW{>kp7^j@c}#OXUmffn zqq8%rPnpDLM$)l6qNkX)RYOi&r}W=4v%W=oZ%b9pzfaO#?dix0C{4J~TI=Tl$V#FPBY~GgA}bvFsJKy_FTKGUI``+=AL0`cDA%@J_M6)i)Ei_^JK&8yYnZAPm46EL19}n~DALqMUD(c4re^ zNlyr(u0`sZi)+v4I8NG&E6S3P z-xPA>TgIQa2P)%++mv@bN320q3+8U6w4(ljy}t>*E~9aEhhue+gUAk!+@na3`jG0O z9Vv})jQvx_&_{Nq$Q4fcw{SkE><)9r;GXr;g&^BukJ)5WMTe;$BXL(+2}Su+qjuHI zhTr^7+Y}de9aB3Iwcw~T60J7yaJw^!-WeawoJZRxMfB8DFU~f)E%DbnkSUH@)2PuY zw*LJa1CRw2f{1ow-pto_8h#6I+}dMa9*U zu@%tn(bxwuU;Pr$FT9s_Ee&~NdQ;{GeBANWxT#NrbddoJ`hvjSd2s})^~KE1!jt^9 zRkdr@0^N<_x+>%O>(R8I&T6~bUe;`CIN_{_4Qm98+(H3I^R9GhNh4zDVGUAggv6g7 z9-ZboRM;N+;Hvmn#ui`xQ7Bec(yC#>r>>X zLwghJjcFH=XGB1-48DxHubePOyK&+NBiL!rX|r^{0EoTA zA^JycJ0*}Z&#bf|>o!D&G1P0GSYfqm&;`9eAGNlYC`X}eGCy>fOmQvQvBamcL-GCk z_Ui#BZI)W)#v`+(`E5g7qwC~n(@HgjeZ{5zLU!6&A<|lu0wesc!#{agB23XeFArBz)k%+Vff&CJ?vD4pLk?)@yq_YN z!Li%`Is{!yagn%r-NNisD;ft0S|w&SToY+oX*dNN?wLU$6eDUsS#sC06TQ3CBiUEs z<8O-kt%XapO+}OwA74*YR-Q%uT{cKp$4+g(JbH&_Ji2?s&jEKQp|T#~KoVBw(c&Q{ ztyLBiu?*c(IMG@5x}m>d$J; zt*+P-ru120yb{EPEGe(0_j6zkj>Y*pSg-YywrkgY)1tBWk4ge-djI|-ube$sq^Dl@ z4-vd@kUD>^g4oj;)fD=lP7*(UWqMi2A8#W#q_0_Xt2Ym!879@pHB8s_D_(R<8m z%}|K8x#yRm|2~PbPcoJ!^{KEDL9W}CNCu}$4*Q&dx@<8K1UngM4A`})4u6siFtD_h zj!TI>PLbNS>muJoAM>NOQn`X8G_^k4%eK7vsa9BXgIMi`;W_x(<8$$w9P`iduS<^A zzC#TqQ983)-3pizv0n=1f0;5DnFJVKZq3%36`-Wv?$H`?{ltURByco7%S;~7RPuQA zt`+qq+h|1X&w-mKe;8$5o)fQNU)hHUpQ4R2tbRs(Kd1`aMIs_8KeN}?u4{C{A|z5r zrcCtBm78rNv91A7Us8!1BQoHGF}DFZ8fJ!uZyclPuh-H60e+%)a+;FF^uIHUllc&w zJR70&y15}zuWBu>kHmtnxdatNwqO!kb;70idEKOSzB5f^7 zy|_TRI~vp(QJs05cvET97a{dEgI?KJ{zJ5CRzTT7T9i%r zRA0Ynz`*-^=`7pA)Be6tKDM;>qaKkFxpp9~9Vl3gD8RR-g^2J?yQdeNHru$SH}H?- z^e++h$e*_9n+I;xTK%ckT>RooZgX!*3{Ty3GCTTn#)U--t;MvG`=oe6^IV&BW^rZ3 z7BRW9F+0_o(7G5^8J;;~P*psz8C3VONqJ2l6BSemj}A|E(y2#PEDE1(Xvd*3+ACp; zn}!bAdmAzbM5vwo3qNYZvzoIP)gjSVY{!xBxvb{E__m5JIuU9V=9*n!x|7H6IgyMb zr&13mP74^5S)m39Vequ_ngvLd?}6hkCKd0G#8lr|Z|&Q|P-*sz9{HzT984hS zBXg%r>#snO^56S(#PMOJ-8Rnxp}{Y#VBeqjSy3e4|1tDF^I{###CGPsMW}+Ss<%=5G#a(w?!XHxY(tb1uO}A6YA(7 zKHH?UJLE*?I{jX~BxE<*dm)8>4TCO$)6Z)Ju2g@N(Ux{Gz#?+pe08|WWvBNo%`~ab zpekNA8S!ZRwc~g4+iuo_jWE~MLSNM?8&dU4Al?k~UdtNGaKb@Nm~W+DHQwE!0{}lq zfqYj(p*HRM0g)XblB$AN3A@XARS3hBz@{T1lE3!))gQHf*75jFE3BSLCV}d|?Y%a| z`cna6J+{4n*xl*F6*o6BmnmY$u$V-NNliDM4~U6IL}JBl+Jmo_G!wLZqT8)`>PWKj zv0&%IyvU_#)rBpzkSjeHSS2X?-&6FWI@h%?j25LXp${d1U1|(C_iGQ|EtMZ<%npc- z_gC@q%>V1C+>oI+kI|SVes0+++HpyN0lgnOvT!TYXo6qkm}l=}JTe=7X5n!0b0QfQ zH)jBQR#+?luG_YIw2im9fNl=FaUy%xm$0%QO*dmFZ0i*^U*lcuq~6SyE`dL8qj$4o z14EdX&jroma z7O*3U9y}~$IJ5@QR%^ZiIQ+{Y4cBsJp3z z`u!S?=p6X%bqBFC(khM;Z()cmy|(}oj?Yil*WRP%hTkGI<@0)WLu?rG*+HCP$*0B~ct-{8<15nMsBJMptX9(O)5 zE*qUlz2=rATxe}*GCayw_y{mio!V|=>`^DQb4GNoDXF@lkXup2(3+|g0HNRy-G7i^ z93>@s+T9>=wp#6;S@|l-c)a9Ty7j)QG2X~(KYTi$xL8u z+MK%Z)ZydE)p2*oL!6RVtx`Ja`aBcvH;3F@{XkWK{lKjpZh}wxSWQl*)?+-AC+C~4 z=Mz56XO-JEs8R~qX{tYS@WCf6ftmlz9JVo?13SSKO{(dx4x!&{0eimNEw_%4=TY*Q)sm=;;km2JTfjd7|{ z8kn7*_X6^qSR}|V^kKd4)dF^?{!ZXDFJW3+r=zjsTD~oFNzKGmUMpq$!nwuw z7&skG7l_mC|E9QE^)BgJA)XaWmh_V1tw@S1N$uNftt>wqiWj>PpHPoBgRG28?AFds zn`|$YcKW*~K93l<$-E}}VhfyKIXtkxhQtBe zbeXag@4)?m8*N&M6fqF{GEFFl*F!}T+p?JBmGKX2KX#`Hd*h9!72AY!{xkMzQpSY?6c10=S8N z0i+U@4@qTfHW|rw_)3EQ>QZK2$Y^rxQ1nLlGpM#pC{`k_ba0xMa&KQlVoI*5ndj74 zXkd5tl`$4@&h2s3dRAz-Ou!)mW6A-z_7BO-IU4UFV_#NL7VtzbkX;V9sw&wp81SJX zg0en+TNu+#y`cpL9E*?^aiX%axock5znr_3`!6DTB|pfUuORx-K{@cuHcBe(+S~i#!g2dWkz4)_~@4mZL~DsENwdULR}?6BAg* z-vR^RWbML+QOY%{_#Wm4hoI%eqm3(OQyoAiW{bDjuI*+<0nI?#CYvqR)p7pTj+Yhx$PzMHZr#sOuV*vMFsCz(O0%Z5 z*(6$;?~&>FQR;ht9q4-TzPdyaeP2=I9ffgf+_T>ZDa5#F33=i>jkZyzPv#cQPp+W0#qH$!~I})Gnfyyrqvf zfgZPGTyA;T1>L#5BO6EKw{D$74|U+ar`d)>bLOhE5~Tj>3U!Xz0z<=j-875gUK#lA;&jqO|doYh=uLJga;RoTO&RD@ie zOpc_VC@5Cppf|aB^WV2F>G2P9C|2wu%oV>!{ANF~J?L=G-GhLIBeee8aYjQ?%ww8e zZ0D-ib~;t$@5qZ8S%l=h+~>)u)IUAfTcPi0jkN(Z1!{^-ILZ3xw4LTqnU#U_g+Tdx zWOEj-w`aw##67hM#8vS>bP)5j&G5D2C+lOJ3=0nF&zrz=qIvtG?EP(^A>ij_P%J2i*AqpTzWiwUukly!C${(%n8gx5pU>6I#~_Rt3GWUJbyEZ%n6>C{M8QJ-MD&v&i$G)OUpNTy zxkzfsusr5oeoV6X&S%Idq{pC+nZ=7~>C69-8Z!aUrZc{IETl}{zFMxT#IX1!=bZ7e z&=GyBT%T6Oa4b!kiLBT}rz}i@zysKr90iXqB^MN*StYjMEfm!TTeA3V#e~1$HgkDLVYJ=-G7a~& zJdNhFlHk%yV+H7MvHY7AiGM%D)fT>4i1kJ+b;YY`Cm}*l7M?wd_p5jrQbJHFy9%y7 zesC_cMfeE4JMMcS00TeI?L5?eE6O?C;JuFIDGf`5Lixum$~&YP*3ib6(6(TZ#!D6JeHNF@r7f^&w9-XA%FuvlxA8M#?Gy%CQ5cs~G_GYY zPTSx}<8PD~s}yz&=fS)A%vQJUNcJ*t>UqPJW8SZaR}oWH>~CN6oX`gB1W<+ihBMOP zucXc>K3_#F(*A=$6We-7rQOpz_ds@T4ciP!#U3#5|JdI&UQJ{6Dq2cJJHB|OdHced zd=>j&n_c!>T4NB~-hGraN8oP{U3OB_)s!qQy;*LTHHhthcqwu#SbfUX7ok5c1E$UN z@#spMgD~A0QZ&|3KhW_(9=SP^FgnsS<+N#kx$XN=bU;>r#F2oboC#zm_@27JX0XGG(-s?x{NmqCl%W6 z{Q^?C_vlDMIBS**ri!%H*r^x=JE8L+#DN$UEB3A~5%J}e+(QLU9)>*;zEZsv4h$G( zI&ESTi2#PXs&M#@QVBWtT&$dwn8H~rSsxvqw?{Y>#8&OekUb7(IijNHtAwjRW^KuQ zFwTX`1Ubr=ao(Tzx>s+n@JKUvY4?%&Vc7^xGA zym*@|MmWVla#*>n9M*xUkhY@Y%nXF-=}HLRs1%NFX=Kxgn{JD?UPySDCt*w&v3*4( zX5Uw0UHvh=28}buZ2$8i70ZT&7?lLl!T<@v#85N`KQ+E7Rv{+@2e;RkQ zOwOiAEaH}8AMk$iZI`Zyh6jeN))0sZ@&7pK-N@G0Q*yF!!9lFU=+<@`&-KF+@#Nk; zFaj#-<2zz%$8m_ZdK5v}fp1EG1W1C0k_vq3p? zyNFl%T{{~YmaENv>&W_~?RgYQ_j*Sk1kEAliEvt-tOxV5q*$s_wEavJQ{tnIFJfGT}-`vNTk!o8;(4aJ@}*AvMo?@J6gb ziJw0OBbm`xm7`g|+CY3r9gnwBOwKA}^EX=8gnKu_5RJwmucVlY)|;TIOo_TNL4fR8t5>n(G| z6O4RU&W%8?TaswJW&<8`jKBV#q34HvQ;`&PG%&1^U>OF8O80#ya%N)Y#$u(Ms$4IE z`_3NpF}vg|u{*^orwxtV9x=DRNryXCb-?BDy`-_>zW#E0&`lc^R0PrNgO2}#fDNrc1dSHj6&V@Db$ zSonELD&7LiA)tEUX5a%*^O|f9a|6+H`zGs>z?sVd;swv3ksQE}SSVbc|uz>*%wK~>E`DODT?g0UPDvf*e29i>Ix6uzCdW$%f zHp<@nUd?LV?q3VbV(TK~sHCN)%bg}@jmDX1mybbi;ft+9NPe1#km2^ff`$3f9^`X1 z)Hm(pLlboHK_+rx0QQ_yQ@lC$gjkD%qr_bKGVs1ZIn`Ph$^2iLT#eik${q1jejPl&Ylq*Ev zq94%C#J=Lx6#a~lGB5mvwqPPot+5#K&op`&EoA9mt>z`gQCYpEYz|tzYy`bY8_t}; zx5OzV;*zoL#TCC&2BbVnieCQsOf4Tl9Sa-O*wxVgVi~uL^Q5&u=}qBuUOW-d+|Qfb z7yWlMbsD^I3_)gtPa{#_}xzX>}`*#zSIuEM1TYI?-Tj#>1hOWF}HP{dTx!THf zBsk#o;=$2wzJpa@`tw>o*0nAu5#fCLe`g?F(*q2oniyt*DfR+$raedDsEzpW$8PH_ zW1H?Zl5dLuNk2SY3cIh}u$MVXOI$VzOX%2x(BDf_vC>D}ROy{=@1dbfcjAptSi_mG z65BTfd21k1tfX&+&RhAO9m$YpUauFq4bE~&&`0l=i~RNSCdpUcTjq<)-TzKHq+6$I z!|*Q+Dzo}@ratN$bJKw({Zf@D9(eBUQ=SePjSl#`)S_t+fI5rS#9D;fb#6i*JQQn5 zpKKU`{&D!wUrReBun0=A)~`Sh=rgm76QshLJ(*+}|GceUm(5qzY#3_-IE{v=eR6#c($(NxB~yt3l-dnQt2320`Y~)(j3MH zE<2Y}Po@BSa+M=SYi7USadPCW=?wPVP7ckysv8*a0SSr=0gcc)CKn>&1N ztD()GQ&SnTLb8wK9ar#BKVRPXa`maOFnT5FksKDmHUDA$mgVul_`Bbg2g$KbCG2iX zM)D9|SOp3vHZ;d&G5#xxk%WKg#&3RwTwB2ULW0rH8VG(Rs--td;gWTQz+dTrF+_7S z%SBAe(xZ{)am;G#9aRB;YW+Q?Of@%sGO#ozGrur=nQJpK9d3o|8)#qJsR!+M8m43N zdodwv>#c!yibWkab&>`Ng?T;aZ}+_TwN`o_0;AtU*m5T?*-S01N>Nv`O%nHA8(Rt8 zyGkq)wwWrd-^QuevWqUMk_PQ{Owes#77rKmt=P>}OOK}|ym{>cV$-D-+`~ZQFgJ>9 zw%K)TR*#32W33-yp84O*BRbMUDrRW>ee+8Fs@3Za%37~)cK1pQD0d7QzfFe#4JnFa zIrm6v>QQgoctJ-WZof73l08Ne1>f}sdq)JIW_e7KS^5h zX~U>>$Mb7p8me{G>8lR*N@9_?wHrTQN|}CJLt?1c!dyb5+F`UqUZ0->s>^~#lqEMI zxq@>@C*0pQ8sCmZc(C>C&`&DZrFJh^MeZCSGfD+PEb1-VZ_2%%VzJ{vy-xi}mxC!I)DGc4^)PVzaI$Yq-l{{84<)C$HtSs^!GwZA zCZqOn_9G}c^osamre{hXc_?}w(_4;SxI&qu6x*PwSXTUlyxfM!n8#1-t`O9RQH#!D zdt^k=|4iX2!<6qL91a&o(Kx=w`Sn493HEIM#Hs_VDPp6jZBfzCig6T+AW5OCK^j*bZ0fZcNf9?3 z(f~!ZQzxLLhgwcya0C4(>tT6o>u&jN_B4}73-Owb2(cZZmD8xdeGpO~zI666yAX`} z-0%A3wV&*jb(h0(r);3M(qKetKVA@W1K%hfHA5?K!%F!Ve{aA-A082(91Hh_wh>$= za-63D6*+9X5LqmF5Y@9ed8!jNdk@;p?Qa)vD}wkS`8p z#s67v1$m^hoAtAJTX~Is6r=wP`5Gl=MR(>wZ~YsVuRZGZNDtaRRhij~sd0F6C&s&~ z!JM&X+)hI}!8!y~u0E~nGW)3TXGX@=@XvoCLS#)mY{YLvT<9`eOc`O zK|=>#HG8z7qP;=DIjX6^7knXHnH_5)K`-JepYeMNc-`ArlN7>sbq68)M)Ixf6a4RV z@ymGuTVAglMw*CFF;Kw@c|!$8s~MZHhn$C=pHq0_(n?&_Sybl6Sygqj+lq$EZaELt z&@WkthMAxfuw}J2im8m+*JIaD^u`?;cr%2ooX`k9RG%2T)7VIwH|!Ab`fyyid3T!x zmt7`pT^b#Ac5dgn7(FYu3>Tf0sq99?hg14l?PNa3LEas)MFU^39wG*tRSFT2EU6*T zuE~g-B@JC{FFV7Fo(_?xhS__LfLLpM8YTqs^)l*OH_)S}8hFt=g%7o4MSrZ`-gz~B zSrvb(f?ZHqmRXcSf{%vt<@%juO603l#6ZN=UoMT-8y5O7hre z7;x1#7hu<-b%0IQ7=z=I{=U3V$dEg{Q^4CB@=4>Yet@NR#_jEk<8}Qs8cDs{9ymoC zlnSo?`GnQl_NgmD@{Qi*^N5FQ8@bKKT>ru-KBN|j|1g)U)F&!we9R%rfBPgkLHhpF zMtqY5Q-762aQbj6Q2$byoeQM>;}yN=VkEh#K!W)XE38}&IGATg`s>suSfkaOy-h8g z%myq-rZArv<^Nhlx3m`imTGlkXo@&V-EnwgQ+MC&83SE1v@c_7Y>vUi96~hekM}v9 zY?hB&jhcL;1>KH@p!-){jpBdkCHGUp;TKdu zvWt|=H;u8^jpccMFYm$9aX1leaiubZu5$9Em*5=uA6gTFsE(^Tz=wEKO;W^zbZK3M zuzr@v_`}@+`MK>YRkN++H>`pho1X;+g>PiXGNh>my%aV=ZQIczx&AV$aTB%}X*4sF z@-q>Pc9Bp3)s_&@Y14LemF7QezXGhy5?9+B|Izq?P3hiWE>o9@=`k^-6_nWA$Th=v z5z)q0xJPDD*ojC|)PohpF~y9B2-zX_^x#bAN!kss&a{e5Qt3eWmNmxtKZqx9&G_eQ z3ZqF?uNB<_=<_oRu<6w~G{2xSvNlG|`&U-&Oo~?Hn><%+R%;MZKmw}oj$~&6kQ+E5 zKJ`H-@S0{}P5;R>3=#KW84vTptS7aMzVl~qyoSy&Wnhi#DXb{tYc zslaxnEJgiUc^ZbhR=qmQd}0!dtR-vY(u_SjrWg9yUgEHpf=kaH_%{K-@e7M*25QUoMPwifxc}18Rnlfl> z9f;zqbFb{&o*3@eBU}yqDtOy@Kc=#;kYD&sk?IzimFy`UMCE0EnmVX1i0;h60ME}_ zpi$FF6MPYRVtfMYMDw?&vpBEP8W|B5N1qxga*u!Sd7-!6ECL-+6hoV~UJt?YHVC{_ z($XGia-SD=r1gUJGJ}nn=7nhdLm1MuSNm{*;V3x}l1eBWX1V2tAJX4l9XZ?E16i@; z-oOW2L~c3Pz)yq-X{hSrMV0x@T>%%{i-c9DI#uBFUE>n_UlGv$bP6()$~s+ub{6q=#0p&?B4q7ZumvT;_Yb27HqG zOYuY-#WLWer2kvq^BW2r{hLZ&B;aL0ttiY^-8ybqYD7w9 zeg2_BcxB1v?yjT?*m@h*{z3)C^5RE)>_bRqg370Sdj0f00Q}i|G1y!dw_dxJKu2zB zYv})79Wq=Ux+kRq{^Nj>*xFi$InTR~4hDaaYB^4Nkh5AnDLj%^3;dJ4YqojY(Fl z1BE!odD1FIttTVgD8!yf;Rp~^mk@k)J7xO5V|P{aupj4peREZSzy{-t$1-;WTgvX{ z4$f=`-H!QDrDefudXi<5qJXai6{{#Q-o*gbHeujd!Y?l;ruI^|opQMSjVHm*)Bg=V zmTK;*dx8$GM{f)dAV19~1nNeOwk`YU>w?03W$oqWG5o-u7^WU8YTouO^sR$hdEtcvzZZOD_nsdVYrFus=UsVrt4m z8o3g4^cu5m-Qx-4Wovk<<}YwwUteKk5am6ilt=VHK=>&~^Jga+&B^FU6gByeNcIP+ zWha-}RPJZX$Xe@O3j=d6Y;%=+_cq-;5_qm3dbY8)nvjzj)bVFMg*lPym$&*WQrxt*K;2Fb?Y1HX?}lDU#%b9)~# zDhv)ksZ3rf!!;-t5hI=7UZ!1=xZMpHXv=T24JM$c3$+s&;LyCx=en{jsF4eU&|2$k z#pK?1obu7&BQ8H>0kf6-hwS$GmNRwZ4@Drt;FdV98_797)|02ovGgJ>^!epOzWu8H z`FP-uTI>y`*Rf~RTpgtW>UYT>Zz`;G!pkrh%hX4059?|AX&SE`)j(nEwl6bY+ESNR zK;FniN@GP*Xn)&Xm`46c_?X>NlV|UQsmnOUCO;dM=^&q^19d>JkJ$7P^5vp4`(5 z7dV3Koit#SKX119{WkD;*=-|GW5x=?tIODeJnKDjx)-cRI>ilS{)eJ;09=S+?qoHnjmgNM&d9H(sqE ztD;wcgYBtN0C6O>6?twwqEZpz12gI)sGrorYKs>= z+yT5RgU2$$Hm9Z+18W8{iO3Be zM(`AZ6h(k;J3i0?^~%8dNkQ;SCQ|e1Tp9?=2{tP-In(qHL|)=J`0(;a{mcw_p=khG zVcC;z0wHbRTEmlGz}NCSHVD|Iogil9ZhWlb^Wk9&#AU1<_xix2qR7=d?L5}v3YhHF zq-6fqrQTDz_x-$Cr=^X!)R_17!BeL5HS&p4jw7g9kZU-9*I&gmAFb4%0eCv}Na*Uq zcVMf>R~*HaSeb|?)Hey)z*fTg%2GFo^Y3l`P_iR$KI<(}<@$Mck3=Q1oYUdKz(v`` zcJ5&ECiAT+?5UU-jrUsnbZ7xZ z?j`-rcN#JW-NCWCSeLCD7SSbXhm(3_*_p;a-*YGMk5vBofU=`_ ze~!S?qbAkv>aJv;UTG>u>k70oD1!I)m|T?3w-qM&!bfFJlwc1$6ZFSN6y(iabA;Rg z-s{klpY;?FFyf-?j@QJxiG8NV+6eG7;0rZrfVqF7(C}*RZ~WIozLA_wyzF6jwIpUH z=nK1fbVk7DQb-lolE8hrn8PYFwA%61KpJ9aiTxCXx!Jxy0i%hPgPOD}ZCGzuH;BT) z_%y0i8lR7_aXD6LkcD||9@M69{VaKgmTNje|8CVe&kI}gSRQg}Suf|wrzIJcwvuy^ zWMXtVnIGyO`$C~%vfQEex~$32P^M0!m8{ea*bkH+H7gO5h|lQwc44EIUO~sT1WGJ^ z#r|8LNj|v!^AdHkD3Y|vJ+3cJD=EK=b7!aH3+R0@Zx@>9uRQqJep;~4Ykrr><R z*sicLLH|goOf`3cYPz_w;+5W8 zO0YiDA(%?3B?veKJ@LV;ScHUcvE~O6-9m5ui;!Cq$2YRxNXaX{UwQCCBTU5CTLU<|TE;w>U;;>_+*-hq?*)2FY;^?{fGL^|}C2i8WMF@)}V0(O|2P3gT` zP9P#DKnshm?~3IkIzlQ_e`HRE(0Z`7$g3HG(KCrYdR|TS>Iya zgg-dEvA<3Z5pR3B{=ClH0fi%ep?njAA}`+OR&J&GebXZ8me~USuc5bHRz=$9V zjPc5Yr*TP&&zFxqMZR&s)JUYLgtfL-od_(xH=@5P+#Audp{@hO+ZbuD+FRrW=u4a~t*76%V$lpN}bqT`8TsMxIu-HPGMBq`bQaUnyPZ2m2n& z+CY+69>g~2WtUUC&WNoZZVJ>@dF#GfC~UszzpWwrC_7oLKIiQ(X1_`^%yi^?OWrc> zQr||cKS1pj@ht-0OV4kb+HE6!$sYM9RYCuLei$wBhy75or%}7=gFNx0@p}%v;?W-E zx4M4$#eCHd(OHc{O4IY<5xs#TGCFbX{lyHSERiFByQ`C-BCD`pmN_<6;=?g*+`t>`@ zi>t!M?SW-pWkX1%s3K}>KiUl>me;HLHScDA!nN_d(&PF;9J=5W@c2y*nOJt^jmtc5 zaE<5R5J@YkIu2V`Iw;T4T36m$`Dy7Z?=Pq1g*{tbe7XSI>;J6d1Qa>TG#r3z)`=lU zQ030iA`21rjYyE$I-#EyaC<)dnRrfXo|XkR@4hn3nnjvrep+XGaqp;IU~MVRG#F&` zsb<+(uD1?|rxTW@wXP+CwU>aWE}UHG!}p-A)bt+1{91jR2lS}Y|E-p%dcw`dFH4;% zB@BjEIvQSGtTkPmr)rl`lmSsnNa&rQpc%fb|LZ_T^0%RDK3hRQt(RX*%W$-~mdBD} z3#L)eH-BOqI6(&ty5ZQIe7M>5DXU>o1gvf2RuTJ)<*|1Lwpdlt=H}*~R$I*L%*xvR z>Vf+P^Kwc2am9q#9;#bfbGXMP%*Q>id<`OV@3tb5rf&J!qu+#ETJQH~yO+B7=okbR z(1!+X2paoD*5<0$nHBB@#2XWCI6jt1hC*xiO#QKX$wlNr2^UAGU_ABR;sq!@H%Sk9 zI^_iW#Wb3rV-<^Rt&$gHW`^{^JIaw0BqwEzo8MNkSM~Y!!BO5_>1=}d>8OYgbmg8E zJ&msT1N!FHSM!d2q)HaD=kG!FeGvLT%=dqw_@}r#?fH^a^63(`JqlB*8nSP0FY_k7 zv;B?{$=G9zFB#;6pk`8rIz^rJH!?w-pDi46KXf1P)YOfhr5rDj%(VLKZ&B=oxtCEH zUs=%}4gz5ckZt7m#pj^93-2ZCCZ0`kCWq|O?ewRj|7B9*N4cCHNRR)y!x^V8LfYna zf!AY6Y&0<&u`o%DY5mqzISFFw?NHgUc9u`~Hw{M>7lJ+AmNL8Z>*cxq71Dp-W4Be4 zKWN{>XQYf$N9VfLk>!3l$l>;A$DQ~hh6}xMEuh|iBj9uXjXzxpIb^SNk(9P*^$*UN z1!r6aXbObn1(b$>TZqMg&kzyuVAy|x04+JC^4hbP9z5KeE(zT~yEnVx=;`|6Cwu!6 zQR6oN%^y;sEK^<8JG!E*rg;8?R$y`Ce@A-#m0U^Y6M$77rrn4OMh|H?xn2qLX3i^s zAhYW7D>-{l+8N$%=hDV{j$dca?X>ABa3ANdNj+8=MVWgvYMoH&U&9pi&UboZul#f> z-9rrYwQu|&tXl7vG4u_#G0iSwZ}3V^XH%~etOF1PXAdjXDpqQydAa*r@}q{t-|JLUwRoR{%mZ#m~$Ok_c@8$ z+`kp2_dHrn9K|&IRhM<)5xa1lS+lU5q7Xk4zb*dfKf@n2n9&Eg( zlt8=+4|*@wqik+cuS7z$UTR8WP~KQ$m0GQn4Rpd4m2b%Q5fcqAp9py(rNSDWN6(P% zgVTMR>59fuVsh-G3f+5tcEnVoO*&6~G@5Qd>7zLyA2Q_( zhS3w;X@JGNFKV!;D&r`Ro^L!5otx9DnxcgunU(bks6teS|4W4PI|udtr3}@O<@BY> z-DK1Iquz&5uX?{_{wQxDHTpsmeQlO)!wsV0rc<@mDHO74i*JJ*F?itFAcp+DYT&(> zuBg9K%EY~N+Qe%Q0ZDONK*X6ZdM4Gk+zhu-uZHY!l$QOP+gc!JUn^n?8D0= z(a3l(ZpNJl|HC;VwX#D9hffkQ8IBo_MvCSFxJt(S z4{(u+AB#ex&TcK3#fZgh%|JU#ZOSewJwL3j_*_OyRS@Ls1_H-{-U&R`)j@YX>1RfkQfdt}2Y$_!?CR$2$-yzk1 z7Hfy}-M)Veo-kALZWp^O=}MiFRI&vv-GvAHflCws>Ae2W0F2wXqv0JJu>?(_EAf*TXyUWh9+I7J9V4G%xF)4n@SlX z3afHD|Zfw&hMWZBaTDn)_OaDU7KPG?3 zKWcAyKtcqf_*NQ~dP`J7!no@GeaZba$ph9BRlA(Cv zHET0&gdaThla0;B`e)o7eE&3%uQj`CpzDJxcMx8m#r7cW4gp$vEDWU3&|x?G`Zl5?VeB_Q(B$w*jx8)vj&k zar4}oA9a}-^w0lR-Ft_#{f7UeI%rk#`Dj&9qtg~OYlOC1YLwEVR-)9NwFyyGw6$ky zgsN3r2`VI3YZE*6C>kqPh!TY+!f8~3;x|$4Og!Tr4XKlx z_HBWe;&o3^0Xb|Y9mx2tos7w^R_b{hgkoOZQ=Y@+FI3^j5774?U~KtsFef$Vp13vZ zxzu;HPGIT-yU3c`7a&V(8T&Nn(ZBKmzsslKmX?;^BczugC_BCOKisu;-eVx9+^#$^ zp=Byg&hB*q#wy7ar^zf+#NmQ z@trRB10ji6G0zu~K(&@8c&P`2_v*-Fpt3WOV|4k+^wsb2vw-DyfZG`RHo&j`HM$3AX zk^$(W94F-V(AHdUyjZw|az)-f$2Ch3Ts<~2WIRhjmsCPfPC&(KSYH9N=LCSg3>k?d z9V-FXe*k!>$JL4g34Dbv&0^sRwea3*?q096IYcNfXudTHzTs%dz*nEDcA*)mj~N6>eE#`P%bB7k+wUv zbKWYa>o|Z>jFmc;S8Dg>x_ev~-286dynYUnPWIKe3@5qjfEa;U<^%O6`&dF?i8C zgKNibLzqaP*VboH{+RAFxORu?=C2>cqd3AbEsul3zAVE%XSl+mfV$di!6B8n4Y>h_;gtGOSbd9$LV+a@gW8& z2kyyTI|D;F$qSZg?n_&b&FMwLc?Z`_VGJwPc{(V}$2puo_P|(zYur9YEtgQ@<+w6! zrat8=ZR8}k7iEtK-iu<$174C_N-z$eioL8mdDh^A)lak4qCB13G-d{!!&!J7@CDTZ z&M`Krr%IT>1iRaqoGL^quP$`;wzjLAb63+k;F{CDw{YN} zJd5Yn(R|; z0biK5+XsX(UbJ(Om-Zb&s74EkM8HlTSM@!$Dl)XSVb+apxVva!(K8AsS zk_D9^w=Q7qEF6}$x?^9GOqRb+-nYpHAVTkNFF$_LjQRKS_R?zc`KIBlA6$lM3WGsa z)Q>_Z)18|*kA$3=dSA4fh%?*w{IebT(fv+~OpW`J*KNG6%3%3$;>>xREI7PMT;?J( z`kFi~S=0GpNWZO`e5;F#haHFt)@ z6i)aR2XW24i+!NW{-9Tb>riHL~u|t9B0`9IZZXJ0%S^pNkogffO7xdm`d$xU ze+1yB#$PiYJu9yW8}!zuFe%}l1WCMqJF%5m>n$uYs0Pdien|k;pnLmcN4SeI50OLm zmCTA|&^u^fsSo1fx5sHr<*%#qWxWx#eg5(i592K^5q8Cxe9}2JlCQ#z=iz3GHN!!V z-JDJq-o15Ws8PD6xV0E;78TjNZucQ3W)IA2nAyu4meu^oxrmE*)$_!-&Z%(BYPmbl zn~V!golCWLWe=D`dkQCmTQD9!kM8t$^QoakoBV?SZ=at6z_)Zt4`GZePfRcP+dax| z3TAY_7B{>(*e%4Vje_me?uJD!_?qNry(FAe5{R&?2{tS-8T06MVAYoL$;-mr-kmeU z96jhtEdiFY0ccK4*L4qU{D49KOc# zA-!!dtEyiqqtfS-eDp{#3u1Uv@)@iAQ`;tgcK;|3yRTsZ@-jv*oScd`YO8f?R`Vm| zIOld)hAZw6>V_P%S`c13nz@+7Q!y8a5+)nmQZL8l!6B6yGH!AaH~bz-8`&8hRJKhD zDDa5^kHGzs$8ooQoVHQ$l#vKHC*V6Yd%q>@F50q!k>8WIGcrBsXdg>JbNP9D@ap1Z zL?+)nGI#n>++O14@J1@or5VKhW%AeVAW0(lx%4k|r1zJFR{1^4a`)P*m`BUEdk)`o zi83S`gxnpBMy*$}{a&u}=+&?{d(ddecb@!W$z9lOwPQbQu0xB$q$kd#D!kNR>&d3@Cdxs-gNm^37#1 zwzng{rAOxc@IJTKk@|(7_I($6Kg^*IzA`?kBADSaz=0n3R#f-$H&PzHy0)m4!SJLh zn#1A5zm>BQV>%qV{YhPqk<0ZTdNVu}Vm>owg|YIj7fDgEmA#&6b~|T>(Et%8B{W8| zNDCp3C5&G}iTW#vr6p^0r5gA85Bf_kO5jz?GVP7H5|@?odMi?sW)0e+d8EwVwwk$0 z*%oC{B*C#riW_-pNY>)$pHFR9!2X_Ldr{M_E_+caiUz9s!1k~x6QR1ihg|fk#y`pr zY(H-+Saz>;B!p3HcX9{P{;n3^^H~FpEbU!4d!d{y#0xyZe**vP3qMYO%(8p^sbNxG zQazpgAYIb>1L(ovY~y(^7F%{34<}~O$z`}SiphuGiuq7`GnbHkPmLek3kZv5OM)PG z+6FhpMz>IA!A#i8{^ln`Oqs1bKVp;bmARHHtPbYuCL0CHim0VobR}xUlq|Nhpe^f? zhfzk%&Bzzu$e+5LHm?+4;rf`;r+o^{%+d4nsS92=q&4!SC-Y2qZJMLy%FOAwgYjBE z=7&A6fR%Apv!MtR-NG0JY!NGfU51wZ)P}bT6)u}@u{lwi{%Nj?F{#HaE9@wke>3J< zFv>i&K=`EnzK6rrV?XP6HjsAK_!MP}V7Pkgq9o=MK&sfMlj1rm2~Kn28`aX>Baq>0 z1WC`OCyEP9=UsR1aJ^e1^qUN|T+t25vS?#sPhRm3o=A-ykVkw@7zr1@G!MuU%nb4i z#BXY-Ix`2J>`Ito%CZC7r63mv6o&R>zV{YeES}A28w#J;9kdD`grInqWcnSg{M%D4 z^i!(Wl)_xH2^_v9(#3&5`PQ51+w^s=JLw@)a#@{46A#AWl3FdRjii2$ei(oHYN-nJ z;5tz`UJo5O;R?yaovrUhjNPCd}jQP6AaIY(r-3&W*mEgFwO zPG#Gjw&BWKIgZ40%Rwk(t16vdb-z1ibbyZhWy#DAbBXaGwFICRh3czSJv%KqM+V=GI7GT>>u+g2ZIhq^rr}6 zD7JoqA&w!Y|D1SK`kKb2<*f=fw4J#%!C|!@%bNnOo-<1Vix4ij$bTM&NY-WA4S5)j z>*~z#alYRP(0K_1jDy!IKyu76r%Wra0McX#pTIXb^27IWb8Lce){ zG?s)Ia$_XJu^;9X-w$%29a1vs?z(ud2!$S-C+#j{Y!=&E0Ke((bQ|p#a1z`V>|Y7) z0D#lKP3bu3@~6GFJ>Jj%w9WtR!Dsw0RqDp$lE!~O_r3H7e?9&KcMUl3{w2W?c8Vwq? zznPKK_&Gw2PxLgSqnpnV%L|vyJ7uv$oeGRrYv<{Kj0^XlBH5pMjU#c0WS|(p#L+J zcNs2qXMz;H*HM}H5>xfU?*?&fH$P}$1NKk5C8Vc|0&X|rF=N`xp45i5e@N|fEdvz> zA{}DI*B;dzCA^&e$$XNoJy81lWIge9{eA#P2l1HU2HfmD7{tNX7-biUa>eU#$vNBr zSYG_~4<3yxqmXv6e(!9e`b1oH{$%62A0S5v#OB%;f0?MXoxvPo7QFxV>>mX}E~o5t zp|yx&>`6(jiKuEmpeW!(5?;(arM>(WUHkPNLT#^gdfMMPb#LhnSTj880^}OoI2^?z zG+0`%34_AHR-wRJWHEmyCU>k=Lr3?fZ@4w7*N^c*C+hlOsZy7wgjdxoVCsI|jG3f* zApcC&v-gc+4bc{?{|F66Yu9a8d@rHU)5ZEMkTX~R8@1=-JD)o}p} zb4ix`noEDJqoYGV*IR^A8&=0{h)V(p80YE>o=zNW?}YHI5!7RNa1xC}-;S!qdlpx; zQb)@WWz)iVQ8-lREw^H(ka?NXAROy!{KnIKJ8MBkK$SC&y0hT~qz5M`40nx}%^cWe z)bI2bN7hvGPPr=Ujw4Om;9%#G%m)Q=p$4 zzktism37fhw4b5bo%tv%Z@dtv9J0{N)SHwlQ+V$6WRaSgeXXF^a|~JYX5#}x8OP_w z{Qp0v!q}MFQp#6CFj?vWAj6cK2GYc!3TU57Fe}rFE%x41i5K3^)LNmIYpfb!( zqVYTS&tr|19h$l2=w-g5ICX&k?j?}`zFhQ$=u^Gh(dUM7yvi` zr=5D>_84B0LVywpTsl~4>p!*iR+RHKB2PZOp7fhwzNZ4kT1IJ8T=GPrwQ91iW4HE8 z0_E;tqNSb3@4D2_3FF;7n?C1aLqo(J@M>H`W!GWkwS=$p0-bzaM~Pmma*q}@*>jJU zs}@Jn%908Vgf#@W(qy~3jT_oK4T6jbl_t@=ink2rg*A$jZQGL&P*L_y1T(sXtckqs z5nWtfZHjfTx+rGyY-Ola9B=NCf&tGCt*4I+iWfz4F1 z6&}>K9#Y{zl;s4wWQanlg_f{8%4_&+WO|^QSAl_y;W>6;{+bLLlsv6#S{x#Ps2S3H}C>zb5o9C4gT0&BSD;Za>kAk294QA6v z3q}CM+3<;Q@Bl|HwGN%(czts@-UV>xrLyh+O`Q-czJ!RP!zVfd}wd#BF8;_s!&-5Ni zO)2lft}{TalCr;0529EJoiU^l25>mdyuaH)wxblSU}^7n)+uIaoHRexb3l$P&*HoN!f&CejwmrwOHA8{Ou$mZb0!R1`f8?mKvV0r z8ez=qpx1gOn)dc44HeXS%UU*fN|jiyU1U(17W0L!YEfZAy0L0l12x<6iBX+DC#QWV zCzrIm{d0H!5_idkt*(%a5QeL&6!WV{kW1o`)M}nEhv`rTVza)|q4WBwhFHE|N7g}x zMViHvZhi+(jt;s8rcIqgy>B%R&3mr*J<6!3SqkZ`J!^25Rw{gkeY;cM-0&-^s9h{3 z60u_)S=Bju(~c9m#$6vdw_;82?K9QaIh~&{qUuy|xh}fYZstj=4nz>hzirx32gUBGJf6u= zfKEO+Q0cp>g%=Xp9j&l8Xzvu%pby6PWT1Xh}8SLr-=int6k z>oz72Af#Kbuz>CseuF+ma%anhxH$Cm@VYGX?W&BOtVQC{(1Wq+`Pcl8m+v1}+x8u* z-xtdIe01M`o*8*l-?Z9^6pBFW1`ZXNU*GlX^f@x2)J*z8LGu1P9|6Hq#H4FpcdY4# z|92Kp4}4o5onilboYZvWzK|JoSPk}G`)KB4<!h1^YEG&r;J$qQ3h4p(ca1%{h4vvXPlJlCI$e@$5Y4S01Es6y*AxwkG3 zZrpI0645fc)j3VI-?J*RF(C5V9aio^qFQ1-)(zByepp}i?z9rUawY|%bOURAZe z)JS%ZdpanI{WnH-cEuAYa?7CY{VX0*R8+j_awsAfu9R5>vX2+9KR>iSso-unI7>RK z;*O_ZZtl7}<*ERhlBOrr6biKzqus&~X*I-z8Kavf&euX#Zx|P~xlI)G6R=Fw=q#{m z6~}sKL-iO~I|>HWF2f9{Tps2(!zoJCdwx*!Ef6ms53um%6wF?|%p5#t{YhTVCm4un|bT`&?YG*pEu5qbLHV>;Nv9{OVLAvi!Bd&*H>(^CDq$uoZsf1?w>p?q)jP*ZdUsZv_K7>jk}rPZ zvCgy&;+*?qf>sH%k3>;!D0TFKJtsUp1&xr*0449#IrL>ZdNUO<9@8X%3UZp zqxdMTQvbdd^ENN0uH>-Z0<%E@Oeu9?Bf(`DCJ=wZ&vI0H-~LFU&Ij*>kcmrEkYn{% zaz?1C;bNJJEj)jWmu!>UNQ>d}j%zp+VhUr9OJ>3qI5&*EsKI+XT)U8e^n#T}ojGN- z_)~UwVVzrlymDGgPFcFQ##L&;d?O;5)n^kEG&|d{y(2QynV2F%#B*6P`>jdV?z|Z! z;t|l%yLr@anl?EZ>NRP-%!2dx{M<*MrSRBrO1bN$q1|)Y?{g`LQjsx1NvyX(iBm9^ zi4FT&zHcQ_&qR&P)M6+<@F9}bp8xu72eZH_XmVU3L-6cX< z0$QeXJh+g2V;EBAegZNf5-;EFHsghz^l?+LXpGUj`@oXu_5l>+M=|g*Q2jaSt zg@_6uYr~~;zw(jZg)@C?fE5o|VCZ%ZXrOI)^mv;6VrRqsb#<6FT*W#aQ<9~MwWTS| z@b;F(^@K4qVsSs^Zfa)2aTB;*L`V2WgBAnx(qauxlf6r8Mj5%T1YTw?J` zmE0HdlJ=OP(F?w7c*sV(i-J1K2z{Yv2VY2^qS9tiING_V@ZF`X=RHf|DkckUr0|Vj1~m7KR$zCvXYpCT)E&XuX{xZY6=H9qmEa1XU|0`w187;7Dl{ zQejoMcB@lraY|R8K&#@VqRkiZrdv_0L2*X34S|M=$EoD-?$icDtlyps>}(a9bWpiS zeQ)0c;U{AJ_N+1wdTPcf`ygUQOkTci?)J@_i9Hi!t$fAlEzF1&SlX>3K(0EiY|Y>b zfKA?OSl#(42gffzVZaL&?SApvNgH-yt6tv?)FnWeowQ75Sf^fLr?`#nL34_{l<#Fz zF5?xtyu3TL0i`SG9 zO^)>CXEyDNK{TEu^SV6%q@_I~NpX#x$TK0~4?a=)px@OnKI+w>{WxXmt ze`_!ufa+xmjgsIod*{)#R_4`x%=G2VS)(%uNI>wFJ8lwF-o5kzmqgED%TEK80rBv< zZhXE^OL>h=$3jgZWuf2*cM$P-R z@%54bGL>w2@WXM3DiHQKPFHPGxPNnw5OLVtl^F6ih$nllW|6U!NmlI0Dxv$p3%S91 z5k1OQ5%$-&{B(}Ji-MW1^J!rByoh*Y|LF6JpWi#4u1&`Wxw=7L?f1=HzqgmA+FFL* zX2at&<$Jfjut(=zdHV84Cknde@{Q~+PaJxB)2xW+MPWwJu!61ax2R-2RST)_SDuW+ z^o&k>SGp4o6+H*&1D{oWOZ)@~SNrCm#ArYzk8iGlWWoWFY{}yyz0hAPQ+39$==>!K zq1Z8RN8-d-+GDF+4vKl)oDJH)3U~->`^F+x61F+w=~iUgkD9LLX~ULbVfI0PTp-xv zVf%(|N|h$V?)r^~B}5c27ZTDh(>Pg6i9H_#OI}qb^PD{*;WR=DGDA?|r_Ru}=s#lj z1IUza#QV^akP#xe z5XEPv!nCIl_A@n<6ClKJw<<^mK>vF)|*39n+c4 z&k>A42jHYBXw(N)R zK^DvQdMx)^EiIi8mlFE=KI8c}@lyUb(p(?rM`nFLEozxiinluZ!*bx#oBqmS3yJHd z)f*&m*}nvA^G@r7y$qr^Xn20kJXR*imG!__Kc1p|tyU*)$m*N^r9+M0ZTZv!m1kfO{_d~5ieu}58e<_6N*W399IcX)&wvAUy5#a+gWrLV(4jaScG(5mq;x{)_=a}4g z==7u@I*vUUB&gxRIr`Jga|6@wz`RSKnVye;!2tbST3eWnYS>gNFwXvP5d<-Vr_}Yy z=~@deb|ocsORC~`@%83)r0h3HJ;1TV7jgZ+FehkQ?K(&CWMv&*TNtunY zF$S)_$-He}R)&H&htu}umW*QL!xqs(bI*aw64;gk!t6}+haaa|r8O^l@R^h_Rovld zl=m0au<11yAqCCYosl@hN)>6z{C2 zgZPx-1*}Q@ocC7R(>Klp+-l@{jpbECAy#}ZI1buoff02y5V=5hSk5|vJuQ4o16Ky_ zUA_0~FSg2?)9_@(nVs*Z^$T7s3%*@j2-ax9pO z9BHl^BulQL4cqA|QS64pp65-?zuK7gZ8%(hrPk6(-ZZG8CW<`m-t$+r)a=8;2Xz`q z_9Nx-Fr3_K<@m7W)O5AczjB_#%ci`XuAs<->X`txGzHJ8s7lrJ=uYJjfxqBGrkabY&Ij8hsE$Pn79~hp8^91(;Mtt1259>_q z%T?dLd6~=C`0Xaj6*u=#oI^H9)rMn=)nIUY_5Q*bgeS0U*EV>fSy(_b2QT#5UmJX6 z*!EM~KqM)CRR7@sa-l3bGqlY>q3zPYIA& z^=Lwu_KBUq{*0Q-R{Y=r*r-TXbPWX zy^;Jig`oPIv2ZGzWcd2ObDFN`Ia*X&jN6VtGa$IuWx%U!`v9gQ8Q7}3eeh+ENIZ8* zlS%y-==n7mIj85}{0SCLSz%M7b?oLF528VD&z4Iq>7K}Uvjq;>mBH(@!|Ng8(TNN_ z;~GDIC1!X6v6I+3S6b$VBA9Q*b?+AQd10C2VfPvbkK8NDKUJJizFVkiXC@BXI+uGh z_s&2h%`$Go>$b@E{gtV@wOEjK??|G0#4UrxN;#J#S=-!D5x_@HazlZ|D zOhYW;-B-%Nu3*5N)n?k2bDkDc>475r?_Zmdzb|2a^^g`u!+pgJV@qPgKhD~4sQ z2!ChqWUp-Dn<7W5y&5QkQDO=8HZ3gBv|%Fe>PRn3UOMt?TTs>LIrw06NuA3b(~PAt z<&s|g7$3hn2FXQCo%Li<%_vwt+o1Ky&d`iU@w*ZcSKZ5AX=X3!oq9bY#CWdb_SOZj zpE0+hPIRQF*3*_xLSr;4H+#V5II<(FOkra3`)t?BlMN_|75q)^`?@M_Cm*;YuNA1b z81scPam4C{phvIf*lU?|@dfUuZ73=P&=!x7xvNP>dzsU6Q?BwxSoj97pN!YAPnE^8 z+Uk)8)3UgHL&h)!v@@}e<;KMUZojaAb_GqT0D!j4#p}wk8;7OezGMX`Y|9FzzZWt+ zcd=bSwOA!jx&+!^_87bOa~B?Dk#b0Mzc+F$HxC>{#GFuNESdS#J(=*Bdw361La9ACs9XG%RvH(7^F!AHt|6%` z-$sem^oDd~pyN=4`-mT6qHP9iRb%G6c&m2n-Q6}PVr%%W%wB@cl67baZOFi`po++1bq*ceg*yz@QIfKKnGEWsy z1q3E(&#M`kDuH)LOqwk9R?QrYKo@qNqp5&Z8z|!AXeVuD=3~60UVjnfohps${Me8B zC!CckKnjZ4BWB-Ev6Qs&HG*AU%YTaKBwe>@zq+cpw}a&0IA7bOkbhsl@mz*WLv^m1 zBYmagybs_HsOP#wRlrHAWc2DuKkx55@47BW$5{~`DTi@~AJ$UQ)XO#9+{nThJ~^>r|HV9>gv*sN`i!-W2)1 z2>PJP1ACw6ke|4HiNnVpxJ?QxyiW}O(-bW?rw=3bRKW|xa)93rCarv0oR*J6^r=8BZ5r> zz0;0~!$;1`koBpc2O0j$rpEP7Ps1p(;C<;FJHrNd^rrhHA!4C!>Gs7BS6|AkW=YM|2C@lpU%m_-m8yP$c~J%-;8WIQY;Lt|FFCmh=d-tIc~1KEAj!j}XxFVPo6patw5gG0CJyiiR`pH| zHD%khe|>E*5MhiT=M=@ty}^YomoEP#Z4@N^3`I&UMYpa8C`KWs$bc;>Kpx#?2DV*3 z&UKH8-jMChM$lTQ`N_T9h$1EFB_==bw=mb2=68N2tGAAMSfx65lPRo6*RxxXuAPEX zdgXFk;(`X7rI@2!{5fb4l4*Qqj94HnT9!>%A^-mt>Fi40KC(^erH%=MBHw9A07N z*#|9E-T67%c2%7&#f6WSL!9SBta5gEeL(RxpiZ`O`@{KF#LPgnLs+*@M)1|oVIN~K zn@PpL9n)5C@35ZXGYM{(4(e6mUGh1o->eGUaB$U~sV<0lD+bHi^MD>>pQ_dS7N1}7 z>{8SCcm)6sN}foX%ij81=we=Yt9gyt(pr=HUwv6E=1|RC*ERBCw z_-wjn#aB=Pw}AHAiZA!8OcXcJ=aT&*aQmT7!i5)IBgBedWxIx#Uzz zbGrDfJ&$*a)Q$b#V_M=i3oUr|_07;1y_+rWORqeSbeSczl7!>t@BPZ@$ef@-0QUD! zg99y}!D!HXj^#sl^c#|kNTcbC&=Y7&ceV9z*j(3W4Q7c6Gr4B?^d}wq0>j!Ic8MDu zY$D&!+Csy6HAd_8(!nV2Y<5v}=_t>GW&MXauckieSNtxh7*@#KkEVYrsfxP?i{!bp z%=X0fs@_o9HNb!2ZhxyaV{(*^(f1{nKf@eIY zroHC3w6Y=w$=!5f_zwbD9Qi^S>emp zxj_wqq>T_X-p2nOE(zjTr8*lM+e>_@xjT?Xb>e>iaI04nFOnoFcb=Qodb#kyzQe&e z`;|zveN;jluX@V8elpG!GLzB;DO?W?vb~82_yIE znU2#mf%dvyx3bX=w2l-zVWY1fzfl|QV=MUIl8vpgXIM(745a+4b`7}8@82IZ;6u+{ zvM~5hnVmmoU`okO~?=*2xWVadA6b z*L+*TqVM)AjcVHCXibi%fBQ_Al6}G&PP~@_rS*XJNp(KT+M1dbM%>VP->(5cN+x+I zUT^)&$Mowb@>b(Y+~OgKzu&vNj)*dbx>vJYWewc~av+XdJ9mZDs^W_iw^~~McJp=p zRmDoI6SKsW&Sbrm}sh}3XF z_K#P3{FdZ#a{Hh5f3xue@Bcr(chi@sSN!b&-Rr#@G!^F49Iw28RUdCUbQ%wJ9+cj< Hc=LY%qlM{I From 5a5bc09187a3dde02cd988200d5f0f5d7fbee89e Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 5 Aug 2024 14:33:44 -0500 Subject: [PATCH 009/142] Added note to upgrade docs that BACKUP_DIR should be removable Ticket: ENT-12087 Changelog: None (cherry picked from commit 13b1585d8af2adf2e7d53e5264a1e6cf40c4467e) --- getting-started/installation/upgrading.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/installation/upgrading.markdown b/getting-started/installation/upgrading.markdown index ad687e945..bd7dfe57e 100644 --- a/getting-started/installation/upgrading.markdown +++ b/getting-started/installation/upgrading.markdown @@ -133,6 +133,8 @@ empty before performing an Enterprise Hub binary upgrade. backups made during upgrade are placed in `/var/cfengine/state/pg/backup`, this can be overridden by **exporting** `BACKUP_DIR` before package upgrade. + **NOTE:** `BACKUP_DIR` should not exist and should be removable (e.g. it should not be a direct mount point). + **Red Hat/CentOS:** ```console From 4a7a668d62d21d9a840fe3279666318b3456682b Mon Sep 17 00:00:00 2001 From: Bastian Triller Date: Thu, 1 Aug 2024 14:19:03 +0200 Subject: [PATCH 010/142] Fix formatting Fix some lists, headings and typos. (cherry picked from commit 68d0361dfa5afc60080653d1d33a483c2ebf6d67) --- examples/example-snippets/user-management.markdown | 2 +- examples/tutorials/write-cfengine-policy.markdown | 2 +- examples/tutorials/writing-and-serving-policy.markdown | 1 - reference/components/cf-agent.markdown | 1 + reference/language-concepts/normal-ordering.markdown | 1 + reference/masterfiles-policy-framework.markdown | 2 +- reference/promise-types/commands.markdown | 2 +- 7 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/example-snippets/user-management.markdown b/examples/example-snippets/user-management.markdown index 3f3464040..0e7e5efef 100644 --- a/examples/example-snippets/user-management.markdown +++ b/examples/example-snippets/user-management.markdown @@ -138,7 +138,7 @@ drwxr-xr-x 5 root root 4096 Dec 22 16:37 .. From the above output we can see that the local users `jack` and `jill` are present, and that they both have home directories. -Now lets activate the example policy and insepect the result. +Now lets activate the example policy and inspect the result. ```console root@debian-jessie:/core/examples# cf-agent -KIf ./local_users_absent.cf diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index 522ca0874..8c8169cc1 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -97,7 +97,7 @@ Let's save this policy in `/tmp/my-policy.cf`. You can now run this policy either in Distributed (client-server) System or in a Stand Alone system. The next two sections will cover each of the options. -## Option#1: Running the policy on a stand alone system +### Option#1: Running the policy on a stand alone system Since CFEngine is fully distributed we can run policies locally. This can come in handy as the result of a run is instant, especially during the design phase diff --git a/examples/tutorials/writing-and-serving-policy.markdown b/examples/tutorials/writing-and-serving-policy.markdown index 097b1b781..6f9e3acc7 100644 --- a/examples/tutorials/writing-and-serving-policy.markdown +++ b/examples/tutorials/writing-and-serving-policy.markdown @@ -50,7 +50,6 @@ Writing, deploying, and using CFEngine `promises` will generally follow these si 2. Create a bundle and promise in the file (see ["Hello world" policy example][Examples and tutorials#"Hello world" policy example]). 3. Save the file on the policy server somewhere under `/var/cfengine/masterfiles` (can be under a sub-directory). 4. Let CFEngine know about the `promise` on the `policy server`, generally in the file `/var/cfengine/masterfiles/promises.cf`, or a file elsewhere but referred to in `promises.cf`. - * Optional: it is also possible to call a bundle manually, using `cf-agent`. 5. Verify the `policy file` was deployed and successfully run. diff --git a/reference/components/cf-agent.markdown b/reference/components/cf-agent.markdown index 5e09995d2..49c3d75ed 100644 --- a/reference/components/cf-agent.markdown +++ b/reference/components/cf-agent.markdown @@ -1096,6 +1096,7 @@ The following classes are excluded from logging: * `any` * `from_cfexecd` * Life cycle (`Lcycle_0`, `GMT_Lcycle_3`) + ### secureinput **Description:** The `secureinput` menu option policy checks whether diff --git a/reference/language-concepts/normal-ordering.markdown b/reference/language-concepts/normal-ordering.markdown index 9fea7ae42..444d32f25 100644 --- a/reference/language-concepts/normal-ordering.markdown +++ b/reference/language-concepts/normal-ordering.markdown @@ -77,6 +77,7 @@ evaluation perspective as bundles placed in files included in body common control inputs will be evaluated before bundles from file control inputs. The following steps are executed per-bundle for each file parsed, in this order: + 1. if it's a common bundle, evaluate **vars** promises 2. if it's a common bundle, evaluate **classes** promises 3. evaluate **vars** promises diff --git a/reference/masterfiles-policy-framework.markdown b/reference/masterfiles-policy-framework.markdown index 9fbc1a43b..84871eb13 100644 --- a/reference/masterfiles-policy-framework.markdown +++ b/reference/masterfiles-policy-framework.markdown @@ -5,7 +5,7 @@ published: true sorting: 90 --- -The Masterfiles Policy Framework or MPF also commonly reffered to as simply +The Masterfiles Policy Framework or MPF also commonly referred to as simply masterfiles is the policy framework that ships with CFEngine. [%CFEngine_include_markdown(../../masterfiles/MPF.md)%] diff --git a/reference/promise-types/commands.markdown b/reference/promise-types/commands.markdown index 27f5b2db5..09026d65d 100644 --- a/reference/promise-types/commands.markdown +++ b/reference/promise-types/commands.markdown @@ -43,7 +43,7 @@ commands: ``` When referring to executables the full path to the executable must be used. -When reffereing to executables whose paths contain spaces, you should quote +When referring to executables whose paths contain spaces, you should quote the entire program string separately so that CFEngine knows the name of the executable file. For example: From 0fea0d61f84e250c475a97ede68aff79372e2f66 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Fri, 16 Aug 2024 13:39:15 -0500 Subject: [PATCH 011/142] Clarified that ./ is not specific to explicit create attribute Ticket: ENT-12118 Changelog: None (cherry picked from commit deb98709cf22af8ccd6b6f5534870ee3a6e66690) --- reference/promise-types/files.markdown | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/reference/promise-types/files.markdown b/reference/promise-types/files.markdown index 8574c68d6..abb222bd5 100644 --- a/reference/promise-types/files.markdown +++ b/reference/promise-types/files.markdown @@ -163,12 +163,13 @@ When doing a recursive search, the files '.' and '..' are never included in the matched files, even if the regular expression in the `leaf_name` specifically allows them. -The filename `/dir/ect/ory/.` is a special case used with the `create` -attribute to indicate the directory named `/dir/ect/ory` and not any of -the files under it. If you really want to specify a regular expression -that matches any single-character filename, use `/dir/ect/ory/[\w\W]` as -your promise regular expression (you can't use `/dir/ect/ory/[^/]`, see -below for an explanation. +The filename `/dir/ect/ory/.` is a special case to avoid ambiguity between files +and directories, especially in the case of creation (both with and without the +explicit `create` attribute). Using /. ensures that a regular file is not +created when a directory is actually desired. If you really want to specify a +regular expression that matches any single-character filename, use +`/dir/ect/ory/[\w\W]` as your promise regular expression (you can't use +`/dir/ect/ory/[^/]`, see below for an explanation. Depth search refers to a search for file objects that starts from the one or more matched base-paths as shown in the example above. From cb7821cbb6d867d31c17a6ece9c9b039f245feed Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 7 Aug 2024 14:40:36 +0300 Subject: [PATCH 012/142] Added Two-factor authentication API documentation Ticket: ENT-10838 Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 9d9dc5f077fc3aebd9a544e0b271d171bcfdb01b) --- .../two-factor-authentication.markdown | 256 ++++++++++++++++++ api/enterprise-api-ref/users-rbac.markdown | 13 +- 2 files changed, 266 insertions(+), 3 deletions(-) create mode 100644 api/enterprise-api-ref/two-factor-authentication.markdown diff --git a/api/enterprise-api-ref/two-factor-authentication.markdown b/api/enterprise-api-ref/two-factor-authentication.markdown new file mode 100644 index 000000000..4dbca439f --- /dev/null +++ b/api/enterprise-api-ref/two-factor-authentication.markdown @@ -0,0 +1,256 @@ +--- +layout: default +title: Two-factor authentication API +published: true +--- +The Two-factor authentication API enables users to add an extra layer of security to their accounts +by requiring a TOTP (time-based one-time password) in addition to their primary credentials. + +Once two-factor authentication is enabled, requests to obtain an OAuth token, change a password, or +disable two-factor authentication must include an additional header: `Cf-2fa-Token: `. +Basic authentication also requires this header each time it is used. + +Currently, only TOTP (Time-based One-Time Password) two-factor authentication +is supported, providing users with a time-sensitive code for enhanced security. + +## Start two-factor authentication configuration + +First, you need to request two-factor authentication secrets to complete the configuration. +The secret token should be added to a third-party authentication app such as Google Authenticator or Authy. +A 6-digit code should then be obtained from the application to complete the action. + +**URI:** https://hub.cfengine.com/api/2fa/totp/configure + +**Method:** GET + +**Example request (curl):** + +```console +curl --user : \ + -X GET \ + https://hub.cfengine.com/api/2fa/totp/configure +``` + +**Successful response example:** + +``` +HTTP 200 Ok +{ + "secret": "SYSZJJVQUIOG5ITA6HPH5PZWLZ3VUP52", + "2faUrl": "otpauth://totp/Mission%20Portal:admin?secret=SYSZJJVQUIOG5ITA6HPH5PZWLZ3VUP52&issuer=Mission%20Portal&algorithm=SHA1&digits=6&period=30", + "algorithm": "sha1", + "digits": 6, + "period": 30, + "issuer": "Mission Portal", + "holder": "admin" +} +``` + +**Output:** + +* **secret** + The secret key used to generate the one-time password (OTP) +* **2faUrl** + The URL that can be converted into QR code and scanned with an authenticator app to set up two-factor authentication +* **algorithm** + The cryptographic algorithm used to generate the OTP +* **digits** + The number of digits in the generated OTP code +* **period** + The time period in seconds for which the OTP code is valid +* **issuer** + The name of the service that is providing the two-factor authentication +* **holder** + The username for whom the two-factor authentication is being configured + +**Responses:** + +| HTTP response code | Description | +|---------------------------|----------------------------------------| +| 200 OK | 2FA configuration successfully created | +| 500 Internal server error | Internal server error | + + + +## Complete two-factor authentication configuration + +**URI:** https://hub.cfengine.com/api/2fa/totp/configure + +**Method:** POST + +**Parameters:** + +* **code** *(string)* + 6-digit code from the authentication application + +**Example request (curl):** + +```console +curl --user : \ + -X POST \ + https://hub.cfengine.com/api/2fa/totp/configure \ + --data-raw '{"code": "000000"}' +``` + +**Successful response example:** + +``` +HTTP 200 Ok +2FA successfully enabled for this user. +``` + +**Responses:** + +| HTTP response code | Description | +|---------------------------|-----------------------------| +| 200 OK | 2FA successfully configured | +| 400 Bad request | 2FA verification failed. | +| 500 Internal server error | Internal server error | + + +## Disable two-factor authentication for the current user + +**URI:** https://hub.cfengine.com/api/2fa/totp/disable + +**Method:** POST + +**Headers:** + +* **Cf-2FA-Token** *(string)* + 6-digit code from the authentication application + +**Example request (curl):** + +```console +curl --user : \ + -X POST \ + https://hub.cfengine.com/api/2fa/totp/disable \ + --header 'Cf-2FA-Token: 537987' +``` + +**Successful response example:** + +``` +HTTP 200 Ok +2FA successfully disabled for this user. +``` + +**Responses:** + +| HTTP response code | Description | +|---------------------------|----------------------------------------| +| 200 OK | 2FA successfully disabled | +| 401 Unauthorized | Invalid two-factor authentication code | +| 409 Conflict | 2FA is not enabled for this user | +| 500 Internal server error | Internal server error | + +## Disable two-factor authentication for other users + +In case if a regular user loses access to the authentication application, specific users (admin role by default) +with the `Disable 2FA for any user` RBAC role (alias `2fa.any-user.disable`) will be able to +disable two-factor authentication for that user. + +**URI:** https://hub.cfengine.com/api/2fa/totp/disable/user/:username + +**Method:** POST + +**Example request (curl):** + +```console +curl --user : \ + -X POST \ + https://hub.cfengine.com/api/2fa/totp/disable/user/giorgio +``` + +**Successful response example:** + +``` +HTTP 200 Ok +2FA successfully disabled for `giorgio` user. +``` + +**Responses:** + +| HTTP response code | Description | +|---------------------------|----------------------------------------| +| 200 OK | 2FA successfully disabled | +| 401 Unauthorized | Invalid two-factor authentication code | +| 409 Conflict | 2FA is not enabled for this user | +| 500 Internal server error | Internal server error | + + + +## Verify two-factor authentication code + +This API endpoint verifies the authentication code. If OAuth authentication is used and the code is valid, +your authorization token will be flagged as verified for 5 minutes. During this 5-minute period after successful +verification, you will not need to provide the authorization code from the authentication application. + +**URI:** https://hub.cfengine.com/api/2fa/totp/verify + +**Method:** POST + +**Parameters:** + +* **code** *(string)* + 6-digit code from the authentication application + +**Example request (curl):** + +```console +curl --user : \ + -X POST \ + https://hub.cfengine.com/api/2fa/totp/veify \ + --data-raw '{"code": "000000"}' +``` + +**Successful response example:** + +``` +HTTP 200 Ok +2FA successfully verified. +``` + +**Responses:** + +| HTTP response code | Description | +|---------------------------|----------------------------------| +| 200 OK | 2FA successfully verified | +| 409 Conflict | 2FA is not enabled for this user | +| 500 Internal server error | Internal server error | + + +## Check if verification is needed + +This API endpoint checks if 2FA verification is needed. Only needed for OAuth authentication method +as for the Basic authentication is needed every time. + +**URI:** https://hub.cfengine.com/api/2fa/verification-needed + +**Method:** GET + + +**Example request (curl):** + +```console +curl -X GET \ + https://hub.cfengine.com/api/2fa/verification-needed \ + --header 'Authorization: Bearer 627135e5a0b142cfdc738c38ad0c0067bc0960e5' +``` + +**Successful response example:** + +``` +HTTP 200 Ok +{ + "result": true +} +``` + +**Responses:** + +| HTTP response code | Description | +|---------------------------|----------------------------------| +| 200 OK | 2FA successfully checked | +| 409 Conflict | 2FA is not enabled for this user | +| 500 Internal server error | Internal server error | diff --git a/api/enterprise-api-ref/users-rbac.markdown b/api/enterprise-api-ref/users-rbac.markdown index 19aaec8ea..5b8809577 100644 --- a/api/enterprise-api-ref/users-rbac.markdown +++ b/api/enterprise-api-ref/users-rbac.markdown @@ -40,7 +40,8 @@ API call allowed only for administrator. "admin", "cf_remoteagent" ], - "external": false + "external": false, + "two_factor_enabled": true }, { "id": "admin", @@ -50,7 +51,8 @@ API call allowed only for administrator. "admin", "cf_remoteagent" ], - "external": false + "external": false, + "two_factor_enabled": false }, { "id": "user_1", @@ -74,6 +76,8 @@ API call allowed only for administrator. List of assigned RBAC roles. * **external** Is user from external source (LDAP/AD). +* **two_factor_enabled** + If a user has enabled two-factor authentication **Example usage:** `Example: Listing users` @@ -105,7 +109,8 @@ API call allowed only for administrator. "linux_team" ], "external": false, - "time_zone": "Europe/Oslo" + "time_zone": "Europe/Oslo", + "two_factor_enabled": false } ] } @@ -123,6 +128,8 @@ API call allowed only for administrator. Is user from external source (LDAP/AD). * **time_zone** Time zone +* **two_factor_enabled** + If a user has enabled two-factor authentication **Example usage:** `Example: Retrieving a user` From 7d88b975de281084805c19e883dc05a58d3be3cb Mon Sep 17 00:00:00 2001 From: chiachenglu <82047138+chiachenglu@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:48:50 +0200 Subject: [PATCH 013/142] Updated the diagram for API overview (cherry picked from commit e516d7e1f078909c7979637183a8ff8ad5f01647) --- api/enterprise-api-architecture-overview.png | Bin 62849 -> 92083 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/api/enterprise-api-architecture-overview.png b/api/enterprise-api-architecture-overview.png index 9ab9b705557ce81c6118a6d1955a1b7bc5067e1b..d963d98f0640eea927bbd4125dcff4ee08eea6f9 100644 GIT binary patch literal 92083 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 Pf<2K|l*)Pd;?4g6`?b+i literal 62849 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 W(sF!%SXnOww)4hTMwNeiVEzxOh&ILm From 10d137e21ce90a0bb3464eb5bc1b9c3f48128398 Mon Sep 17 00:00:00 2001 From: chiachenglu <82047138+chiachenglu@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:54:54 +0200 Subject: [PATCH 014/142] Updated diagram for CFEngine process (cherry picked from commit ba557aa94ba6eef4d87245b180239a2583ea4911) --- .../faq/how-does-cfengine-work-process.png | Bin 55613 -> 105919 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/faq/how-does-cfengine-work-process.png b/resources/faq/how-does-cfengine-work-process.png index 68c161b2e2debd4a922bea6f20d3414c05403521..83023fafa50b83f9341977112967d076705825d7 100644 GIT binary patch literal 105919 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%0AS}1 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

w>Py6bK{`$k;;M`D8Sy+-s{W_;?-lkRBZ=(f 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 Date: Tue, 3 Sep 2024 14:57:32 +0200 Subject: [PATCH 015/142] Updated diagram for CFEngine workflow (cherry picked from commit 61ba2e9baf3c4184a5fe97af47a44ab53af681ae) --- .../how-does-cfengine-work-agent-workflow.png | Bin 83126 -> 106275 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/faq/how-does-cfengine-work-agent-workflow.png b/resources/faq/how-does-cfengine-work-agent-workflow.png index 6a7f2488a15d6ee1fbec2fee6dd40ea00693d42d..e44ccfe6469d7c349d67d323536b81d3337af909 100644 GIT binary patch literal 106275 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

*N* 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 HBH;f3rZj6Z literal 83126 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ð!<%LmF=TEIlxod5uq$cyi$l29n+%PU&b;N?j z(TG*c)@?B?8UdVjI@fMR9)jfi$kA`;8gT9RCuIEHZUah6Mowx8B~{`>dY7oA z0*ClzcP5qyn*!~t<@5Fn52WxawISTbR=}S4)*x&R%g4Uaf`dca*9%VHgB9D;JG5tH zi6+mgg~fDR7MUPdag$8j^1J3+4~~r!&otl?d+h~9hc@4j~pY2TpLmeaBjBlAcBdIKbz_~ z;qdbPc>d<`f+DZ?yr5@jn{?jA_tJ@g95NhQOw#;(TfGYL|AHO^DYZXBhWJlFNm)Dk zemY=IIMB2m?fn-3rOur-aX#?uYOys-<-qz}^s1T1@h-rF`_JmKFsl5qYX(3@nbJ?)6>6BON?^x-2#>g1-Fz9atq0OGK9 z2|}?;;5wZ>YoVKL*`T~zl`hj9=UR z(UNT7_68-?F66={Nf7Tp#kqJ#s_mxhzkAE%6M9=waeloh(XI+ zFp_gf73iKQDoUD~`27&2@%=_2XtI$m8qJ;2*;VfmGuVGZgiw-*`YK7QaTTzGA0p%( zgzc^StITXl?*PDzv_6d`m&q00XGZA)Hz*gk*kUy4gV&N8sT_SDcbxhoK4*d2rJmr% z=VfZAGh>&O2cACoZ~$CgTG0;2Bc0h+&b-uRUbr<^Nzj0)X&h7RhQvBTGPFqden>c^ z*~V;aD+RM(=oZ&2mDcu38M}_2kojK+bDg~RouuL} z!yJwM3b-78X558Y_U3Hoi|6Sf9|w8kgox+#>-PA07zjb(TLsRDLgQQg`ah9wa(0|c zC$cBEZ}1JNG1_OgNMTh?ZxCTIqD9rFtz= z;|U@u8{6xbM-U|+dIt?X5uTmNXc@|A2Ic$cJZh)fH3@9 w@Tvd5X#a68_;=;Q75ldU6yV?Do$(EPynU4_v+`c%6YwJ@BrRCRuj~8&0fFC6`~Uy| From 80c74623eaaa087b2a2629de85aef4ef8d57a9f2 Mon Sep 17 00:00:00 2001 From: chiachenglu <82047138+chiachenglu@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:01:01 +0200 Subject: [PATCH 016/142] Updated diagram for class sets (cherry picked from commit 26608c36943383ce8eeb704c81169a7ddf6c95a8) --- .../additional-topics/overlapping-sets.png | Bin 157288 -> 71864 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/additional-topics/overlapping-sets.png b/resources/additional-topics/overlapping-sets.png index d493601957e7fb719aabb2713c301d95e9bef3d9..cd1f0731f94a35330bd2b1a1c144aae251167287 100644 GIT binary patch literal 71864 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 ZE#a#D=Gd1AMwGGFFKb?UbJ0BT{{X*l?uY;Y literal 157288 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⁢P8Bf+|jOX87}!X}_|h4uCbH_V{rCwSCnYWYY2}eQ~4zgWz0T?K)m} z9#@-KcjeD>D~G35l^1F1vvNOtK*7A~$Do&!6A!dnj*z;g8Rbx$@y5eHdJ_BDYDvud zlxsG>VJ&S-SSGlfvUMxk`yg@gy5Dy(vx;JXjvm2K5Wzjo{-SGW64&nd3=TTA>Zp+D zyAX!Sq0d@vcGgjt36Mo9c5;=R3id>7qkgf?>q3bD(A#`W&D^pniB-h4iUI6 z@={1O*83bjCj{OH^qNh8LLx45AM*14k(QRm`)2EHRFivMs(*ervqqC)TCRY-TbFBB z>T9EuV$Fh>19t}FenOKS{-5CY5x_JJ0R|)$&;=02=*WGnXX3N6%2#Ng_Ko*u>CL9w zH;X1(Yz;LhDh_D2jTC)ZW*QqCZEIBkSwnsYb`Hct-F+7qhdF#np+OurxRm{+(mANC z)22*D-7n^QjKjbO3XP70QBNzwnECwh027<2j>v#eOJ{k>KS4D2O95d6gyiIv$ZFL& zXgZA>oL`mCG5QP^=!7-i{!p46-_f4dWxd+a_ zMe~Y!Gafe%Lu>RdKHda~KkmSua)LP}k`6PnKT>943Nvr`dlCgS`V0!L;#N=yM#o9> z$PF`6n>e>Jh?u9wd!=p1IAkYHu2}{1vJL9rn{||PAjDqmoXX*C+J_xH3D~{N!-r>} z4$(XlX-40v!ye4!r+x58tbo~M-n0!PyogaN@KBkUc182Tl^v?c><_LE$aoNe?o?G( z|Jzxx>|Itar1%yo7uL-!c%@8a9pc>K!6QcuLRiWK3_s@Un6T7-Y_}$n=i>0u!o%dYu96C*D(U%6mTT5A$n=J8tBcR5?lVEM?J9gS{V2Gv5FMLNla_dFnsW96lq|pJO#L8 z3jj+2U|^|?FHxjNA21p@iB=zQR&+aU;%c@1-g)^m2|u9n@@PDq;#ZtZ94ylPqmJw$i}xYjG%|)hlNw8#Mqfps$ZYm!Ma2& zU_nhV9K37VN_efzJTm^Arfuzgj>Bx4*e#uM(~&>I!?TN&k;j;Qgo%hynM-H*&to4r569wr9z2#8$u5Yc{ z>5FFZ$Gy_%!wctm*!+7awR(x{dg2cay8A<5^@?P-BhHGDz4hzzQr<&XMLgPuO@*qI zRJrWQ?WMaG3q8uGy}Df%@w9ZJy;SnbuMNU(y%@&K+PKH8ga7(Eq?b*;VTeE|;%eI3 zZ%Rvf)nrHgAAP)6RFa+2>+0cA<8Ct3vF_y=7$lOD^QR{6FR9TRC#VAd+hFh;h>Z^* z7KI`?m*`d=zFEvP{nG04ImSEQrdF@U&~~tu?w4Q9I(|#{@MhZtuqF^wNmdSyM^B&L z0wR4lrJ?&7q*{VM8=Q${j@%J;FwhNV!R^et2pIyG1?j~QEE5(HyCA(@f|ZSG=9*(% zPPdgiwtUKyGmVaL>)y75Gp7P`wNe^0@ssbVl2@)=DZ3a@pM5=M>yuIpn{ea(hw8NI z4Ni%y>242xZn->n8pht9w4F~XZ$`UWODo~gb@R)ychQ(QZ?l$rvA7R~g@hA+r(!`Q z^btTAoB@=o720Uk5<@YB*8K~|oBSo5XUM_>zAym_@d#vPW5exS%lAX?$Q|azz0g(G6W#?p zUwVj+Bul;=4%)@mW)j)lqxkc?mzxS%{7|z z@Z?nW+wkYMtFLP)Q_Q1_1oA{X|B|P(P-f|84kf0{?AWfBk+ZNxVyUw0rq){ahBnYU z$z$b#7*|B50<3HBT~GO*iOXpr{hGERSHq{%H+*N|!jVc0Plfib$=x|JBQDRHBN$Y3 z(Ru#4^`Gm!s=E4X_zFzcCL46pfPy#;j39!wnSzaOiBlRCv2Aj8iEx9#q;%dKOtYPO z^`3u+*QmGeWw1y29R_!12EhM+#%o2sxGqe$CJIDM>9dycdef8{eodFDkQI!3|FT~c6QnA4HYDTI_4HYr|xG{)w^{VyE zs>&W%*I16FdQuHb*dc*RQMUn6yTCR?ZYD^K$AtXLPl)^1Gg7a6YDnPP>cVL0uhDms zhgD|yEp$zcXo*k1M3QgB5WA7h35~sq;-4b`=hoKS=uKgo#d_xs5**nBascSID^ivl z8zm9v0>sS>Y1qIPz!+{^%i+(rLc_v3rl!}Ln>ku7Qn*DoIQ`^JJ10_nXvCE%YAL6) zO|4bxmdo8qy@A`_nj-A-87T3HWjqvJQedEcXYWDNp9KwdWyg~W>z5)Nj(b&!&4Z7* zd`5l|U{l`2sSE|(H<@)x{u+RRQh=46y$Q51s!(?J_Nv2@<%16`NmDo~KO<#T8?akh zf6NJhM2wHu-xiAY`J;#PeWPU4+rtTiei--alsCVZv`=QeKC}K~HIqOpmIakRLbMb7 z?MhZ*|GRy|`9Mf`w81~NML1+8de){ZZcDx{`iK=;oyWaw`yrdvn$5audOPl`9^TFC z%fBi~EK=Pl5C8;0@|efh#-Xx77LMS!`#C5BB-PZSM+=4P<#(LOslDt{0cK?!cqs0e zgFC}HJ|-G$pl5;q0fV(*tG=8J&+SG0LDXOy-`9-=_Q=Q@apj{53Finsi>b}I2Za)% zK3%2U6$zgUb`5<|d z?lj=hx|g$dBiDY|V$Yh_po`Y%9yY0TBP=4HPB};`U7*roLi}-oCXq&tV#6#hc3{}j zv)aQm?g+nrJ+2cjH6Iqu^oj_*g6&joZ`Z<>+X5DaR9QaJB4%=lvHMzv9*EnaB%r^b zD5%|`0@%p5^=JFT{B+OV2teF2VU2*e$$qCmRw&&`{B6F?s-bNc6L~8`PKnO?M*&@7 zF8mAeBemw##jI~X4|P#&PPuw5PLRqdaR=Y(^t3wt=`0ggCO8L#sOEQUkRptbae#&rk!=4Z z|20Xqcf!uQC=-+7XtM&AI$b5X8%#AZ;r%RWZvEm)@#ZS->BYNyQkxoi^^MdVizwx* z^Q;HeFm)7KDl9_+Trwf27H*`cuPl|)H}q_ZcxvZI5@Wr3?<=K0zA;8syeC@G4Ef z7Zmjp2|q;Yi$uYcPAcLq8I`mEvw@6&$l~mM(}fRwGuV zpiZMf0hPzO5SR&wG!T@JN0;4h+12Sz%zw5NKLp7{1k#j1$@B=Co8O1oIkB73e1ALD zluO8i6Hl@h$`7sxa;IJp-B)`$!NtzrVfi{MmaW!V0jwZ`fR|zl`d)y#>yxx&?7K!Z zdv%{{A7Hy_4FA@+Zch$5y06QXnjCT9&Vo}64rk_jWLN-4X+~Do`I4Fqg}_tNe%q*7 z4QfcRjg%r0BS$$xfjtA_y@ya6X>^2P)SA)jr=O-22V(wzT18c2=es9HzqzFrbhWd>9z7H*5@j$RHEg@S^@XF&g(x&2KI0dfoMBW6B)u59?j_A z+7Ww5O5f74A5tL8PDd)v8C*m)w2{zpi^$9U6cDWkok{#o4HqaUfo^Q#1EQJ!WJ`tA-zP73n=9B zbjp~E;S1?A#}Q~o<_dG{N4I~^wl_8TfXmsd@@Z>V;>t-O?3jq@W;!zT`-$08TE$MX z8Oill!Jbb986>iMffzmog`3t;Kq)`%EfTl0aV%3gm!`_)snGXdg}w?YPwit^P};I0 zP`JeK;=#<8+J0I}ROn}b76AcdMj^yJqySg^YBiSU*L0W^4o^oiQzrbb`5VR~O z>S{lAx8Lma?bfzwRj-pbWe>szu}1I-%Q>Mv8A6&^la2=4FQVFfaIJ+r%(9iXWGvH}hM6d}R4(x5B z6+csQtJ(0?c$aRhAU}? z>9Cq-sD{sDG>BoJ0sF8wzop}gH8ttHDHk2N#v2RhOcMERC>93_5HLPu`b6(1HCd5+ zUL@~(LXZK5Kno6hM=Qix>G|^TD>!OC37fabZL(2H;lx!G#X4X2QMP~FFj?ta&ae^o ziSc8TXpwN5ZeC88{)CJjh^QFbf6k(PntrjE_ z2l^|qp4k4}JVj;MM1SCYw8E4*6tUX}x)+?6JUj}*t@|AMh!7dZOrS{Ed17k5?Of!b z;2XPT#V^f+F9@nR8cRIT>JWA?Qk?6rmzJBCeE9foTe2$bb)-*2=C~j(yZ+7TWznJf zSsj;N?a?(M-+WZxbkCsYtcR=P64PN;V`xJ&j#vWFRBA+Ujp*874kYYl)Xs9H>{+Jk zDNs0DL9vNgOPk``<3=jAVUf$m-Feb1`eq=V-LN|)zATOAZF%>oarri>{0*2^fA-q7 zN3dEz7^>!yY}UX_eDdwRE>*l0QCicxFctnIt8J@;d_wtjL1tY=v1+?@k9E&IKA-XZ z#469te`9fzS+UCh38nMY7({_YCj`SL7_#QhZm7MW@o@g8aZbHtbLU~lJXOhy+Upuh zLC<}o2hm@u4_)h`&gIz=8-AX8^$doFLXd6WgSFD2I8P+%qZ{`Yv&RvmoH;fuVzGc@ zQ4xw4Z~GI5L5C#}bO7`n2@?-?ud33tnqF1HV&MEDAp;K(WHBs^2Pjso$4Oify`$N< z?eAE}mf7gRBMv`H2PVcZu$p1e{??!P{y!qmmyJoZ#yexEbA`!U2UD3vhLW}xadBFu z8Y2J5+wiA5)#!Fd;8yeB1dW&jrW4%A%qUN$RoPOx>u5jKS zc(@HErfc(F%w{xsCOGs>0qOA~3hBgH(%f%{O_a`5Q)vAk7r^K?mwB&e*90h~9s*?u zg+k2ckFOwC}tX4-bvHpi`P1dR!rSxcMi8^%bh6RXpV&Mo7rqeKtiyz9fI^s`in zKk}$bnVl2kZ`pr)a14PN-=HT#sz4K<${}G(_g}0Q9z-r_Y@GlrAGxQdKswyvi(w58 z)?;sxqt^3EC-1xAL*tvjlT{P<{S#Zhmi$T9Qp?^ma#!_DOcK8=!mkFh;eRAwpasdw z%ZF6I@=8hO-=OffrPXHZPY;s!4m=1X*6%tB_^SlF^qxww^rKI4?Dqs@_FL19cLx8hq(FhX zITD(55CcxaD3Ac9@3TEHqU~r?Q{|E`rlc&s$C+$`nI|O+6ZQEXtD&175}kfU-i^%V z#=A8$UJ2ju?;!IH1D3%IV3h2;j_+GR{JNQrp!>*71Q~hRAJ%M+JB`-LH8QTW@bL19 ztBjf0_1+~n^UY$#zY{#ulsX_e4qVm`%BlAer^X(D6`w>fCigLc&h2)MMlkRM?dSi-yU2728o7HeGL4Br-R)=CE0FdOAaoQ8 zs%R!(ux&WIw?5By`O1|i$GT%;?oAk$VCYnM1-rsEx8!#QA@@JBXuav35^m$eXbWE$Prh~*BiR^;P zkPe01*DxuV9RvvXCDKa+b|M3X^BQ!nGl1f0t@JOKu@2p^@}|1z@b^v2e9!gicDGYD zLKd>AEk23}sWda9)Pz|_-X`|kgyaNQ$6bE!TfTM%-!p&D3~EToFEzbXIN%e`@a2l9 zGPM7JiyqWi#(e<-cP8|~c?MqvkZ=fS^t!HVb!ZuiTa$6#=B&V#!)_a{u%iY^OAzd# zXDd2Yju|&i?*M2=9!a4QSn%LG$}VPD2zDmhsV|I}Le9h=L_vwmm$`#Dzco=)Gdj>+V|Nf{}!a zW#or9bV!W?ORVJHe9gUvpC_$?TO(22=RTriK|+h@4vb>cxTZ=rYQOrNp{5nS+y@5 zt31wEZwc>9ifkcen3&;qAP(^1rVL&AJ?LpQv#zelffZ&~#yG_fdLCp4>V?ffA(ylg zh5(1+$6Fc*Q5Eler>I1j zL_~nuXC|0Q2;tvpw0E)`^?QJC&DV$B-6CEPMRX6>%18w)|->be{S(y7Yomx*iyN> zqbW{?Jz7Zg5&NilJiOz5!d$TPkBKMbAn_;hX*;A8c@Bm{i{#Y1v)5r2(`|C=5@qCt9Kgz$uL ziNCB?JB`-O$8|4sWJl(%|5efP55xs4%ADxQ-XgIOVzO6~gA6PgV3Yp@V*6zqAz$m4 zgM^a4T{klbL;iRwQ_7ArKUmiz3e_taku+@z=YOkjqAp4^0l;Sv{DKLbqa#h%TfU8a z+J6}{pwE`RyV%p#Sq?^Ta0xepC$JifN&1WQD505dL3YaJn*KI*!+;7a;U81cCOPX0 zoAF2Ia|t9+NMe%CDe|KL*E9eK{a@P*PAoY-7{&n|NzGJr^4E7?sUogM$_&=bnX05u zS-1X@H5GVhT{-^=w>G(c(Dh47lFmMM&i3$7h8kHG-Y(orJNQ{lMaNds zYaBW9y+%u(K4F4R-;kQK5Ro(>Z%GsgrhDMNq&a0#3NeELpeHwJesc{F*sr0%P1K|B zFVfexrd=2E3oI{Kd8SE^-6`WcWZl-Xpr}4mEi* z(DceA{2Oj6Jk%h7NvDOHeoS~0hds?GF1(24LNSW*D4s^Co)O(w(qnY8L5bj+!0~AW zw4-bB&A@^|$;k3{f<-N*--ZWLg@87s)EgRDAz*x|+1tStSW3X_&}CUwD1)#585j|FMci`oScXW;!bxrDWRy)7N)64PwL&7jdD2J zTd!Iw{(ASts(yd50X1Aqd(fXdL1429oSpc(YO(MWK3{b5JQdv~sbc=P$ZgUJ?K`_- z+NAhTZ`yZg1o);0z3w_E^9Uw*N0cWQceFUDPdm9-k@&}p+t@?L38q13Ad?~t1{ATJ z#-Sq{N`%DhBv=;Gc9jx3zgAmMc+8EkE!vOSVLAp2z4UaocGs|PP}@&ogORRaNAe2< z6}3+R(bi_L0x@iWsZhzwue_|CO#u~LcE2@SpE7q2i_G7Ov|XYiU8&Y58C=dh()DS3 z>!O2}AJxKcXRLsu#5aJ{fj)i?>HC2I#RxERAe66p!R&W}zoySxj@Bwsd9Ax2P4!$S zi{zUR_of}~IHr8cnutc_3uUzyt|Md_pnX8sM)DsB2*dNLg`DKa9#b?*H`pGG;Zn;q z%0w8K7`bSIxQ1u>2XMPrj2FF*n4zCEBNEeg-- z&hC5!A{d0_+T33<5YC6eM{Nxh&z^VjpeZ?=(#(cd<*o?$QygyE4x(-`oEI zADNiKZlMB8{^z$H7BL`W??D&#^V1V{eMmz`d6yiYIef&y&lARHXy4W3upY3}yf`^$ zy5%v;v;~|IB%tjf*rz$RT-SQDV&|QUX!olO)<)^VS@yf)R+eoarDZM0VZO(TzQD@1e zs8+k$>WH|xw*32($`^hMU`qw+pEsaxLhvJmW3Q&JZqj~nt5&T&^7u(5=|z=JkGpfE z!F=LTgOB(00!A)Px#BLNMTkox#Sd8Rzpe;)gO0U_MduTP(H_Tqi+Z7c(VH{JoFUmP z;q@Q^^@lzL(O)$TV@x}aD?ex{zxj2?wcRG1^H(2D5@!w0+qSDU;uXE0;|WYGjn~nx zK*LAkpM)SRrsG&MGZ;an5S<=Zddps@UN^48t?Lun-{DfD#dJD)HDBdAK4lvfUgf?> zp+X*KlesLKm^GU!u|t_3LUXDyIm!U?07xloUi1L7?J>NH6p$7Kro zV+EQ8{9Ou7TMCFRUSf}2)8#a-t&hOy0ZTSa{x5(2 z*^HyOR7)ChVkt>YjI-#J_5p|5+Z8~p5$+cvH#7m19AB3)#xCN`yIB|#&Mmle5Y|MQ zOr69P!g16qRw9Z*=61-?8s5zp$CkNha;>EhCqIGx;qX4P1l5Y2$0-!K0Gi4=>F(8T zhzgl{OAj%dvIjRhanuJ&x69fz#d${=&$@bGtXxRM_x=SBrBE;vM9*fFHs0{sF|kjH zXRIEtlpNRgn&&vtU&(O~vvg*Rl{c=kVSQk8cZx=k*aNMgpbGLZa6h94+A69SR(QtS%wuK1cG=)E+fX|tU5D% zW_(ACw~E8|T3f3^nbIh0IR@hGj6z$|HS4Z3CxoW=xP|i98B2NLysTm~v zIzC9{eNC3;RadG=CiEx>ft?s!e_pI+uRo*`=Moh2DsG|QaJS*UwPO1LH?&voYcOR) zmG|$RN7EUbkJFyFXWBqV5RRZE8Nqa;|$;`F1X60>GGkCa%|c!)|&s%uHtVTP^@!o9tHTsQf{k!=p9Q|?x<&yrhuEd0l3hvg42(ZV8X4d( za@AwHg*K&{r)3s%i+PS`U&`eO1ndu?o^t|mtMov?P#Z?8LxPVoTbPKloQ0V=X(gqk zW<9oegx;Bi`u+tnQZYMg7KxCdkB~6=0nU&_2|wRJVPeW)F+yXm=7rc*dGXlQ`Pa9y zu)aA*KsEjbSp3g?4Ho3sMAR4Tk<%ePZTv<0PF~wq)oi$-HEW*T_SiSN-H^D}TsH6bLnO&4M#2AH4t-YV&DDQrb?TjFWcmTZ^!lcdtbsT(0YzaQ zF_=}W+7)yPj`QCB<(E5dAg3}tRsTpwh&bf+=QIk*_hWIs@p6p}sjN(OS4%21d*=t( zQ{AO}7tx&)Pk;Q;-xw)nnFT5r2_Vk;#jN>?oH9>Wf4Zd6%yHY)2E@&MnltKrzQmTmphBc8nj{)x^hu13SzWO@C3-n((8ay> zxVK$RiC8e+(Mq@xS4RA3{N!)G(Wjx9w*8j{=WJ-kbNQ`t$v}Ak6OT~f?R*43vgu#c z%Jj9T01josrbc=mZTcR=72HjB6_bOgS(X(g(%`nfU$yQWI#$c*ymmzNEyB-tlO;X> z9-|{J(S;_i!$7L8IU4Dn;Jn2EM*?d*QhK)dC#&acJdN~FV5y{6BTs7Xa~GR@zp4l7 z^zs|RKANIc9@f90wnoqyMCNtlt}y~mWfjLADLix8EyBdzb1kIhVxmTg$yU32_}rNa zYiPpfJknQobY~RSrxDi6O8Us(Fc1|K-ZbCI-a&V#FIFlkT+{EJ?Hin3m-(dfhRu?Y6fQ*Po0N_4~slTcZ=v|i;N1mgl?**$}N%A!Q#J}?t8!na+M%(rMm%R zCyRYXy}UXoI6eaX4#7#lCGcnIGc@u>ubWumGX&dWd02)v(p^zQi?64*x2#mggBkI0 zTRNQyijK3T%A@K(nL-U1u5TeyDF9h!z=YxR0LVUv$jYTTh5;{STf_O4J@X=`fo5da3FXtq@BD*5 zuQhlSj(P9BkEPtu8(RAri!(zAy@-`BSfCW-i8TDcUGk{%u-E8wbn!G<&K$OU<%w5K z*BDc;AvL(=A7mZcP>}iVew}y1I-rm*);V~@*R=vQvvO8VinId&h-(#HKX zdn4aL$U9!_F$;^v=5MgQSOW(+#D8{V;s$oQ03VE}bU68GGH9EyW+nc416LXymR*q+ zn=us`;$eBOt($+>dzS1sO`*FJbyOSum{8}J#Kg9_mnVv36zG2@B8`BNC@LF!+L zb&1S#<8`T5=t_u{E<&nw5`y{y&jl&y%KX|Dro+Rngy=wNgG}*(VloMDE2;wePCt926)aZ=)TW` z@enIg3_U;BvmE7aSsFMjOr145OBxrO!BjcNU0m(8oUsJ~SBP-24Y{r$xiI7N=cw|) zrp~FjEhka<(v(8WUNy&3pTKt=c0}G$QK;b15f1+QSV0F6h_2?vZPYW!91# zfdP?S8v5~~xQku6nnilYQ5{cMa~eb3Fx`VGoACm_rtPQDL;%4fi9dMF9yEp*>eI2hk{Lj)EX7BoE|-@ZPp!_PFr zy>8=0P)nKYVzuUZsO`?3K%=x5R&^BWPCJ zJjVZPTey`=tXa?D_#Ast?ji>`Le3=%{EGsso;%b~sntjAv=77~CYJacoYst)SJ z2UcdFdCL=>#G{>KzH-~$SHCy8rXXJ7Jy|Z>*yc0Ws>`V(%!=EY+@2oV(%X@9$BGWz zZJFh6X?i+4_|rd3wxqJ#b2-{GGN*fbNPvkrvO?bJSi){%P;N;$J{JK82soE zR1P_q0Fq;vPjsU8N_0U=+*`pkuVJ{70Sq@7WT{nq;LMfN%yaSFR5nGcg(+`~9^&fw z_;2)`3(cFN@ksr~AN%tGy12zbO_5=K4ecF2#;46{bqUYOD6c7rP#?ip^z*Y03WOu2 z26Ub2t-k4gDz~I??f*yDdxkZch3mrOxJOjlC@7t%G%1R7f)I4*(nOFBk={j$NC_|s z(tGcS^co=)QHs(7gx;%^&=CkB5bC$yIoCed`SbmqK~2b;wVvm$VTp;uS?UVI&RT{( zu8E~=^lRRw3!bhon1{cr)|Xw)&;-;bwk7Q{ckqce%2z-CghU$vAwd4+tCJNNy%Bo^ zp9JG!r17pfij({?s=j~W7_{?38^8XSSC;_y&cBxXtym2!QLUn~DG4jw!z9Vg=vM_h z%-lp1qcH{;B|A4$z!3*bl58oG<2yu+ETjX zR~m(4w!rwVl0C{$mXS#GI$Odq6*s#b=g)PU4Q$nVpFw0R021ke|0yf2RR}TU`tYYV zkY7TKO|<_h2Rmx_sYrH_ahTG6u*9k@dT*?er{K11q}ZxR`IYhv&5Ffw(dUbCoo*jA zPec{p24=%RNjW4JgXTXFF1l*C1DHsB$JB6wc>hAk9#0_{Q;28ln*LBm;2RK9vIq!n zk%RWNI7@@`>aHbPd;UVXxTVn0yx=8GI@t#l()B&~6b7_HR*JoY>uCS_u;bFQkDKz4 zO}T119dopdI-PAHY_vfoL)A)gM zwr3!o^H%S*y6cfy=iR(k8X?5crw)&Rv;kO#et@LB!ea&B*@3d`>i}{&BH%QGvC`7KndWqy`~xx=~xl`EA$p+ zr;MlUKGLU#O)vb46^nf15D#pmPhYsjdzP`cl-D?pJaTI=g?YP%gbz za;OmBz_YrBa#Yu*V)xA`k5gxT$lnR^vrw7_2&w4=a`eRtN*wK6%5x(SIP9X9CVCA* zJwdW}6wnBjo`|i=s%MLKVh0J_>V5eK*>%qH=g4icsV^PfC!Cel$XtPzkD4rTfatd z+&#%9@v*2johFu1xcY1&nG#ByMPYVTWz^!gZPa9y(?y0>zJoPn>ryGO&bkrHznUwNg5r$ z@8$M*cS*kx#diQxHiJ>0sak z^UK0v^MwpZEaR_Ob@y~_+rZJM*Nl5wWTK*qSu}K;j$e>`zTC_q(y#H}q*Z>+`e!J- z?BijnPVonH^EopZp%ehXriRLhveYo_oQ>aF81rV1OYU_00V!lF9mXF*zc1(ol;{+H zp28o9nOt7;YQe@?x{k{?1@d$#={5|}C-P7b6y_#;Hk9qBOxbcGP?Jw-WyYkon-aCz z>no3HDlOyl14vxF9rZDV&V>iD5J!a$V_JkX5-#SXd2UZ}~2LuK(fz0`ED3KUk zWUpm1r27i9SaVN-PZrvmD}l}x0J)c-pNos1)bLDTKII?hT7lg^k$0vuEXTi}8)shWo zv?2bgI;p`Y&y#B}xp`K9Baq%vYZmcan^=un-a~^K94IVXL1^uJaC9vKQ+@9>HvuFS zcn21q=j7Er$omLB$VpjAwvGQeV(rOSGNipX*YslYpbzJDxbXop%ykN4^?N+mIc+jq zEHt)9x&pzcv(pLo{aqjgN-snSvaeT{ED$C(_X@d{!mz+W9}LJMbMW4a^w8`M-)**j zF4ZK5Co2_pdh}hPNnRFw$ZqHQBHV>43$^(FIOOU*?OEd9nIPN*YNIR;f=TTw8A+OP z{chO3YTv%}%jAyy_5I(MOj(*P&V8VD;y>dbz=YGhrO&VJc75?<{&d%r@S@Le@(NiGqU)Gs7rlKTrQU} zu;~bKYh;AvMoC=KePim*}WrwPk6o))6 z56Rj^?n(2>lD$9+%53*LF}un~aL2g}{88hvm~j%i47I;D?r!Mz0_Q4o-#E8jXLvm_ zc)ajh{<=1^E_HAM&w}KGtm^uXZCD1Xe8+PaK%}g@E9lWx&a=6xZn4#yM#a&z@a4au zc)*JTMtEv4t5SqCCJnt+GbQ=oqlkLD0=vJN>%H&q^Uert&W}+VPvR zg{`eSY^ygfM^h)2rLf`(qZPKR01xWARw$W2QLov zW}D=%#t?7EE@=)^xRw9Z_X`uO*Ry1EZTXA!svRPMY5%tJa6T8+A38uR32@U^ut|r5 zb2bNDe|UGhT0_q@so#HNaXuY4+3hibWU!0=0B1ThctM`+NG>(12MhV*#c9a=6qlyY z`gsR4%u=gAId4Q>vk^Intv1DIE!FI*iWM&${MsMM(3OZ|8#1(WWVS_i{EvOUa5e!) zCk;=g`wLS4`f>@69$`(TH9i8EM*p3^I6s8MntU&j0u{#p2b*!|)75>A=aWdjtoG2G zlG;ES0Y5Jf$F+lPN#Xl{{w zYET2bP0}@{v=4vyxs{gpzwO`a>Q1ck4}Wxnl`kiIUFIRV6|Tb0BhePC=r0L^jQjtC zI{?>XFgtY3_#WE-t5_&Ijvd|H@;}{{!q7-KRp%T%Zt6n~jsSiehE+}4f?bhOr6sP( zUYXgUw{cXV$W|=QO^7no$9#}zpl|!owVr87F3Of}VcCxKW>d^m!#~2mi1l^3MAHju zLqttl{>x-me@8ZzBT1PYXm$IJ zEhfI00c~Q!6z$iHYF9z-;1;0+w2d-qw~}ITD+erZ)<> zmXyLg;#xE_e~*f(TF-q-2HPddBd_U}unhJlhMk6e8jx)W5q_V5cc=J3`IMMOnP2%9 zFfjm&lz=q-06r__@q8_F=Yk=>nj5BRHP!Go@@~11&u)8%{8Hr>HXl3?LMaxf3RYfY z9o?(DD;Qd@F?)w0l9+lFagv|*%UQZAayGkBW7B}#vUs-#jlBfEyM~@1KwSv*V_iQL zk`d1leS3dBERqah7ASx)2ORTYcaaAQ;e7)41E&gA@eUAh&)$UuS#)7*@}5;AbMk@z ze)TF1b!!;0GmParmJ_(^4+TY% zqL;ue$O|x0EEjF^F0m;nx`(zjrU8-k$Ph7X{;53>^RuM~r#+j~wA*c#LlC%d0q0r4YeW!DZ)}Pz7NL%|@>ibASY6CLm}T@DYT%BZ_Ag`IJ64M4 zG0PKLSg8Y6Hjr2PpG*s|vY4tNlHtR;BEj;Eh2!QGjxaQU+rDnsPD6MzFoO|)&rXlN zYZPPJ7(r-%ho1_;7lC$!dDxyaLoiO9f%nTo%AeG$Vvm?5HRTen-wP_cqQ0GX__e@! zQuVD?daD;-GI!_NU~VNi9>Ect_rX-d=DuE9GRmwyB|MZ=YEsoru&9t9%)rgbFP~UH5eqBUZx|_q;9m)(>?^EK~A#<{1NDsowzUS=f9@>UB?%3uXhB$p2CM)_KdajA}cJo1feO&_k#t zr}?N|aG+FA@N|)(IV7oc{j%%HPE@r!2o3%PvQaufj9&nhmzqe$|L~d@O^)3@i0Z{M z&>FA=e&j_8l?Zr|M>+wyvb^K`UF?}fA(xGRT)xDEhdV22;w$w;N?H{ePydc}AgsOe z#|$W<0(Evy`D-KuqmH5}8t7m^*hAYXc^`t1bqK?22NkLq+SSX+3_c|18-L=T+H2O0 z(NQJlW3P^@6k2ay``70K)>0U95<|PEO+PzCP3wPsV@8U03et?5Dc133zCLa!J(Dv^ z;H^V2p+UG4_zBp5x#yeXv=G(cBV1=W>=Or*-b);FbAYR5G}p)_TL*CSbO@&5OkswI zL7Mj&em#Cs0EZnjf@^l(HdSX2=Hk9WFVfDrkoZW&_n#`2A)bX%;P;Ypq3HvZYA-K3N6H0cbp)Kps46s_a?g8lVX$;Ty~p_=@H%q%l^9ELj9j5I_72xo zC7r_BK8|-lzXFw-xq#L7Gl2C0L>3g*&modD-@;E8&H)Z~7=%%PFXrG^7Ypqu1|;)E z$8o1>5-mZcvdV4G%rGoe-I3C@ z=DRAIa8_Cgv<#DqrW~`%H&?r|n-$A$YQ5%_p4+v`;VhYl;%R|;r7ty-KlZ27nNB7u z7@D@V>4&LLAr=p=jVD`-;agUV?d+R%-(^KUAVwD$g_nv≠5|?{c3ev5lDt)M~!) zn)24rg@zr^J##1w4M-kr6JCe9u2&k$h9>sl^O8C1v1j*q$*pu;buo``sJh;Nqw+Ab zP)~|yVc8vc*FFI+AymHrWkVAIQ3!pXjCt%-Bx(|eQzN*11bVMsz|MCmKx_*S^m9Pk z(Z3N-%o{9}3H2fuZ|ek&*fyN%<_-~B;zcrWLZ?~!12bbpmzpPJnd24!&1y!uohP{d zASkKzsT^?`)l0`Z?ykijm2+=zYo{TKv*0pu2sCPwZ+(B|>)5;Urc`dAZ0oN2#Da{0^SK5nX<`k=vByZg)E6t(i?p zrfdzoo(U6nbz9J1%;}3=eoiGi2+vGFR^4R<{MRi=D+cbZN}x}1jk+pipC@)SpxB4b zK!w4Lvv+~qfZ58*3R12Ng6??wTem{Rhp*h&6mg>aBvdW_#-6h7h8DY2zt|HyHKFI^ zjOhD_ZdJEf%sib%#kDs=Ih%G5?S!h+G(JRk$C!7E-C(B0nf6@?M^4d8o@QKpO?knj zn?10|+8r42>~WFOBU? z&`SvVz(YU;*{A=*M(ciLeB)P$NM0TmT9tJYJcy`gwB27gDoB6*=O17eRK&rHorBvB zr0g22>s&XBn#EwMr$gRY1F>1(i2oAOtB@l}S z(cXM7OJ1!HgwH7ivZWrT~=|A3Bd0pqWKgI=B=3&F4`0KyGar(%NB>$Vnt zyHLmR2M%P#C}EOYmC0Y#RjMXAkeF0{L(1rc6T>JK_`P<}&`vh8?>1)r$FJPZ%QfX# z#DG5%?zf?77chiUbNaMt$6Aw-gE(A?pqJ~h)?hD}Q_m{=4fn~D`&X>?_{+P-5t|~J zEY!;B-EGZkjh24!L4nirt~JP}0jt~Ah2QhW9M=Y`kapmCOhPk z??8?Lwag!Z3+&ButWrVCUtP2Y{}(_Z1<$N&Gf;fE`Ing!DT7KQdR!81{Q4YRQBb5B zr00Sp^7x|$$$b^OKbb4Yyy;a56bm*z$i(-^*2EZMLZMi5^*2f1N=vq=hD{ld<(qUp zuoCV_UW=jom3W1*83V zxqZq8d$=4!4-1`-m&=H(??`AZ6MLhtyQOCgK?&b{=?QP%^5fGwVOeQ$L@&nz(i=%y$zOi}0`n&1F91LDdFj>U z!mJOc?+aMMSkS(X1kbR8QjXq}ua^e;Y}oyW7;SxA98H1{ph}Gc ztPZ=tKJv{qqNlW4{Mk{Srz)W)I5URRYe9yu^pQ%)Znb*+$1JM+_{YAS^Xr)wgT1ZStPkCyR~EH*?)y8nW%B<>MO>Jrd=8)!x6B?T0}EAc@?*Sht+kO6JIY8bl2s4i0~pDuGf=>5Nv{CP=F|x z5rO*3Y|%&a5D7Q3aE&u6oK#&>@x@1GyWhV5xlr^OF_0S<{7V!*_Hv1qF2#tBxogjM zAJl`ff$G^%fJVLo7VKMoZ=$F5#V+1_74uuq5-m`9=3-ctSHmtXN^>{cnuh^o^(XRk zp)IvTv|2Q+d>nsSz7eWDWv1ItnTk2G6Cq68C-;}|(t^2AQ^Pf~cgbz)?+0aejzgy_ zu{;No4^{B6$>>R~RayxyB(wki^WJ%eocDp}Mx)Igus`Xw~l6^#V<9Tfr`gRUAXqxk5qTn0!!Cs zY>B@oSUv|XF*7jz{ii?$(>wUWKQT$xM1jW&s=ovnYdA0~QXknq65_#~Qap`$bw@f|U zY=q2BaOiso@T5$sw=Dqwi~BB%E-4bl8ZwY?;j!qhc@BA6Is}X3mE2BO=~`m zzhU!z$+MnlN_NSH^Strg94QU}A&0j>HhTxqwugX-XT9C0A>rNe9YpqbXFztn2aFm} zh}VCf!`4Jg*+ZT7$aN!X8rUjqeWTK#<*BTyc$@hzcQ;8Z|S4zr-qk<#ce$~y$op#-fq@p5>(C?RxGwF zAAS5LD$Q!mulR!6Tgc7zYeW1|qtF1cz1N3ae}1QYd@KJ@8cug}oFd=LE&%WDaJ+s+ zpj~+*Hc6B7!qzupDrZky=0)}=_X)G$1@PM1pg3^Q3h^^BIgOU{g!9ZWYEaC$cWCSr z*Y`*CYj8HV4t-7OnW>b*JCPDNx+k9Yt69oG+X|JFK^Ch1G&KiXx)3#(IX&+}bn z4!Nj?GFFfq(fSvjt}1aq@rBFUJrBb;GLlga?e|&TYI5<&GK5M{t?B0Dtgp7`u?RPK z3wfH(hFVi{92f^O{EpW>0U^h?>uD9t@+h)2DM0t!3&rAAAy9mJ{BkM3otDbz)Uuv(dy1t7ep{{trnZ|rco8pfUw{1t)wcuKCFvQWP;f*mHIMvQoZFb4`>@po@kpC2bYxB(pytaKinRwC z?(mB4Pt{Eagh58-`cz7qDcSh`M1@2)w{LSB!*-UJNz(>`w^b1gJK(Eh0pjSOmR^@B zyTS!fSr8s2TXS~|mh@oGR~(k$Aak01vF{Hx-$GHjpHWeKt?bUygv8c_Zr}LFR#m2> zE}MB0W?6bc^rFG-OIO3*KQ8A!6e|J#Am|f=$W4gk6gT@yC;E=LAiMPmr2hwbod4|}K1bRqYp%}ynPfFwLo-FG+RP<#wlse3aQP08oHuY~ga38@>qt^M z6csv8C+A@5-Ln?EFsPaS%@XWotg_>||M=LdHCDlA%p&Sh>ZPr!^J##oAxqq*Vxnj8w^sLVU2 z8ufjEa?0J?an_1gQRulgp*22Y^x^3ju+IQ5_B9R(o zpMj%Xu#p(Y&u!-zf`e;D?=J4`>IFqJ0CLSD3VsE^k#ayU#kUrZYTsMlsQX{S;;tX< zZS{)hu^yUnHe#kK8lLJ$>#T_!Vjkag4Q(cWnutl?Z061$UJbpr%0rV~&=b(PScqcv z&`>PfDf0n`-?0FKxfHc@ZPmgxd3a}`24Ibx(n7~yD}$p~(h@CnXN?dczuUPibF9=a{@Mk#uJpM|(H&rBd0he22(8NFp1uOu$e-~+vdN|H`f(c*X-mti zLx;A$EO~CkD{cBo%ZzOa78X2uNA)Z z>R)z;WqV<__@U6!U!Z#F3AhHdzyz>$_|ogozlWfMw*fF{AmGL{YHaGO#du+2ykc+% zk5ic4fhRL7K6>;*d-%NKdv;adaNI|OQln^Teu_)vOFZ+(gr|0vUV)1Ls|7fC>46N5 zr2FF(RNZ$1C(wUkzJPxKFR_|I!Tb_oT;$xutz{^C01EX2-Yh6zpp(^2?W5QeDWsRf zL|XJLow>`cAiDZEP7dALtCP@NzbJ%s$8;T**|S+w_)-b z|KrH>z${;q0hpgJ1GOPMT&{&l)iBD1eg$N!|MLxTBBOuz>!a8jxp)SucYl0pZ`o62 ztgd0tvV2HY(Mf@Q3-qx^z;3<=qAqd)Sp)?F=#z&otpNqL0ze%1fC$K%T=QqXXTDfQ z=8O%k|A)s7&TO{%a&Z&^t1-6inH>?s4*>r6IH47fyRh29zK!jg|_8bVYdO|@5~ z&x>diL^p0S9$-yJ-vk7V-f7L6h3)x#nFt|GM^r70clYhyC(lj{?=}G@#RFv5OaUX> z78rO~Nj_Dmo5X{INl^6Ugd}(CIi@?+R)Xnw8q}$;>XIx;9O*te{lmQEnsaL$JZ@Zk zrKXnT{prtW``l!)^w`l?Jv8m{xaikQ`r+SeUr#N+MV~mT&nmg5#p0fR%*XlRx`=Ed z7$CLlYC3G(nFODzGX?9Lf1SWvd->Jg{I^i0P2_p6pZs(W=8J9za7$Q$fRI95=Hu}` zP`Es8n;TgoG?HO5o8{|tYNL3*(tD8>6f$|)iKOG=?Z??a?4#CuHR-hM=^*e$LQBoQ89R$3|3O?}I4g+dWcl3B54C(}*-5)!{GriAB_*ZZyDQSx=P zLt#+(MV>ol8v%3g7`EgrU{$z zUd+wocA`7e>Ff&h-Esc@`&+3D0A$2LFT!N-=b81|x+LMxi0o19smQPR(D&ghSMO-| z9&y0^?n{B-M`7=KQ~u;+|4LB0+zN6%zV`Y5Z8BuJWoJuo!W+z%=a)G-@6^!KpL$s+ zF7;=`iY@xKUP6G=uE>QVN0m$ff45hS>2IseFJrK^f5Vo^{gdBxDX7zxT(se%9R)Xe zFb|gE4Sj9z_{KKhBbUJL8>II5(yxLXwf-al19Pw zEg09TfhId@0tzqK0@A34Mi6t7iR7EwUh9}|WEG3-Jkbyv6noF#GaXrB8a0}^-`HJT zOMwy@(_y##Vrg|ze5_R$Fv`g?JE9o5bE8~VXAqQUu{eTkm0FOjF#UL*tnvMn&?7hN z^ic5nySh`RZ@pc{=i_Y?VBy^cy((28->jwSpxilfV#lg^TQ`Zh#K3HdH3&ZyOvg63chB(R#DO9nXJE9V)L-ZCxwzN|8sTIE3Z`>&vrg91@ zO!vJ_D^G{*9lJzO(#?j|G%6n?hGeaW?+QuBHcu@Um;Y2wlH!MwutCRTr(wCu3)i=r4^c;@rBrnoKfZT?Iu zN=mwceW4`sJ^=qrcv{PClBKK?JEi@dg{BeU7e{@PYCx=SEFTv2eOs@ zm+RD`D#H`I1JJ_w8J6BeLtDy$WIQ?_` zS%(u&b+gt$n_C{q_EuNgL)3yV;zpY=|5MB_A1ZHaD1y(M>5vL z4+Gpmwj;}G)aN%X(2M=3^gTI2*OCV-Lk#)O15Mu6LLu62|N8o zu?-z^)Z!CA#ta?G?Y+XdrM`bYfB(qFY3prY(uDNw=FY8``w_m-D+7HIopXmxhm#*2?B}iei=~s8}|4vfy7u`fhyc?&c>aN+)2T&c<0lq>>WR zsCJ+|njp)Xyrj;p?{2^8R*DF$Vzz+@Z@`By$v(X| z@^c$Z5JHVq^k1Re3UMEj<71G`u?1A{HP9{h8#tS8)C&1&cHX>1juzwPfpbFSA687zj(sKI(n>*UTS=4RUNdk zy~oz2SR1`Owj911irT<)oNAeRouxL#9@ubbvPt8mhiRov0t;uFLEFhTpipW73pELj zRh!F~FAwV79i_|#x@lI3{bp!|8;5?vx&SB>lUd?S-ndk8S_7*>~D;Ad()vLY;Y*jX&FpK+m(HyWI7K(MixQdG*m;)rPkRv^J#T!nhU!2sZmsXx zCbACfM*W}{P3HTr50pWB$@(dX=(_6WneZ+9wbcHGrY=)KN;5N|SK>;dy-N1DW?w!w z0fu{Lb4s(jHoK$CoUMu2;t2m-*5XQzliFe~V{M+q>#gDr6OeWCSTle6;?_6?gXbNvG^C%&QHRMxsl>kfc_o> z@=*P05PP!?{nDVWr&<6wc+2S>-IKb_;l89Keiv?gL`f6w5ZU`eJZ`eIm43bZmxcJ) zROjvyqgC3ixCL1ZtGRIMJjdCM#-T~+TvY$WuR{@dc6%@Cw^PV*SYfoeen4mRTHL?p zeH$&=l#`x!nH7;6M|eShJ777e1^W1DNTb?^zm9$JP1sYXv1le@aoZ{Ei_NBbX8m>a zv2m1|vvXD##r*h}6E3hm)v(9MY#ltbzZdO41GW4-UXGF50&~y@*HdjS*>4S={vzI7bdz|B zcswm-kP>#6cwdQ0QIHOADf*dp123W0mF4Jk$D3$i!Z(U&rCYG_cG!CEQ>0h?{^4^( zKgLD=ZQ*fR-DNY97d>7w&L{x6@U(K@_pUYu55}$(Sx5;t4f+zdKny)o0n+4QLRK$j z2-1OADfKj&2hBh9{s?2k!>sHf=vJoQC!sHVuE^mdZnc}RZ+P+#9PHxE<`g3K?1N9U z;I;!lli_zJ5k3_aKj*HpdoACX26s79tmNK0(jFPjzNxvrR{NS`>Z18rDN@sq5D&5p zl2cPBq16EtC|85W=G}7Y+rtMQ=+5lY{)?G6sb@&Xo@Bu~z{pNRJI8Ei`sRVPTI!H_sNd+JI)@mrd=SvujSzwtdp7uBIaJ45FXwzFrj> z#(l9QiZtT0qGRKtUDMY?&68pS9#u-|R9{DmE2c`y!}T#0u3r^v4SObn%-IiWiUe~S zY)<$pCethk_71hRR|X}N?4h195{NaQE6~h-4K(~a#uXD@iIsw3ye$lP7i{$L{nifm z@v-8#ajL|C+2yM}N-J*Jo8Uwi2LU!9g}BBM8^`sf_FE_gb4d`3aY*4ZZtT~;3~O{; z$5XfARAN5ONO6vX#Jh%a$qmAlBJ*F!Hj2nV74o4urB!O`{Wzyl|*-E*y zZ>f5!uvMUcjLe$IesK#Ox%EVHQ+7v0ur#6YQPrXn0^2qtD}pE;OiooIe9q`;`(u=` z6se${F0%FHCCTb^+#$QJrno@RlB|U+39Urm%8%amY0!#(iog+X5TVlT?NpmAArTB< zxCWsN6QA+#bAK(}noP#=CLC@F@CFaP_fFs74}%RViWg&^4?cpGW>oA^EM-43`@rVf zb=PAx^WD_1Uw33q7)=XcgCeQ3BX?$zAbc#OSL+YP$oWHpaIo>1{+Rq}7GK+zHuk_B zBr<&32K8$s$X8nnt_Rh}iLzizbUT?@Mc9B|uxH(xUCsz`F}IqIYb4@w!rZq!w*6Hi&=o6q3;V3?!IQ<&Ho;X8I^rSw7VL<>}6 zb<%5th;K>UGjht7JHZ*2%O0~_Dtn)Jo%vhPB+sk*9XnN~E-Y6g@(`7;#)VGUWb1lE z_T{QWWq}+)58$nw1nyBsppc7WCzladA*cb|8?_+%o_5g+p%fZri&LCi(V}|Bd^@;H z^Qw;`PY)BlX2NAP9)g}OtS8nnVsK{sI>F3({)Bq{c~zsVjOj9xUT&T)MV8}CO|PR6 zQHK#%fTz`9_dPE>eerC+9#K|1|VUz$2O2^YS)B zSagYsqEW@k-0jJPVvamoGDmy>6D%En>^q(DiZKzf!@m+8ao$A{d(q(hoJt4DZ*_!P z*HiRT`V>&D^Y828tNPf0wNd6NrOk*wi;ycrk(RVHG*bXG1j$VAh}N)4HrA__Q}z z%rkbjhJi8Zu(!iCtMX@Oo|A?GJZepg=Dv6J&KVOq0NX_rYF-seSOVlqHBg;S18Tw< zGyztF?3f{F&nwQxV}_zFM~|PcKdE2ATj4P&xst-L1o5gA5nudsueLRZ4c5`0V03*A zWa-~$!S&$*!eyQzWUG8l$gRT|);`kN#i9QVkDv1qK(*Qj^bI%4mG#KB~#8yY0V#Gkz+ z4w?C*4v8&UpucbeflVZ!!nrTozP4#17L>QK}8k=e}CD7$||J;wnU4NV6wE)yL=pVdAE@DzAeFB|;I(dd3CH2pCU$Zvrr+8U6~;rl;Mxxth9yUCuo-s6)KCy@M7*YoguFBEHS zRO^`9xEJZnN-9s4m7aL6era84Z`Zx)M)GFS`uaNWuR6Eb-fwds5aGwaBvKj92?pj6ySm`8ID4D1*w|URjes z)WS5hI6$bS-S_RWRIZ2A*!;O9Gx%{vJYS5hq&~*4Cf`DJRo?NQGW= z{k!SXi{mPrCmn@zK~ot$#1Mfjsxy7rv-!h*j6>D}}de|E~0s zV9aIhna~N~36rbUwDSI(&7aZe4b>2mz)ds#>(?urM)h6?BHzU$e|hOaR&up*X?vOX zYw9fP5n{Vzloe{rNhu}8_c|ydsJBjB#1b`j!qq`VFGS78S(#&ecqk zNlJughJiQm^cbxL>@VlBhNi7cLjxtO`yku$hMnYuitbd%RLJxHR`w zWd|=}@xB9HT7FN0QS<{h`@znONEfyW1HPbc;P0>k@}^8cR_GmfY$~`|GY+(?ie&^T zPDbn=+0fUm{ZaHYpKxvA=~096M_4;2fvGgHcV?eY_I^W_Y?z+tAxB&xDj^o_Uc~&I zkaBK&goxN3m2RXidYwzj-?FgEH4m(`w&TWbktRSGQ)`L6ISrCMotn=`n*+s7Wv3s4 z2ru^yMg>}9iunWoGV5NslY5x_dMtfVp(OQ0GPfyz_uiQ!4FC7{zmv#6wm=Pit0QO& z6u0Pz7;v^ni;q92dNyNl-naAf#pT%|2WEq0S8 zV~bX4ZozmpcENP1d@wdtMZ!~0ulHU99*XhZGMYb5N==mkQXJB^@y3c8(}L#o8B;d+ z%~6!QOL=Uwl;`)orL?tSs4I6C;9DNxDA!x+T6CPQy#_>V(39FL)x}dgDM=oujR77xajL4xGXRcJW30D_7yU?_PF4b_Ej5B|&+eD$`+5BQ6v{MCS zXy!HGhH{}#F0X1rq$Q)WPIo1Zxl|Qd2anm)6LkHiM?$N>8>1#Shz66@K3tDWhQ-#i zp{o+$h_8KCAJ5xaTSI>ZMAgX*n*`wdpFWHqF2z(9tn#JS>@!C=303ZaAj&C-w5ywO z4L1Qj+_gWiun^TWz0P1;EAxoE=J}37kTW`wvb4= zj8E-0(1$=srq2?~yktZ{a0x*P|{S$bN0u&gOPLS%DM68%LwR~1&3SWsv3LdKZiU~Qdi8N_fp|<52c+jeY zBS$cNUP-Q@f6ju_Lo5C)<${(X^B)_+i-&Tf)KxD{lB(c2V`-Hjr53t{K>6VeG|fH+ zDUFUGRiqZvk4QJS(2sG_f?2w!V#2m1_6?by>9z%2>A5??qcv|~Bh(VQT)E(@J&eA0 zBD}}H7sV{r4WyKI5Gcc4SGy7ud6nO&XW2{SIPs>1=N7f)DNPSAU{4N%_%7u7rUdwfi+Eg z+55SbKcF7a7HSj5;2a)h1+BV;Rfb1+j(PGr5a6@q({6aQ&v~gT6<|u^s%uK zxW}2uj-Y&~8hi#mJw|ipU^p<_u%gEH92sS{51O>>(0&Q{gIAv6FOS@VCuiwC*NPId zWg0LPX^S}V9tej7j<79gA%UH(DM2s_f=f2HkZF!K|3R5@!^~D4qwLX7TE{nU2B37F zNoe=5w$45tDRcxu%pb8u=DlweoIBMNReDeXsAZRX$BwVPj9#jZOj}w;x4;(oggj-m zXhzqp{URPd(9)2HrybO_zp=j2L$96Pw)xMnBnO3!!0hdtzwi!CPH=%tSlx}sFdBVS$yCA70o*R9->hz-OGvgOZMNU1o zuwEEbLn@Rn69+X7!eQS0<~kO0)@kImm5pXyOeSW5LQJ`K0D zaZjr5I;?ry{l)4eL<%-iZ;;M`M{M+zjC-bc`&M^u{c{|X{kh37o@355Fqif6c|pPJ zH{F$f51t8+q=-1v_A=dgz#KM@d^i{qhV}28NlMKY!SOHddjsf0>7>s8M1qBxxe5&A zeZRjh(LlH)uGjI^t5*}w#Y*tcsKGL^h6qHJ`e3nGM zRb=_8q1W|7bZ12LxAtGM{KmF0Tx_IMHkEey8CPv0zn+Jm_&&sz|F>#^^Lhd-hLbrq z=fywE*V1G6Z0Kq6v}4)&$OE!o)YaVa;SLEVSZ+$y%qzdX42O+g^K;UX$hT8yBkApR z1eHCR{zWgf;~mR!UO$hz&-~C66zyoTrNB6fPA6d9{zzHGfcPZ-HyN?{VfO5YCTo&JTf0C%(oXrhO7CR;6( zf_b9snk#V&b`FoMti~h2#Wq^eNHP==Nr$@?n1DEV0B_*L#wUR9wAlIV$u->E-;A>x zj3uG&;e{)Aep_4Ot1^10Omf4qS~XLVTT@fI-@b3tH4^l&%~B3eBB4Rn6lAfy^Zo%0 zPS@9`i2J5n#eUg2dISuGY?_j!J^2<=K6`M}M{e3QmZ@ZZ9QE`j_0C1wWA*g8gaggh z;29AH=H`N?75;20Pofyd$uYH=Tr&N^fhiJp;c!Q`8Q_WAKvveg4e;m$M0!{19h=?H z;F(5!B#BR2(m^92AZnlv-YpO_E-HfIulU*mZZ*Ma`_ghL$&vE;PCBv_fdb4#w;tww z=ia#yIUesT>}8K;Qe&@@*<7OPE4rc7c#j~m$&q@j#ppmBUCHPik4T#dBg&ITS6o$~ zTB9kn|Ji2W-2X?@yZAHR|NrCfuC5DLIV8#1%E~#Xg@~!JDTJItSutBVmQzlft4q#@ zYo-Rm9}t zN};Tt^n8skW&hMn+1LK4^#Pimp>IudEHcx>S!Hlx^p10sDYY>(kqsfq4I>( z8Lm+y>wFh3;x8#I>6s&Wf1w-hw+5YbP_y|1f{&rB#Gk$Fx1sh)UJ#GCe-c?|^!#e* znipr?)P~dm`uQ=SI81F-q%l!if1Hbp>)wCv&yngHQl3Uwg{O@mV#hg_)C_J;Nsq^% zfIM8;N?GmuS*i0n3wqTaYV0>MEQUxsS-Nh_&GXA+geYosFy%ag=I{yGG>_@Kzz;+K z{|hHsM=N02rnIvXy&v%D1LMz~N)vCJ)R?-QTn|{Gv%c&(G&THAlNrLlE9kyGpqNaR312gC~`egNVQ}MRa^{}X-RLk+Ot{huH}HcoXKWFHL!$}2{6`|iGPD^&GfK^5i?c{{X!lAMiJxb-1SQ>y)}z?GTFpn>#0s9`LI`r z>REx!sF#mgePpEbewm+szh)Q68{sXZbL15N582fy($IXpX)$+wt|lA(sz^&jPc}-T zeR@H#t#~%lrQ6d5YKO*kT91#`tt;pi7uq%jH6ad{?bkp@GaygEFu?>0%eoumTtw(f zq)J7R=u-;CSp_+77ZOKEjZJS|$&@)33z$kgfJM3Bkcv1==M1~dDDB3ZE{_=+|9##B zrMTH0kGvlN1^qk$XjieLw9fz&?FC$VDCW4q!teEU&{srvOjyM;bQKED1=nu)oSa$R zV&|-_^M1~l6pE*K_-<=-cp;7Tpm6ttFu-U%=10*-OL%=umIAs{QK&iqhoAw}?VG_- z^W(Ml7`9DC^EfsunOas;l=!<&Z*sP0PI;?F>{voEavf+}OJ4(2b4=hHG6tOOhVg?@ zFMffy?Tm^4y{r0R-EaB#!p>W#>P+(4(d#EBKO{>nK2zG|TvZ19G|H+ef}O${vq`T9 zyzDPOk$tAgZBwBKlDkwX31C~P0K9cqY8)^T^#eT*MHSiZ z^Saug7d>6~z=YB7nOh0XX4qkVH@`wzKy>5DftmnSbO-07IRQYzo&ee-(LvBxBARM- zCui3*`T&)NhO2)J^SIr9qw_t@ik9P*({mdoufyTcfJ)8@=g>7b4zR>oa?iS|KHKj8 z;D||{dIHoUj@AR0-#BMj=3F|!oeG>9Ej2aE_exHyUe$qqH`lbdC%)D7{Z*Qec+>0- zaX&0tq&W{O*ED#*RS)kQQd}B=0oV!frs45#0LYP9TZ!rG?FBeP=tSUzS7=m8VAGnj zg#MEjb7?hDef!+f_`FLchI$24A9lILp?SfpVX2UV5s%-Ndox^<+tYl;ZG%ZnoSz?A zt){$xbZk?Pw20>_*!A=O{F}PR$ZYWh9LLdKfb<`%V$T;f4g(Yw-y0>@f7P*V7$t|O zUV_0i=M?~4*ZW?R0i(5mUU3wA@C$_dF1Fm))F|P^N6~jFCzUu-^%g4UtY=|HYuW$c(X$`BoT;gsNbiIYU zESRL-cF%#C6BYB}-A+gGHy3TQ@M{+w*F{@8wqS%Z z*VAc|xWhG{@Xv=p!!_`Yl<@xVtIDUjvnzmhiWhIF`c~pP zZo_k0sc*>dJ*Q+Ogk@oEE_gDlxTtQ;@1&W@rH^5Xzc6aa{PUL#4)T1W7E|tZ-_$tF zCdF2$_nK&X{Lvl7W1*$xEPLHdufO~V=&Ggx3Fb%?3aFS)yW-q9*4xYZp}@GH;nrO> zeYs<{y?V);^P+M$mt|d1@ zzuqF=B1=Btl}zbGsvYs3M{NN)WveTQs2AZ>f^;R#OwNVl)iv^ze4WXou;y$X2(x>=mT((h`!Kc4UZT67x0sLiJBUp zlc%Fp8)DFyJ+cLM5a@dWsD?l%3*XvI))Y(se&VC>O$DE>zQ)EGi1_xWungThI+q^? z6SsA?!a7GSGI&}3hkab-J{2IQtl4mUKQ#(e4Q zJrEB)0R$4R0y9hp9 z*Y)VB#8$Da`}1HaeBK%*L;mRKLGQN*^xRCk-!*XC5CpH;Y`f1Rz)lGHqb)U2VZvUg zFf2V06xupH=d7qWs^RnRQQ-2;nweeN=rg)>YOFsPXGRZji|FQ0oU4pWl=d8n>ks)`6eGc()%tqyax?<=DBuTJc zvahMK5tG+}TXl%>h3a-%g*Ek-w{V@Y%y_rR_`-jMvhuZr3+JC-823jj|7B`g%{~?< zoV`F9!|i!&mLa$I#0Z0w6uv$|CU7DHjy}HuyvAbyeNqn4Ln;l61^gU6#p*B6@wL8K zWv+SGbjVbH*FxVyb{1qjp>gpHvKh^WXm+gjvF&LfO||WWW#uxtp3EtPxnP0;( zt@vTk1ZIuS>k0`23Uj`^PhQ2UeBvkW;N|u{hEfk)=l@3*1Jpc;!xIBh(xVMrO?j&h zea!tRX9=(tF+K$p1D);Z>SN@$6^ul2u0PJ(37DR$cN-V<0|6yDR{%;TiF2|!qX-Rg(2lTda<)tK@+{6#ZCf;Ll_0&|);rXBr0$n`b{K~vZ5h*_x zeQ53XjLOK|pLCuZ=Rf!2oJ5C2h0=9*kNG$2VMQDPV%-nlp2x?!YOSg1>!YNA56*8j zbie;qC|24ZmODm=51{#P`B#_f7!gl8B`!W#uHym|J}wcHf18EhgLX5}ArG0k%dn_y zfwaF7Q>9e-cwS+%+eFwq$~sy|dgex!pnjXx`0pKR7d&XVVd2V-`k__ojS!MH#%SFO zrgee$y+uwfQ13j}r#=0H=2Yzxxz=)g1dOmP*=#@$0{1);E3v?I%Ua}l0uc;S zFSR2|M$lHx7g@BtvOP?KE&oM*`VIY$tn!fBBAjR3ycwz<%Dk#9*J$P@G)PvX<~0Eo zMKd^eHAcK6T$3E4*p{P%6FmN(i!%3V$B&h9e{2@~xe>amwsGKGFL0*y{aMSkbVie& zY+I$KzZr;V&Cqi;DmuWW=oU~O-3tRCB0wK8{mByF#N3ht5>YCEZw4URV{)EC&2EQw z^8gc|$PC-G*S$S&gkr1aUox$D1&_?~NDmYPwAeP__&FFG+{|lGx+1P8cwRWw_xFmj zZUU*9&ABRpD#BZ6PTkex5?3v3h z+ateD?42~8lu4c{E*`%8$BfNgN~31+g^R1bz{WQ`rUzrf1``jZl}JLg-g#^y>)TL> z7{Iht`-JaL03VDt(9w4&kVgB034|cUJZ{-V1LJF5zwXM7oWmQNF6Pm6OisW&C{1YD z_+lJh_sMI$sG@hq3=OU7!(tsa%+5*98NEFi9ag5&mr$9XV-Vh4alg92a2FV~CZvH_ z#r^}1P@ls$iw0iGqzUe%YaKlbp53+WuWlRfG5im}T`*_quQS)+UP-~nY0$VmLD;4$veYy%vNpA-5`0B77*I8M{0b$v_v zEpS-5UCc6y6MpSTb6{&_2_FO4hDtbBnSDrz@law*sIhfKnMgzTCICiE|DQ?a04Q0l zS;wr0>VKtr^#|tUG_~6HOq)+C>U(q>c!CKxKUaM16!Yz#-&rU1*jZR-5=N;Ih9qR0Uoce|N@(`~!9j z1b_aY%>|7GKv};1QTu4Az$^^2hG0H(PwVYh@e+i`ic^RE#4A0E#L3C4dbS=V8#^y)%)&l{N2E*;0ZA9&AaYa3oR zd3Qa6dre6{CJ=zG0QL0KP(TRk2?U(JWGBDzyuiBbENfp8I`KNZ`w#of8^c*Pu8H1z zd3R^}r5`Bg(Z^SucXe~FKD~#As;NB!!g!I{w<~X~vch%e{B(>?6)cTVE)}}fV z>&1lle0hIm>P1($mDzxE8pI(OU*BlPr*T*=V00KUqq>I6E?G9rtIRzH#Ff>YjEk&t z4hjJzMsh3b^ZiasD4iLu4M<<895@Fq#+0q&wR@*X{9o5hz z&#ALl+vQ0;;r+Ss-2$}io9OCNzd|8es?O&z$4l{#cRU=9AroA~H@o`B7C+ao#_3NM9A* zUc3PDbV}=&xwLJLmjp1CV_)Goro8^}B5DF49}XOQFTG?1?tX!^hn;UDZs(h}kczYx zXpR-o4$zLJn-kJH16QGRl%2P*kc_iA$|Mja6POUutT*`PZ;RSfL9QHPhGVkL>iPF9S}@F;eW`QLIZFU&Y;N;Yh^RGXh;H(AM(X5FHZJyDsG^K!6t z*XRS`_M9a{Mmj=2kjeaaR)QWwn&HSsaba`dH-J~R=mj=448q~kf$+$%I|$imhyMJa z{Jr4t5>fO)TC7m(@~C@|sEV**Myh->{()VSJmc~0iP2Fsutk89wNWSz&&N?MJ$4>h zr2Om|cG9`uPaS@qBUfY4+NQQEZc#X0HPz+vzzL3Tp8w@AVPBAaUkaM!`KWn^IIkxP z0OOo3A6TG~KnC1g6=JuI9oadmgGF*6k?w^Sbk5%pp4_PuK@}!cpaF9 zE&kW|emc%d$aYUmI%$;pQtlySooq(*J8(GWQXOeFhR__sXOJ_39L> zOu90jF4~$F`{}q>{1Vai$Yn3>3YHI(#E^CRTwu4`70CF=n3>VI`bYj;={$j~ zV+UDwYn^y6UdAvj6fBFEOL-Wv0Q7Iy0E@J{=rJ(#!ROk5Noq}MJqYdypRY3Bw_0~I zq(3TY+gI6=>3oLXN|jLS`^irpe{5kHb@g2+6Qt9!|e#vmZi6P)< zuilj_c6lm6)nfx9#<%v5g^GaQy}VDoZ~yQJI)l)MR4(Fe4dw@1_-@Vo!ccjAH&~X@Gjo-1{+|ICi`31iiZrqQ#1;+ zG)_GZMO&~r!aXARAjyJMgH#(ZgSUK0i*~Zv}Vi+!B)g+Swv{BeNl0mB=;cGhkA* zTfumavKUa>x0F1WNV-^ddMy+r6JC3PGr_ ztTix?^}MG7e2p~=$6H_Sr(k~jy+JI80_y)U;IQOCUo-+0TMfAa`z<_8R$X0#7wSaF z=7j?HitB^?JAekmH=Xq`a4T!<+ErbqyGtR}4Xt4Bd5Q8~nSAO4W zQUv4U{tE}|_~+%o{G)R74PJ}6;l+DJ*?Yk0<$Sk*ea^T8`MZL68WR{7NOj zIn;Emh8nOj0fL*_0cirKlm=s`PPvB(ZX)@&&kFq7WoVB-A@#QWom0Xo3k zD#GEQ7LS1JG*3X~(YAUc*k&2dO!Me!PUus#_h12;mhP%82PEG_d{f|8mrv?IooOf# zB>v?TJO}PmcGQn{Ky0|3-0KEP!I^B1{!>-Ciey{L;4%*9+}Yu-mmF^lW?4KNtHbJSbf+ZBEfQ znpnhb>`AA@{#_HhbIZrCka8iXNAOJ(zNR5}lzk7-pW#ThGl~n&+*?8Wqt;4o=<3=05)BRp$vi=-U zEAPH*w_(Lglr;2LL{lG-$v?@x?sOa6u4VTIdsY!7ElK4 zbG!*Uu67Lg4M=`CN`OdzD?-U;@TU&`dua=IT3Vfkiey5EArY5b&y)L>eViiVqS_T& zsTF-FwlQ_RB=>Rjb1spTg&kt>rzn-Pc|{_aehQw?1Tp`hYtbjZ)~+Rl3CQx?iy!n} zvNOc-Ukiw*G?V4oXRR+e&1ge%An3ab66F9{E;hS~EeSpy>%H6?W#T-iI zaxU;dG229tCS=uOWL3}{3@(kA@2J(uoTMaaWQ5nfj=bb-EH_$o;7CR44fsq$*pH*{0AUMtn zI~|F3rEc5_x3Js2ObzbhA{>7Z3?R#9BBDH~lP*iQYJJ-{j?SAzRVb@w~KF^s&JQ($%wTaMT zUA{kJMThT2KR(7y0i9kR93P&inKKL)?th<@A99oBKuwOjIb0+I#8KP})7YOQxkau z3vM#U#ckYt)RlrPbQmCD3bp|+e}QjL&Teic94_B*`&0z;n%)T^)_}X!4eZs?wUzD{ z;&2P(JZgemL(pC_b+n7YMD6FV$D3&}_)-u;EoTL4s>K-SDob^>FJ1pL25J87V*=AI z*yaACttU^@e-Y9eu_)MV265w45;6dlEp9yCOUCqyV3GW}-g{Oz-CUxOaGlq&R_5l$ z*W4E|zcwjm{r(Zrn$6?EM$xO5It9x@oA7{DI#}FRRXTh^Zb<4e&bI+D>Wgo0$@_f% zO7u*6Mx8_0`FxV5ziUnX)HOO=Mm`a#>K8@rkR)3z+!$UcaJJoA)mHD0I6v7x+}Ge) z8YduDuz~d1z~&9S^sY{xbT=PRqtUzAmwP(5-2`f5S}G7E@GnTAfxBH^v)vKFMczq6 zvxC2ps!r0ppEREBzHPMa);#h})l`Byw9Kp(pPcuYtMMhY7j_(FORl4g(8BDD_iHzz zKNT#&u=NK6+PCsP%$r%))tK5(h?h$>l@1&gUa44E%mxMAFEc%Z1AtZx;*8ECX;bp;mOGh#V8`qP#m)+{e;l2ia^qFwv@{}@>x zi}95yu-CB*<*#bkQOAW8r4X0D5L5**brxz5lFjU*^Pm$i#F`T<0OX12eFQ60f1f()Hemm>YomAc?W#oKJT9}X`ClczzA$}T_U&%aZu*Qhl4RkuZ{G0 z;d7w`Av1yT-2=0t`YVjs?wtfE9i8sO;}ZqiX^t^)67pIckk;K!Qw|g*j=jxW94*Mb z`7yc4#QwJRZ>1kc|4Ry6e0o3OOyI{4?jHu6tUG%_UVgp1F{mqkunZ4HY5D>uWProK z0BJsO)*ue<~+Q=<#N?-Va>lZ9!jg;k&m(`@9w(|xwK2oZ0_?| zXm1T3C!D9BF-6Hv4tDLx3KK55ln|kW5#{`%*N8F0w~cx!ygZoXwRkIdQ~}xV9}Q^e?hYz5D|bRdyo_xatNP z0Xh@(s>osMU@E;13IQL7I3%|mVAD=wRT-c-_114G&>qS& zg*^F%v_u}n+>1zf`_=BhGq$=2V&z>1y$hO}6vpYth7ISqK32MaHK<|DK1cf{Q2%Tr zOrkXl8E|^o96|X_Dfr_$MudK@jp&YFvTmfeU;AbK4jlJ*1kvYs9yi)~ki6z$r7RtY#f5T%T9;Z5!w;5|NG3! zh_oi!x0^IcRb4C57PxF6RLO(u6mGv%V^@PnJ?W3TY75SYm{K&`_Izub_`2%G zxZj_tQvis<>2Jg&p7j_K*GN>YTX$#Fg?+2P-;LD?-_d=_H#+B!;?S6(I&z< za1LS{-Fs}tz4aJY*lF9{m8UtSa?V3_r58f^$VqmX+Ah?lap0|=@aovr_zg`9K>FY* ztxtWV9iqzp*UOohD)7Su6~9o`C7C7~#$sg$ImZf~bAt73SJ&6`WLg}_`;hjfi3Ph^ zHH-myFS|Oh0fZoPqzt{Rnp&pGXnc^?aw>czFp{#KuUlHulhD*%C>~6cPAmDW++3IS z{iP^1uah$SZcb5;Homo0ZlHnwt4v+EW*nNoU7~3hypewBU%j*HIo<0CWSDat6hO~0 zi6c=0Zz$*;Ma8c^*2b)#M7H=m=`t|M==^6y=73jeX!;Vu&iU!-n*5RZa-2TOB7Vx` z4z^H8^U97VwC1Ew=>NO3PZpkcKrTpBqNUyO9OYh^6_yupO_@NXk&>j3v=pj4Jd~wif*)_AQ z3tjG`6h1ssz2LU(`TMXZtb?n2s8~P-B;zn6@JajBfTWncbTfY9sSai8pX7YrP@Vr{ zpn;fR4;l6-u)5$G01oP!6yJj=gkylF%N@^{oDmEz@6 z>nFe0=T{80i>vnef>UC))!ZCLu(ZOW;s8-($SNayEMW* zIlDYxeuLY=9AQ=6E!`25Csmc~d3CrwA#rhV+*}HVMyYPeITdw-@VV>(TUhBSZ9ja>vSItHfwJ5U|6+#_XF7pLsLj>`GFa&wN&5fBu@VtTbl39vdjyP3^i_Pg<8B5bs2;L~<+va$ZaTc5DLg0VgXoY=n-&XG9-&Po&Hf5~w@^_* zX3(a2wzWGn)Z9{7hE=&>hw>7l)BD+Y?}Vx6c~jT3Hxh6gTwfS5Y zw->zN8flWopiMY~L`i@W;CRu|pCz%uuyEN0(lx<~g`W8vu$GhoFYLaiuys_+!H>i% z&f&vFVG;H^Ieje8>C!i&BNyU4B=&29NLu+#<$Sc}`2}TIt-fBXEkGs(*HO}g*VoF( zx9MdmfjE6;6{p}E2$eM8cyEwE$8mtp_sgbz+`Wk%8^r?`pta}4?tw?Qz|m8eeX(IAjnvAS)4F)ae&%uRYJ@X7{Vb_kR>`$4aWf6_AEg4h?&JtV@Cq(vZ+UPiT@*Vu;;=T|lFdgkj4u8UTd61DUdLba}j(x$}TtSOGx><#Oc zHYGp-9v8acR?9a3?W|Lvu=_poV53UaMf&O1>y1Zqmp`VqlGv06Iy!og?s0-N57-FTZ>K= zGV7!V)I;?WJ39|5{DXC6E9YC!Ope!Z|JkF7N{xer`o*{ilU+SLaZ8kM7Z@i}C-zWD`7-&UJIcKXtO0;udM4|8BH1@CSuYinpAO3rr}Ek789Ag; zSLA~EClLL<7WWu5bxD1sYuBSW9JNYj+Rn9^O&62#PY875!~=O}UIXy~y6MiEJevEv z1lK7Z-K!GKy%NBk$`zuQ;4EAk;&;pAve(+0&d{TtTVwzrS4>E5!lPz_UmuOv%fGvx z66>kp_IB2W`y~Unu%nlNXrkv!CQO}5Kj4AXT!|N>M-3vJ><7N~ZlJc^_+wal;fup@odw<7%8hr{WUW|MaWZ@iBgFb+#rU({OK#WyZ$ zC2j}hY20qy(w9DWkgfAeHI>?Frca#EZlic_E2GnJU_vl9?I$g(rlWk%D#G~SNWi0^ zYubvRbjTpjfw2Y$Cn|kk&!BbQ@pBtf=3|P|Vi}bm%VeX&oI?%3At3I^q6d_{-u*24 ze{p|zrxvT0G{E8MzIe_-9!td_CD_6McmgcV3mn(HIAy4eLPfqhq3{5pBB#Iqs2E>FVY#@QpOp++8SWwT@RBvi6wAW8*`F#_f+>n%zfiq*$K@1>03q zH2;aKyOcCi5Pb3r=!Sb!E-}KC>=Ksz;3I+y|8VNQA8rwRP#e^vqkC`$bE)j>x%R); zLiOdBzzNA~SU#3oD!~CG_%Q7kk0GD5YUO!tBAI=f8bz{La?#0-wZDRx0Km{h|0?G% zbL=+QPLBA2S-6+E5!RA9yo?sPbcrzI9$#cG72I3QZLHqMv@s9`jVoaandwK_&8cMd zz#z~!O?sviF2d9w$t~5xEi0o-;}OGP%cTN z+7AW==MkjNn(&{Nu8GimRAlS>1FU@khpHjI5ZJy6kMrNv?w#@wHw-8560S^gf7^IlbMNT)5d;Am2-*` z;OiPeuN#38y8XPWvnOzGW^uHZZOra0m`-Kh<%cbZM;&j!dM_s2C4W$OQrNZ66w&6L6`g zGMyyGRY`d4>X9fU6H;iwYID7^qZWb)ika$p9Q~L3qoWd+fAgla+(0#vEV&h;W5WBy zDHM<$*4EPZHg^Z`uYenCnKBX@?ECz|4z&y#DAI|%d34hkPs!?wg9@EYhx8&8(T&ab z&NHmdc{R2jjx{ZC;jK z&n_ja&lh=01+#(tjf$=*=e)!ckT0&;obhr?qX46Y_Tj=$gx+2_`7-DX40Hx5u+Jsy z3NlUO4UdhOQAibSKf$se7#%NC(+JO({oi{419*t~Q4s@~#Q86bdT%%T8W1a56A?AwYPo$1 z9Di}Yd~RQqG^Qqz-joNUCW|NIY=sn`U!1fGdz~vDF0X&NX}77=O4W(BbST-LwsRH` zt!ubOlpX?$lb!6sIp=R}Z2mUFCfueTuyN`L?*!8Y=xtqcCMrYZ+4I!*jGObyJ49JH zI85+^_%Shi&8`1p=plAa_5AV6lzh)YK=6a&=Jth=%c2(C*i8>wG9BRm$v|s6=I;P% zyWjc$D~+%wGr7-*D|+|h6q()gp1n=KW1zZ5_^?++T;a0X_}(YTE&k2?2(Zv+$Ae@8 zcjSu|u&p+asqDgQ<#dRZm-a!k3X$DYKDwP}){i={{au1hn{?GIn-y*URESn|_VM7; zA8J=4=DT!+Svpxy&hfUj|2~}zy-LZY(2dlAv84VWmc1!>kXH!qt|4# zT=DugVP~hhtQvYFn1&a(MH-_v9k1nBVW5XWhC_{+*;dGRIMZ z54F;uluG_uUIWtTkV1IAHYi}gGCI}=6$fu0o%j-VmT#x-EUh#Qk<``s#DZ?wv2J3w zmRHd8z|(<$WOkhk*c7ApmIcMqsat4*Cmo8B*ptWMf7uu*8r5Uj~nrC~8^3RbHh{>FSD-`qBWKDsub%Wyhpeg1mjbITx^LwCYjHJa~(2_f!fTuBi;U{TdN z5BOfv4Q=g#7!#jEXaR+NpY>y3_|WQF4c4&wQBYH*#?d{>#^}``%Vl$L1HHPyxZ(TI z%1!pL)1N6KOFkoK_;DvN{Xdokp-9{`yxnOKUjIxB%~U^7^cKX0gj#9{8aVbe#v-@f z7G8owwt6d z@*r55=5tLD)seFkOWAZ54sip)$gIfN4hsRk33O*hi^2mbnK2W|KhhE8jpa|0hO@~+ew zs9y&^NI<-qTs_;zwah&^=dZ)Y+^U-YHQnnz{Y=mxM@jNdxQ*ICj>9|L;~Vu0zAb+@ zkS>NuY>CLbA?y(T`}RH}-OXpwbHB#3Y9x*J-S;B2a#}RiRp_uFVRH#R&ky{f>DFD+ zZiFIxoz^)xCW)IRE&A7Q_+1%YYV62n!)f$M~J}%XwTDPlqtGlhg;g(;pv6;Htp$($Go>Ew z)~TuT8DgRO`b6^T#ojo%Zgq=k%GpFd!tg+%u%>%}Rh){I+p}S>k6Hr|4+qS$@BI&M zNOW{VJKEuKB!PrPS zA&Yawy5KLXZhacokmVcXVPjcJQ?KXmV3t_37RH2b14Gnl*RK7o8GN1|gTQ${Q7i57 zc*jjgGH<0M!e#A+K||Bu)mliou_0cC_HM939~en^y=pqbRvd^;)r?$Qc%Pv0^#1b# z3^L9A%c4sg;6*v(eT*6!`)5^&9+ZO-GJ>koNfGy&HiN^f>v_&|U)^QOd_HtcbG?%> zOW6};nbL~0<=PhL3I_WW6N8$Itr7lJ^NB9YTNN46EW`GQ$2)Aiz-ydsl3K!hi)7_U ziO2oF(VK4j;xzKi|$I zB>Rn3oTEi-T$EZI>0jN{4uVZDZvJ;h8bs8p_kBfOp>$cY@2jK*ML<@lgI;%%kqE2YRY%24gtc$LMB1%6* z$7<#JjwCbZ$G}CzKJ(>>DY_u1nUEP3f_Jv-t8kdSBZliFFA5qA*>`V8mU}PBOP}(1 zB?s`SBD56)xE4|Jrl>v_;big~O&<-h&!Peas+$E-k~6!&f-A9arH4OA$)mkOD(cCD zG%O-x>4xOgC42YZUP#|`+?@odfP1L-tCKVK0fZ7iTVk!IB&}#(UQY06T-@qv^WE3j zmQLS}p1wItS?Fa3P8!? z1}U)BcWU|wZva1N_Lli!l~fIRITNQMh((4#B<{c`nja38348hfe>9zYJk$OE|2tfz zPl@D^v!Wstwh%UwQ&%bEoN^kQ9CGE9<6I@@u_Uo%3*{__IaE$L8)GPkQRIA@*vy=U z-)qV!*pWf-n0qpj_UXfN^ec$KM z<+l`NM`zi9MD7XveJoI~3`q+up|mqN6o)&&u6WTn%`x?X&;Kf05sqJc0U>Jy1c5yx zPO6oL10t-+x=4dm>)%_#)Vx3s=XZ}-H?0<+e!cPp{cY*=toq#T>sAg|r9-LpuNH`^ ztimuU55Z;(Ou(Zhd%pJPQIk6kfYj{8>WVL59V`Y!+)iJkq5~!Y>alu zNS>QCM!x=-5wf8T#TSKK28NwdU`_q!uVh)1H))*|&ady?u)n*qybsib2mn;P z*h*^Sr6A)Cf~4Bd@vV|GZJ^&51kRk(U?~we^*LkT zgt5Ks-D9cMs_8PvlomhQvOi)TvqdLL^1qA(MOm$%dK2IA2K4`h<%wu>35ToAeWgp4 zXP#kL)@SmqAB$3rKe&#gUEj7i3Gvh(>z+IKI#lGFs-epj>BTnE+f$=PZNZ8+m69Wl zcTnmO9_v9OZsT2)-txw`Cb5wdC<^z*HuLlo=vA0C-1zFo!lT$uW!S6n-cJ} zrl}dEtBaSF#*2SS^_qZ7pm8;1PobptG&;l;8Ngwf0G#L7Y+X@Wpc12~ zNg7=#4ZF40s@G@@ox19c$RDDoRPTn{S#bHkh}JmoW6@@)>aL_}Y%*H?!$R}L1uX`Tg?m+jv%SK=$nl@ zOc8ATJM2=gq5VnklVM)kKbVaBw&4Yu50ZBqM&lio+G9YaMnH|ZXYwW5ZTEh5ZmquR zjy=H}HX~Y7bT;TXHZ^v>7WP7SVk5XS%w#Goa{8?34Av7i{EklC45FEF_tr+)&zxF2 zye7L=^2*_l5?Rf$KZU7Js4uhUoBnN#0T%zV%I@^6%TD${0>+=1I zW7~pT8jKXi|6b|1|H$KEfsF8ViDS{h5bYQ7@X=X)0hE>Oabl|2K+S&h_Dzd9k#K#D z9!~?7z6uGJvhO~%v?Ja%hY1yewl%Z(E?&@zvwcCB5sE+9b~LMb-LtMalluwr0=wEcI*t5lFThKB<^h?qQ5cGxq?x;WH+#Z19&QBTD+jgb z0@mu+mkU0PdlLY`h9bH#G8Zt851$GEbe8V#Ve5qsm7GXB$PL!K&WNHHI_!3W>Bc#R z4(w7NIKiBM_EQ_!uAfmHi5}qL`I;q(&w{@tg44Y4PYI3+I5Q}qh=|7FIIzqBFr85L zoB!3F0}RS`9*yajTU!7$@b}g-2+LLhm|axawTryO$}9H~TWQ6JWlc?`;ou#T`_Htm zGjnilQ?*Br$}3;eyB4v7^8Tizj(7e^aEQv=Wq#qFfKNSDm@rdcSS%bka-ehj+|4@X zSJ4v73EEJmn~7F$y%BuT%(o<{+oS(lZ7rB9#xZb(fE&yXZEDa_6Dx%90K<=qjjcv~;n>9dUdPTx#HGIC>iZL0RdSFNnI{N)Mlwk;)9|_WW}}DToAH26^2>kE({9w<&|KxZlYg29!S!EF~a51*%!@2!n>IFv+c&=Y^tk zzTgW)$bS3;Y$473{oy(CKZr;BfZlfGkPUa+a~4)avY=#KDIS77PZ zH=_kX()`DKn!*3xq-=at3L|moWm{6ql~evDAsKaGL{y<*Qz9quz+JKa-!cc@Jr9uG zBc4?MY3lrG@hh@h^gmf0hbO@4fjTj$%__rEHRj$SK)ozl!k4VVQ6wl$?gJ#wPi;mL z7Az+qJ?XRqTC4zs6PRJjB{-wgO~&CT_=s}?l+?0zNv(YvAeB{dXd7!w%`0Q~IRtr- zVkc5UXQ68>7{|+Eh7JC~9s^+PU;j<%E9eca5Rfr;1Dy#)946S>H9&#V83rLOFAjyq z{H{jiJN}?CHm$P>xY>Hobx~Xjtt!dwptSfm1Zq#n|f>HEldcR_-7L|+T*X-SXmFO$_S z+=1?7344}p<|t_HCp{1%oapO$4Df*l|B~k>ZIvj<^COc{rvA05wcL z^5i{_B9sUMl3f6;aE$X!%Gj`(&J-3H>n#BMO*Wv@*Gs~G)dTcDcy+PJ1IB3i@&u=o;oejW)? z8+MEcl6Z;D(um76Ha0wYFgcg!r6+&pbmmB_i`C-27hDU`Zo^-!=(d9wjkzqdr3s)I zL95%&1mQrD-9FpiM9CdUSQ3Ut?drKM7|{&f4k@jLp!2f+eeF~`GDkaL4ilJ-sW0$V z0$FCQjUK}a`S-&caWE6?rvCONMf;<-wD(~QlcV7|ayt~v$x#ih>mXDp#(DFv>NEhd z2IqPY3MHC^Et-R+C$+KRd>DfyOHo%(5ym?EfbiABe{&y(Y;`$2uA!C3gV@yZ#VnUi zRsZ>uQyfr3!)APg&Gn76c34|I^P>`#Ml0eVxJ}2(UAu(lm0=+Of9TDDLxaIfu`7K; zT2t|NOhX}}w%pwAj;2X8m)s~}8L_iE( zITT^3&2L;Zz_2LgV6Qk2{)o=e?&&~<72wmT`cJF?=3DAfF;7P@lrn)C?Fl3&rGDPj zG_BmfE1croxvkXs_XR1qk^lLoZ}Zuj3rhm&Az^(6&cE~D9<0)_%Y`iAGzDATE*L^o z<`I8U|L!9u6>CuEioHktv9gH6P`k~irJ-EWFAN?Ab>+@HJH!`;Dz`OC3{(z1mO9z} z{9M1-M7|%p?<84gV;qjO;C}fDZ{0d*`!>e@f`b6>@x$Ny)=*dTgpFV*6lyM9W3E&U z3Po^2n}B|&_$qv*ZexTqpK_MKtV)MHMk=6Jd?)Pvz=QQS9Y^)WuZf2&niIbM8$QT| z6GQo1?2=geel!vJtjpbunXYAkV5#Lq;4;DkKunfA`kl;CqE=)lYTj~|Yy%)BS}Y*N zA3}4Y+s~_g08e9>Ek1C-sy9hzw^lZaTCW&xkeo@OQ5e`B8RQ8oE#bjDHECm830O{E zjvS%drw`T)O-7~o+S08<1SDID(b(#fO&|XWmc0CnChdMO?uhlQsf9s{4x(`>#p$Gx z#Sfgg6h;sg#6G6fuaQh62i1$X{v8$Q;>Xy&v?B*TittToW04@-(dUBaqm)Kp>$61K z0H(!m2hct54q2Dj!yAA~v1Sy^6t7F?QAVv?ix(4|%bKdoW##+v<9d>eQz0FCk`SH! zk)e7dXR-qOIY9kjaW;fiW5G*D!o7R2Z^k=Q6gY!xtsHFni?+u3Ig2fo!ye%PmEiPP zlLs$iXF~lDSVqz5WVqgh5nEwv2%6RG%`F+;R@zlKp1o-lpr@LV@x^%1#?FY%hioXR zR%5li*1VnV`+UYxX)i!~^k|~BvZf0g>VGWrU$fs?2gLBMEE$B0w!#h!AEV@9Wuu<( zPZ^S*+B{`$6NT#JIi}T|8TZ<~R{EFi!BwuXoUQH_H&rA|avyB?cxHV+WT!5y6DA#d zrmsx4u2$O&)aS9ze&MXOU^Sw%UdY1!n=St~34Rqequ@}+Iaxji#~Hs&?=30x=0w2e zMD*y-pYJ%U>3^_9jxl0qixRGFB1O#${+1Pr*v?L~X19eJGWaB?yFNB0=c|v&j_t?E zCP#$E1ZHYZBjh{~286OFZFl9oakYb2#_%E!&?Z*e$s!ptxAxzRQRc#Vh3*C0ctnuT zNK}mPKibNYZW`>%-Tt&`xOB_@h_#`~KD>NO`KY#S@M|0Hk~vj@7~@bE+UbQQe;4gI zmXVs3N_VJb>@P6glQ^*ZQ9%CuKQt)^E%$8-@I5$mou*HpC*uqPITD?oefLBAbD6wh zdAMDQx4IObvvlWFp;VqU9yv1%J_O)bvbz10qg>&~ul@zyAxLHHg8kLU%x9iG|5UK< z)!Nhsv61`yGMp^{r!I4_n}}a8I--MLgW%~H)PJwBZ@!p!w^W6u#q8Dd0$tsl_Q6ir zBb816{e}48i?eK0j-iY5&n^k`5<49Q*sW;$kP4XP9dk_=+F+Z;_jBe$KWY<_Y517> zMe~`6BA!kw!3Vf7$@K79uk1xr)mh|d(-4IDi*RPv+t^J>6hoMcpH{$)DHq8Y>Qf{kcD|RDE3hdAWIBzcCv3h}>P|Y%^ z0F*tgoss~0PL}uDRgMqU3!FnZA3my)&bAo`Tqd;o85|q_`_^$l3_TGF!EgXXnRwuv zPOM|kC{=^Km@9r9bebI6;?SMr{e=AtDCO!19gAPFKBxL1!BNo@dOJV%+%pjDB+rIF zg#0zRW`2o9_i&5UQxcs?G_)GTzq0>?@~$bY%vTdyfV$LgLYFW+n%bFfTk-y__;~^U z$H)It$f5nqqWn1bi@|`r4jsf9-r=9bD$CTH>7||2#HL?3*goUQ1-O{hBaegZIZwEklxZ8FN0fZti&ROaE zCZC%BS={BSo!NBn#~fTEu}8BDY^^>WsQ`~ASK>(v9}>A1t})JwT;s^4SRZ8JkLnwp z{SD~xp=JAfJEP$F(&lvbzkpK(f#{81OOKzg0$`>PGC~qMzFNWF0R6T*tx9Mopv_ZZ zk~n2H&R#0ZfqNuTYJamm0OX`cF6F*+#)kZy@?2jW2w3=-dIQaY{&VnoRp30M)O&bA z4HIXQ-5eI!#v>>+UQ~}n^kC(3p?j!MJ4qaXQ&@^!^t-zSHcQF*h`a#ghC=8bF7C{E zCEvkn$}q08US@3U3WAoNG_mgOS}KVUCJF*RwB1!mG~~A50IibCr-GMc6m`Sk$TCXz z^u+4byu*~?XIn28=3KK66|=?YD8liYxO~i?n_MNiL+9Mn(kN*ZYJKuuO_CbOUuaFd z;O9>GZ-~Vh!JPT3%2dQ#J3xc0Glya71&R}ufKdMA;5b<3IynROMlD84R9;A6clBZM z3LxbCr!4}iTdp8DIEqwqTq&hjB*NMBDsUPej<;t@f8Kb(4{WWb7b)+BPLK!{@sS$RXxyaVQ> zj2W%aPqxIiyP6Br5GljGCB1vXn-$%&#mSQf$Y|(W- z3clA^@;MeHYM?K1M zvhwe1S1mAKgq%JZFlgbfq?sPF6^urY58IztpzzL?*bd%-9vyp@hp;{nnoBx<_EqHT z#OJ`e%&_Cub5_QP>@AO!@*YVs(SM_8Z{H@>395fGjE1?4M&VzF2E5Gag(Ge@UBfU2 z*LSYsbK=I~*pjc~D`qO4ZZBxq`>EtPd6$ zMuz7&TJFY8V*0Y1@=ss6b?dyt#PyH@74knp!2{fx!yB+u68Et@|BICBPVti7CX2(Z zA-m^Jw~A@{y{6c}9o1aN6*MN-^EVaE`Eht#E&V_{4K!~7)a&evCac#=r$qK10OoE(Y*x`=V;N9M@O{W(k7Cl;}&}01+a`$Dn4p*3RDXMsNFviP_ zv1WBm{s*Rhmq{6RqPUH$NCGU8UtS<`Q)XvNqdAh+!tCmF_iD!ng^lbke(QF2=1SjY zZiYJb%uBSo2_#d~;%O5zo8qy~(h==DA6tK)I8Nl1FYg$`X)qjIv|P=F(glq>FDhc; zLP&mW^gxCukG}uaZHI0Oe%6`@+Z}nd|hQ$zRxSNLds## zs)RvY9W?m8jlK_`j;b|CCgyFBLaSiS4p$cm`9V9>J>3v?%)HstwB`HIU$S=I{Nci5 zFD1`pSqB)DXFYz{&4;|Yk^P*@>0Sg?ab)F@#e>Z`Z7WlnoP@>WK*DzBBp0b&DC1Z7jaHPBKro%k-^ zP)*j9r$F578l>_j-EHmQKt@MS%68(kp|2&Ev{-f~Q`e{V%9xUESY0h<`4kT&eu2FB zKus1&y?F7uMyVx_Kf2hd52f`QmQukt?#^f5xmyp#@*K!9apAp+I@x5wuCq^4%9_pP zN^XBXZ{}m^`Tp&-$jh&)Eqq^#!M9zOV>exV^JKNdB<`iX3C35JZIe6V+~gBts(%Ti z@k&z^pRC-(4YFm1)7q_fD7LCq`{G!Uwp$|0U|Zi`Mn;K26;O$r6)D0X_ck0)8s57z zctAX1@ZV)e-|+{^V|h^4js-+|3okigba3iP-d**{Un2+UYkCXID)K>>OFATv$xh`? zK35&>R2LbOOwBc7IcZ9ZDNF8YlxuZy37xq~QBnC28tpl^Fi`uEvfZa+U3szJh}yd( z=(Ns;?8y5H)nK&Exw6=KEonpiPLf?FeMTx>Z;K0bh-G3E&XxDJlr+W4gUE(a^;x{5 z?RbX{wj$K5*a^yK3B}k`|4w|F``%+#<`O|S zV84V}{56b^0j|`@%h|pzE0RH-=;O&*h|g^8D%mCesx}wmhwEyNfdc6BT4FLuSLSUa zpT?U{bZ#p&Wja5fu|H4ThAU`AL@wZqefxx2C=bHh9aK`7w5X*laUGJp;eNT(){yX! z((+<*dFot$^1|;&Q2Os67tfe^1r#9|-?)gVyZ7`|*zH_D08hQV%%O3o*3n!o&O}~_ z_ZEiA=a2UE?CV~=?6p&;nl~4{SyjGSQQ6kl?pd{Bi`-fHDpI90N=Q(#s)p=DB`qrm5GH)z9MKQyDjo|q zEzM8FI<2Txl3&RDV;3e!`2>{_~x39Hpn5VqSwyLe@~pPCdL7{JsCTw(rF zzbUte!-~v~ZQmc@g<~gA_URA5rkE<`L)*FxRdSeCs{G5OmYb@wxFT+R43OBo*DMN5 zEG|4|wA4J$y?PCq#gpLQTx4!|Fk1W+9HG0U)xrw0xQ4!FG*6%#$xImOxKmP5C*r{1AwT*29 zjojHjM-7coD@rWK4!!&3h3C6Us-m=G!vB0a9nW7Vg~RwR`&`>$Qtr!??vevx^IAN)0>Wd_5AM%CeybRt68tX_kc8D@}vWDPJiXdI40zj{p1Y}8)P#*H)2pth( zp;#_#78G4tP}dB-s8oJtl7N$u?0Z1HRxUAFylKQRI~ng>ph=lGEv~Vx#eH`66bk$l)(fdfZ^NH^&J(cg26YGXE#ZbFrIDrbHRQ$x7RzW zMM7<1B4NP@vxSa8i&E5v3)?!wnpJkASlN(1z@O~#y}fSBEG2!5tk%ev6ZbQw-Uww9 z?H*eqlf*+a?jZNAxnH*4Rt}}EE8^$LdKJd@R|#2vn8S!Yr7zH&=HPVhJadbO0kc-$ zJ9XJGwTryPly~U z9t5t9x%sN!-Umd`p}(ih7haKqn6*tN ztwxm9w9pBJPYO?*PGJH_7tR)_#k&}xGY%;ghUEQ`5vgM_Ay5^}6aQP{z%qs8DC>96;<_YzqkHXiJE@I{yI(xG>}l({v>+( z#Tv(>%n|W`KSY*uJB_gOEHmi1O_dIra;GZ?$=SjsG!@GqUJL%@DGKuW=ibVJ64+VK zIBoZPxu5Bqfvb^EF*G^ZkvW`LYF0cWKRSFsZBa!2exGQUxvTYsXsVo81aABJYB0_1 z@@?}3t&3a}-EB7`O`=eiccZLX-0?1%vyk$#I8s4(7>qeDFhd^Jv~Co1>X`MN@tn^` zknN!&y`J#VOEQ`t|4|dhu{{qV+wL)(zq+^@KHL)c9Beo+?q(to55HDWee0^l)Xau; z8EU?;K7o~eC?zSy>k6b6!Y+(171bUJ7S(N0DEAVyd(%D~T0Dy!NbNL4j77Q37nWOS zqk`^~*?;sfGLgI+c2qxGJx6-qg+W~tOWyC(P|bc`6(*5mAD=nomiN!jkoQfVLrX)r zNz2?z?BgpoVZCTqCG45*f$lR@itNL-2IFyE$(lM>qX8~k`({}AlS)#;aqX;iwZwmj zszOVc@S`3V8(xaHNd20(L`0Oj_`Y-!1&y*6)t#3(Yu@l&^wRBc~f4 zV`t2`Gf_CCGQYKCgysq9FOm*R?Q*=?BjOnnoX^mMu@Gm&V%{hJGRcfJX3-g8ZE#t# zGQ#nnaSRz81z>Vz-rER8B$>9)Mp5d|Zhvzhg2Ueyo;PUq|DAd0ihO71e1Wp-c+REK zvwLR!!J1W4%dy8}tE+kEW9<7jqvWBGz{0db;k2L6&P~rOpXbYr_)RV$`esb@vo-Cn04s{_b-H=rZJsZn$K4j{;iKA*Uxx zycV2nmy3u!|20%dGT(Fk{ZmdTE6{Q6$o?6pQSp4eAL?fKvin99(}?Hd3-oh{(zaWI zzvOJ{?#}^t-a)1qk7$ttQ$?vf00}w9}4ct1*LQg znzSm!5v>yM8!=9uR7eA-2{aNFX-hX}Lm64{yrdZCv*u)lke5Bjb?zIn;_)h>?(j~J z4+=zu@0q84;~XqjUZWNFPnj?uw90lhd;TmF?s^x^ZEfL^ExyJ`yNe^nv<53+*Cma? zCFmKtt}t|IxppAL#(^2mSM?rt?Jp~dPxD%0xSWou8==rNzA;5@gK_Py`R_7DM{0xr zY=npk#U$~U6Phq-0g3OtzMa$S*j){b*Y>VvoK7G9y_3Cf5LHpw?+R6gE zX?=FJz1Jn48rYOd>-y_+arb=lZ?cAT7+h6s@k58A;D zl(_5pm+5L6H%#VSqAY5j{f7oq*LH%kOD7h!%tEyYh#J~u!7=c2bMU=)Zop+%#6&#-pmyh zo~2_l{r|flO-zdWpHPINp`e4y86hZ*IxOr-xD*mnlmvfC4tO~8eCP+@>-eIIpNVe6? zjQ{Bp7mh)KUX%aK*^2{(%fkq4r8@AE{IJmuOybrVc8c9Zi7%`hp-lttf92M;3WYFC zeS$MACV45uDnmA`?iRZ0le5KwcBs5mzRO1WeYD&&kwjx%`dXY0Yo? zuCsLKsIk|&W}qbb=sYH&$1L*M09-BDGtqer!3+tezt3D0c$H3yD1zzS12fCTKnuPb zlmREq;DBgyw&vZI+ec0}XCH?(H8NdwbK}I0pO54^lHq;;lAzcWJD=5JMCr|ye}&7r zmTltAt1F4Isow|g`ys9d{TU-_qusas&5O7+`hu5jt=Ih-=`~45OU0GYMk~?cT za>@ChMsFW)oGU&^S)MfDTb1L2e2m9MT#PrFAPJpr%RTMp*7I0(Su^<4=^r}r?2^Y$ z7@etXyordOIj?_B(a-)-3dXpS(tiC7cAOw_+jXVL+fp3qeqgfX@zio=dTT}!DUi9D zyU4FZap?G=D={GOLLnH@;vDE%R2KEfT@2eut+A%c$JtisELjUR^x4|<5%146fE(fA zjrt9^7C>@(0T<%Au-6eODq70=CtrmtL|%8{4dVT|f>1xUf7}Ef&kEv}i+L?hky?1} zhdfy9**WIo5_a!bi607WP-O{A>NzeWYAX?D?BZ86Pm6Xpv?aSvdJRY5iJ!Yh%vu93 zMhoZQL0!S@Ap(+AOMBMLv<{V5ne%!_|56UmqKuTye0lAkE9z@6S>Bo^>=H^9nOeve zo^MPmdvZjlNh{}1+5ILLUZ%En$l~2LNlu-08R%#$OVI0u_q;9i+Gd$WvNsYL<4Jvd zyel^;*&peN>l6{83VaYA2bIL3mVrp#gyMOIPFG`%Q&DZ>wmO0PkcaGzn?j;V39oD8 z5`-nAy1%0~P*W%At`&k>!EfcR2qPn*@^AROUE7PW7GX|Xq)k`9Pm9y>!IdoKJwCK+ zyOTvvlw9hMbBV0VP`jP8ioklpRn^Zofvh~WY|XatG7Ne}$CdxxqSVymV(FZy8e)sa zf4X-jJ18Z!bHUbX-Xe9p2l~+Ggs6WLMki~7VzH688mMv8`-6E@_y-e1rSs|CefJAb zG^Z~&$*_;rw6`(~H(!$6gDQh}zQkqRJX6)<^K9AGXIHb|Wagdxs{DoxSw#`|?h!#I zJ$r>Z@-NtX$aPtgT{6Wj7!w;wroE8$E$r%y-uQscTMdNlw8bZbj(8T*oDy(-G z3Ib4`0$Uat26!Vw`-_9+{x=3Z{0%RKrR*K!9T{gl9+KHFm_x64&VIXx`JsJYnOKq` z^P48ptf3ygA3?&{?};?W{!=(-sTKHZSF@a}soT$th1i7B{|!{m$Tp$yb|;C?G{oS$ zp}{Ie?hb0z!gx8fOucQm>pZM3t9UUZ;hEZoV8gL+g%k9=;lQ+=h^BC(ofPp|ek-XY zZ8IC86tud9-3W_V^}P2(D}Bq@5$QLV{+ZKPmN2$w2?{Ns^$LXGw2rs6ieSscdbct zl81hJJ}w1%W8joj1b1>%COe+?%+s>i7hZA9cb06V3Hh?;n-iwYeiRwp3cZR~L!2sc zw5SN(fD6adA8p`4-yEm!X%t-7D$Ep4MjWcCJh{zeIkWVyr9JGcZ6!0WSD&Gr*g8nx zV0qDZP>MNGnWs~|Bc zGG7-eH1ob>p@eY{yp@!0lk}?Y1%_s>GT>p;Vjtt@KDxamcW@<%vtZdCsuxqp_)Tvv zhO6JItB>KrB;p=@em!AwWlj+ZyR790@t5vI=ve#5%oH^>^5j@4%_1zUAuRXhDCgSy zTvV8*4rDIzmDGSl171T3RDWsB?w1QaV!U_YaT+>U?LLwBeximsRXfDL2a>GRUp%s* zv^=?8(qq^fF`#Q=T}ip#@O#B^>-wX{>VHF>%XxZEtg+eWGBHwuW*-!rn=#KY3$BH~ z9k-Qt3VMc?QWrj$(Jl9ihU2$>t{5!I{mwp`Oj=#)!>(8i87Kf%a>a4Ok*Bt*{zEARD z-)}-03Y+)QYu=?c%K5*oTS*kS4T0>ARXXH}l`=a3t-Tzc;wf(iRl9!8?!G{UTZWUa zTFG#P#4+@zw}-G9aD>{LFH+B<;#3LkYiep`nL|9!5tBma`wNso+a!$h)wnWDUBM<_ z-MHAY?vB7w{gTD|trs!&11Ha07iVA8U*K>3>y^lW#G8;kXcj`#+Q+opuE_nYrsdN# zol|ef#9JA9q0%tEeL0GN)jnpz%-=?pXv=QCwzoOu1+LqwfoKu=?A?6UM<2zJp?;;! zhGVvU`ZDr36I?-q>7$e=gjlUjLjGaYbI-Q;s&4 zL$){Pc@v1a5AzfVJHT~Qt>%lqftlc6h7r>Rb7sa0J7-6X`IEcz=f8h9;sX1YV0g?+X z^L!MwKQ_O*wqfxylY9?Fr8TI{D&|8L_T`!_p8bohe)_%^V(_+(qqHXAQxoLBnK+)_ z9WOU~YUP+z|K*Uo`b>AJ?ENhRfz_Liyf3jh^Z9xm!ppbs?hXr)ks@elD8FOU**^{nvu& z>|K$tG&n4ZMJzsy+b-B7237U27#+WvnmiE;qB99nW)ft4JGHi(!KnW<>Gb)OcBJLN zZ$-SZq{4_CK>;+`B_H8C7m>#^xZ<&pBpxni%JnEd;g^1`c+?a}atFGV`ZykUa5eia zG$NAcanv(9YV-A8T=?y1PYT<*u?v5$mZsH|PrEm>utB^SPmgEPL-~~2py_(Iq|O^{ z4e+`?t-@D^`)82IBM~##+oF~wTYMi<^X}D{YHw*y7?teS)n#e^O8zEt3|1N*4Lu%mbyqB75;@Lg);$z} zJ9YbEJdhfs54urIv7|J7@S=@EFSLhdc@?iTnwoTmtHs?QP2Pi_~4dmCm0!U4t1IZo-)Y9#>JlsQ8)lO|QTK@X|O&C0$Oe{OBp_v9OIm zQ%Tlr?fnuOy$s(6U6O(l*C;yU9NXf5Mp{n4`?b+JTpD?P^i%WrG+xA9V4FO~{p+`4 z0MX7a+lNRK891MI-=0z*6D^;W()d^v-E-WyLOrg8oGF-K74=n)4;lIYdjXzpB+8-S z`$a3#+RLHG;RP~rm!~~cH$rmzA9?a{BgmkKUS+-Zm28ZVs&vY(?E_2u<0yZftflow zYAd~?*(!)4Z&=Cv^3ce<`ccJ{gZr;Sx;oB;S%vm4srxww+Q$*x-woe+Ml#wtWm5TR zRc6=jtJ9rgnJ;J)LtOox zL;J+C<&Z>hqf_NEuXs=Gy6;RxN4VQ3&&hRHm2b@M4us0&lF`MB3Jmz4TRf#~7Y3U! zvE_L}du@agvBA82pe5b^t=AJ>wlIOb+_54y%gI!Lj)bwtUuJ}AfE3${(-K|fxRa#V z(DV4Sy~7LKGMy=B2F@$m8%v7kUZZ1B0|DIO6+OyIbq2Q z4l{|9{L9u$orLADo#!s_E^kn>gv}sq&GJWW(aRmf@`%IO=!IrlmYZNWVS^mqDTGTC zt}pa|p;bT;+%X6eTqbRg@Cs0QZS1Qy=YGMSG4ADh7C z&h}-yD%yT+qo`!om6QJHF<~12g+i{$85Mi&OLoB(ZPOLsm9M+v!t4eeh-V%1whh+~J zv|KGuW@r&p+S{4&&i!Yo9pREDT_|BiLx`I928tm}zY*Z1X2zln8X&*VYXByEoP<7H z!?atsL2`jQGWz`-dM{*vOU_#+xFONck-oSay_pXe2_*;MgfWYf$*xtOGo1rpho;Qk zwDz-7q1o=|3xD)3HC^4g+r1JSC%wbuF=yV&nN$x&g~C?`|8*zinr{cwZk8BtBnnHL8ApR!}8R!4~%k;UjG;v6`+| zhYz*{RzQ+MTPRbAjI!})QH99j8|{O=_T#vaFw5MMO(^(#J67p3x8~hSKYI*iUt`EH z!lHzVQO=UfB^{kb-G>)-L_nOkYj7QHh32v6w3+; zf|tc@s_YnOZX_CW8&sNRC}1dQ*N{HM3M#ScJ{OMc8Aev?9k6#yBNE~L;g28pptrvh zMiSJ=+^}e7wpT!aT1(#)#WO-}^!RFH#N%U%`KG4|zPUsr1WeHt!gZ2Va4sROhEhfQ zxfY%)S2NLLBO3iOw<)DYn`X)?AxHp=-w6u&?j#HkcioVa6p?g^Ha>X$Yt_}xE62kr zvdOVv_^6eO5J_q8$l|ZyPr5t@7}tdh{T~|}8~B%X^9$|Y!guE9Ys1I#+K6ewrB;ZX z(^y+PhA?!_yhiZTG4Jz3I@X_wC}RLbISG3Gipchuiv=FHRR{)6yKV%7kh%DsN+V$Alk0VUCE?*~9HT!M-t z+={zZqSOnp?%K$bcJV%_*fw9ED8+}#^}mO%Ry3-x z>4*J4UcS6^Lqy`$%+|L5k64JN68{7^q3b;6^x4AKaFh?AyJTL(&O0JzSNAIV&-%K7 z(N-k&F4eZr;vd)07s`eN{MeccoivSd)+)!fC(rOr=vH+v3Q*HXYYBR<&xnK@>`@#` z7_rKb^zyo8sJBc7*Oq7>Z-TelEF=I?PE^6r_-72Kv2TPHMmu$@4AF}T8rX=1wBid9 zyt`iul0>8|JQp`YLgkP0DV^6@3KvAxf9c$Oz17^F)U;H#S!edE>$li!{Fr0qA zua4fzCf^yzavMll`iaqI&1tK>$2H4H)Vn8951+IOE~LLP0rPQ)hhvWcL{Mj-QXym$ zMSjYyRkMB)mInI>Ezd019hB{my!mNcl6r_l8NS*nxW5qA#zbi%ndTuDf26~*Vb)8= zQA0sCEBQKdR@t?v;IcFX6VwyeuFjiUZ$t2hf0arOlwkHeFHg~&-m|3?PAukW;W2mSHpiF5uR05JHce%7NCLdNHGCiGk2MdFB|p z)2c(sjQgyJ_R&#_CwE|a5X>`hmwn+}miNYce+xfoAOwBCAc@2qSyJGgP67HWx? z`O;@E1WsyI4z1$Nrm0P~>fIb3iv3rZjcUawHxC}+s*T4I8X5z|JjjuBDn-%i&nfFVActr=Hl zoMEm(e6421Fip_=Y8YU?*U@6rrgkg5LL2BuDEPkX-WTpixl7Q^yrqBG#m+BxTyNHN zs2Eyvt%XwT?3bVZ_;JpY4_!f+pbXzw=y8({lJu_OT3+`9T5o6@bTaavV2Ly(sPBb{ zZiO_cMk}okk!{SQ&%_87XA6IFHe4&<&Hh~6=D35I>3XdqOtRiePs-I!3KcrsIVbV} zXOa>D51JlI;u#>uF2Ghhe>+van~``mw1aE>?(D3AZxtkw-}yH~k%TevcdiKsHHGVZ z;b+JD%KS~bHba0{fK@2n<3awkJKC46F`4PPs3Kp~*L}VV+iLS6y?w$};R{uG^{}8|Bw^WLGkf!% zYScnBOFpc(@m04%4%oULAvA$$YErIqKdwG$cQ~)jEyX)Za!anm7dUa1cQ%5t^W^I89L!OmLtCOzzhzL27hEOq)lBDk_jTMTulygo3^ z4W5(q0tM_1D1&{bfc{}emW#49wpxXzyL$C|n5({2w1}~JT>9=YUHMCaFmfIz*@yn% zQIhDcA0#=G!BA)Pl_u5~el2vq)-S8s3q$H>^FSjT?(11RfQq>FD65c@W=Q-xt{nDlMC;Yd}Vglg)(pISiK`^J8v5a%ShPaI}G{oMKIS0dk}bC zCkcR(wse>&-FwcQ+OAV5w43*ZG(R6?;D2{QYS!zndfRQ#?w0#%dU4Yt^@$hhHgoHrgv z`(mA-VGteK;iKa#q{4lR;930WNuFrF&kHB>C3z!Qai?yBY^UyK>d%zPyspO^rOsAg zl2kng{)$dhZK#IipdMsw%a{%(uz2=730Y}Zl=mHMR_z}}g@ej}Ro9i8Va}#W{g)sAa%YnE;`JNR z7begAx|as8g(v+|c&MICNQrj-o8Cnh;h7ndL*5sCkt%qgs-aSEuv!s`TLu+agnX(< z152YnnjSk1h1(o--N}X-RVW%tXUM1Zq7Az6nGf#yggz7wRNgwSl$`o&JUjg3T?4lC zem)=d#mtxSW}bODrE>q6;%dE#HD4FRK&i@B5_iR??ZYWVoM`XtjkYl}#HU61&c+E} zE0x5rrY^?@`LcH1@C#?{zH*yX3?Z&ULslcCJb{L_av9_oS&b3+##|6_KY* z+D6xmD8xz}$vXIb(8ZDv=ZofDGW&9Si!=(0w^`O>?={;^JG4jo#%!pRiag-q0!hre|MfJOUX$KA$!(|MkwY;2T_GPCw0e1 z8={g><6s>BeBwjZWKbGqKR2puOF0lQgCCs`GHtk;k`zRTBtd-a`m@6uNaW$KYtr!Ahr&ZYxjtE zsH=;wk34Rd)gurf+UdZJiX;1Dode)m`W}81?Phb>yEQeGXBsxd5)=iD6<#OZ;(dl3 zWCtp*8u^iTzuU0?_CZa|fZw}rR8#uDjb(bf*vk~xRKIZ>_~p-QTDJQ%V_o=vmbXM1 z*S*zZWMc#_TK1PYi`%LP99ir(k|?GPlQz>Hkgt60$okvjPVXqaiY< zU$8k=)#9rFYf2!n@KGRVFrs#LRswM&KEfW7*^6S0c=t{G(5MWis^XEvE(f*ZZ>L;w zCn63{PSu~jKV@GzL@ui^WGj=J_arjb|7yAf0>}2S$JB@e`?-V-I)@wN!NP&r!^KDn zb1ef&?XefH`_`YNR|ax9RyIM3C zFDpIWGnT3)9|MWXmSGc?idF|1WW__}qh9O!1BiR< zcnV2S~fF=9ZA<;HNy!z5JNV%cB)8fsaPHAl=IF$yt z!|k}O7hS$%j?my6!+F+V zIw4SUzMY&lO!$D?cld;p2Ga54g2K`=>Uo~Q2ce^FCed&{zP=#dVD5q*Tx_$tCa=eU zjbQD((LnL}XB?NAeOB=p?#+L=MV}TmXg||2&f3@-d^!y5Pc|L z!|JiFN}J%-v%^x64SSp5XEMum&57r}^!+204)H}*d#J?M9&=<@ zSH4UY&SnGEcT32m@~2T#jS2UgW{qicdY`#h6|)H0KY^uc>Zm_4(LXSpE_p=Rhhm{b zm?tQd4n4suR#kY}SVeZ3Qc+@v)LjGIgjB9ADPtp zW7x$Kt9fIrmtFA?)3(YjQDODT(AGv-uge+PqVJEf>et~~bXvg`eg#%vEu*a@`(im! z5cS6w_rY2Nd3InRZsWGq9oZVPt7_XX92Xn*QpE0@%-y>BZbhNWmKp0$)}`(PDJYZ> zrA3%<1V1#RVdut_;2=^Zvg=IRQry>dQZ~>h(&&tQe?e)xk1z0v<=cmx!Sq8#`f$G@ zemDTQMt|`q;z-z~${Q*Z<$fSI#%H_664M=lgHteGpmg$yE@sKKhNG$BS8sXq%{0FrQUt8Fg z2JTY8qKusLT8jFQ41vY+b~0zy@-dgt@}h>dalrw^YV?uJ&7}{H=Gn7C&A28N^4uWG zb=5=b@l_NEapV5Y#CK%5%2d5j!`#OE|+JPbCEM^VZCoU)DmuZ`a5E zRp&0TP=f?YqpQ9UULqst7cc$AnEf!XqO=lwxSaN{u`Bg*&Ssqsli}B0*0ou1DQeN| z`}Gdoc`}h+JX!QJJ<0U)c9T@sb-k}}`gkp1x2x%BL~R?;*}d)ue=Lb9&dSU3FL>MY zu_Cgn@m`IxP2M)0jxL)I(B&0%gN_yCIP4-DsljGC@I2L|vOSs0 zmLz$k^^r-adHx@}Q-d?*mcGsp1%`I-kHl_eX^9dGBj6#3dALghH|n7P1dp2ffv8B9 zXKX3%S$$nVKiH!ranUH%PbCn{(Qf3d&domi&t{!M18v06)z~fi43#$%y)IipFRm>m*vK&>0XX<%`pK&{aMf3tgKiYz_6KPj?;p3@3sbSp?gBDvl+e$6H z=bZ6@x8!NS-13I*!g~=zWWfPgpXKy7nV~~{ee{v*dFQ=H=6eAYLL4S4k8e1GZ0>E6 z0wHUy3f?>${H0v>x8WAtw3_+3uCOp3C}33gi@mq#tOal?(}B|usr|lbm2m+Z4|L?# zfjwkp8L9ysO;*)Cs8~~*O~J>9rN@BenO=Ya*Cwy zx`@rpl(oLy8;|J`Pd4)@E(1y{!h`6Wm}8YttMx&9H`7RV=9dRo0>%1s+XaQl;Ukw}rMy`wt$%KWA6dN5suC?h#%jby)0@~p z{~R8k7pExr$Lz7Cd(S>e7s@owxceZDJX_0WB;JWIJ_mMxm3E+#6ld`Z2InPf4=@&I zWaXk?184?~>ZLs~3}Mu>mSrAKjnRF=fbkA)W<%H=-fkoJue=0sF5ja2Hn;X+%umv* zHD?buYu`U3GM1`nGIxCUkX11o7@HO&)m7>W#e=I4X3^p3#6jT$xPb1@G-co)M04NxjyGt37Kh0Y_m+N*COc#ha!?F#+YLcH3=x)*cMj$D4n4>}rg% zz5Jn05!S`BslW^v2t-8K*N(EP|~HLlh-^OQ?leM3&Xcd|g#_gSg>sE zW$r6^+P8%f@Vz!2}dj*5G%@ZDxULJe_cffQ!8?hv@J*x+JHE`P~+LK|flb4eh* zNhO`i2bW(9L@)pX=pv5s%5w(R(jSI&Clm)k57@z!w#Zz6_f>5NZ;~%%R9MN|B``xB zmsUHF{=0<1Deb72wne!?PCEHIIO{v)9N)uvI_2ZC+k#fruQ|nhE=%3?SFw9ND7Bxo z2XBe81CpF&5dO;S;rDE-0gBp}U~BHe@tJ~)pMok;1~vjFt{$&s zbVeiBAue2h#~V}jA)?R5uELQzvO8r^ozWqp!$CbsiBWDTU)PuQ^C6O3J+qRFlLz|& z%_JP+fjaw#beHbWTnVt7>g>w_GoV76m7YJ-3v$$kh$ZEGR0?tb@M=w3l_~(HSHj2`owpMiY z`hLyg!Q1-LOy6Gl+8*c>-$r?9X_qhp@A_(W3n0P!n{{&%3s=cqq&h!f-Rd+6{E^cr z=YhBQ66poI!n`iU+XTs;E7lOkxWuySF9{ngC}8|hHx@-Y_b)*fLc5dgoz?SP}ba&i-ed|KPvy9?i0lH{#Vi_6{|(<#d`+OCu*!`5`j=U z?qFZ0%I25vKX1NxCSc;zmA#P^R`mv>e9W_Tf^}bYU42kjDBF?ySJxwG|HV|UPv=Kv zjaSMl`Dz?m!#-4YiA;)~y;$Jz1`u2pv}Rs8$jfcldZ2lfvN+KBu)V?wxX7XqYrLkf zZ}v-Ne6iTFuW&dO(mc3Djo@5J;cZ=|RFc%+KV)~z8_0>YR+dQhGdy^li3s7T7I*wy za-j3l+6ROe#FA9xLh)3sJ;WuiRYfa@%kNPd)x4Jmx}?p-y`-XqjYMFOb%?7G0?hYoWu zPp5z$xUi5fukGd@LGwL-HuQ;L;SNbosB*tnFUxViy-mL=%txvCgXqmENhT|Gcg;N9 z7ox2qp*NCKi!-XT47c`X82?zJ!zH$D+{wBDXV7>GU&(i~{kVtIO-Uu6_SZsxc)4%D z?&v6QkRp6B+@&xq%vAbN$%~s*L4?(*e3Qz!!U8U`5c#Re+;SfzqMYQjI%&kBLG8|~ zQbLSm)geJhK~jbPLZRhz$@@BWo;J(4PSskos6;+1-^Ni}FjX`d@#|{06o| zPRvQi`kFso6PR+-0E7>!<<(B9dz2XX>uY^x^^;aHY+ksPeu0#=&)Tgk7RD-%;EE4| zr4cF4C-~T~;*#bb7U*{T{=E?{;R=hiC%Z%!YShBeHRyJ})tfH5@KkO;PqQcrn?QBS zhud~36v#AuqmOwg=%cbA3;+Vj)m`FdXX))ShCOI(_w=j~QszfQJnrdMXkmr9P&&Ve z=bOrT9Y6r|BIKA@=HCrlTTenX;me~9={qf4r+H_OD?;SC#kQ->fEKM>u*q3u3j>(i z_pX-cv+h0xclji4qLRa+f3-(OtajG?HgDgp$q|`U!(0%j3Jl*P8~d2p|rDuA6ayzy2V?2z5d_WT!gmIDRo$U6;JS zqdHVsvHew+&$vH2vc>r`7TCeYDzYUy5vQk7>Moiuyb43TQ75`g>u}8+dY)NQ$IQUC}`|DE_3zk$ISysKA`?|2F{~Ee0P>4y&1GyUGaz185ZME zzvGI)!qD5`g>W1soA1~{JSNf%YM;ya79CaOBivKUZfZ1-PuF}Z-*~J=%?hOqD4tiY zM9R7r=IZ$2X$Gq=Qdp*aEw@gB0?DH`8Tsm1nN1Vx?_6oT&L>m4s0OtwAB_fw4+?qo zwSEcP9P#5r6@+t%u=YC+7*fT%560JSf9u;`X%UnuNOx_S1_n7=(*(9t2#Ze0(vbfjgKxsfZu(QpA+vW=-yQ_IDQ->g4_?pnW$OCo^FZWOxN+eu zU88@#8*)@f(_69pxqEadkIvwiPnO*}x2qp)Uf)1vh16ES6=(Yt@!mBvd?GJcY;hQG zJGiUT0s&kO*jZYE`Q3_Uh%P!ewpZg=nWKb<-v7QyP1gR)&idS2CH;xncQXR6&Tv5B zc{Eybm2TEPFNy|h2lFMX6G?Sl);7COIlwvdJh1^_*LBeZ;7y znW>z$E34^pJ7{gaCZe`f)=(pIy?c3&YHjVe>+o({U*rI3?&9~PwHN5Ph+d0kp@WO+ z0gc+ri;4Ocn@@8d$po}&&R&nIW z6TePSsvt?z=F|O}V(EuxgB&QQ7{N%%hfyVEsF@nzXUz!>2Hj?%iGF;e7cgDIoB`XP4=#g zcjeag);7JP+E_WNTD_fH&Q@)0>wJzKez`g=932+N{d~f@F?u*rx;CiUB*3WEfpH29 zK~33)T9#m4_wB+J^0~4`o~_%OzEi!-THjXY5r=`ovsCK0Kxg7u_^NG?Tz|lTGxFr1 zF+t%h-{%MSl@lp4pHP4T6JVuIg#v9trp{K3 zGFYLBI;}t4{E|b~S=G_4cgH;62m<9wdn$?&;Z2mV81xWboyyMu%vWU&B}9?XrFrPi zv5|Ek2J|fW37*^A$Xwq+5j`D0ZhpmF+V^E_2>BIE{pi{Jr+VZ?A+RjfCfnuQnmn06 ztSOM>a5$Gvl^FOI8P(HroZ=I?GCM06omgFmtsXP=3SNeH7^Es7LN-o5zWI zA|Hjc;F&L$Y-dJxm9%*D{Q;eA`#R-`b@hKCDUT3nnG&1#b(h{Mt;SMUcq#SdE%w{% zrB{TvJh-B^%)b$8-z`E}`bW|APDyad)26i`Y!%_Q28Id#Ffb!HxK#(g34ATc|A^;T$Uw?eO z{2Aq}MIh<3_z;}I#P`y0-!u01qW*F*qe!_?4zeJPeeJgLG{zbg(c7h}E>&GL1eED4 z0W?f#?a=-+3TO09IC`V6>|ggH%2{2Q4iTk+D|_ZJHNKD^8$%!0}iYiuy+o=SN^+bu?vi|UR>E1w(vtO2_gB)PKn0)xKE)sn+TPA;(l&Q6rLS`T`@1@#8kP z(i=ro38keZ&T4_UqHl1Ek`aBgh-khnaP!x}e-SQ6Jd><1ymCuo<;G#I>*7WS3Vh@@? z9bRr;dYQ;)+;!@nA0>5NNt2$m6gqwAW}4`*07)i&!VT)KVk3qmYvsX(JYolH%L%0E z?V(vJ$6K`(er3*x-e!eD`tZ0El zZs~Nl)Zj8Z#gM`{1Lw~r#E>!d9J;gJS<$9r?;#ZfMO0 zGrHJo!DdEj{vhaHHjGiSk4Jp2H?QMLKPLBSlr*P;KfW+ds2S!HaDSi}9OJ?@{mRM~ zw@BMMh5PHSMZm^k0e)QUcFm~f0^hTdhWwYW!EGVIQcOZeeJA!>T@|seLXO;W>~q3{ zI>)Oed+@J)>q59l-_b4ipoYZsFp4f<)+z8{V||jxkUK~`{Eq%IT+TM{d5Ga$FUmuW zbvmop_1&d#7hKBq%w~zY%eW~R2bY112~Rib4d=z(f<(5ww32`~^VH7C!#nRR777YD zRHl3$=%Kk%Ro2JR6>3!l^bNba>0xDqnyY>dcnNAPM7*gQVj@Y5mGtsCe6w9~P`WM) z(HR`zftC(Ic#*Wh14SY{;K%{XM^T_7ut?~w)lH@5lRu@+ycVR2U8~@g$1@dafUBMh z#gS}kMIgojP)GZ={t(^*Q0-hy{+Q@xgz}~EQJ=t})L5(T;2#zAFpuhy=^(xTH)dp( zqQs{uOJe+=5IO5>Agm^GooyiGjUBhI@Z;HvH0$l3V%>k|YVQoZbOo6o?%r=LcFKx1 zk2)Lhw~;R(hoRPC`$DNY7fN2fBuYXM3~s&CL4~}v3Y4>Y*Ze8@Mgcans&#F4$-QPL zoklO@;!0g(pU%hk=YdcOB^Zr#Mxine_-1z}Crgc>!0)HY`PV{lomE#jLbhPwrThsl z%*u2ydGM@oJNLmq{a-hOadyfzDwgZ?&Q-RVmsCQZ0ICFG`Ewii4LFB#R0Fvx7Dy^M z21D1oX|`aL(^Nr51BZHqW0B?9i9Y6toV4eTj@FKYGq~3R*BDdgbYT7v+LuzI8CBam z!vG!nK@d&wH}AcYzC0S;R$x8vn+ZwNHQI{M-tf*JL_5K z4ZXAQkRw$)BTQ)72O-4qCU5^g6L z7Rs8AilgWKk?L*48CA6TMMxN@52WxnGN|Ne_z;?)7d&jlT&@>s3f{ zm(}v`&b*qBc*WHkLO_& zKmh-f1rYgW0Wh=ae}HHpzyoHOOj(0Ybc@{`zbQJ^nhWg`PwjAYxHfp?cOL`pEMYC( zcqtB{5+1(tv?lxAN9Pz*OvX+PE8?;UVRvvyG!>h`v6(a!l{sf?Ag^1v^Cs88P$a

Z`Ko&B3t6WTYhl!UFV0oe3H2 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 From 22df381fc7a439db0ae9020f76ffce816dd16177 Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Fri, 30 Aug 2024 09:46:54 -0500 Subject: [PATCH 017/142] Mention that you can add a module by repo AND commit This comes in handy when you are working on a PR in a branch such as for cfengine/modules (cherry picked from commit cbb1e9d0b2e9c47b5c95814e565ccedf591b655d) --- getting-started/developing-modules.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/developing-modules.markdown b/getting-started/developing-modules.markdown index 3ee8cecaa..0cba46c4a 100644 --- a/getting-started/developing-modules.markdown +++ b/getting-started/developing-modules.markdown @@ -89,6 +89,8 @@ cfbs remove promise-type-git-example && cfbs add https://github.com/cfengine/pro ``` **Tip:** Replace the URL with your own repository URL when you've create one using the template. +If you are working on a branch of a repo you can add the commit at the end of the URL with `@`. +Remember to update the commit in `cfbs.json` when you push changes to your branch. Then, build and deploy the project again: From 60467536351e0a2843523907582d631a11af8c18 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Tue, 10 Sep 2024 10:48:23 -0500 Subject: [PATCH 018/142] Changed links from libera.chat to Matrix Ticket: ENT-12106 Changelog: None (cherry picked from commit 5a50d6945a4bb7c3c777a7f736804745110debe1) --- generator/_layouts/default.html | 2 +- generator/_layouts/index.html | 2 +- resources/external-resources.markdown | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/generator/_layouts/default.html b/generator/_layouts/default.html index 602638ccd..e172234bf 100644 --- a/generator/_layouts/default.html +++ b/generator/_layouts/default.html @@ -48,7 +48,7 @@

diff --git a/resources/external-resources.markdown b/resources/external-resources.markdown index e6fa65d68..7eedb3cd5 100644 --- a/resources/external-resources.markdown +++ b/resources/external-resources.markdown @@ -76,7 +76,7 @@ target="_blank">LinkedIn * Facebook -* The #cfengine IRC channel on the [libera.chat](https://web.libera.chat/?channel=#cfengine) network. +* The #CFEngine Matrix channel (#CFEngine:matrix.org). If you want to learn more about how CFEngine can help you and your organization, [contact us][contact us]. From 55b4dbf090e0840dc08c0e7096c25d41cd9246ff Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Mon, 16 Sep 2024 23:02:45 +0530 Subject: [PATCH 019/142] Update write-cfengine-policy.markdown Command to check the user policy corrected. `cf-agent -cf /var/cfengine/masterfiles/promises.cf` changed to `cf-promises -cf /var/cfengine/masterfiles/my-policy.cf` --- examples/tutorials/write-cfengine-policy.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index 8c8169cc1..bf7ebdd8d 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -177,7 +177,7 @@ On the policy server you can run the following command to make sure the syntax is correct. ```command -cf-agent -cf /var/cfengine/masterfiles/promises.cf +cf-promises -cf /var/cfengine/masterfiles/my-policy.cf ``` After some period of time (CFEngine runs by default every 5 minutes), log in to From 7e96b6687259e14c4d95766625e2e146cd4faffe Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Mon, 16 Sep 2024 23:06:41 +0530 Subject: [PATCH 020/142] Update write-cfengine-policy.markdown --- examples/tutorials/write-cfengine-policy.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index bf7ebdd8d..703372626 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -177,7 +177,7 @@ On the policy server you can run the following command to make sure the syntax is correct. ```command -cf-promises -cf /var/cfengine/masterfiles/my-policy.cf +cf-promises -cf /var/cfengine/masterfiles/promises.cf ``` After some period of time (CFEngine runs by default every 5 minutes), log in to From 91d1bdf0355d50b589bc2e5b0b5285a20c089399 Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Tue, 17 Sep 2024 00:37:40 +0530 Subject: [PATCH 021/142] Update custom_inventory.markdown Typo correction: `if => isvaribale( "my_owner" );` changed to `if => isvariable( "my_owner" );` --- examples/tutorials/custom_inventory.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorials/custom_inventory.markdown b/examples/tutorials/custom_inventory.markdown index eab373430..551ceb1df 100644 --- a/examples/tutorials/custom_inventory.markdown +++ b/examples/tutorials/custom_inventory.markdown @@ -67,7 +67,7 @@ bundle agent tutorials_inventory_owner reports: inform_mode:: "$(this.bundle): Discovered Owner='$(my_owner)'" - if => isvaribale( "my_owner" ); + if => isvariable( "my_owner" ); } bundle agent __main__ # @brief Run tutorials_inventory_owner if this policy file is the entry From 2234fed650c603c15933aa0fab22f3574244b818 Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Tue, 17 Sep 2024 00:37:40 +0530 Subject: [PATCH 022/142] Update custom_inventory.markdown Typo correction: `if => isvaribale( "my_owner" );` changed to `if => isvariable( "my_owner" );` (cherry picked from commit 91d1bdf0355d50b589bc2e5b0b5285a20c089399) --- examples/tutorials/custom_inventory.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorials/custom_inventory.markdown b/examples/tutorials/custom_inventory.markdown index eab373430..551ceb1df 100644 --- a/examples/tutorials/custom_inventory.markdown +++ b/examples/tutorials/custom_inventory.markdown @@ -67,7 +67,7 @@ bundle agent tutorials_inventory_owner reports: inform_mode:: "$(this.bundle): Discovered Owner='$(my_owner)'" - if => isvaribale( "my_owner" ); + if => isvariable( "my_owner" ); } bundle agent __main__ # @brief Run tutorials_inventory_owner if this policy file is the entry From 3cf2c9cdcf8acaf8eaf9c482416b417c9f0d760d Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Mon, 16 Sep 2024 23:02:45 +0530 Subject: [PATCH 023/142] Update write-cfengine-policy.markdown Command to check the user policy corrected. `cf-agent -cf /var/cfengine/masterfiles/promises.cf` changed to `cf-promises -cf /var/cfengine/masterfiles/my-policy.cf` (cherry picked from commit 55b4dbf090e0840dc08c0e7096c25d41cd9246ff) --- examples/tutorials/write-cfengine-policy.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index 8c8169cc1..bf7ebdd8d 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -177,7 +177,7 @@ On the policy server you can run the following command to make sure the syntax is correct. ```command -cf-agent -cf /var/cfengine/masterfiles/promises.cf +cf-promises -cf /var/cfengine/masterfiles/my-policy.cf ``` After some period of time (CFEngine runs by default every 5 minutes), log in to From 1097b31c57c5b685719e4fbe3f307edd62cd339a Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Mon, 16 Sep 2024 23:06:41 +0530 Subject: [PATCH 024/142] Update write-cfengine-policy.markdown (cherry picked from commit 7e96b6687259e14c4d95766625e2e146cd4faffe) --- examples/tutorials/write-cfengine-policy.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index bf7ebdd8d..703372626 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -177,7 +177,7 @@ On the policy server you can run the following command to make sure the syntax is correct. ```command -cf-promises -cf /var/cfengine/masterfiles/my-policy.cf +cf-promises -cf /var/cfengine/masterfiles/promises.cf ``` After some period of time (CFEngine runs by default every 5 minutes), log in to From 2050dc9084d3bca63e560be6b11901b39f11c64b Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Fri, 20 Sep 2024 10:26:29 -0500 Subject: [PATCH 025/142] Typo in adapting to windows content (cherry picked from commit e23f81f5c4edfab15ec3f19bc1468c292d648c6c) --- resources/additional-topics/application-management.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/additional-topics/application-management.markdown b/resources/additional-topics/application-management.markdown index 17fc5d439..f8ab796bd 100644 --- a/resources/additional-topics/application-management.markdown +++ b/resources/additional-topics/application-management.markdown @@ -235,7 +235,7 @@ Refer to the msi_version body in the standard library. CFEngine implements Windows packaging using the MSI subsystem, internally querying the Windows Management Interface for information. However, not all -Windows systems have the reqired information. +Windows systems have the required information. CFEngine relies on the name (lower-cased with spaces replaced by hyphen) and version fields found inside the msi packages to look for upgrades in the package From d049bc57194d19cc3cf53ad0042d223695d8d887 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 14 Oct 2024 13:51:27 +0200 Subject: [PATCH 026/142] Editors: Added Zed and Pulsar, made VSCode, Zed, and Atom / Pulsar images links Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 0928dffe039749622c3c6560a30657f7bf88fcf6) --- .../editors.markdown | 16 ++++++++++++---- ...-writing-and-serving-policy-editors-zed.png | Bin 0 -> 182607 bytes 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png diff --git a/examples/tutorials/writing-and-serving-policy/editors.markdown b/examples/tutorials/writing-and-serving-policy/editors.markdown index b9822ad71..97f1187a6 100644 --- a/examples/tutorials/writing-and-serving-policy/editors.markdown +++ b/examples/tutorials/writing-and-serving-policy/editors.markdown @@ -29,7 +29,7 @@ Vi/Vim users can edit CFEngine policies with Neil Watson's CFEngine 3 scripts, a Microsoft VS Code users have syntax highlighting thanks to AZaugg. Install the syntax highlighting and snippets directly from within Visual Studio Code by running ext install vscode-cfengine. -![Visual Studio Code](guide-writing-and-serving-policy-editors-visual-studio-code.png) +[![Visual Studio Code](guide-writing-and-serving-policy-editors-visual-studio-code.png)](https://marketplace.visualstudio.com/items?itemName=azaugg.vscode-cfengine) ## Sublime Text @@ -38,11 +38,19 @@ Sublime Text 2 and 3 users have syntax highlighting and snippets thanks to Valer ![Sublime Text](guide-writing-and-serving-policy-editors-sublime-text.jpg) -## Atom +## Zed -Using Githubs hackable editor? You can get syntax highlighting with the language-cfengine3 package. +Syntax highlighting is available in the [Zed](https://zed.dev/) editor, via [the **CFEngine** extension](https://zed.dev/extensions?q=CFEngine). -![Atom](guide-writing-and-serving-policy-editors-atom.png) +[![Zed](guide-writing-and-serving-policy-editors-zed.png)](https://zed.dev/extensions?q=CFEngine) + +## Atom / Pulsar + +Using Githubs hackable editor? +You can get syntax highlighting with the [language-cfengine3](https://github.com/olehermanse/language-cfengine3) package. +This extension is available in both [Atom (discontinued)](https://github.blog/news-insights/product-news/sunsetting-atom/) and [Pulsar](https://pulsar-edit.dev/), a fork of Atom. + +[![Atom](guide-writing-and-serving-policy-editors-atom.png)](https://web.pulsar-edit.dev/packages/language-cfengine3) ## Eclipse diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png b/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png new file mode 100644 index 0000000000000000000000000000000000000000..60d69c7288f1a576678908372049264d2aab8c1c GIT binary patch literal 182607 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

!|~P1R+hlz z5Rpf>B5Z*F7@ee5lAbPCDwn(TH#9lm{0garv`oRhq`N}7nAfO0M7Fz9I4bw{HI^6I zT7qwrqqOUlI#F-W1GDH?_etZ&WCF+FHM^-H%I(*BHtjnFPe*)X^!{3xERUD0Po3+_ zAUse8&9f07)!W~mHta=Xy9L7u>Xgl<=`eqpMq5Ihw%acVLwPU5S_?v3Ms>HKs9bV{ zTLZtNB7J$Xu!A5C@19(h>z$x{6Pj#)E^MT?E$x z2+be5vrNVI=G4#`5WWjRlkT|htwCX25)CEwV!n^rxw%Cu^t)nEq7b5xfyI3`4e=db zns>b|%I_-6U�K%j`BRiDNFE@n}JZp1}^TjuN?rS>t3J_PwKcK8=b}o9P#941u8E zJh|;CF}cdcky!$8cS`wA)2AUMx;T+)ZAEK^w9 zJ3LEdh4=Z$QK)6o-=$~}?(Dw?u%37%c+fSSHf#>TK*-OEA3r`0^&9=9!otG3RD$hJ zXqnjPXk@Phe>7U}rdIAwrLSDKO>EO4c{T1@cjLEx4bRR^Z7g=e?01dR66? zN?o)+9?4F-S{>#Z&7IG`yH?^M_^>~?UE*7QwG!LFBO#isF2?nf!s9W@37QW*IZMNQ zz$o*yqIl`+W9aLP-!eNJ={NAgE*lrdO7)Yc%Re;Eq8Mu~Jh??8c z)5>tBlj2a?*euRGEP_gHf3!8(IwP)^BDP~G+xtMgPwfe2GX%>Wa=ToO3Ln<_XRz;= z#Bm#@I^NS`yvHN@lGoKdHivQ)Yax|I4c$VjLKI&TSksT}a`=($t-@M8BEyuz&17oX z7GjmvVVZRfm!N0xXRboO8F7GSLPA_u8~B=J4@1q6Dsp)obIGnj&-Ug@TGm0(3D1#D zcq#-rE=3@ZL^ZotL-i^>ESHK+)yxs`!J4<+Fz`P7BPbF>y2Ndc-rDq zy1ylh4l$L&0@nO!FE=Dk-y=~_BY5fzVj~xxX=T*NjxbTy+3=jFhmBNCYjJKT6H6Q} zKRsYh^arLryP^DbwFT8}cn+i`;s`p&$F7%>MDFlnmJHQoj>og7|lLfL6X2 zdU95cL-EA_o<7w(ApIaOgb+Yr{LA&p>ciJ~WULZKqu;I*W`18sXMP%OA@&FWwz!^j z{F?tQ$qUcTXIz03TPE5+KK#3!&-SiJ&-UbjaR^cWDg7UB{y*^hwy6#(I_STf{xf98 zMOidLQnrzTWnoSp`EpcHNO100v?MYjq8Q)~+sk5c;pXK(cHJW&7A!`h`C}-%Qol52 zK%XQ|{|^UNC=0-a!0Ya!dmre&v7VnC9oc++2VED`s8CCq#JKa0N+czu!Us*yYHkyY zjG@9Zf@{tDf(MBKr%=HESuQNkTQH_fk$v0C$If;-R64)R<0dRECom5>?d-Y*K%npe zUs<$FnSWXTRfFRs*=Kz=z3R>PhhleValiNr_+lP9> ziX0Xe-OTRcXMb_2K?-%Vw|W=Qq2!$c9qiQ)vjH%SBh0T^^YTMpRaHo#<6tM-!MuHz zgnwUNNq|Gfiu(h-3n0jei9Vp=3Io=u$cPvjZPEPvIhqFN*VRQL_G|=^-?nPX4 z=DyTinuCgD*54Eu{vTu}O{a48QQY=Ku6q}L+saP{ZUZYfbEGkNOy<}b>w_h?KiC_7 z5LE^9vvXO@un0W4?PFF@uKYQaYXMEd#v90n=V4p=5fTvzi5v(F51#P}{|$z*?;EB) zZZJ8~K!hieCgA|QPu1D5XuKr05Tq5o)>QrphzSlLSg@pNN-3tPjVPw&;m=iDChCuO z8nns#!Yc?U1_5x%HW*{*zmwI=4^Vm#jMiv;FfZkQGYC3~!Xp#;U;7G*iC|!3D`tep zq@ndAA|e7i?1Kwi2U?|yg5ngAs>?+De_%0of5Kvl>Th&g{**v+&@GH6+06_epTRfz zM89D%7R?w9f5BofaB*`30s;h+q)pWlO~tuV{rtQb(?b4%ikTr1%njE<>xHi6+|}rY zj#1%Y=4j6jJ(GeUE!0Y@PbgnIB^wRrUnD%3;FuAJtM6|r{uYasB9!eKx?#vMdHTk% zYjdnP**h9BWe7)xi(~G-JZfK1 zAzmS)ws%Ilx|x1&A$`KD}tj%#3kX zAap}O`L~?XFP~#j<~jygTp(AO6(W%dxH^3_B)D_6<> zNvgSo;gCvWKPJ9(7yGU*zAVkld6t%6ock170d;ZSsm<|?2*J@zH`A1tm?A_>uJ1>F z!zCfz^>j{t~N7On`N)0&#c`o{O^= z>q+&1Hh+1CL~@!46(fr>K!>WNz!$YAg1!QvITO}bPxdzahcf|eaBmsMqtI{wAdwn3 zf@W%w6aPVMHi&Q#AlEp!yEm<}Z);Y$Rqh(bNQ>GpoG}BaD)IDvMJ9G;QE4sL2|YPw&t?lYUZ$8<4mI;p4!>JFXnqI)lWNK%(f zb>VFMN9qsb~JV{+A=2|XFB5htt~mrofB0oTwgB!dpa~jdoA^$tA0VOS_16FLx*RMZaJ!fMD-m|ij zNpaAqVr*pOJ8y2`E(dB7ccWxd)?YN4bnMd`EVP90eZ->GTwCQ;9U{aHG zBhm4KMw734=c&E~nRWh%1W`K@ck1WS@~7qpTvyL{n5*@(S=^1uQKA7FDrD`}vsHia zKU=Vv%M%^E58jAc}Ok-vp| zx5|wj#N1F0@8~nG|4XJDiQOXtw7{|b*#?g~7B+ZJyFGdbrbN=O*7wAzC;;M*-dqa- zX{CPt?vrrb@2aDH>6VqcwswH8+QmaCDIsy~@++}8ca!kjD#~of?VwQpVbiB<@}!+& z>@>U+F2r=vGYuR6(FJX3fMF#67l-A0YJ}7kMKmxQ)mT2_Jv9HCo?w~bDsXLnTQ9uN zuOy~`0Wiv(%sClpjGG77|8%rev4J?2P_yaS`Ca}kX*}l1R7z2`on5{)P)OG3gk)4Q zm`p0I1-d9|a<#kfDGuX~w%~wB%4V@MV^AK=gYN;A5LQj|Od`f1c>~ZyY+#Gw&OFj< z6@mOJn8I~LvRv#vV&5T6kH2+TkWNo8hW@EYdUk)LF%Ml{&Kf;)SL1G=wCvkUY-`sF zduEQE`+OGkpQ~jI=_>$vW)y-4s)|qOnO|d54%RfnCa_i>uXcAMmz1g{(JubMB`hCR z+#7DoflW+0tNe(8fsrBG|6@vEgg3}oPEndTCL5GFxXZZO|K0dcxt0 zjm-&Hn@~6Px!O9|R{w-kwC$9q-;EV^VwCQ^R zk&!|Npi7@_umWt~8o+=a6Mj<~%@y>HBx+CY3WA0omv43TGW$@H@DZA*6_Sg9$_t0> z+E9!oYYgDbxq}~bC&re)b45d};^CW{B*SoepCJ=tM6yGIqJ8sd@|l&KE=0!s1?8O0 zV}IrNp3yqp62y$ukzGb&U>)T0iT~`z7Y)#oa($WIX&^Uk#p%C0ITm0S&@oOH0%jK_ z)86}(*DWEb zYaH6F!5F`jYT7Xvh>fbm2c%>vjpH)MmB_#PD zXaW7t=fI~{LbQM7^M8N+|9}7g`ug)J3RKlW{HtO4gmu<)sBN$7F*UciIXJ{n0K&|| zZWI$e{i>Ybp9{Yio}JIy9BZ}=l;&|w zvlSsc4idj_(=jqXEJ*TebLziIkVL6VPA^_xJNESr<@AVno4q`eltj3=!psAJ8(m#q z$_n{x4vG0RDGsX@F2nBiyIX_`uj4Ap}ZtqLM-UToNn%f9L`rzlVqK z>UH~x+jWORiTVnagD@kUjl z6o?!tG*E#$zp}n7R>%qqb8c>t;th}H(w1xd8hISe5DAzfmF zS|k=aZ7u@bp9O+W2$G1XWV%-y0Wpy%{}*Vpiqi^SR0ISmXSb~Ux$$vHH#avpd{H%Z;(oWL796Qal`;&dzMp+_>34m)3v|$q&$;WUqcxdR_%ae|3c0lp^(w z9jWYRp7eC;{Za-Rkd72_VSqNnteT5*^tax@9FWpkek>s8W(?|@LE3lSWY_tp8Umi<^u3`C&p8EXRi&x0FqN_>OLe|q|!jDkXp z*@z(oQ1@j6j^hl+zd#5G2$juQ(Q|Y2KZa)t8skxy_I_EUm!*fg-(8pNw6vP-4mI#( zkTBBo6m!*gnJeAacs%y~O2rd`|6^LA3;;R>%DJ8n+4BPdM(B^)EP+h{4D6~OL`#tq z>Wr%U)b!*Dr>f?C{r$N;JtCKSrjy^iZ=GEAlDkMrv0(T=+acqybi%t%vVYh43taqr zH3jryRL>X1rD!h+5`n4#1}s5%a`L`N@#2V#^bmjKIX-m#U9b>PO}dtOd4O;Htmyi_ zFVcWgqdQ^KQD}pRQqA23EpB>ZA_ah_Aj0?lC$i&rdc5`8+Rx zg;5pk3^Frt6p0DUjZAHd@>;Y%SSt9?crzz%dpSVP5EA@J#cuQL#e^@5Jy*I z`t6wEi3EjWNA@YHoBZWv>1n~$rELKpK*TAzZ`Jd8uB885rG0?DKy8y2&ksnfv>GaY z5S2NdZs-ij+f<&FQ)S=$WpY!#71u{yAdE1 z_MPanB(bO4a~c{Lorrlx%$g&&g@{OH2S7En5P_IjSZXVg1~`S6U1I>t zr?fE!hA;h7*tWoFbZhV{@UtTFKbI%*vuy4i$vXfxevfB^z^OC z+S^yF%~EqDHkoH=n!v%r%BidG6;3W`n7y7(EnHA?sS^tn%^OcuZxwt|@eC3E&-KsK z1W!DIk>%;(RpZMAVRy--^||D@(m1*rp3I2byE|aOB%V7rIZH@Mgio4g%kKRcj#;|@ z1rAYSxV*?u@bwoi97Wet`)^$VjcT z9D+mhqpz?}1G0cbkO)EJ|DAjVS}``hS+~b z^fz}CFxkVSV`KZIiG4uBtzL+l&*tKnPorhU9{Rse;!n#9Qm~gfuOT62jtk7^fwT@_|Z>C z4()|e#0^HQ@8583pNZPr_oZ+yC!{3YHEbvEaY9g#+=OPwWLk)enmqkKbMROBtzeOkfBJ<9((&|xYSC@FqJp(M$bCKY#eZ6qQl-Yoe9KSlBDh*q&c0hRY> z22Blz?M`?yJGg7p#u9bGR{lM^6N9Lpp5DL~Hb-R~fEVm9H|%dBrx^x`y?NUYJ3SqJ zy4l|!h(u~|b+{OrkPx$7?`vq(+?lln-$?4R<&H=0pNVZ(GI6a$jyc+K!cEC8yB6n8 zj`m^-X_lX4d0Ex17r63Wm`)BL6rvn;W+`jCsY1MhkYMlaB`*gnM-QZO@09~;zIr>xyJS|& zRA9Obj3nL!u)E8JT#G>xVj2D2$qSy@>*cpI*A-aAXT{f&{wd^ISpuuviZKiw#WTD|&{ z3dcc3y$qw{ufXnXx$M1#SSJp4RV|MP$+Rj#GNQ>6ZEXf?bL4*egE_-Fg+iZ_4k89@ zy6-}WedR)f})$~}78 zdku{fGaMrxO{OdGY7cVJNtjktTs*Gf?%b~y8E?M&D4e!Ae#5%%^(PkN0xx%)%8r~gs5-yD2#Dl; zIF~O5-CZ6~x?FYj`@v#@2OS>E9ZzV7Do!63=Q*}r-uiy&d~wg>a=C+lqEl}&z6CKI z4DW@R#1v~HpPQ5#4T1LK^>0D?_kh#j|9WI~waBXQYbuYL(IYvgV07@R%=6VDf(O&U zY;!!leomn^0ym%T+NwWpw2fhZ52vHCbnVV-a4#I~cyPEJK7->3ULHCE%{G1jwuDId zliN*9GKZbmVfTqD|F^0;a>s6spf|UaCHLK<(3aG92KNH9fcx*oWah9REQVfM?voXL zo?hoS{^2x8tM8-Wt&UzS&wj+v+Cs;ZwKlsVCmig;pqK)syfr1#QWi?heB`MDqPwf3 z8Y7gQC>&9Mx)K?gOpz;<771vdR(Z$+eyM#Ah-eU5Amv$Cz zSn9IvC=+~_iHgveA{dR!4O+c?w;FPvPN_-CRtT&}gLbUa46?D}K+BC*f#C*Iq~Kno#M4rgxIN~OCM>C#6`-hOJoTp5W}$1>Nl9ZGSpt9k$GS# zw^4lOA;kG;5#3TCC_xYh-eLcaHXDc(csf|K+!sXKjE7RvAQg(uO|i;s+Oz0z6+7}S z9T5qeP(DY}n}harCE%?Al>k}(33a+xTx-SXLN_H=mx zA&-Xlq(h&hyivQC4{RlhMbUheXIMd$1HFk zsq|3K(Nz_GuPX$zANyDY1_mk;ygj_uDAB&{RJ#=$>(auyb_+!qE|tQe2#3pI-e>=~ z{q6m9!)C0~SQ!A$(sOiDv4j*#Eoog5QJ&$bG85Nur78}IWpH21b^Jh_w06{Z23Pyy zC*E74JF#l2+u`eqCmPNAo{{vcKDNfRardtuj68TNTy#R5j0>G|YkqC#UA^Tj z*}eHZjNtqO`OSJAmkWJHPrkIMfHNCr*d%VMKr>TAjWS|KWBHf2wG4Ol#Z$dUuFb<0 zMSS>yAYYuFoh65r7sYRR*F6=1)zq6g%^?n7#Tp%-W?$b)t4g!Nn#^<8GJh@@5}nmV5n9!am{$7NiU|GEwcAE9EC4o@#ZBkmEpwoP==67C$zI zcx34%9@wq|paGe_7|Np`(Tku_`ZETJ5kbqI@16m)+~Ip$>wB7$LWI@eZFO4m*t6Qg z??S{JCyoRH$u|7c!w7`9;lQZr6UKFe8QpC};2*=&8}W@O4l!SVyXRX^AD@`fny6~5=1XGPr{{B$N8-%H*7nX8bMNrbXOCY}+;@#RLR zpcB)~03CG8fEYYKRd{wOwDy~u>-7^W0~C|#oDkIuKTM0SU#uz+>`5da5!>_)MZHIK zYYZusK3eN6-ogSh8&Te~nZx!EVEIO%#V>;hZAau53yD#qP?wy`?Jh}gqsWtkwtM5$|>67$Mv(v-H zw0P1KhzRp%E9;V@dMu5)-%?gGcw}!#Yo$hY$r&6R7*wp)RG&$ujAZcZ*Y#qGWvcKy zv680CdMdR>m0zF3IYZ5epy0>LcVfz^KEfA&IDa=X)84r}>2maxhG2aANnzvBsR;&y z=>@kIZ(lt95nePs_OyPfbuJE*)mJP}sM{?}OVRVxFX%kx@pUvsrw3`pwE`2t;X^fx zZ~US*!5TFos~H&R=q4X9HW8jKVt1m&e+N80=Pq%7bEtcsU z9ws{pi4@4-Z(r%r60*=NnHN0$J$nIDnM^!%bnD%myKSF4Q1ZCSpA=fk2q_JZ}zI2f-^4uuM|is}av8I_d^RZN<-cRkEWr;6>o2d;HBCZGuVArFIlf`PccW{q z7BdWR9oTDM5H*)a?snmPVjFbQ=#r^K4zP;r|F}v2aED8yd=eMkKf+Rt;N(6N(P-DN z#3o?QJf4h(dU*%R6o1#m<_$t}=(0zuLKI>~nILPS@9Qc5{Godx&}PcHnCCqa+F=5t zRNu5IzWXEll1MI6hQxJJK}ucHG6tzH4zY2?aND?!C-hUsjx2_SwteP{jXv11=F~H$ zrkBm}OscnSE}rjjQ8uod?tr&Aam;37>m6FyGNe$`f<^ zWz*y8beAt5I|39OuMAdlB(A#m@Yas`%JsY9DjrCn(5kFIufb1R99}Z&cfq_Jj-gb> zu>LwP2i5n94gd3)qqnwClC=5;oQ>hRMutqa`OUjs2Wf3v_5dG0zrN}56x@XE0~J#hjo)g=y0lr*J@=Je>&s_m*tj4~`+iND1q+KSOyIPy zwmiN%wtwfJbR6bnk*J(PJ_MStmYgclwyahSG;3BYNE$p3VP%O0)+MW~rPHpsj9Z$? zKVi=3ycp3#c|WsQ+)q-i|9o-ZbyLcf;;Obal(H8uZHdQqJK!+onGt4aaBz67nPT~l z{9H(kPpg>vSgoPqN>fOqyl-$Xihh<$=`mG_Kv%Qoa4`!D$3PHYZOp#y&c8oHU(a__ z-bau21-I{xNsZ1bzsY=Yh(hOuXlveQe>fw~$0Q!N`d!uDAn|b$Nkevlj#qEt5-+BU zwBPdO;XBVwB^>cS+*g;MrrhC8ElAuEG0YO9 zZtR!4=XlMdl!VVkfYmM2U0E{&rz6Z9Wj%j`QVBP8*>qGd&m%manyQ=JoZMwFKfu{P zQvC|5LgPh|7u<(f`ga+h@2bC$5@W7{dn2=_GF;u}I#U{1bhaJpY&JI#d|aCSG-Q@c zQ6-Kg^$$t=3r$khEr+6v^&+*UGDqjwT^nrp7iapsZf=}#*18VLcS3wV%IMeGN9>6Y zokH9jOXXZGKaE7|5TCkl#yp{Z@3;reWeC1Us$s`Gm)q70;R5vaa3?0v$Cj0 zis$HhyxPt1E5aW;#Pso+J*?kVw{w*mnEu436(gID%S(gX#EhoUfkhirTh`jhyiB`6 zw(-tKTttN%q*cRqE4KcR&Iah1v*{=lD%#j-jra|7@ZgVCURNJ17w-8++WnN?l?}Ze zovCqt*VB@c!kY%>JM(M7WCtxjy4jF6g5x_9muM6gG<^kT`z^*cgiO4&d@*DSUZu}i z&c_nQ&Q6y}cdw?;)%AnAz`prU2IsD}2V>~E9!VQ8K1w!ajo170n~KKHI`r(RhL`I! zuM}@z;7*~1@FRjyAamaO!AHeCon_Ri4kh1Y?)$C?SX)Sk!p>3ifQ?TjC&>Vj7- zVbYU5_1Eln;nR1CeN5DZrguL$2509Qu4rsJimCN$SnJ+DNcnp^4)h_FoOfhjWX62nS@DJs@tKJMFW#VBe6Bsvtq6YFH)J#VAYG@ID>&!aQ0WLd5NnhBPc~c#ZR5wp{Zf|AaoI4J z?Wo_w!~4faBgM4ZVkp;aR$4Fk4ypDRp6&IXoYq^RRCh0bn^YaXeA&t2qLNK|r`rKd zShYWml*=Br1j1ykAHGSNZstOaqFA009Lh>Y4xJM!SUiwDfv4CdtKs*)jI?Lc8j~hr z+uC&SN+nBT*}R-NX0ac3N;7wLFrGS9q7HFMtV-@}G#*S1k@+rltqU2?MLc9zIz`>H zE&C&o+r^d@LX6G=v0%E8Q49Gs`S@bB+o+DAk^MWe*zX-g+e{7N3b3g<0~oW9x1=zIc?;myI1< z7JnF)+mI)_hv~F6Ms9y|{!^Ie)_@DK0-G+~fSGWif%McBh4PnW+bWyhD__PfskOlw zn#Q{MlB!_nElq3(3N|?zYZi({%O>tF^XYm!vvrj7p$7esujgyxwC~%?;y)ynRaF=b z##%N%PSrtmJ6MLMVV!d}k#_&=N``a19os55^CQogLP{!db+_L5T_L4(s-2 zMj;qIGh$vEiKEhd6IQ4c31c0e?sBe^Q7?_)a=x=&xMt(#{xHc}*W9oc`3>@Lz&Zx^ z$}IoE`kH#8HKg&S#SHK8u&Avtd=qqgI?dXulj1p(X}iLU(qIAFs^U>U#H58XW|KpmQKjx^}*_E_78I zr{3HV3tFLnzTvu%Iu((iz@8FGgaMK4lETF|irVA%=F5(@AWj)H^Uj_PX^_E~aJn28 zzU&FveTn$-T75m@j4F&kYJ0k#aD%v{G-s~LtoL}eU1DwZ@#>th*F`nVE4VU7ImJ=8 zDe%oLUdIdhs{2vFA97mr&WvH*f}Qbth#?T2{%HQ*H7-P>nvr|XdN7!J78pw(Z}INQ z-f2;gN~eB8K=Xmg;~ziUFaQpbUm@RfucZ!Y@KuT!wSKX1Z0p=JG?eozGo z!r?mi(Cae!8(@3MQcMvrQNlp1yKAt@%F2>#lsZ+A7-faO>%L?L-a`?fo=f z!tro{3X|o`G+12|WP1dMCSmCRDj@VwaPq+-;XD5p5J0yiTj-yrEz3wjP{R66rBOGM z`3PUrD#{o_V2SgiQ2!o1IeD*-s!hCN{g&Ta4c&*6ZCr-sIC%@^*x_1RW13`XzC@=8 zHfP+kx{Li;B=&5$wy6D@4}8VOv#36xv2iN$-RO3~#GmOb9}dZWp;DrLJs!B*aH-vA z$ZJ|;8~gm;k&j*?%HAwD)aWM{sxvP`VNCDXyx_2ul-8jrQf<;%f1r^~( zW*(KJ_+KMl?n4>4V_^tG>(8Is1VaqzZ@*x}f(^lrmCu#1BiGyP++v$^HJJ&;2Qvu) zR!?ua=7pN+gb-)X;>sneVINL#r1U3V&evl(r#kt5*|##Z4Q0jQ%z1(KG}EPf4qZfS z^Rs+BKF^#cw@lImS_lS|DJ!CfQ`GmxY^=fGE12~XpTIv}Iv9c5X*0kmi3BEsM?6BQ z15-cx?OXqHt{=($D>pYyA|JLv*WAl`V>cDEh|Fgo_Ouk=ApGvdBM5snNVMQZn(yfc zd1VOVie+!z<13#CP{T92c~hO{eiU4u&Nu=(J;*z%n(=cnJsuL}E+2VSsP6J$SZS?u zrxXD*Y)hUzI;l_YsPE{f2FH?Y8W+3J2)j;FACVF3N3XpXJ>NX-&sGdLI9tfz1K_fV zE=6YakXu?3Nt+*Aqh<7R?^lhLLeoD6pzAW{b7D+TZ9sT?oY7ItfA)i65nXV!IGuy{ zcyUIbkLJH)(41MMUcPorpY_R2i1I+hem?2}gR zHxl~~=pLAl%IlEOlV`kq>?ZG@eO9Jug z{xo4sTksiHXt+P8U27g^_e_A~ESDNPiCm2iDe^B|RF*p5o(TnD4-B3IA!|J5mpyh5P9q+_l#|c`|O+ zH+i%4*0S*Ks6jbVn1vA@h}$r31(%5rS^RbHY}~^`i~%9m0TNz)k6ZussX8nULr*Yj zkNndY0qau5nubw6+`d6#+fxdaubjoz2C(fjhG? z&4Qn3uTyc_XNb=CJKPyx``JwUlZW36TkQF7tbpmhc^QHu`uCdCKW}Wt0hlW?3Dv{G zWZjrnEa@7D1A@J2(1$EA(|BMYX)v9TF8P~nnNFgheE0tz7I+}PY^DUCGpnIwfpj2W zHMzvwwDg7bLHVz?`zM65yI2sxCALqzO7ozHZWCm;jb~=vER}Q+FHk4S(?S#qn0FWC zswZ!wQzr8_UT&<4NER~I0dJ%lc5AtJL`)rjC?`!fdQ@=fZf2*O=gk4>yk(R3EG4X$ z>-<)(yPgw-eN~O3DRGKj^VTQ%(J^j&r+<(zNgTrFo(|+o8w`pK4;Lcoo+K~TiGFhy zk%PD9xgC6$8{PqD)^E{Jm6@;+VEdYx6D%&GmoQM*$=fhHT{V2w$&`r|-(c)z`2w(h z6cyl8APj7SY1$_vVm6zDVORY;u(P6sITYnqMm@-jF^}q6qh04*)w`J(+$bNDuh7P9 zjguba!bLt+M&m@+`KD9Go*z76i;-D#eYY;Mwxkl#qg0~?LaCWYgQX$|Fh*fZN_C=W zc{8Q2AhWTU88)pdJE(6Z$QYbVkyZJ{-iTL68OwzOe;kePxd0{J8aIb&H1g-37)t#| zG?JTaLqeL%2Y4PjFQ0;o_jmU{@!qgQ_tAsrYZ*ghl~B{AaNW)W8z#Bbx^NYN10#ta z5yF_xwdDm5Bc0>5Hfvi)=2(0MWT&Gt=BE>HU~#@!bcxeC%h8{kPyG1FADkYr@<`gD z_0pNK4v~VZC@6QYVtN|}GQII~xPEoXLo`efy0(|Wr0!v+C%HH#wVv16=HB(jarI`D z0YMMm7v0^st$||)ArXo`w(FFvjBWXCElt>@7H|C$i}^@Pfbc>rEyI&fEz8OHuw)5* z&FV#8*8HXZX1$ZDmPRd(wv`I1Hb*0~!*(ylcq-N~&)~XVV+HNnYLVM+?mrgYjrc7N z8KKym8s+5R=8?M;q4Za@+MyeRQ+?+c+Xc)`jR{w|suej?1l^?V`L3g~hh)bNBy7%> ziyU_Ncqxn_PG&DK{kT#jI85fCh6Djk^-zSuf?8Lo*1I<;c*t}d-bWzU8uL(njnL51 zTi9Po5m`0-g?R0B!B)!XP9_O91c;6C5Z(y*5!3{uo*$1sB+ONV^xxcy`YR(YPqME_ ziHMLhn$r2gYrms()i&%9>imWhoXh=Ii33~)613i(RMzI(27R^b*@|+qO>?uiEp}RR zP1pL={l<8;r;dt)n@+Y0tlsL>XWCMD*YRC#m^&@1uYKTr4VREB)p5T}L!AMkku!pEy6^v*Up#Ok#4>kzJhvg^ zs+qC7%gh#Lyjykh!;GJw#UC6Kd7ft)%f=M@Q1Fm});c$70-b?bj+`>TE6?y;XDDM_Ro!Tr_ECX&bCgiD$Q2bzw%Vp^Wx>I zSHFZe{prl$|M(6E}t#& z23?Z2Z<{Zi%rbw*n8dzEzo#iE^v(3SchJH|g@*e<3V?9$t0f zpMK%OC$)J~^cIIa+Whe2;%CuJ2Ne${+zs%0I9aZ&N7}yT$A;_t7o)ajd2Y=L_2u_x z$~z#V+GlH?h2kf#1seo74!=0x%+7DtERm`h)n@4=uCzptEz@M3*z3l|syB&wYrY?H z-QS^q=*~JZw)$mNt7d#jx4K=m2Gtz!@`r#7&I_;GUW$L3+_Z3mEX(VATeHJ6FK^qr z@>bW=>FSK-iPrDzvui_qer=vtX`6>@TE4>LfV^V+x@KNm9iQ-U9E%7Vgm!G>Y*A1> a`Jb6Fj(dvm#!o*OfWXt$&t;ucLK6VkhZ{%$ literal 0 HcmV?d00001 From 4f2703c6cd7378561e6bc2207c717e4673efaefd Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Wed, 20 Nov 2024 08:55:28 -0600 Subject: [PATCH 027/142] Updated vagrant instructions after changing default platform to Debian Ticket: ENT-12445 Changelog: Vagrant environment now defaults to use Debian instead of CentOS. (cherry picked from commit 00715ccb89e393b8e34a44871039f16b7b8614e6) --- .../installation-enterprise-vagrant.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown b/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown index e9b55dd23..50f6ff344 100644 --- a/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown +++ b/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown @@ -10,7 +10,7 @@ explore CFEngine Enterprise. This guide describes how to set up a client-server model with CFEngine and, through policy, manage both machines. Vagrant will create one VirtualBox VM to be the Policy Server (server), and another machine that will be the Host Agent (client), or host that can be managed by CFEngine. -Both will will run CentOS 6.5 64-bit and communicate on a host-only network. +Both running 64-bit Debian and communicate on a host-only network. Apart from a one-time download of Vagrant and VirtualBox, this setup requires just one command and takes between 5 and 15 minutes to complete (determined by your Internet connection and disk speed). Upon completion, you are ready to @@ -18,11 +18,11 @@ start working with CFEngine. ## Requirements * 2G disk space -* 1G memory +* 3G memory * CPU with VT extensions capable of running 64bit guests Note: VirtualBox requires that your computer support hardware virtualization -in order to make use of the CentOS 64-bit virtual machines mentioned above. +in order to make use of the virtual machines mentioned above. This is sometimes turned on or off in BIOS settings, but not all processors and motherboards necessarily support hardware virtualization. @@ -72,7 +72,7 @@ vagrant up Vagrant performs the following processes: -* Downloads the CentOS basebox used for both the hub and the client (if it has +* Downloads the basebox for both the hub and the client (if it has not already been cached by vagrant. * Provisions, installs and bootstraps the hub * Provisions, installs and bootstraps clients @@ -209,9 +209,9 @@ simple instructions: To remove the VMs entirely, type: `vagrant destroy` If you are completely done and do not anticipate using them anymore, you can -also remove the base box `centos-6.5-x86_64-cfengine_enterprise-vagrant-201501201245` that was +also remove the base box that was downloaded. You can see it by typing `vagrant box list`. To delete the basebox -run `vagrant box remove centos-6.5-x86_64-cfengine_enterprise-vagrant-201501201245 virtualbox`. +run `vagrant box remove virtualbox`. **Note:** Running `vagrant up` from the vagrant project directory again will re-download this basebox. From 302f00045d9444016e6bcdf751d334911658b885 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Wed, 4 Dec 2024 11:17:16 -0600 Subject: [PATCH 028/142] Updated metadata for 3.24.1 Ticket: ENT-12234 Changelog: None --- generator/_config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generator/_config.yml b/generator/_config.yml index ccb71eaf1..7a079ba3b 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -4,7 +4,7 @@ safe: false plugins: ./_plugins/ # baseurl: /docs/master/ git-repository: github.com/cfengine/documentation -git-branch: "3.23" +git-branch: "3.24" #source: ./pages/ #destination: #layouts: ./_layouts/ @@ -21,7 +21,7 @@ CFE_manuals_version: "3.24" cfengine: branch: "3.24" core_branch: "3.24.x" - latest_patch_release: 0 + latest_patch_release: 1 latest_package_build: 1 vagrant_package_build: 1 masterfiles_branch: "3.24.x" @@ -31,10 +31,10 @@ Template: line_numbers: true vagrant: - version: "2.2.19" + version: "2.4.3" virtualbox: - version: "6.1.38" + version: "7.0.16" paginate: 500 From bc1ae77d68a286c48d65fbbc7232d0fad1783a52 Mon Sep 17 00:00:00 2001 From: Victor Moene Date: Mon, 2 Dec 2024 13:59:47 +0100 Subject: [PATCH 029/142] Changed wrong command in developping modules Ticket: CFE-4457 Signed-off-by: Victor Moene (cherry picked from commit 406c16f6b7288398fcf5820f67162ac8452803b4) --- getting-started/developing-modules.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/developing-modules.markdown b/getting-started/developing-modules.markdown index 0cba46c4a..5d114df26 100644 --- a/getting-started/developing-modules.markdown +++ b/getting-started/developing-modules.markdown @@ -110,7 +110,7 @@ As you've changed the high level things, like file name, promise type name, URLs So, to test your changes to the python file, a full build is not really necessary, you can just copy over that one file: ```command -cf-remote scp -H hub git_example.py /var/cfengine/masterfiles/modules/promises/git_example.py +cf-remote scp -H hub git_example.py && cf-remote run -H hub "mv git_example.py /var/cfengine/masterfiles/modules/promises/git_example.py" ``` (Assuming you have the `git_example.py` file in the current directory). From 1be6cba3426795c23c22c125b01773597cdd5280 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 6 Jan 2025 12:40:28 -0600 Subject: [PATCH 030/142] Added documentation about promise_execution.log, variable.cache.tmp, and context.cache.tmp state files Ticket: ENT-12569 Changelog: None (cherry picked from commit 7fbe1c35d24682a42e4f071cff1ec1dc8274a82f) --- overview/directory-structure.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/overview/directory-structure.markdown b/overview/directory-structure.markdown index 4e7dc1391..d0263d570 100644 --- a/overview/directory-structure.markdown +++ b/overview/directory-structure.markdown @@ -65,6 +65,12 @@ should delete these files after a time to avoid a build up. State data such as current process identifiers of running processes, persistent classes and other cached data. +* `/var/cfengine/state/promise_execution.log`: In CFEngine Enterprise `cf-agent` writes promise execution results to this temporary file during execution. When `cf-agent` exits this data is stored for use by the reporting subsystem and the file is purged. + +* `/var/cfengine/state/variable.cache.tmp`: In CFEngine Enterprise as `cf-agent` executes information about variables are stored in this file. When `cf-agent` exits this data is stored for use by the reporting subsystem and the file is purged. + +* `/var/cfengine/state/context.cache.tmp`: In CFEngine Enterprise as `cf-agent` executes, information about classes that are defined are stored in this file. When `cf-agent` exits this data is stored for use by the reporting subsystem and the file is purged. + ### /var/cfengine/lastseen Log data for incoming and outgoing connections. From 6df77fde29ae6ae03fd616f61f3b47a9a66bf74f Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 13 Jan 2025 12:38:15 -0600 Subject: [PATCH 031/142] Replaced instructions for quick-install-cfengine-community with cf-remote Ticket: ENT-12515 Changelog: None (cherry picked from commit 3b33982890eee3303118a90229e8e692f99e1fb0) --- .../installation-community.markdown | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/getting-started/installation/general-installation/installation-community.markdown b/getting-started/installation/general-installation/installation-community.markdown index 265628e38..4b6460419 100644 --- a/getting-started/installation/general-installation/installation-community.markdown +++ b/getting-started/installation/general-installation/installation-community.markdown @@ -19,26 +19,34 @@ and all Hosts. Thus, business policy that you create in the Policy Server can be Bootstrapping completes the installation process.


-## Quick setup installation script +## Quick setup with cf-remote -**Note:** Internet access is required from the host if you wish to use the quick install script. +`cf-remote` can be used to easily download, install, and bootstrap CFEngine on a host. -Use the following script to install CFEngine on your 32- or 64-bit machine. +Once `cf-remote` is installed from the Python Package Index (e.g. `pipx install cf-remote`), execute it against a host (either local or remote). + +For example, here we install CFEngine Community {{site.cfengine.branch}}.{{site.cfengine.latest_patch_release}} on two hosts and bootstrap to one of them: ```command -wget -O- http://cfengine.package-repos.s3.amazonaws.com/quickinstall/quick-install-cfengine-community.sh | sudo bash +cf-remote --version={{site.cfengine.branch}}.{{site.cfengine.latest_patch_release}} install --edition community --clients 192.168.56.13,192.168.56.14 --bootstrap 192.168.56.13 ``` +## 1. Download packages -1. Run this script on your designated Policy Server machine **and** on your designated Host machine(s). -2. Bootstrap the policy server to itself and then bootstrap your Host(s) to the Policy Server by running the following command: +Packages can be downloaded from the [community download page][community download page] or using `cf-remote`. + +For example, this command downloads CFEngine 3.24.1 packages for ubuntu24 into the current directory: ```command -sudo /var/cfengine/bin/cf-agent --bootstrap +cf-remote --version 3.24.1 download ubuntu24 --edition community --output-dir . +``` +```output +Available releases: master, 3.25.0, 3.24.x, 3.24.1, 3.24.0, 3.21.x, 3.21.6, 3.21.5, 3.21.4, 3.21.3, 3.21.2, 3.21.1, 3.21.0 +Using 3.24.1 LTS: +Downloading package: '/home/user/.cfengine/cf-remote/packages/cfengine-community_3.24.1-1.ubuntu24_arm64.deb' +Copied to '/tmp/cfengine-community_3.24.1-1.ubuntu24_arm64.deb' (Checksum OK). +Downloading package: '/home/user/.cfengine/cf-remote/packages/cfengine-community_3.24.1-1.ubuntu24_amd64.deb' +Copied to '/tmp/cfengine-community_3.24.1-1.ubuntu24_amd64.deb' (Checksum OK). ``` - -## 1. Download packages - -Packages can be downloaded from the [community download page][community download page]. ## 2. Install CFEngine on a policy server From 3c69cdc398d4857fc0ee83ab409526fd990b7de3 Mon Sep 17 00:00:00 2001 From: Bastian Triller Date: Fri, 31 Jan 2025 13:18:18 +0100 Subject: [PATCH 032/142] functions: Fix formatting for package*matching (cherry picked from commit b4e8c771ded872f148aea3908089dd96e824c463) --- reference/functions/packagesmatching.markdown | 5 +++-- reference/functions/packageupdatesmatching.markdown | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/reference/functions/packagesmatching.markdown b/reference/functions/packagesmatching.markdown index 7335fba2c..b19135654 100644 --- a/reference/functions/packagesmatching.markdown +++ b/reference/functions/packagesmatching.markdown @@ -46,10 +46,12 @@ some desired packages, and finally reports if they are installed. [%CFEngine_include_example(packagesmatching.cf)%] **Refresh rules:** + * installed packages cache used by packagesmatching() is refreshed at the end of each agent run in accordance with constraints defined in the relevant package module body. * installed packages cache is refreshed after installing or removing a package. * installed packages cache is refreshed if no local cache exists. - This means a reliable way to force a refresh of CFEngine's internal package cache is to simply delete the local cache: + +This means a reliable way to force a refresh of CFEngine's internal package cache is to simply delete the local cache: ```cf3 $(sys.statedir)/packages_installed_.lmdb* @@ -65,7 +67,6 @@ $(sys.statedir)/software_packages.csv **History:** * Introduced in CFEngine 3.6 - * Function started using `package_module` based data sources by default, even if there is no `package_inventory` attribute defined in `body common control` if available in 3.23.0 diff --git a/reference/functions/packageupdatesmatching.markdown b/reference/functions/packageupdatesmatching.markdown index e5e063eff..dcc612970 100644 --- a/reference/functions/packageupdatesmatching.markdown +++ b/reference/functions/packageupdatesmatching.markdown @@ -50,10 +50,12 @@ vars: ``` **Refresh rules:** + * updates cache used by packageupdatesmatching() is refreshed at the end of each agent run in accordance with constraints defined in the relevant package module body. * updates cache is refreshed every time `repo` type package is installed or removed * updates cache is refreshed if no local cache exists. - This means a reliable way to force a refresh of CFEngine's internal package cache is to simply delete the local cache: + +This means a reliable way to force a refresh of CFEngine's internal package cache is to simply delete the local cache: ```cf3 $(sys.statedir)/packages_updates_.lmdb* @@ -68,7 +70,6 @@ $(sys.statedir)/software_patches_avail.csv **History:** * Introduced in CFEngine 3.6 - * Function started using `package_module` based data sources by default, even if there is no `package_inventory` attribute defined in `body common control` if available in 3.23.0 From c4c2cce91dda12897e9948b596ae15b518b88d2f Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 17 Feb 2025 12:01:33 -0600 Subject: [PATCH 033/142] Added docs indicating classesmatching() returns an empty list when no classes match Changelog: None Ticket: CFE-4495 (cherry picked from commit b648e524631c2c61057be61e717d929944c24455) --- reference/functions/classesmatching.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reference/functions/classesmatching.markdown b/reference/functions/classesmatching.markdown index 2f3e55f60..acc24582e 100644 --- a/reference/functions/classesmatching.markdown +++ b/reference/functions/classesmatching.markdown @@ -18,6 +18,8 @@ When any tags are given, only the classes with those tags matching the given [anchored][anchored] regular expressions are returned. Class tags are set using the [`meta`][Promise types#meta] attribute. +If no classes match `name` and any tags given then an empty list is returned. + [%CFEngine_function_attributes(name, tag1, tag2, ...)%] **Example:** From d026e02594f88d5d69797f4055bc1bf2f0d2e940 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 17 Feb 2025 14:09:39 -0600 Subject: [PATCH 034/142] Added more documentation references for ignore_interfaces.rx Changelog: None Ticket: ENT-11839 (cherry picked from commit 4ec9948a2c63cf15dc60cacea2eefc8d3f36a0e3) --- overview/directory-structure.markdown | 29 ++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/overview/directory-structure.markdown b/overview/directory-structure.markdown index d0263d570..27df85c8b 100644 --- a/overview/directory-structure.markdown +++ b/overview/directory-structure.markdown @@ -186,10 +186,37 @@ _pid files_ in the work directory. ## Datafiles in /var/cfengine -* `policy_server.dat` +### `policy_server.dat` IP address of the policy server +### `ignore_interfaces.rx` + +CFEngine will ignore interfaces for interfaces that match one of the regular expressions listed in this file (one regular expression per line). + +If an interface matches a regular expression in the file then various classes and variables will not be populated with related information. For example, but not limited to: + +**Classes:** + +* `ipv4_` prefixed classes +* `mac_` prefixed classes + +**Variables:** + +* `sys.ipv4_N[iface]` +* `sys.ip2iface` +* `sys.ipaddresses` +* `sys.interface_flags` +* `sys.inet` +* `sys.inet6` +* `sys.hardware_mac[iface]` +* `sys.hardware_addresses` + +**History:** + +* Introduced in CFEngine 3.10.0 +* Preferred location moved from `$(sys.inputdir)` to `$(sys.workdir)` in CFEngine 3.23.0 + ## Binary files in /var/cfengine * `randseed` From a66be3facc0bbe41ec13cdb7fb9d1a07728fedd1 Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Thu, 27 Feb 2025 15:49:54 -0600 Subject: [PATCH 035/142] Fixed typo in stdlib introductory paragraph s/akak/aka/ Ticket: none Changelog: none (cherry picked from commit 82ab2337836cf0a4132ef8d89767f1308618c4c2) --- reference/masterfiles-policy-framework/lib.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/masterfiles-policy-framework/lib.markdown b/reference/masterfiles-policy-framework/lib.markdown index 075dcab40..86e8e78a0 100644 --- a/reference/masterfiles-policy-framework/lib.markdown +++ b/reference/masterfiles-policy-framework/lib.markdown @@ -4,7 +4,7 @@ title: lib/ published: true --- -This directory contains the standard library akak COPBL or the Community Open +This directory contains the standard library aka COPBL or the Community Open Promise Body Library. The bodies and bundles found here are contributed and maintained by the CFEngine community. They codify many common and useful patterns. From b3caeaa80fb227c2e7953f2e05dae87bcdea7721 Mon Sep 17 00:00:00 2001 From: Bastian Triller Date: Tue, 25 Mar 2025 22:21:14 +0100 Subject: [PATCH 036/142] CFE-4444: Fix two dead links in Agent output email documentation (cherry picked from commit eef1e9052dd783cbb0128f10ae6ac48f8668cb48) --- resources/faq/output-email.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/faq/output-email.markdown b/resources/faq/output-email.markdown index cd73db656..6c78f22a9 100644 --- a/resources/faq/output-email.markdown +++ b/resources/faq/output-email.markdown @@ -8,9 +8,9 @@ sorting: 90 ## How do I set the email where agent reports are sent? The agent report email functionality is configured in `body executor control` -https://github.com/cfengine/masterfiles/blob/{{site.cfengine.branch}}/controls/cf_execd.cf. +https://github.com/cfengine/masterfiles/blob/{{site.cfengine.branch}}.x/controls/cf_execd.cf. It defaults to `root@$(def.domain)` which is configured in `bundle common def` -https://github.com/cfengine/masterfiles/blob/{{site.cfengine.branch}}/def.cf. +https://github.com/cfengine/masterfiles/blob/{{site.cfengine.branch}}.x/controls/def.cf. **See also:** [`def.mailto`][Masterfiles Policy Framework#mailto]. From 2983ba6c47c7b6c7554b13908f201daac2bd7188 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Wed, 26 Mar 2025 11:57:24 -0500 Subject: [PATCH 037/142] Changed a couple links to GitHub to use search We don't actually branch Masterfiles for every minor release, only for LTS releases. So, targeting the .x path would not work for example in 3.25 since there is only a 3.25.0 tag and there is no 3.25.x branch. This switches to use the search to find the same files in the repository. It's less specific, but more resilient to breakage I think. (cherry picked from commit 6ce488d6320e41864692e99a33ee15667ca43d61) --- resources/faq/output-email.markdown | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/resources/faq/output-email.markdown b/resources/faq/output-email.markdown index 6c78f22a9..1eec8f91e 100644 --- a/resources/faq/output-email.markdown +++ b/resources/faq/output-email.markdown @@ -7,10 +7,8 @@ sorting: 90 ## How do I set the email where agent reports are sent? -The agent report email functionality is configured in `body executor control` -https://github.com/cfengine/masterfiles/blob/{{site.cfengine.branch}}.x/controls/cf_execd.cf. -It defaults to `root@$(def.domain)` which is configured in `bundle common def` -https://github.com/cfengine/masterfiles/blob/{{site.cfengine.branch}}.x/controls/def.cf. +The agent report email functionality is configured in `body executor control` ([find in GitHub](https://github.com/search?q=repo%3Acfengine%2Fmasterfiles+mail+path%3A**%2Fcf_execd.cf&type=code)). +It defaults to `root@$(def.domain)` which is configured in `bundle common def` ([find in GitHub](https://github.com/search?q=repo%3Acfengine%2Fmasterfiles+%22mailto%22+path%3A**%2Fdef.cf&type=code)). **See also:** [`def.mailto`][Masterfiles Policy Framework#mailto]. From 5d9c4238e56319c38ca992d310c88c779c6327e1 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Fri, 7 Feb 2025 17:05:33 +0300 Subject: [PATCH 038/142] Added VCS project subdirectory to API and Hub management docs Ticket: ENT-6532 Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit edf152dd5c1086b08640b08134650468bce69767) --- api/enterprise-api-ref/vcs-settings.markdown | 7 +++++++ .../policy-deployment.markdown | 1 + web-ui/hub_administration/settings-vcs.png | Bin 270076 -> 296730 bytes 3 files changed, 8 insertions(+) diff --git a/api/enterprise-api-ref/vcs-settings.markdown b/api/enterprise-api-ref/vcs-settings.markdown index b298ae27d..7b2f748d6 100644 --- a/api/enterprise-api-ref/vcs-settings.markdown +++ b/api/enterprise-api-ref/vcs-settings.markdown @@ -34,6 +34,7 @@ curl -k --user : \ "data": { "GIT_URL": "https://github.com/cfengine/masterfiles.git", "GIT_REFSPEC": "master", + "PROJECT_SUBDIRECTORY": "path/to/policies", "GIT_USERNAME": "username", "GIT_PASSWORD": "passwordOrToken", "GIT_WORKING_BRANCH": "CF_WORKING_BRANCH", @@ -58,6 +59,9 @@ curl -k --user : \ Git repository URL `Emp: https://github.com/cfengine/masterfiles.git`. Required parameter. * **gitRefspec** *(string)* The Git refspec to checkout. It can be a branch name, a tag name, a commit hash or a partial hash. Required parameter. +* **projectSubdirectory** *(string)* + Subdirectory inside Git repository where the project is located. + Optional parameter. * **gitUsername** *(string)* Git username for authentication, not needed for public repositories. * **gitPassword** *(string)* @@ -75,6 +79,7 @@ curl -k --user : \ -d '{ "gitServer":"https://github.com/cfengine/masterfiles.git", "gitRefspec":"master", + "projectSubdirectory":"", "gitUsername":"gituser", "gitPassword":"passwordOrToken", "gitPrivateKey" "Private key raw content" @@ -88,6 +93,7 @@ curl -k --user : \ { "gitServer": "https://github.com/cfengine/masterfiles.git", "gitRefspec": "master", + "projectSubdirectory": "", "gitUsername": "gituser", "gitPassword": "passwordOrToken", "gitPrivateKey": "/opt/cfengine/userworkdir/admin/.ssh/id_rsa.pvt" @@ -97,3 +103,4 @@ curl -k --user : \ ## History * `vscType` parameter added in 3.19.0, 3.18.1 +* `projectSubdirectory` parameter added in 3.21.7, 3.24.2, 3.26.0 diff --git a/web-ui/hub_administration/policy-deployment.markdown b/web-ui/hub_administration/policy-deployment.markdown index 8cbea1cab..3b58c6547 100644 --- a/web-ui/hub_administration/policy-deployment.markdown +++ b/web-ui/hub_administration/policy-deployment.markdown @@ -54,6 +54,7 @@ The last option, a read-only login, is the best approach as it removes the possi To configure the upstream repository. You must provide the uri and a refspec (branch name usually). Credentials can be specified in several ways as mentioned above so pick your choice above and enter in only the needed information in the form. +If your CFEngine policies are not located in the repository root, you can specify the path in the "Project subdirectory" text input field. ### Configuring upstream VCS via Mission Portal diff --git a/web-ui/hub_administration/settings-vcs.png b/web-ui/hub_administration/settings-vcs.png index cf58f4c0d5f56c97ba4a949819ddb8cf15ce2781..eefa7220ad2fe3bd77eee2920db4c1cc4294a903 100644 GIT binary patch literal 296730 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⋐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
ozyc)D*V!`B=M$;AV zgHs#@VyuIvD<)=lUXK-9AI%L`=%8*KN=tSCjfjMQ26o~59ZHJn?Q=~NiuIulOA&fd zd+&}ti`|~96b?L6xXU3>1{=?g<6LSDVu&5>4L!HZen6mr0cim+(JaIcO>rz9dPQDt zag*Ik=y97?k>p$+hM`Av(e5^xVVEad`umw|es~i`_=&5={pb9T5{@|D1?w}B@?&PV zeao}&hIa!o_`WS79&ai4e7$z74cqg#NegxuA?CDx_wZ+fBiXz}=8$E{NB!2agW`vw zMrTD75tg_|qJfJr!^^FVK=0fUQjM94_hsJ%EbB!zA-TN?{1WqN7wdbvJ`pxnNh3Bh zsnW4bvaKQ4ukdgWAi-rwd}C#%Qw&2vYmO8A8u$F6@SE9%siiPSyKB@Ohggdd9heBvXi(>W zGjZ1Vg4$@_{8{zW@W37-0Z{syAEen4SR8!&J4fsUWYL0(; zb2o(O4E6z&=SJnNxhzuB|kkB3V(6z2G5iX|Q1f2c`tYGh<_w=tr zj6r-46%!`la$JW=*m6u--XHN6v7!9%4DlG2^wph+cht4ZKH-@Kn$cWZ%+92%bsHpy z6bO^w%arkqH3~vSsc>q}QRUG-K=O>=Wb2N0VoRbByeL#W`S~V{z#@Aq_yg#dlByI?N(hEN`aQ=)s}l7F;(5Cu2Hh-Kib6R<4Xd@w&{t8v4<(DEvFZju{Zo4 zfn3Y!iy5+pOV6K&QC@u8=NT-z?nk?4xhYbiQe2*SnsqPcoR@U7BNHV<8_(#sHm;VQ zNANGN?M9l3L0_V6B{z>iw3=4Nm@ug%s7JC+Ee>`a(UT02!bvj-Sz9kDGUG9C|f*{vDEgWHb^bR@=n>ub^m_n?e@Eou*b{!3O~X< z=Q4-Z^wt>X?kL`-Xg#@bXEv{P<0jyyK{K7-@=ZsPw?O4TSYf4mt9s*TiH`dHHU9@( zA$bHCp{$S4@M5KapsX5xe(^&zyPLZwqS<7TJQtg=0&;+~4UnB{AS)EQ*#UBUPx*GQ z09#pk0LsGMIx_o>^QXxR?;d#lP;@=iA&ubOEYCFF+6NL4b^QZsRP!Gfu2;jw-`Mk3 ziln+$kA|;mF3_sF4eaDmUO&^cXAHKZFJFof&pV2moKpCAFMy!9kDCNtzRTB~Ws2G+ z?B{C43wjUIbZO!28ZPlK2FU|c zEE}qg`3MBuTUFW9H~1%5=%}VaQTr3Xqsv?^Iw`2fLUP{_#cfZx2(Fwb8EHmU#vk$Nlp9dIB9Q!ivC=I#4o(e*0|h-IZO*BP?x zxPvDPZSqNHyR}Qa&y+k5qHb!!0Z*OQK+aTX*C?F!?1$}kzpy`^OsFNS88N9gu2pHX z<>PV`bLyvTvk|^bSoZ|V{?7s3QonMi3$yGZ)nYw`4)=gy)fxL3|DD;IARl)z#ZV2d zVrLCj@{_hDnd;7Uhw(&~vLpu_RThKSs?u?5!>DT z9KfM>Pi>BwS>UH-zf)>(~Ny2*b(Qu1{kvAp~YK&tm04(!Husoy-6JhwGk zJ`EhQ-XG?&ikjPOaO4O|WR+iirbc=X(KaIEO;U!bW7NV7JfbG(;-qxM6!dp%C2_?n zn9QYc#nOTOUaI*wCP?CXYsId?JTB63!PwHCB zjy^@@y;1ib%a^ARL_L8CC>V`*^2(Yg-Z|+(_Cr~D69xJhu~NC%UV|e=0mpSvH4zbvM@s&n0v3Y7y$bnY_W`~FCn%eI&jbSx-va*R7(XJ=Nr+rr4h%Nh!bg7Q#!DD)G5-5iC#sea--PUMCmZCOHtI*}d{I+XN)fnK4(14zM+@PCP ziRo;$YM?@><;}HQrgDBlRRA%lZxybTQtbbaW^KPXa0RRnkSz7SR`4Fa2tLQ41}FYx z+4*QL&;D4E-6qXYTAy-TE2@bKKlY+{^J*@1xq)s?tm|{bmuOmj>y7areh<$op;>M# zS#>k~2vdm$-Ctgo+O08aN1ct~1!sOB;NqR@oYnU;H^241D=PbAcpO~Xb7&n`PBRjH zz1Fph)h2!JR%@n}_BA)->&yv!q?VQSoHl8;))&WhMJ6ZL^@@u^nE@e0U1XC8zqU&3u7Nx1G@!PXDf}r^!)y81jZRao*{XObj`=AFB1axii zjI44#H=WD91<)!?k+6zB?`UmB66RnraP(9BuRQI4!dnn#WKi&8Zu83p&^Xdvcs$&^ zv=2rstN2qx#9=kH?q4bG9-LKF)cFMHVqsB8eJ{%mK!QQd?-5uaPO!QESfaPC!K8lq zk)T8MG4ya%dNXSa7IeHAC8cBqS~KCY9y$aRdiu%RhJt@R~1dvL-z zYK;d3700SXWWD6yzg?^)ZT7!2sCvn2SfWvDEzM7@COCgTi;TJge&u{%XHd*QcQ)k> z!wNi)-YI9L^A2(R%h~u=pWYE7S;=zgllY7U7@O%8cZuztx#UpkLxwhSy z>fc~rq$&6`>Dc#|0~2*wVSXq$k#p`B(x9M91(=W#LO%Cj0b2Yr=lA)L#c?g@+ zmP?gL?R*(Rq^U`Unh0V}7fmXZ-@=$*Kl+;9;^*6YI$OZl; z1nkl(Obu?6(Y`CFc(tRI-X`%u%1n6;9A|8!;?F7A#j6{yGL3*@IRqEQ^h8+L;}*`IEPg-pSRD#y!)z$1d>fWr zayu6tURy<*NeXL@dB31b?Z6=%S*gF)q_E#sIaewm!pDEN1Td}+(10`5`e@bqcp3q^ zCe+SlKW&>iR}s(abUwVBQ0r-8uqVgXa#F7opArl@6NKgQA$AsEV38M*MiOynq|dl% zR3k@y*Ag&9haXTm_`sGwtv}+ofe1ejS)Z-D5zI{&2?&YZ{ix=k;$g|^$Fe`hz+Vm} zjz+1@h9tMjykYF3ktYu;vUv5GAo{rIw}yy<{g|B2hZ&$;C8qcdG(tT)p0c2DzdYSM zuQ{0wV>KES&)2GfM@yf53Dg(25`0V$2`RDyoN5!#=(PFck^S|>@RU7^z~5cwudub? zJhJ0^C!EuB)jzuK3Nv_t?g5ej*lNG@qtn|P9O(=#5UR;yytvoa5;OEtqBwG{qnV~y zKlDu==x6wK@hZi7`_zac$7h_r<)R}+r^eWu0a_CXSOHxvlFBK&Yi96^rQQhEl4`oK zW~REe*Dx~)h+4*5qO;m1Wg&`>B8cHH``K~7?Jnm;SVlFM((0Avymz4WD~$V7xa z<{eQ;pZgZfN3|Iq#1yZgdg*c8;$peEyE3=!jcz;8sg-Qf`=E+V#1!LX?*(I!`Jdul z1*l-ub#I+((q+nJmOwYXxB1;kx%SE%22);$O;ovsJUahggh^u1^Hm7Icuy}-_oy{^ zbVWlbw@^cm0gVIRk)42pB}JC(hE7$)3`@H`y3JvC8XGCWV!E0F@bV+yG@YyMJ7X~l z)wtWX0qkseJi$G+1fYUxHcThQ&p1Q zt=Y<;TS!zi2(u+}cb6RS_lw*|=r=gt`rab&IjZHV*j|P#fNAj3C03&8d}LY?Yx!j1 z5tpm@vz5jVxx?sqyIE_!nhJehJi0Mz5h;D>a}t1Ivy*U@cQKS>Wwys-tC4oeq>TJ& zVG=pgD{wINnhIdu;WC=%_`-|1a5(btt>urfV><0~VX=o@Pkx>B z(=P&FR8$nlLda$uZUbF-X=`iS#K`~OhQbHIpGQP0CRhwhBElhQD0m6E^Wz+yYr5_E zyt>$?ppur_-jsCcII@;f?Cs7Wz~y)!{*Z__LnL4I^=opP%ni)Pc&6ED#?hrU(%Em) zQsXgm^D;urVT{sr*+l%`Onp*=+lI>Z%yCTk)PAtEC@_z(w<^GfNi1Ey-De7um+71s zWR^#^iE}G)b!pvdw<(o?4J=Vfec_hFyHBr~Z^O%_nATI-dcQ1WTYGI`vd!w^Za8}~zp1f8rZ;|$yBan6B)lJvCquhNVQlr~4^EDTD-JkG?NE@eF;RyY{L z))LQj4K%!&FxIi)YOdyJ63iDf>Pf0Z*TG$v^&bIxpvm=7>%hU` zC8>yidvPDXx&`rH7rt{>+3WZc+Gl>#R4I`nY0sQ0t#_xn za5?*Bg@uL5DcNPby}79h2J?_@nBm-11V!}XvB`(TzVtoM4>naJEzybS4<@L~)ipAF z#-!t#EnBCu1)}O`DUJ{^SVkJ@B2%(1k8uSWq1e5S9o1}q%PG8Ovp*KEWYJ18i-@lF zo85c1$*e46r-f9G9k<$(1Rm}~ca|q`zZjLRhu4P>NcgO|nVF$UNl*7q9B%3e!^6XE zZ(5#<{5mD(-!r%%73*+jE|IVoiS}~|^|O3Xy)A=838hsUd}hUli|O{Cz=JqwN5fW4ZDxo)j*t=G zpf}FyY`99gOaaYZ&2Nr#Vlj915~fC;E%eJ}y&fYsx3qADs29HTvzfA6 z0;HDxy*6T~eW@`IHFZ0Yww4y7!b>x3Ld0M0`#%$;`q3|9Z9x(IoS)Z+534ARovR19O%$vUU+j73FQUT+4{xis{M2m!- zUFk4&2h8-@Z$x<}Zf2HymE&R9epouD6$TWIoEK_P3~cNbUVR{Z>@{Qm^E-Zdpg*4e z1ljSVmf~m@J2lB_BqI*{L`Pa5UVum$J)eRwzY_>7+OYYL!W6_x?UQ_ z@Usa~N0aKULZO7FB3#9`_Q)EU|l+uNow>}KD50|L6h zS*XU2B=*mf#RWqkB!-h@=JGS-C=U+Q*`^vB8zy`paXlQXDQzcR)7Rsck(X({ z3pxHrEAbS3hW!L&xx7ci@%JfLg?D6KI``J0=@Gz<(8UiT2$ z9Uff#xtV^qt^njin9czh-HwWiYBF*zqUPk9eShukf4Rj0xT$iB@&g#)!hxMuYQiu( zJG%&jJ-c`Rq2U;3+~>b-fPb&>jI8H(qZ23aTYW9K)BmIC@1z#h}NTZh+!i1Y-8KT}g5AFCY#b(K8GT3}(llZ*MUt z0!~Z82M-=>FZy_UFMA;pt=B+u9{%}Ksx;`Z2mSNXxrvj|(7Xbui-AuX7%_qE z#%2n(rZu2qOp48NOt%^QwF=)E;DWyxsrRlB{Pj1tPqtnQYzhji+2bsp|MFV3bbe+T)&gR*BKR7Lmx*~ZR&>p$bNEI;!&`*ho61Qb*#D=RDIl$0nN z8X7Q(h!|~FyF-0_eff17p8n;nP2dSghoG=p^~dxo{cJcZw7>X7l75QY8}hBR!hn_P5ea*SK!Bwk;qt-?ZZYx6x`gcTq=f!73*D^Q{{aMG~>nUa&lj#pRn~Q zP&_fGjhBg3EnaQUcw@CI^8@{#Z`?Vw{^vr|O4U~0)(g6KG=JVgza|1w4CuSwRQ;Ek z-LBCSu>A>_#z~WxS5`U^VRckMc$ya{;4#Z}D|pc#%Ofn(ZL?P`T9#0)Ff6puZVF0D z5>~Boj>x%i%*~XuY^~(s;ZXLzfRJ14iUVWEe=np`6|m{X3DI$siOJf zg

LP2nRP9ImQ3*u}|CM95g4mHTnY8+my$IssShU}AyQ4aoUF`;}iF@@@#6uN2>4 z!7nD}r9}l!{n+V2kb##wQo7i~zJd<)z<-p$VIUeEiU}$8*>VBZ~|NDiFyjF$N zs^+YuhR6zWel;`ak9UNI%q`PFdwwbe1ccmguT+hUl9vt+4)BlIMy$$~P355z0sp+A zf4NIe1cJMRe{PidZ3k1%V;=s4;9vh+jYvJzfj-$Fzp<-J(jS$OcDFG(L1`5Rn=_0$ zURl=T*gP3#(p!hfLf6H9UGaZ>wm7(8h>;DcyzE8%y~4jucjuGw{FpYg94RdkJ-rxX zh%me!9sRP6N=n9bcuYY|V|qQ!zWBfFvtO(YBAn)m{LAO{DL4hz9m*4r&EbtA`<~6m zJ?}?zxR`ZYb6&Oq+P5;h`Kf4c9M_DYc2jV4v`WlZ&QcwYM2w0IIK;4H&EYMZ|9xzx z*Ex9aTP{D5|MOrD`P|AY>G-Z+9SUR}_tw!b zxZ&~G$E|1cnRQ1OCOyOZ=K$=G_pTe9oSj|i_HS(LQl`fGoE7eQdv%epE1@oUU0*oO@w-IfzZHntZsX$fB%8@*pD2L}g6jE{3- z9X~WJ=_>^ih=;Fa1&kWARP$!oQ}Bq0Xt-r;yyQ`%)8eH-NG-+XaqU`T1wv#BT5hG6 zpXcj-j`%Fx`^VM$e|UTAu&CDce^>zn6bk`q5dmo>r9nVCB&AilyIT}Qq`Oh1VaQ?V zQBk_PX6PJ3h8UQE;kP*F?7iLR=y&7wUf28I8WwA|2FUG#?^hw!5e zA=L$J5K?%+{Jc@LvpsZhc(}Hq;Jj#0e5}luc_!+noD~a3lc`3SEeo0XGj0|{Y;1fQ zF-HmZ#*G_`dje+N^Q}N`=VNtV>pC_y)w->tBW^sIoakYggV*J>pD)*69@T$c^l53T^dMsqwl2J`rCICN` z*E-k9Q8F-(%_3J(qu*OCuJZYS2y7%eXQba_;BT+^g?RXZNiyvSu5quw#DF3yIqtRE z4aH5KliNm8T#!y7uPiOi?6Y&+q$@)$ly40lmXs8(`KGU%4tr zOiUaW&cVcPdm^MgJmv@rHqgoBS>O?COV+(#QNu5GOswYyK(psig+NE`*@cCn0+wAj zr+Ns)t+4q!($d=tw#&nl2XR9z!UmtN{oIrPN>3biBj8-g88JSX0QuY_rT%iys z>e~|k{5cGryn2h*+C2;QZ`FK#u-&6BwVmOog#L@61GK(l52$;6XWT%EN4nnG{{CY4 zgqN(Gy`Mgn%o0(i(m5K`zpsJO(IL}dDGP$kCZ{hx68+sTDE#XSQ`~pSiHTurLx3}V zSAap&+vfte052=6Uh_M$k-RDWmQjZ}`uq3u`qFDlcZ7V-LG+)E!oTlcCh8JE#b3OH00$`PzC$_Q z`E&9cNdwU-Ud=&|f#%l?XU_&ydFE-d*%Vkj<9Uv}>E*4YR0WudvQknt#s1`!H}1TD zKXW2(2d}wi1Stj+ZYK=nR&?og%a|ws_BC`2Xk+Z%0jR!(zo9n-V=&vxw} zTHrrC8UZN0zni&#U(~;`@(*GKu#@l%*Z>du zV6YXQ|22ny{P`)%AJQWHAD=yw5Qhi6M86K;y5h9jK03U&x%D2Cp{lCG#G=U{E2qUxQ*)Uimqy>kYMI522xV{#W;t?A99s664r!%-s2}zmKhnq(QBE&P+!eH- z!q*(c2a=O@4w?-4L8l{>8L^UG);310soE>zY%qi)E_eg=e(J@T5dbH3hK| zCTpe^mM<;8+Ng0!#!vQiX`igMRME%i(ojVgtm+)t!^(KiDb`tn(j3yV76nUnj~l)YPt0^ ziI?e%Z7?2T)h0T4Z)q{1Et@L~KS@Ai^e5Z?184kocR3&65wF!WBRDW2{|f<~sW*TV z?8j^(`G7_GoOFVJ|;_!WjYVL=XKMH&n^xvQMpFdneAxwC(H(cA|ee zvA?GHKUV>~1n!V6A*Fw*Tl3dq&mCS{k0vv>SsX;CYu}{}2&89cP%%{|qs{t&BNVQ# zrp96=su%^kP;nR2sZGY+EB*M@)tJ5qXUpB;_sFJoQ6uga+S!Mj9fE5QJ=tuM#=aq2 zpf*(#=$6D$u^Qht_a!rB3L20gb8w84$;!*V=xa2Kd!=`r!g^eDJNk$`qGP-?KioN_ z_jN91O{7BX?FXeTF&CN~#S=NQ@)#<8B$cuMbeju$J4uv9=gy;GUZF|g9Pg4e43~+r zYE=?~jBIVmh!S@phovR-xHMq5+pvO3dyl5O%txD_e(xyk>Xo;9g5xkgPC%C?PcKbZ9idDlDgK&cvD9^%Q}XuWFt0!^bkB(XPCkWG$cHWV9`Pe8pMhvJq;xvHcfwXE7E2=NL-PQ*(=Xd2-sb=>AgQRzb2ss$O z@`)Iu0$4p(4~kX2p9>$ML(G?-;Fh72lOBH9l4TdpCwq#^_gKs^Bu%i z_o@W%w8sIx1H0LvO>MW;@r+OTY?cJ?v(@!=dd99q*_Q5BMqTArRHH+_0y*ibkm!N2 zukZz!!}31ak}pitp+^I$jrho2!#tBi?I_{0!HM zeBp2%?s|vb%3_2Y73x#eb7Y5TNy7G$R1hKAv!+In({qZ`X*__F!cXkYC(-W$0amQO zzV9rZe7G{k_Tjk#A(w$|L1fVD%TXVq3C2ubzU^sf)HU$g^q(h*ZS!&KD&YGvz+nfW z9YBEIBor!`bgB?>59I`C5GFSQqHmr!cB1i&pQy(|+r-*lqr@08C6`ymTd!1T&n{s? z`GzT!t zeBL-67sZYQ#cOF^-)aD;HWXT>i$%`5<`)Zd$S+2?3U=37U73)}f*#DMhJ;?ZUv*?{ zz6&)RwZtt^7J+C`ACC>q@|A9g&Q|s>HMk9HU=GJTy(lppeQ~~FkfO!uQiN;Pw%MMg!*m5MZ$GCb)!x6fT)6O%t_{_w8JVYYV zFZ|WN6w#kom0Exo=yi^t2FM$veHs=f+l%_nrkyA<4p(F03HY?6V6QqMfik$`lq{k zLJTl9FTeHcOw6E2ZMDaPmy&9!X>1Ep;I8^Feelroc0LC9>P?Api%-_GO*9-q<>R|I zm#Q?^cFH2m++1B&o4rhhUz-Z6F$9eOj~b}sW?eFEsdnXuplI5na2I))nZ<0M3c$xU zYah6(N3wFA9j?fZL-qyDf$CBxLKnjeNI6~BZmliRg)TOaM_43Dg>Tqy!=E5%sEEuT z)ovWscD+ctcuILER&ss6o>H$w`^Ke{l^eW*1zxu*bOJX?eOm z;DiV(OMYq;ztCcGOM_s+%UVJAs(fSg4BDtU>l18)0duD*Xzb`_K(@!|4X(kkDb^Ddq+llK(q!Qha5>MV*M=iF{l8voQPda|D3a-p0mICvh(;ynZAM?{h@wN#4wQw zwcS*Fyz6J9A;uPyreXC6iNWD?2&R8RB~E=)-_1t947*Y5y7>B(c15q#xmx!3gHBX$9cvcTAY-c=wAD?n#Wd7D%3tni68;UTD zm*3;6AO?*VF75qAqUnFkpx!RPhIQSh___nwgG&UG(pM7bm};Vv)L65Oa8mSSOqD`B zC~IZZC66rMi{!jrq38OrE`K2p1d79zb~4^=HYO4irdJlKkis60@^Cu0`ZKg_zDeuL ziC!ri6w>u@SQ_~=z*BR1XlIPsLOTdx)nR2q6+ zVS8e?R-AkB_zEOp)a_nfo4kd4MNz%nmzTkvX15dl5e)3qu!1hZa z)tIyIk;2%J+X(do4IO!*D`|#L7hR`zUdd48z^qxFwBf1f z1INp!$%+n%iuM}f&hK7cK79X+)?y$!|7tRLjiALS-`9&U&D*)aia}(eE+Ro~? zxsUZ9bf__N0Z*>%P6SQp`N#Sx z=Z&JM-6AFS);1{_7vtQr)kPLV}0(OD9^h1QLZkEi9~;R$Pg6Hd-# zSiRtxB;w+j<>P$YUu^1T^;{5M8wYa?o8W+rJ%H27T&7!AUW#kqBJxnREC_!rh3*Ih z%uj(i>GVtU5mWSd4|?|Lx{dCAly15N#T=pJ&iy!XG1sj=C62fOG*+_ zJMVELm^uBR!*V7XVRyr?Lgs3y^1{+W=9-K#Z~(cWR-RT8Wai{3AJ)Mg^7gykTppX~ z`im0i0@s4fKZXJRSoKvPS6MZkqVmK+3A;5;pl!vRm~Qvfw`bw7a_6$gVaRcmiIxF_ z8@x)dzG22?<~dP-2va7pGz}U}&uP<-@8LD{oZs?GwzR5au~hGOamRz~tc7p{(bpDr zjI&MDbBP5}U*~M^YHVK7g!d!Y6oQNiRGK3-=W~TOlP&`{$w*1(*PN{P-BAe_x_C0s z7)_!NLRK#eEL=zG$)1Euj2~|B^|rjy1&nTr@QG{I$@ulAY3xy-8P*D%(12>YOJDrS zs8^k%-g@R1MXC?{mEzFs0F}%3K<2s((O&&l`Io!Jc8 z!NIKNhQQdZNu7@Ls}!6#qU;0fDGlGF`yp{GGt3%$Pj$deRDWcP?T4Qry`U8K50{>%on!f&RqF!&{! zfQ;AJzgT3vFR9%rjt7W*u)i0V7{7UWXw7#o=|(=Uh60^LaB_R$QHri+@EYIon3=Fk z=|v}4=x$2gQ^e*q$@3?g8U04g5bgFB!6qE1HjRGr_|>^VOy`AvBA#VIoG!*VbolFu zxW>I^!R|;4Ku#{?P=Km9V6K(f@?SLtd@!&$jrZPIr8Kt?))YlfIUknvwFrTtodTb(}tsx@R2Vlw`?9AJmlC=f!DMI4Q}S%e=Wv z`S8Ka;5`88K!INL)Y>y-xN4b&IJcQhM}4; zf;V+C_Ny#mU24Vv7w5uE26o&xoQChQFLEw;enIP)iGt6E0Z28pe>t~3pJI3%z3oou z20C)j0uaTYH8qC5=bRU%yYt1k@1^{Fav{k6yf_u(3cq0k>MX_qIJFwNqXu*6iO)y(uqEFz6E%80LvebBt-h{S=r+KX{8H%7Kwi7oA`s9k+m>9FaSO*8cZl8aJ z?>Iqf>r6q-#>yH^Z0C17!+P=#C_wA@d6O}GGRd@C{_cJI>TS={N96v!E@CJkHMcqg zH-EM*xhlH^*NrzsOm5_bff2mz!7L-SR7!!l%Ge$*$LZ-APmGH}QqmamEq>m{Bv`9) zd)961c^F9BnqSil{0Nk|#P?3$mKBX-%CH`N!IH8#pBi=SxoU?@ zF%-T7hr1Zk5q1eY${EqGP-oZWHUvsxtTC<|T|^;z11@Os&Irxk|(*$_q` zUAF6=lAOFTNkl?&r?F9_y9Y#ZjLpiBcaROS(rQ?*e)0g>wCR^?km1|fEy6Zp(4f9i z@8gl>Q-@k3^{H>Dn$8qE7^9miK~*1gkmxf*(OonM=Fko0Xl00XjQmoUEw_@FAW3Hi zi{bGqX_~kymEBl>$2p7-uQ3Bn#g3^~GHn*0sF}{7a`f)oI1U6VY;R{EOT`@bRg0Pj4at={71!Fq&-QcrA&AaYqW*4kktDTh^BJ;11 zk>6l7aD!?Fvq?!O<~J&D0-0 zYbr-1kF@k(Najy(>xwx%e3TCY*{b_g<|8WI3}x&ifslO?f`o)bPDLg2u2TBFsoKp# zWPgX9Od0-r%YjHxgeb&#KpzUA`lbHgX7~m zO!rvJk92qjC+fC}2aN;@7n1!8d1+{9`cyz!`T}-UooT{q;Z({GN{rhc#?iM#WJChO zL{g%%aHJ@q^}C98t#R4hP55u-y)sh>b~baiS4jqHx2saph^4qH$```?8YkxKcdjFq zu_&&p+C1v&XIMS_ON16kN;g5HEX0?5^3KV+&CEIp8llXM!fytHIc=$vQx1Mv9j{{92UBXGyO?$lwy;f$MTg57b)QkTL?h$4bC6@B`I(&2rJwUi~qPb4G)sp^b7%mh;>YFB%= z9-lcQc1BiGT>bsb5RC1zr|o!s7n!Nc<>-_Ij-JD*j_`;N#0vTo=?xdY>eCP5&$S5P z<{KCofO1Pu>!$yq@L}qiTie5RE0P?;mGOFwy|1Jr+N;*<)^BouJeWpNN8M6$aaOmk zG~ZS75jvcqYsoGsXs6EdF+A#D=QM7e=2i3>A8g|^+q*ngYm=MGAHx`NxOUtY%|a5Q zd9|y(JBo+KF80fpJA$r&o^foO)ZPVgIUGK0>lU%Wi0CvZoxehPJBEls#=tkgdU7Xe zZ6ZT`(_NVcIO_fm6H`8?jpc{@PIBv!d>@mAg}vD2yeP+o{*Kh#5`D-M?B-^PjHG*_ zo>!MD8JA})-nsKK?IAHpY;a-PS@pC_r;gJ7M=IAs0hEO4MwI47pXrIINJ56pgV~M} zd2Q_)bxqB-vN@)`q3=7bZ|t|L_e%f}=>tMH@andff(rQKN6F|bL&7=O47-M@Wp6@9 z-#IHczSZL|Y<#VIX7akgC48);t+cc3- z@qDSCv3bNs`Bw9;euZn` ze5#01Q>uXNQ*+>yM&}ScuU*xpxn=#5+$HR6AI-S*B#nZAbq@u1t1?5PT&`ga#+Bc3 zry4Os4Y7mnJ_c$6qOXeTu+$n5#)MN|XHv^$Xzk)Npo7CR{Cv10F)=j9Dfx%B@^Fkj zaGY|S1#V6F=ip@i74H(g^3nBFs+O(awpXPy4K1`64mP;b(z#-ilgTL>caX>%#V=MD zhM;PUB@u-^0MSY003CHLx4_ISEc6^uu`f-Jq?$6jz>HXgpGk0jP{H~PjjtAi(i_MG zfFM`Z^)fhr`8zlx1tTGmPp;a`rOV#QlJ-rtohMRjx{y*xW4X z()yH*%s4V5<7?Pki?;W>;aj`Aac{ntdivNLOwSF}PG<$_;Nk{PXz7Al_<#A@pWm?G zIwt_Ry!6eGhU-u3|n3%X)BkpgC0brK4=jvg5{r}4iRCiQVRC;OW?*HGZG_eUh z92}f+*E?p~XPJ|cQh(0l)H4S*RO)90+xr0L(680?9bMM{y=i)sz=sVe-9P|h>i4Ga z>;m zRSgZg0S2j7{f^w7a*gu8l{EeJhX1(=fZqlnV|q5*njt{Eh8>dWl|I3N3U4i17G z$bxSJ7JGKAQdn`L(c^8W9A#fT?ZXSFTcG6=EGv~#yFZW^)Ws7SOJ?qAsFIiKC?scN z;>l8R-ROxW#n!ZFeyI1{dIt>qdj<;!)7#h?^I;5i~|f^-@lU{NW_`p-%RSAI&Q3&s4~2G*>a)()xJtdD1Pkq z=S}nKu4R-w8cJ7FMos`4lZZMKJJqVm zySn{@?WKhU$X?sbyq?F}6gz1NHZ11bs)#VHDw3eX7=$0qYYn8N=-DcIUH!J2CGjtj zy?_MbUf{pl0N~Hsx;SFw%^tgjMq0=Z`v8gUu_{IhoWmnyYwJiSHtR|~vBFRAXD?e) zs?uUjF11u1ekGyyV1N#u*Dh4d+|_mKv7OPTJSA%E4WK=APlRUmMRT6dE$L6qnmz^| zdC$WI&Bi}vbkHttP5W|scqgv+7vv}lLp5A!I-^OCYqT1V;`l+qt_M};4Z*d>Pwn;n z%Q_f)Lph$RIT^qWe5%`sEuVguMsa+1S1=H-Nvtm*GzOw^gjdr~AZ>+pmGMP_oYr}V z8#5*_lXhWOYKURNZS?B9_$0MEg?tS1hs)F5x6&V+N;zecp1^;<@g)E-H!;LH`2KVz zVUp$RHbdV{0(^q~`u>k~eE_5~cIwDIslINpbQ0|SwoYPM;uBNmkT}@Gg9j9}D)ff% zR77*a#I;d?4QA`il}G^eInWCrS~-X8E|74&VF>kkTtTbWV$Bol*<&+6MdR_0w$KmX z^b7;uYT(484an_Et!Xgoij3mAM-rc~T&1do*F;7-><-wp-mk_hexGp1K`>SGkuZ?J z)H38%YUXqQxSPNB!ozO;`bpM3y59-FimC$`g*G6|ZS1U&=~Um;R)d_W&DwL)F^%$> zs%4ZYS4wyop)KSVt04cz-q+RoB&~fRd|n2~-1BQ`(*YnoLGgl$w`De#S~j+B5b&6GB@#{lSAO}7O=#BqsH zO(t!JeLwuzVU z+pNHJFc++OwT(HQfCXLCvm(-=00wE#smVp)s^eI1dtSzdObp$k$lct931QF8*$=oU zc-cOF9&3SIWw)HRzF0l}G+pLzrdP4ZbXI& znhjI5>`GWoQZ4c9nD_X&y<2g&Te0hOs7KUc8>`mjAW$kFR-catKF!Hq_gz%0--Qu6 z3abNWNSVu}TXREGPGFA?kE*@5LtRWk(BfD7_m^&kZ-bTn+|XVym)jkOuqdigJi*z2Q z5#0`53UkE39Me0`pGv>($OSaZ#v0Tpkemd?xjF17UqLD@A`9up%@|(gd>$%+iNK6{ zcfN1wjWuq@b}CRl;V?%7=pLkB$$GiCh9M0H#l^{(SR34Ea;2f$Yp{;o(KCrbd_3P5 z$GOFFIix8_Nm&Qxw=?qzGn2&TKY^CBFFD>zm1H@U!fLe!(3fzT~%yDa=3LxpQ|uRU8*#N5ib?2djfhsDKp>c;?iT? zNh-!V&&u6K!DdGvyDq!VT_M=8lcBp)gnF`n1@G?2R0=kJYJb{aug1P;(namVWl9xP z59b$VCC`a_hW1&)^CbFt`=o;92X7O*u8fA` zs&Wx5@Dp(k^`-|MS0ZyG@KY?!dB$GhPXS0rN?uwC>7jOcv*y-%vcA2y$L?m(`i9j= zRzqHK+d36mHMbqN*eUJ_owDy{5q_*I4BzwP2zV|EcB@P7?Cq8Nlq8FN&`dwvveWAD z6DjZ1R0Rj}?ayVi9)3IH6Pp6Le-?)42a?Mn#>#}V*s^LGu zeNSHMJ*JKtY!Blo9%TVwaCL+gyw&Or5jupbECpB$v@;>ZNJ1*Gn%vlXCc{fgqMRey zVW<**yVW3Oe?evFWKL)*n8zO-MTXJq>2VKlK z#AtdP=4z$*JHh-q5l3OX#D*n$_a84RP%x2)59OTg<5LjZq9T$Uk}J~D&}w=;K3-=l z_~sz1cq4q9YSX4+GkjZrN*6=nB&-F6k}nR~?;#5r#tB-VTyIjibx?FSX|+~|?0}AF zFdWFtk0i={11UC*DyI-+=`?7vFj~dEC~ltU&zW)Y@mX2S&q=n=J6OLQGvJY(Q)`iv zpIkSE-B4Oei}QopHBzbKPKR%%2R-rI9z5TtvTbziTC*K(O4hx%(=lPwsvbD5l~nNg zJ!#`5a^9iL72U!sDJpI?+wT8doql4lX4(Pv{W=9IN#l;c7#9xup{)&2(6KfLP2sOs zbF-qCC5(f6+Pw5Bs+xOYz;KZ~@4 z_+Q{=ldBxA;D)AYknWB?-F}LpIqbmMzO|!|1kivC+_h@HXxO)nps3|2EOL5eaZE1H z)8D|UFZC%Cdw%JA<>C(>Erc;P%R>)7ol%q8PS?$q4Z^Qko%^JfY{k8s=hET<+9Zw} zLT(4Mlln~7XAx4*TNS!5Cb#F1=XnA8`~Z}cVr7M>3l7a zIs#3E&n0{L?G5Sk8W#}T(A1)CP?Wo*0^N~54~{4h?S+M2u@6#kfu6VX+iuDZmjKFm z9n@InEa}G^a$amyHIQ{%#!;2oHmK;r(qigM`-U-ad&;B9@u@_k%ST?1Bx-byP>fUB z#!czrK6Hx9YK9fL;g!#)3Kdlc!2_w$-(mIxh|T#}M#4$pb6 zQG8p-1x*3$t3Y#q=PIdP@(T$F`FQ}ama;Lv#zdD!t2T0^ zr6(|c-~hCmU#dbhFC;XNMF3772*x(9L`kE`VZ7=YO*fg~TF?rfP*+{Ab{V0lz9dTd zKtm6*(N;Pnv&j`_3yvymn~~d?Peiu{+UXpgx~gns=_g$aS!nc1*46bh z(qYrWO&ZY`0U5Lo?g}(1E*P|+dclSeaQjA>R=C|LY_^A}<@E_tH$9JbL{Rayu8och z7+l=0zE;dVq#@r?u;%0B)~MOKyS11RzG1z5nqtRHzDtoL%Ux~>V8C7uJ@+CDXRQov z?&LFw`eu#47&SUBaz7%&@Hus#4+FHaDJRC1Im9wifhJpI^-D605ELiP!4*+A67S79 z1*4_L?3AsA-?o;L0#D2V*u_z-_x8R0aO-g9T%fRKH)#E>%ShcbM(>B7cSgbm{50R0 zCzjFaPTPwL>dCIugi~tPw!;Q|P?d>Qhs^-wkUu@yEO=151CnjA`-ITLO;fk_S>@&L zyYcUe?&LpQ!a|l-#?dJ>L=^WHh&7M^csEqjuwm4X)H9jo=)Z~Mr_qOAFb-Vbiyw62 z9XTrpT%T!@qx9=d7oGH`1!{s@+Uqn?O=@v*dZXb7A-|%`_a0fspaM^JJx(y~*u<90y3(|kbJ(dhs2_vggkFhc zBKl(TZy503D$xHY?C^(UzpRV%@f>>i$P|3>_O$q?LO;p@S?Evdb39I1szg5+Hd)Zn6e|qp9XUKdOr>T3 zuWf(R73TF|4;ADBF(o7n11jAz>wy5nMDdJj@!RpKS2vt4wa*{$xuvWo@DM7mMD`RX zIcfP#>0l@ZUposCK`^tKBzLiMHq+0GHL@fq@KfNNprEs2+IR z*i5v$S}r3@)yC8f#~rsjPAYP=5850KfSL~g*cdfYk}+ApWSOX`YpNt$vBV!9(rB+# z!RS1P>)BKbj$Y|LN~)T*waUB7xHKM_uQ}^IFBp1PpnOAc`j$kYb0d1g_uv`qiL_R5 zgPR*__^|o$W$# z<;*IR$7~WCa;XIbwBk8m=`0g|8lFEBK+WDOtad|~GH!*=U##b5wPoL}5E?3L>Ii-M zp2pfjjnLi}OFrxH_LsTaaugeu14}^FMET?^C8#gP*$WHwYC#NFC0>fq7j?Ze0;a2pHjI>= z>{j`5&MFY53@1+ScjG3d%?`oE!ANreTY8ynZQ{AO2jQSn+AZ2+-zjg5n>bMaMJd~6 zv#EYk26Bq9q-P}HK~pj56&DmdPWQE_ z6WSlWP&J-`C?l5}sG5+tUD>WqAe6Q#@@iZ?^8VhV>E4dQ48+2!jUe^5e#wCMcc8{( zQGtqy9;j$&z938JCMb$XMcp+SD;@9rDr4rS3|n4yNk|wGe%!z!oTKIdxlg?jnxFaW%`_mrb#?^xQ`Y6RA|K}`w^qOv&%)At#B>Xp4@FlF;{e2BVa zbp^Gw^@?Ppx1gEa*=3|VB?UX;w^mvg&sLCC_+BM@suu=ho-Y-Ygc_Z}=~SS!YDV(T63H7@iCW!kV>ZyiK*get;HF1ieainuphQd7`f_ofgDzM63b{X1jRz@E4#>e zsrZ;%0Y_hi!-XiatCJ}T)#)~OJGMb8W|b;FRiX4-dqh1&xkTS@@N3+fVJ$ZzswRG?8Z>c11|fkb62BM z5)|_whN74GXq{|Uw53#4)NLX9#}Bo%*+kLn%oM414;!i7gm?_A*1IClE^gNDS9j<8 zBLryv)}!%P$q}(k%td#%jQsmVCq}H-MLhv79qv@r;I=OP$|#w~VM)sRSHSanxvoj3uL-6a(RhdghOljoX*9yZ)vLc+rLVn+oVxy) zakG7X|31IfqcScc=~k2N$74o-bJ`YY2$f6+JPz$LPFdc>XN4dwTw^AS174vKsGsOb z?QxPITR|U>r=_%Xk*+Y0dyy*wk{Ss_vQKI`_$AZo1L${il)s& z_N*-2u7+(+6iBQ)k)Xz45e_)@yi+~fdv*7%+GUa+@T;B#lkJ2L!xgA$OrfCwPbu6g z@70_ItXy+P?7Fs_bTuD;4ey#Y!mjhMa$XSC87C@=NitvFzHq!rhjDv}1t|kgi27Xq z^8r9`31+V@Ehmcc8)1F-7bDvsYSIjl$X&HoypHJ7nbnMf~Cr=%LLT+@rDHbwnB|8A(paUr0S;X8$9@%v#i2F9s zdBc0(^qk5tnKl5@abBdJfLk1K$=rOW?*c~xP=sx>&_5q@z&o8y3j|P19z7)|X&A?o z<4GJVwV2*Eo6=`Jc1QUW;#r%ty%`>+Ca9D&NsO;1U z>F?v7cEPydJHn#fw;mAlQt%R{!@OE9dpLYEpwQGe`w}^xqmXBKq)yX>#Yo4u9XC|z z0wu2`#V-mJTLvv(8`gRhm?wfE;60EoOMQH7dQ2e0y|p~cf{5VF_A2Mk=DHecg~`;i zZ9KG}SiKHDFV?+B9qb_(JAgpdQY<%R-sf32O&Z=f`KuGpR)BK#H8;(`PSJzzJ52Z3 zA)jTJWC?l4>o)dk`4W}tL@j0NilJqhGlBDE!R#?^!<1#u=PEnDT%zstU4#g$o2EP~ z3E$j6jln~#zAcmpmp;W}(Y9VwR2ph@SWz$3SsJM%5&J{hIBp!-+p%K)ugC@Z>-xXp ztmZGTgb?;P#$&ujOH=h(&Fn4`+*8E6o-Mmc^$0)U?lo0>+RB^#`#pjV!LT)3nMdOc zP?ShVcfC(zg?+h@M@~S5Gon{!qq;1M`o66d6_{q1e_!EJwC3mh6xZfe7}}ZRB7>F_ zl*^*}u#7=f)9!5)Y<$VGPWzg7T`$^kq${m(A>&e2ectJmb_Wi)vPHBIPxB_;wY*0- zJZ!p?0f89jqtd;!f?oYn_*>6OXT4c|;S@vv__qF?L{CKeFprL-EPwtvx0<>-85oq> z&JNb$+Vy(JTKK*~*!IB7N%iUJxVP;EiK&j_MsX68t&5Zoa$1Y#H zhH4}y*h3M#>ov?iaJg--PP~MqxGWQ<#@oy)6;*qfI-$1&?#JjBD$Y!^QX!CuGB2@< zs2uXZ8kN@$m_+UESFtExpJq7u9jk zN*`>-mgj^kD^(R9NgZ$w#%&ev0GUiaO5Q5w45!>uaPrTH~u3PEUBqKBf>ZHzXYQ~z#mWZ2-*<_j^ zG)nqo%d0n{H)^;stSgEAhtyofGfyToba)F>rwjYN&ui?N?3(q(VTDwW)W5TyJC*rz zEid(^b@iXUq)sI@P7*ij9%peB3lG^|1fKel|F}kC3m31M>+o+B{dNZSf4->_b52ND zFZ&5DO}=iftD@=j_~}wN(Rg~y7W(mjp;7JyiA`;ENjBU&-DJc}E=KlMat><$ZgZk* z_Gf@)qnc(YJLw?tOTGNF8=0JV7rBcsyA1!>$m~>GOey9srgouP*82LX{{4q>PcYkNcYw@1q?;V(AOu44Ajy$65%9jlHVO| zKszwn|NpmBkJ;$SuXnSQBQiOe*}=gfIwi#lO2qaDW%}b@tgfz>QBjH9$6y3M*^b@$ zG0!r3<91d)8}aH7oA@J{1<2jJ-CB8LOPl;Zq|mM|b~ODCZASrQ75@rdJOrH~Q=~${ z%bb2rrFl6xISM&!z*#mqTEOX0C-MNm#w%Wb6B0rz@1hMGQ;~Ebcg5hy9Ok zu>UnSO8rkj=WxrRf@~<|k7NwN07>EVyB|HIGeY8<>|fsF>ErQdwe zU#y0pIu@~}V89x%v*R2RF2D>lQ)kjVF5j46UuR>}36g=;x^#G2E}qKj`9U^bAOR>g z+7A9c@PhGT=O)nGJ4@AVc6OB+GU=GIvjKysqCU_5=4e%1@KOu9H7(&vK%Zh3(Zl-< z{ecQ`-nL5NohgF4v$INr^%S3pe{HM?4spd?@D=~dpKX88l#{3uR-ShK$gip=^Gmauz% zA?3KA{=&rliN7@MX&yfl;7DZ81W8J&mc*eFbcq-7L61=p(YQT|XVor(jDXf@AyW?w zCSfp}y`GM)IN%H-8Ov3sh6camfPRspz^=vupSvrWeOr~VwH{%FiyM6nL;*RP%<2!zKLI5>CY$gEG`&JHx9p%>EMUU_Y{~PI0j|^R!h8Y! z@9h9f+G`FET!qemNt=UV3Gdxj|3 z#-VAvb**9p_4PvhHyzY1M_dznBNs`G3Rh(xo5oLi^vvBTHhGX88zu%naEcb#CEB8L z3at*VVoQ-t%I?IwK}56wG@?d(*NhV-|H1@QaRErGxE2+Z_7mLk6&8E+4%q>82_9P` zdTi=K$n5Ssu_w%VoG|sRt4o90V|f!fd3>bSVZLlJ1QCDcPyNPov6DZmSi}6%+^BP8 zQXGAZp^u^KI{$5;2lF(KnFOkJ##4D&~pP{yTUuX zNCzFWQ=LF?f^oSdBOtRrt(73>By<&oa53z}uSsNlXG*Hp#eVLu}2NfE*L0_E$ehyZwo17FB%rWBA>)B^cZTu^&M>D!S2Lzr zQSfUUtI_Ok7AP*BEtzb+>dIQN3n#sX$bollUT2og#H)4|4iO6;Av!v>D)Y0IUVGG$ zxECVK&w7S^v|75qGE@=DZ8`d>;JA~Zte_H%lDIBya*%-l zPdB>D^2aeVKh)4S4BoT(sJv;L^S&7a2vy_lVg2SBf;--8QC_=FaZg+a;?r)>WZY#= zu|(OXeI3ZE>VxFr5pi4e8Vz@Yl#&=)5+d^5MlX#cxmVk4f(DzTco+|kS>_@=yK0CM7)M$3$l@@9T zBT#I%Fi#s2rL3eBeh3`uQf}OKL-^sK_d9_r7cZV1@S*Ivb8r915-#GkXALyx2OI2m z@l64d_L4qpIImeZWk_gfOukxf`{%$5VIr$1cDZfM0?Cn-tNJB!rJr)tJvG1t>4>e^ ziOJ6xMGbJWjIxljrzR8?btJK^4sL-{2yb(6jLe4W$Ju-ufq)wF7uLqOJ~ZCU`3aY0 z6OY!LB(Ul?HovGQI7A=ha_oMR3JroPrF-o?VViqiN1Q8-HgNh`ZQh%} zfx-zb>B+32Bpi^7pLhhUE&xQ>+H`f2er~gR?Bbvv*fi!4RU8p!yNXrVZ&^ov&+2LW zVwga-yDGNs(LTY^+TaHr`T#$aJa_C1NOF$@@YTBmYhEmB8O>oh3xz%K=+C%bDFsDv zCr8HxpRO6$)yBcbjCQc4)@RUW!|uyTCls5eO%=2Hvz3*VjE*EJr>|gfI^o_y@N**m z18iY*svkpT|+UI4ayP-H3J zlTVGt(uf%Os3qAh#LS=cOH3oDQ107gK*0G==B~E_QH+`5rfb@n+Y&vLUguQ z{9v`PXT56RC!U3#?6Ve-kEZ@c?Y3#1cur2YU!BRjl~TDztM~56hzrLycuC{q^MY!P zk$mujLEB!l_`Pc6v3Z1z*5^DYQ(w#Ld1h9PA69|mK1{we9mg-QjF1i~-nk;(7JC&M zuiFyNi=%kys)~3}lk^n5SJPEu+Z$jr;?7!$4o-AiaET6hX>qa5W{xH*u8{XBIEnej zjhKaI-Hn71ga1d_TYyEiuJ6N&A_^*s0)mth%1{c@sYo}>(4oN4A>FN_bazQJbmsty zbO{XI(ldm_3_0*E_V4fB?sMGdJLkIQ@){&&t@Xa|6Zdo9&*Lec;%?!aH{mSoaTGN5 z#L9PllKM4*Sg50;Cqg3CU8?%{z)!6x?g8g~t;Evz`Af=M7_SdoH>x{Jw=?MG28`*q zWMN51NMNS=w!Ep3K`D>RC}RV-Qc#Ud*0?9`0ib|ApKyX47t_(!HpCvG)7d}5`ac74 zCiHM;$u(>(?18A^RE>=**Puar$lB*DMn*BuxE!AyyeJ|bkZA+)4*$su63llDwO zkl92!V^$w&%-5TP!}4AzUrdJyoSp0rHhQ>W)v@gMtBT`w4*BcT^=kSC258r4;=OPQ zs;5W5yqJ!I?S&<;v*T3VoU*_KyaZVDfSR7iFmm5aM8rFYl3$gO3la)fkd=)Z%25bx zYQjF^BMVHR1eVOK*Sr|6${?R)QjvT3NcNj=)c(euXh8@ZaVHTGnfy;7HU`KEV&IG% zzX@D9&E`{z8R?(JzT)3ovKj_#ManeVlHzkvJ^vEN63vF z{=B$ymL*&?1JbX}ItvLi1x)eI*Ni)c-@J9xarhxI3J?T3*CNr(L&bC&2DDwp z#){!~iHlLkR?lFymrqX;^E4RF_Ak}i^gPK^>sR9{)OZ!N!C{g_!SDHHmD_dkR{YUY zeOs;R7SQH`8;SUQZjY@SF$GGow#W+EWG*crN6hq^r4on3{rDW*_bdR3zrPf6?OFU& zbDx6AlHv5@-N@O<`IajI^@)kP#hAlo{#1>n^lPCFF9P@T=OD6gLajPeoF_`8Wx~GvwS> z7Uk5@{~n&5qcCqAfQ8jfrp^G;cpvFI-%f9c5h)=8DJQnu`c=cqR+=SQ)lLHnuBGJQ+=tIHYngR_BvVCPyu{24){_ALcCYv*_`+5IeR-xF$`_tXGhV+*!L%iN_#(ygyN^C@yryh!GLMUk zOtYxMN39=AD5j~L?4((b{b???;k(TR z9xpJI(j)B^))2j;{j014&Th%oTfwpMP3yzU<_y(3v!7REqHJ|j+|f?k`6#6f9J%2P zqS-T}$joeLN96u~xcCj$vy2FzmcJzg;2M#YkPXA(1UV8E%py&&Xw5=NE$I%i#p-u` zVHtg!<;VF#84}k^ud;KdatjE2IRW<{9CoKe({-1{1RH1Wn!u2R;uPUF?1K$5rJ-)< zb+Z9(p$AgBE?8Q)ykJ{{*lsradfi1^)R@v>{piwq3W;Bje8Mv;6Gw*hW#^UP6~n%h z*$Ro_v*_Dkl+E1SZQ5_o+?$ph@T}Qbr+OUgl(Tah}n^x{~sh#`jJNXK(yL3q)>sFO%Z_B-q!_(kpa+ zanTT|k1i6T1y(f%m?QH6P6HlF8}!5*FVNr^x~sY+w$TgYApZS{Q#1pjVi`HLs!QCK z+HCPg!t;90n7418Ge8fXK36SL&lc?K0w^lBc6RhTKVD~?bwzhq_T04$+WmqTF2TCb zGS$Y5!zo1r;*wLf`Y_1mvJj%aHqI*v6uSb&!hq?LL(7{n73H|&9AJioGW=&)4~NW@ zTKoB(t7P0|a3222GrSai%aPCgVr`iL`1q>ONXJwwGRoySwXc|8puAiv9OMA%-6gr| zjWP4vCNSTLI(su~o6jJQ<@pYiz`C2SF-`3ytLmMPKpA;1wQ>1c=3f>h{=eBPZFX&cv7)C@LYotf7`}QAZA}D488LQY1Sld7rfDzPeqyeOr zS);6mM+Yr*+_L{iT_NoNCticM%wk%Jj6Yqc^h)8RYtL17mJx3vdve~I=p?@62iPLh z<&x*wURFUdmTuqoM8>%uTolvAMjusK&9hDOJ&QqbkPX&r4Lw{*|66qpB%h{5ilW9z z+?gM>9i`+(#j^~{gJTBK`O8`s$RW1I*cDyZ_H5V!zoDFL_6_DK&}cY9L)oQevg z`*cwe>-XhlBeSYwPXOM8_YMt-qP9Te8(zHrf2EUutvC4SUjt$~W(Gch#4AU%I`IjB zP*Wd+B3I+gwF2|a2hP5wv$vhprO%c6P)=Tvc7ACaZ;M6}(IJ;Qpy*|jk3sU$Pe*ll znFgYdU_nKZr@YPKykq>ofDXgTuYNQOodYR!^f~uNoj~Xcft{}eI~$~1A7W#3l&tv_ z;{|82b23ADr$sooim6=+#dJ&+5QL~0<2B{SHL8Ns`mGTfgQYFeXPb7M$I3oVAZIWf zoIQ|S|AqcU)l`Eh0?xrk+2iX4!Aw-5s>yqU@8fn= z1qW8<_^MwaBd5ft%xy-LI2J( zvi(;P1rrpsv{&Afbe2G!l1@#I!(IumO%=V4$4elo|g|mIVT6D-q z68@u&ec`OFIh&oXKn1Dd6rGp2^e~#XaXV7f^K4U7W0oUfY%v~vCbUFM$3|XTyP#=V zv-)+S!0w`GE151#Xu8h+TZ+Iuvx|$%(ZSS|fXm5RXW7m^HF~`;TZ&LZT*g)WeeNk# ziB(%N_B{R0z3rE!GpUG$COC~KGj9w;B^=H|hC9_xu=yCC;7?Q$^6!p;2v=48J$GVt)5JutF- zXOL;D+ni0jv8SWn*q zLmNelsrl?{F5_`mBMo3CBowk~dDr}$E}s(J18g*vNu7E(n6JR=LyS^Zj85XaZv4{$ z!}Sl25$>?Lr{0eI|B~v04Sa5k;&lNa0;DnZ>Fjq>^&v&Y3D7nUMJXW6#A_9{yu z(K;27F&Z+bT}h9^A6S3rawx$bwaLl%A@0SI(v0B7EJ5eB;r*pa)AGtKH{V5{arwzMDbi|t!gi=|%RSO~~+k#2-X8FooQ1XY+0d~`oiqf9=!+86v^#F%cJWa>M!}LB8&26O|!=XO)wb>R&u4K4>1l{t> zgv*>TT0uU%PHQg`tYpn%6hWEiu?;Vkm$-b2bSwqSq}(g->I%ShWW2A4nb;ihV)mz& zkBLTQWENKCDEVpWpapqSQ&?n91(+rDm6yPp?+=F2VQKFjGDQqD%6euWA0 z5jUYVQ=^fAtlLws{@&i$-gr02ryVb4Jy}ipd-@!2N?k^~Ds*faSW%@_lIXpvAx&1)O1;bS@8s_jx zxB?3*1UZ+#sonbQCG&Ouv5U>%!n?!(kH*(Sj`4gRAv0$O+dM1;t9R=ShMk0*rg=xK z>htCerD2{ovh8-Ayv|&Aj=ImdiU+B!&(Ox!Qd>UUGUDRd13;|ryrQz8P5CuNGVD{v zR>W4LtAcnag?69YESPaU{$@Zw?l?Ixf4di@K#ZMhBIC*+YL4k0WA%sbZ28da% z5K=Llj}(LhxjVl2rj0lgj3=di1GQ)ubA`RYp@!LB*3%Y;>w$J?&R#e|v%A$*O86Ot!5 z5x&~{oot#_8pN-V=^N;ps!=})Wy6h;doIhLJ&8u@d|Gv7AANk(-z}lSjk@?Xn~ylE z-bSK;MABWIs;0cY@x6p4X`qNou$WLvmBv<1+o5wk>Uo}41=ga`{)MN8t76em*}{yC zsKhn`^YRyqo>qtN?B>?lU)~f!y}}$J#nuS)P)5vf&ayj3xgTsA3ex7mgm%CwY6Oh)JTyN$;^ZgV3q(OEKzdGw$N6=Chg! z=HqGvv2L4@&mU{zlGxPCoF+^<>irdbg7Z1yN=yLEaj-heYH+Jw&1&J zYQ`Q1qMA*3n+@W^DJQ3?t|SOjs{3@56IaNG5{t^|Jc2)qQ84S0eKO|rKnb^GLd#uU z6)k;ZAn08(txD#syq&eZ!ky2HO6k60y)tFXKT@k>WJX%G1+`Gg+>VG@2sNkGyO>~y z03(xpW-YgugzOsyxV0fowUN&Vl~DoOJ$-l3hw;agp1d#*qbW?Rm^-Xq_q; zqeA?_jdN+5J2lpSlbS8ni&OMey-JgaNWn}&rRHRx$Jp4IY^*7#VQ=cr;6g&5nzq?Y zXlnN!*)DXZUuLoSljO#hebFG?T!KuXq*`Em%tOp5Zeuz>(L$q1amI6tK%>IBmg)`6 zlShd-I=;#QMPhp z-JLI9R6|ssJ$YXZj0hk!2;6r%AB{x6GqY;g7FQ}x5AgT*?@8t#H6lg3)M7D{Xx{JN zzwh;Aqfw)=b93Da?@PHc0PcAkT?Pp-lqQ)(SrtR`sa?(TswprjxRqMzaU=Wx_Iz7snbrRrG#sTbgTya|3zYomecG zuNQ+a0*+_96DcpPUO&QBZa7hY%F#KGNhm;0R-4oBdL6wWYz$J69HHKzN)tTQ5yWZa z$)YnSPEiod)`bJ8DE;?0QHy$Au_J|=Cc=xV^>5Vjcj1$9OjX=#`_CJKT7je(yBCrxZHmQ{XN~~ zv6@f!ZJwpN>yeX0CWAE}mEb>OQ=!unoNX@iegvd__aTgokDxn?E0q^OP8oeCK+RIk zjalb81`l#J?Q~utMbq}l8UT=m0bf*Ga3QsU(KB0bksEhc0aOP31o{%e$XfuPczbyj ze_Lv$qP@Bu6&gT2mD398c1AcxkFcCT>$!}zzt`GcdnVW4GqUe;B%3{rg|)*;S%q09 za@3~1+?<{gvU8$Uo@Wxy4vSK`ye?(dy!`-_HWF1hjL1o!#Y0=YzHMlxIVHAX5GB4D0T(t=e-OxnQpw$&<*S7HIu?Qq%;(dK98At`CHiEOY2L~Mb&U#qLp<}x z&xVj0{v7juUP?oNFQR9^f<%SC9$Jo2c>NQ3HPO_j=gqFai3uISAS>Rp0!wtQ~$mr~k^wMPW8 z)a>d&!1Ilo*K47K3rYgcV}B2`6~d;M%4<-)eYP7pF<~&dFTsEctq8WFBl?X zCMBbuc;zU}+H>MTK6k66`0|p3eT+Tp(ckg$UmU<+cIp4#DMBuHm}q`Y*F;zpWs%rZDgB0Tmx;+;Uv5VlyzBy2qzHGj+q=E3HhF8bB zKQ%}^Ddki4%9DllCLAEg!Ti0jY>=tK+Hy2r_VTH7e>zG47`U5U41_;PlIu% z8M2bXSn7fKaJx?3l-!O{_up3)+K%?U|5@z(C8PPh2`YJ{SZ6}+R<3kDDhI6M^I5ZP z;IN50Oioi=nUwU=hSE+EyX~8NeZ4|_Mac8)*M;|2eUcn1*3*~iA#Op(IkVQoes_CO z-3w!*IaSxG@4=c7C&=4dTKiu+2RS9^kO!uR_CQRw5s%u-@*^L){fOlo7n`si!_2S> zVFXL4AmklyqFKBw#M{LEJMY>+o>X3S=4PpDUU~$ADo`eJIMHCSKX`!M;IppjOht;l z#T|9zA=!uX^3mUy@b_PehymQ?Mg4+v-ZKx(JD)_`wdEU^X7ds~02@D|#d{YJ>u+Al zW<2|e4!$*Qz%MgTqcS|F*RSGB9=#d9(K_=sIV5Gm;ralM>A5eYdU^j7l$#T}Z|~r6 zE&^J7;aWxUQL2(d6rFq1N?EPx7O@2k=Vf<#?s_FlMf2b_FBF65vHz;dCcXl5U|#&+ z+t5EQZEi|+m6U(9S?&zrQ!&m|SAKsN=O&RE*rDbl*kyq8ItRK8q{X+X*|=?neAy)Q zChJ~uG8nTe)t@%}zGDq{E>CK#q_3|odr7D=$Zkn%%D(OmhRn_vR z^R^Oy5+`mwX1n<4(IXoNhf?S0QO%xzl$4ex<6dV5ZI}`c1co+XW}Pt*tw#fUBLoz18GR`W{i| z*mt4kfsCaSX$H2=^T8k&oe1J!R9J(lGl%t_B~k=e{j_xXL&F(bytDLaG16dX!mWg+ zJRerBCOtShLy?u|yoD(G1dtg2yA5}Kh#)@Q;V&T${_6z50|SI=w0PAK1%bTuGXsSgEr#tg z&f|dHyh$Y$Ui3OR)6&E{Gc#Kz6C-()0W|;e5LV#zU?~4;N9xqvsj}wkz1E|L=^Ct* z$UH}PvISX%))rmH?P#QcC~TEXi@Lr#wlxY=yVk_87arO;$?PAJ-NA9D1Nzj9rOOR3 zrivp6EahOIQ2;(-%IUFGos)&dQvi%KyPu0Y*w)>3Ly5@Yq@uz?Re?ZVF826z1d?F3 z8y6d~$4RY5(hje?(y7Dk6fxfPzB>rlt@71S%Y-hr;(GBziHc+U2eew^H>_A>REaMK zCyao}%sJTY7DX1N4*Rvbvpn*z45ph3ZtvJf|M+0|@dF>di_4)coFsQjsXXl;clp15 zW9~6faOCSs)(842DbinV5YQHbOKZ9}Of6O#7e%L5Txdg2hIGT^299KKjU6o}6|)<7 zUXZW`h8ft5j6ad7i-DhlF6?;~2gQsB?wk8$eJp$JR-iqINe?JjVIf1**G>V6ICgvc z-HKvpl-I_ZIocxEyozE7M_ys=VmT}|wA$_S*!{{<2SEbD;eP)cSBKd>Qlf>q#RKtW zA;p>?*CBC6DZTqG#dS!)NmS6x9kBzv09!Bt>vW~?^Zp+&90^GC8^sJhRiA96kkGE8 z@HkvpiG*1&7jI}&ILTt2zNE4GWaH@OV3S0NQv2VEn*aJN{$}n%XcUSO3E&YSTq{}86>T;oVY<;gb&g|&cip{MN%@P4e1+kgdHY2QZsWKC1 zqA4Tn@R42glg-GknWG{;D>IUHX9voz5SCI>oa&wd$7^4zq2#^ z$B#E2zMIqau~rYoe)UX=P*LOrJLXZ1h?T~ zubPMm(L44`n3{+^mTmC>UJ-g7$hdZ|jI`N%PZ*A5AjnL6zEljI^Itcq_klfDJlS)A z*zB)g`@o+QF^_*4%HO@qb-u`+pxVI8^arN}{Mu)0Wh>_G z;x4X=S+s9BNEsFHL3 z$a@ab2D(%H$Bq8;yCQPu;unTlk0M~26dH4x*`L$S=kRfmO_qOSCjsgp`H*@C$A4;&4_5F= zOQU%}li@m}RfPY4dnJJ(?KDvwTYcki3Rns?Z)!@rDYy2%f4Hm!d;nYv{JY-lm+GBQ z7YR*KF1rhuxmWcYDcXPdy>q`>1zc{l2cG(W*8t_0?VFnpxDnNX`z=+!{O5mjpBK)b z?zf7vtqZ9CI@S7Vry*eARDfI!#{So~_%w>ZK-2_P4CO12|9M>k&Z&)J*4HP0Unc)^ z0snnvL0Z7&b~Roq_%BCh{@Xr^0 z{uybm=heJ`W0wblI>3Mx0Gi#5enjmh$@jLBrIk5E&~W2Ou558XIwCHLnNavm=-$?7 zcPZP4X|-!U=WPzY3XNUjLPM`p^NksyQgZ36h*vMInc*J=<^W&Ne$L=a7ilL$<7p6*+wBiOzH?-n5-$;SLB4 z^6Wv0`@&{l9hCD`S%#EVw?H-a zBMQPYFTdWd4NEDic5`)=M5#Wo9Zjy5%y{pkY7k>?-W$iMP~3FbHo$JNDst%AMllZO z*S4*g8~8{#!}R=l@KS5+Y#I4+FCso&H=EsH!no};gi`o{-3nU-P-PE#rB=D$+zH3Wq)0GH zNr+>?07YxlK?m)C_{tUZr62=`G@O^ly}GZ^^d#sgC-YUsI$COdl&~cHC_qG?SiSje1>yq(X(2@krwoK- z5e<3@$)ALmbvf-(gGzOd8=1zW)A_jZRKBfg~*Wpo2d(>2DN$;^OY* zUlzRS%4l)_mvckTB$Aewtd$Dbyy8Zo)^zmu)OoJY{>k*Pqd(DMe%$91oY7Y&Ya0|!1*-Ex8)EF7~G!w@d(8dV3}gOM*1*r2#hn`Kp(9_ z{A!}uT0tcek*}r(*z@S7&?Y%RYxES!`|DQv>%K3_Tts7a3Nnv2^0tsGg>$_qbOO)bIgb1S39F+x!ZAD`LmeUOYZ4XS_+gmcK zhBKCELto0Ms>TStfL@39F)!r8f`Ws&jZ~h;0LqH00DR@%zP@mtjqN>p7LSVSd7y9L z=sPyCqx_yHZ=XU|LSA!GOB4en0mn6y%b8Tdx2-w8Att*g<4|TduiRLr4UAYEUc$k^tZu&`3eQ3@k(JIU74frs8{4}`2v|x| zmK8Q`q~&*XDh@w%mFi>^_we=-T&Vf++`B1NDcXXoEtk3F5^+#|VYqVPY zZ;bddsF{)Ru}LcrN-2Ggz#i>AGcp+~@v#xutMg$u5z$+i8hLKoNC9|LGubTP*K%2} z=av?ROpRrSRk!kThJxze-(U-U3hMrGuFyMmM9JAM#DxR%SYNaJz|_RFawxYFQbg&CU|)eINNJ%obWEIqlIj}sgc z3np$-1w^$ru?(RgfHl?~z2^aT93o-yMehRfM45A^ZAPzsiAAf~#{j+Z+PP&b@exy)yA(@S(u08$AemfUBWN9eT&LP9gP4_S4= z7uGr>a~4m%f<{*c9+hr)BTUN;QB}!reXOr`##s4K9*~gfxY9 zxm}BAYs99ew6mll#Us*nCWEv?aGqIp+H0wQQ`ef$F(Fc0cMl&e&>hZeive` zoQ{J-21Cu0*@Vwl?z$nqHeQ}c^-{A&F4@1rq9{1M?>RLgN=Ca0-~A7)XouyxPaP?yu1snceZmC_K?FmWERuk`DMy=yxCMCfE^ zH*`r(MMVK%nE6^{V~Rv?+;iGR6HPJa(#Z_{R{!>k1Nzqp93%dOo0dNTp4c-M1c(@4Q%ug=cSj&=n~07{`X)SNqfWa&^bPW0$~ z0)XJUtAHX?sj(YjEyS+qHqLbE=v?6^YS>ob;+mF&e;JbHXz3(a zv$wfjEgjhwyncht5#H34DuDjlvV#rcjR=b~4BFk>`xXj0#@lKH0qo2eVB)h(SDuP% zHbkYpE%<&{p@H=+;%73ykg0wfl>Ezm`@k5_G1U4wjdh5f*RZ}CkRVj_q>@%zhsgcMJfK3#_mVKFUf`!Dk zbN)X!=zWO*fjE=@2sCr6F_*(ZX(avG%590Q#BN32BRqtXA34i7anx6M;`AB+=OGqZ z!$mYfmKPT#otsM0# z(KTL_)Yj)@nDX-S+zTrIKydl}fdFtBo)GWI1&iq9{}zb*>kom?#Sp}Ky_!Go~yaSY*GX6lU4b z;=H9msHXjEW}k+C^_*>KozpvV>Y2(yC|{%ULi386k51{kfLmjwcB!&h&yWhsJD~j_ z>PKkgq3YMN0-zDCo zCM8kS0y!+e<|B5yPDv?~R*`z6y-wQk-(!)G$3R0P;yQEg5Hh8AjxDOUL`1G-8XI;O zygRlJnqz1L5afK&C62WX;&fj*VNdjt8JS6f^G?IbR(~es&2+&0;?MfB-GJ)!sR6#A)$+0SrPaL56UN^reo0d!7AFbj1w^hP67fBdvk9 zV6CkVJ##>I!!YZ<9a1`Tu8^GwcOqZe_0oNaQtRdJJCBqnaojNL;lMBx4eJJgl9eUu zf3u1|Cf#uu1|g!RW&?62w$|01`v3vkWxU2F1GA#qIORBLDaLAlv}bxQTBV92zjG%; zPXQ3y0d-ZWmiITZw5qKJtF84+2ft$W2|;6yL)mg-MX${o7DD*xn3-jT;knrO{UcOy zVnWe@XUh$4$^I0<;<4g~{F&L=T@utDnQVEOY>fJ_jFiy*Xd4!PLh2YmkdBlICF2kW zzzAq*@cxXO0?_K~;T#L9Ba0Pfin)f2MSpM&ur&qZ)eoHdlFhc@m#&m8MkliabBTgtb1M z`9ZjrM4+pL5Wvfe^f;z9>_`&|aVJ}c_7|;Lx5b@%xUdh9I-#^#YRR(rs^>` zG(-;qNqgndG@N3Oy9M{BXd4@2;-eH&1WXS!<&<;3e|bkB9*pnHIZc{T_QCJsr7L#_ zGAIXvDo6##Qqna$O6do66QjqU? zru?gI_`}(x*`BvSq;OINk^#KiPjKU}0E~N^k1Kn!(JfcrMjdaSP2FRe#C+|n3E#+) zlN6~fRvRG5ZEwKlLIZ+<>S(cmM0)S!7oFJqU(gtnaiq6aW#ne&XgenXHx*XD zg3>WP2J~y;YI?4koAoPI_=I=MDyv5{FIdc{`|9Uw@=}noPW zp8!ZV!4&mvnM4av14bM5S{UD}SXFOTh+);Ed|rL&z%&Y3Tq8K6}ajH?T$njV4d{OL6h8 zc4{w+{WC&{Vt!~Smb&li)equaQ0R7ue8GptoaKJ8NpE z^J*06JndTP(_`?GOO0GF_9G2Dx_a-EX)>P!o#jNu^Gg>tGqtKL2Cy~`nqm)U_#01; z%+IZDUnHlwDlp72b&hX6Nv-9}mqp+}j;14kSY={)fH=>~6|>F=?K(JHSPKig<$@VE zmgDR+(#lnQ5dY-0?`AP&{j2)0nq~14^k|WAhInw9jQpDkyMDoyIKR%<%y-;B7kFQm z{I{2H)P;B1&-tFLlUxfE8N3r$?Vh^%GEh7#(=#|df>Y)S03u3%q3xIK)USn)`#reqnk+h}9e#q5NgdU+?>n@t8)@E{uxOO2N9_Ak)^J|lS?*;CT$T;9 zoOF`e)_+GYakIb3r#f50;@xFsHlN5x3SBdBH%{;OH|}2{{s438pPnqL}=H!uVBce`DKK(0j>$dk=zAh%m zIXuFvS_e>tU$69!_m?kS#Fz7XeRm9xh{h+4_RZQ3r$#C33w9$(reM_F*uAwO>7hD$ zLrer5M{UU8ZRBR1P`N0b2+m)xu)(XZ#t%tTy?SgkMvL?5XJU(D;>~!sR#yo^?AIF( zF*!T0w(9-9)D}t3`^tMPJV!oI%(6X1*p)U6ragMI*m0Z1>@AZK&{4&~tEHu7soCd} z?dB9O+|V7UjKEoQtXOx(N)5`4`>A*xkWra3vGM_T86V!_UG4~PF}$`)vavByDO2sA zH3_JeS>KH8(T@~pWF$Z5Fz#bkPZ3h|5%Qs|(a&?V~b^z_EEr7lc_zqh+u(ihEykyse9i)%5W zl8}%)E2>+xtA~zLjhqVuET#+5_0ur1u~0?AE^gNEGqZKs+f#EzbDn zvh`=*8DWCgjRvfMNt1qmoh(zt2gmmq=eX!~vcg;fgBi1jZgU5E+HLERhu#m z`=WGXeaac%X3LDcmD#E{Guh75f$D|mGICp;JW@axtvp60SRXYcm+dz*u8oy7fSK>? zO8ju?#&pIcOE`?QNc5vNGQFy<4a)6p>Wc2Hbei3yoHQRj9mY;HuEf0+ONu#hDVJWd z#a+A!@v5`Oc)4@F3r($~shNSlezf#sdsjJKl9f>n6k1^c)+{p&sdbDTwJ>I#V&UIU z4y)?zk{rgzg<@kw%S?}NM>}el!Pv6`R>JuwAyG-Z?C}p>kB7bn+b*xu*M2(nHvisD ztp*b|X{UhpgvqC@Y3WfXsUEiFo{X0ng|%ymtzxbPae@1(6g9_Lyx z$+5!P9Wjh&IQv1LM9=*Y+ zs1l}4&W%|w>yDG9W6pNk_6+*Kgk3R$r7(7SJA!4wwpNt`4zH8fYYMu18^<;%x}z@; z7My-)yi?J_JWAUEuG^CsegC21{^=belDy5Q4%9KM;SyHXipuOz*+;Zq8X1k(rI@fs zTyI!lo53w*Z=i7$yd;IGH^lIvvESd>Nq4tp(ODNUTOG##X$x-2q$z$r*=hE0YGufU z;~npX0U9uwcSx4#4@>C_Q-{0K6lMF~;DTG_%s=YTpUP~}SK3|H1<=mcXkMXYpm&Lc z(FupbH5Dt#rko?`X}--DnSyRDh6~G-yUQ-EyUByB~88^1!79hyo=I@{!`KmrplSkCQ=-E^iiB zZQ$C++21yZ99BPo3$>q{jTWSTg+vdp9FFxbtn?+vrnbwEWK~&BE~ySvM;dkP5Thv8 z6a*Zbjwn`HF>efOYV9Dr)$++gT8^6&IbS*bE1I+H^N6H>D8JC0no-I3+z&+db}n|&k9RmZnzttU&hMhd1gh1{mY z-rq1|VrcyMR&gG{x1iJS6)(~TX<=PCD@F4x4Pste@7@@1NZyAEZ31mPM_{~gsou_A zGa-E{{iLT(9>m0-LT)5hbsBN1vFbIZcd12BRKk#MZJO;N$!^dYU+59?MfGNdc9zM& z_fgt*p23}^ZrXkHI+CYq^Oa}uY>8MkY0rU3N2UrR@QnWm@w$rXR$)`)!OUyFo)!@HpY*pP$HDdcV~q6neC#aMwLZ8 z$=RptU)=y--;}`<^Vte$Q?W2sXLq;*Jp?+uK>@dLL{*g{8V}?`FKA%9B)1YCp7&Bt zIV|l*i3O5$0uka0nC)v)8)GRDo9+M|Up?ls zoX9NaG?_c~YHtlBHQ%OT_hx$O)XCWvO3g+<%8Hn7-$CEHqp$s7x%|pQ16{V|eg=?gYAalJsw9*ex&3^;OA=@sH+K zuWo)n6`MQt_1mEKI+?$MB|&6>wqM;R?2Z=bFx}NJeWMIHBJ5z;^NmYmXlS(3qBrqMh^F|`?KZ`a(Rub zZhZ;8_w>b0N!}b`r2PykdgQmO%p>n;x(_-smZnpmKQ$g1{DC1KR)c{C}SO zFwiw;)sReSiUt!Rnu|mq9=!URd}}=ZamHKk*1$!?m*(NbhgqiZh~=mu$7rGqZ2sHq z&^_3Ol1ZK2)-{d$~LtZs61YV z%3bV>*O+S~cR5J1m~vH*Dd3~AJ}s`5cVZ>BtI)?jKiu4Ru-zWyWWn?#(EEYh6vIyY zzX;#FN)H*xFH5@qK$y09h z&Jg&T>>t|t!9?ymEVy*^`fC&i5$!X0K@oxFVrR6*H95J>v5n~bvo5ws?yjk<(ihrS zRUb@g!@f3q^^AcCA3uLnZv>@$F;W;Xup(R#wksX>p(BYgd9f!&3PUZxQXlokvGn`! zCox`^uiw>CTQ%zA;KEyzdgaxQc2VxTlbXEL9%7H4f6Z%`DUIhduisk*i-p=HJmVg& z<|fc|u{XWLvgKZ?2zZ9ahf#C4(}zB^7;~~cx&K4mpq&(&t)rmzfdh{)vG~|q;1*+s zwcE|4D6#x6hJ(VBOMMvPr4ZFk(uJ*)ZT~D`mw_#ZPyUznr;h7*178*_%=c@HB{MuR zZc_9$`A{RbuC(90hfH!g91&Sg}5{&7j%eLLluqQ2tjRl?8+?kj{2 z(yVG+U*$~jU$=A5o-tU%`DHyko7SVK@!q_|I)1&yg0Saz;g|=STI`II&USu#J$n_S zbLrub0#MRv>{=qWIoi{xZq(=wI#?z}ecG#Sa!YzKB%ISX=?fUs>YX!v&%Q{qZ9_Dpy_12BA|_i~PXDcZ;#q z{-y)DL)W@5zU*deJZe1Q@`TYtD$FPH*#rwuL!DX}r_s$r?tUd?^K0(fySK5f9^Vvg zl2O^I{~vpA85Y-;b&UoB0YU-=1PBREfZ)O1Az1L>mOuy=v~Udpg1dVJ30621?!kh) zySqDli?`1?eY*R+-QRQj{<+U{|7~^^RkhY$YpyxR9COS#U%{aBHuDgT3zWUhk7_eG zL9sef&vnJz&$pFPNc==~THB($3Pzn_rqTB;M3h-M1 z5uWi)iE5Q?M+k%-I-ue=AR~_SNjp|L%phb^jhC2GwFKbVNGGzp6e`zQ@26kOb1g}= zqgcfdvKfbAE2R#`qGk5vsO9rGcE>S`9`DTLAE+aLw^F#=?_?^ie~cV#kY>%`&9z-V z<33;~{KE**A{>IM+2s5H3$F7;9u(-7Z3j-B0Y~=!Bz>yuzEsr!&%^FmAg|ba0n?W& zG2236`I=9qePOpX&VE}0PAC`IhC)U>`Id~axtNeKQ}pwLaDcd*F_TZ~@*|67y!p(t zJ`#F1;mgiM$cx40aj{jdB~Q8G26wGJ=;pQfCaL}CRP+VfN$2~n1a2MbQv(4ZA!9@+ zeh^s<+fijmV*5r9o`@nvkR5}sH37$mI9CuITF4~;*)dH8lSwTydY=WVWt5HvMO=|l zaMH}=G#P0_o5rap^MO=ds9d9V1OMA`L4XwDO@PVJTL+D0`#72lAi1AX(NN2oW9JeA zwt(_9a-*uB=6c)pP$kC^;?{FsThmZvMQ~@3P?MWI)-uV-ctE1SUr<`&l zfkuy$H0Hb?>^)CWgG2(Gds{HS`AneoF&WVbC8AswypBxl=VUXXR>2ztpNv`zq=WE( z3EI*e5mRpVqvx5D@g;8~v124so3X$NSK-W8c~N)gdLlVYP9)?-lrs_C3Hhu& zbSTvW&nR|hdzR6?Kio|*LOfiPUrV8nQD z?qp%OlTM!9ZUars+v=_N(*=W*VQYAKii$;|^2(-y$iUS8@Cy37)u&q}7vHpyX%V_} ztwIU+O|_P`ZZ;21&v!B~$UK$fVpa zihR?go-S0b)8`Fln%^{#)Xv&2~TO&?x6QX}wK5_jnyy2NWS*H&?S`!keA zF|O(C9fXp&l4xuegJ0dW)WZ*@9|v8_DIkvFbQm7Bqin|3c!izTFyTu%Q1V#(I7i(h zPlC^uT}(uE6*(KE5%coC{UPIUI9FbmKSVyzokwRJZjM07CNA_LfSbjxTW;yxSt?WG z#=qxprZw+szhq}eoBfE8AB!O$Bc1|su75o_Qkq~O@HV7JB?K76s$cIM#=CW^B?4cW zJr_Q{a!^&XsDeuj?%PT~tFfLSWB5FsgH%H>#NYP2F~#0Z6?zv{WuS7*r7dLCqci`E z#m*de`&-R9UycrgPEY)TPSuG_Rkzz>u-Z8qlHc_`Le8Cv8xvoHG#w{6kA2OBqSHwp z{*sRoiFK#V`XIqt{}q{IxXR+UBZ zq3f4aA)zfA4BGO(W1aK1SnvV{)^hkdU-aZ60};l;?Rd$g7bca;#D4z7 zW!3_A9Z{b!X5Ia6PKJLdiV{1ok}-ID6`+4(u1d>I?9i;qm6!co!D+ z9EZvI-G)SV_nRvR-?m5dtX#35$da^!?@}hokig8X=Rk8x88;Kt`{-0()78UE zd=6e3-;W)vb~*rkz7R1|A4^o-F|w3NGpMaM#D?ZdMN*Al;dREP@;b=9m@axIW@Aoq3~AS%jLPT#ij>#j9J znUDf=RP*{j=__+@--ViU+bo8;U!8MvPkiGO3xWt5ObdrSQ2e3O%+8r>IJv;mkN|gZ zNEDfkFftVRppGDovycw}11p)YTXQ(-MYi11?2mJl^x~|7@;BGy4<7|UUxRWVJ3bEz z+;zMH_S6DtnJLt|t-6Nn+HuRZQsW9jz)Sg>+nzY`yQ#mmAJSc1D>6x!V*UX}ZHBGp z^kEJ&6&iBP;~#61B4baY(WP!Ao|n4(8R3&)xPs|v5>W<2jUWX)h4u6)J zcyDOSywHD^D*ggJ+(diC*c|7g7;gvIqEBZ~#tFI(*bwlZ|H4nN9lGfwKMoruR0*LZ=d zb*mISyX^J10cpd7&JB{DXk@zM9Lh1#!$OLIE+W52scTxwPX>dq8p*ly^hdJ{osL@f zHdrji@y=xYMcuFxrr~?3AI9y)&@C>eiFkb#sF8AY#$QKq$aZEkxet)GW9=miUKbov z=YKcQwZBZx$;j@*;V=$2DL$uMiWfLyH-o}dhZ>cNrQa@{SE^85*K|GOE!!yn>8D4m zMs7th+tMCH(7(Rd`dAn4*tK)EWBif#x0obM8chfUG}G9WgWB6Kzr26A)A_*Ta80tD zg$hBYQt6HX<;QB$RvXBQu7qcl**tc)C-9?Tm^${c153Led#td(2vy2CtlBmH~|MK#1+>>MjRK-!M8;%@!4l zk0`B}_)0Wuu0KFb_czhKfTq96y015ZY!Tj+K*n+jXLwe7&;{-0Md1v-6cQro zLmY)4peo`KqLPJ)eUYnvp@#KbuMFs@?`)Cy5zO5~JCVo{!jKtnvIhM>Dl|U?xTbh# zyeu$6`Z|0}dav26D}g=a9T&;`(vyiYb13|!h~NFMZ^}LtdfY{%;L1>iX=~_uT-j}X zxUbd%( zwLQwDQ(0oaY5NSm`B+VozV&)gS)RLlxieOtNeV+kf!;0ze>r@Oq&e?p6l$yNA*L1% zL{P->2@z2qvL_Y4fYvVt)b}&a8w{QlS^n87Inpz=Zlzo}CMXz$R@ez5tM?n|uHBhI zB+rlkO5;OkG#xc2&09_o+A7X#KIQme-1Y5*?EIL6QyYEO{by1!<4TI4hdVQ(w4dyp z?gK2#SVkRN>nP9X!+x*GlzjXqpTLdCVjiNQ^^w~Y5OLe2Js{-jO<>TyfZ&PJhkT@9 z*tSOP$U``WK!K3C(u;gov|mhqlGbh&HcJsBx-MO0+U!frC&$}UIX;JP4n_?^rH(h5 zJt%^Mf}CcW9*fjlEI(c*+qRs{;cETEUHJ2bAK7d!AsOzi(UV+4f@#;lyu(q3NU(;O zE~0mP*-2G%@|q3TcVdg)82*ZQ4|B3Ovc6b8)*BY$)68}Z+Nf_3HA<>HI{BnCURWf0 zV51L~GOL}5vamE>XS!Hvt6}SO9Fu?EO5sfPTN>){Ebdfxs58T4^PX^NlpE>7c&UeB z61EpP@tVqn)H_pi6vP2%=@0AjLTrBZEQg*Ubwk)2R)ONFx#Y@bygpG@6-F!B&hA$n zcEv|g1|%3os^M7+-s5Y%->L=pzK?rSm}pzea(C*g@R8X!PnM(8qohuY8$bDRW-y|w zpWb2wvzTyu#T`nF=a)~irqT+&@!a1?JTZe=#5D4K89uIBa~A7%NP%Q)EUwj};U8%c zN2&sY72O(bj+kFRH*}XcG%J;q*M_Q6@o?2;hLy+%8h!M|soaRJqdFGlYnBEd? zz9gXqRA}SsbvB>9x3sB>jV@{77&w}QXB{rf3YKKw5>HoV24Iq zF2$|W9o8bF#+z=a+zsD(u+DUI$^O#)`fVJ5|AyCGzhG2%Nd)aBImsj^I4`wizB?Hf z$1XFAzvMYb=Z8_<)z%QaVR_kX&`6YHoN z<@%ppSuaH?zXYBMW^)VLj&c^6UsynmtB^ARaJo@ZVtDnzO;F(A9Z520+B<8vZq3_- zRtE#Ks^fzdz@0V_NKAAMVjPI%h2BU=C63*R0vh5O!_H*tE$=J#H!6;ozubln#1ZNSJ&f)`})ew zIu27yR4k>#YdLL?3=2xG8oZcypjIjz+dqcS3otniaE7g4kVAh7a`9AsCg2^hC64@; zz%xw9lroI5RF^A1@iuX~iJGg9Po|zg*d1ZjS%S_b51S&S42|Fu~OrPN3 zn~#lTUSeaf&`>J1+It<95=?Sgj|sM46EhY}4>*oWRlc?8MID%^Hxn#9KSyY| z$<1nJG#n{CiK?b#iD1-KMCSBPepHI!xaq#|Ou;W+LZup?ikRjk!Rc|#LvDE}Zs$0K z=5t~8=7H;%(f5(xg=Q~+G)WpX=l(b)rwrfvUb)UP_22wN&nU4wazPOP7F;XqOZUN6 zYs1Ksf=4xmCcE=3`tHWwpI|a(<)(e=Kd<&nMM)9&-q*T1rQLMy@Qi!Dz?F%8TA01y z?VG&j(W7=V1K;FIWH-Yr&AsAPBK6Qs9)`aqI$J+*NOMX|8P|dML%N6rt)=&K%COV} zrk@b7q^W%xn?d>{AU5#x=x~3R#Dhor-sKLn?_;dg9kMTC?`qdreqdT$M{+}{TAj=) zrv%s(tlqF9aQ<3}zIb2Wy_NPpxI?M(HJZs(k-vL9pMQQpd;yZbE))Wj28UN!siMMcd;GSQ*Zj)6z&d=%$b zl#v-yqTNII>f}#53qzA_3}xCs zjV%xbC2*RN@>e=U?RmV41&on#<`ICR;5SvG)lshIu&}PxEzP;}W?+rBlkw1C{G3SVz zqh|Fx;-T-&l2i*zI4AjZ?pg$`a-N4eV^b8c@sAgx%gaPJfh;aKAixIOPjlj@+cLwh6N1z1yTJOSmo;c;s3Nk> zL$&QIox@xa5LJrgx2CdSoU*5V7yPoycOU&DdbBacbW5V5fFXQJqck{CE(-&iuH}MPw z#3>7x`-Jr}26e9b>8ZNlvgp3La=6?O;I`r@oB?!zJ(-3Hnnz}3Fl>2+pop5 zoSzJbEY1457r)}L;Lp`FCLy2hr?fHaGs&YBkAgH*bZaqtY{D1{`}w+tc7HrJn!pyf z`I)m;#jDy!zST7m+V-Q+Y%y_W*cib@vT#yK#b06LH50iL)X-mTieBt@dILn}4&p06 z_TXNYEAF-J z98S)Nn_gD2h_F(!dkFVW;lVvP!&)iZ8Kr?RYM@X96!{QdCDwlFefKu85GTKC~Ad{nacIwi)Cc!qLPy>Z=MO|o???X zPq`e+4AJ7+a*QxL706=($197@a{Kh^rYWj?!Z{(dt;*0WsJ=C-N)|0T#o6Ku_u#|^ zUN{LhfUQTmlOewPa;XAD2TsF}oSo_;ErLjUgU!~Ql?7ntKPvHa_g0%~2+5TrF@#Mr zF>bX9~Nmzv4M)NA^^@6`V}Tkt=U-Z#wJ@3+p;9h*FOzaova*-)G(~!Zk|{I8-@$ zi;KV0MQUO)f7D}TJ&USVRqJ9lrAJ8v((7lV^qiw=F zMw10SuB)4B`n6JX4apq6XCa7Es1VS+?Tn0WA2fFnt;c%1@;<=U?}Ai_-}&%|J)ut+ zv*mOg3E8YGDIy{ds?OCzKUdKFXVsEf!rf9|L4LtB*%G)?_Jd26Ue-TZR#f|n%~IeY zU>9s3yIXcRuBWQZ`V}_P!3uC77c89G8>Q3vuoWxqFG2_mY(8FF0MmZ<{T#tZ<<3@T zQdtOrShj2eTcKIU3L6ERxL$9akdGZr@sbmcf0aIKJu`qc#OB4D#cO+))kcXEqpG6_ zOlX&F2~cg66GrG<$f2gNN`y$XWd~#J7u&#U%FWo<`l+tRh3rQ%hT|yXd8u8E0nB z)T0sS9E#eN&Eu?Z##k>e z%4{B|@LTO@Q3YSaS}Z{I3Zkp(Sy9Yqdi!_+&7$0Lh7poa&W9#z4b!c0W-<8rfZqrN zmb4DjPSg>RZjLsJNA_=r4L9=|g+^E&r+Nd-N6+=#h{z}?i-|GWe%?rL(rlorNu@|89JjjvSBDrC_u+l%PGSxMBLw&%XvCN^HuK$j>u$QRVc{WUPRqt zm#$TqtaYx6eAg4B$Qhrs5-RvBfR0)jRqXqqc8*%j4?*$deN`GgpI?1Nt zF?66&R>R&SgFCUxIMnj3Jnac3S~V?P2JxqKrZjpu@loj7nk3p>J(Ee8_R#aqipO6Q zvslBlsw(_l+8BSia;)q>H=6PO>Be8hgC^Vevwz8KG1Pw`Ioo2QGX4>h>L?8ZJ7InL zqj?rM+PKe9ONnH7oQf9d>=Qt(=*9@gMM{SuGEi)mLRp=Pl zTCNw{Bhvw6PYI^YO-Qxj*8^`f=|`G;@s!>49Y%5)faRe)Aw9yb=O`x{I1qV}XN0M{ zb{6Uz_d-EYo@Qjyao5!YVK|nprj8i18r^F@>mz$wW9}CR1X9-AKQsfJCIR|3DPmnG zE-voR1j{C-D^4m15zTlNKhKW=pQ&=#VFV48akwZ#Nd$GP(7lfE^<2rk?ma9j>CpMR z{r&@Gk*q;--7S=R0T{wjYa`z%w*`e7SthN5O70=W*1qg|qLNgEN29H9yrWGe(KzDdRHmkB+!CI0oV=%+W+1<6|WQ0Uxzv_)5giRE7Zklfn! zq^KM+1IpF}y91Pi_;?9(etq+NRg|A0U8#rh=V;>dLBA=XW>hjvBA!L7Id84+AW(L4 z*go7|{Sf2s`(}X4`J1-Bcf~#Wy_AEDxJhN+3_Y&U^!2T8fM(7^&}q`7GpI$c4OghD zA`i`J!`&PKMAX36r4r3tb!OiM8t(>>*$XK9`YwfgBT#F&nR)C0L8TmBVKfzLF4 zb7jVWKBb*7w|KK}AW>>9F5VMZAN4)ZDqr zwJv156_5f?PZWy>{g<^89X2QYONgj->_tRG2x&ku3Urg&HWR!fWTWwt(*m}ahmTPJ z9GGz6iw*A4PXd~?HXKszu@JmdTJ%?p&t_jhhu-`8lLahknvnYJ;BZZEKf~rupT(oK z^B_`O8JL#1af?Nzg2f@}e09bod1&(f7G{)xsjV}h!3^$em@M|hPb}^hHbYDIkQXT_ zvk$3@vM6^FhnTV^-L9hn`0q#`AUN98G6+a`B;g!+O6Qa>=2;mbxFWxJ>_W~F=Qk-Q zh~E$gpBa1?7%9`xnBeo23+i;@T+HyIUk>ya>L&3}KaU(aWG9=b>}X-L+@{xjR|WVy zt=V!(WjBqTYGrGPFR1zLL#Y2Cd%Kc{@w;$Pa@k%tjQNsa#uD+K@N^h(p8|~D9=e^Y zTvbUSug!b3&b9JT@G<2M=2=JHXf<-@;;Fx~#hT;~<*Eeb^UtzchP@N1+!gzIfN;3Z zzBW%)#ELvH#$~{$fk)xZ;^aCe^5QX;llts~ahNPC!S3b4{=i9UM~ZpiEnQGfB?<1t zuMw@4Y4(P|E=OjAd#M`DI$N;N!2=GzPm?K^NRjG(ovh3bIl*ImT_3*Ofzvr~;&G;P zKg`{LA^$oMSVHsr}-%4-~_=^W+3r%-ckcXnF}7^&LM4E(+h$vA^$j|jZ3=jP!K>0JlGF8%MIv)Z2yD2uYf+k*`b6J1mw*4@d8?ZFJmn&XRHiCq-_>zx^fFNrn_lTJDjFh;=RnV1d8Kn>+(L^xh zjde5s_-dE^Ma)kETzWjFVnFZre z%e9>!Z3}vPUKFn}If__y|8Y$G`9i^ii3;g&M@cwfLYq8z$+wOknPDf>#uUlX5x&q@ zIoDw{HAJ3O}j){=%A1QsxdATw)PGGxxz+kIoD6%i9NqOk~-B`WZ zWQ*2h-@ru}O}ABU?1QY$gnS!Zs9>y6-094vfzj#Wz-NCRM>fs-2?|ahK5Si}sqfKt zX0m1roId`*zp%#UsPe(NZLR%EO}>_0dpN^)WmXr=qzLvzilL(9wKS2nQNuYz=D)F+ zGtnhyg?~OUL56M>@5FYN*X2bX^r@vm&EUx`s?{89(w{>M9fHq}%S#cB7JRp}(v#mB z$oRv|K0Ci8%~qp*$KT@i`+@EGjC^-mi%Gf%<(ykn5U^THj3<;e%Z%x{q3`hhh6^54 zvv2PV$@1oD4peVBRD2I+`=Fquniqm4Mz#Z3vu&FdGK(qO$x-Nf7#bDMHFzu0fT=|l zMD#U@fsRY%OzDRDwnRqS3TI35#&l7h1t4o#8A%$T@FPm6YR>?ElXjqk*?A}^ArovG zP3TmpO#4jr(ooKIcW*@cRfVK@6<4|mqg59M=n;Q=G8&ROfQ_Oitq}6+YCY56U{e% zlpPl*J3D31;MT0-1oR}tYVSH@WObd_D9->@coEc(*z7M#xjk5U$t9zYW=nsBF(OSb zjzO&kPbCk-@cc5=&H_7j<@Nw=hy7)q2RZeD7JPcy2i!fPnEYu(I?OkqZx%UI_3o$F z*{`M0tuYC?z9fqQzCEn@c!X$PI+YGn=qKp0wa)#pkmZ~cCqKxPz!mMXst6df-7 z-~trHp>7KX)!DT>daQgd?Yw1Ur^H&#JU~MWzq&ZtaIu-GjjOX%%~EQa3o+{e6^~G7 z-3CuPz)-1t5EFQtd0j@CTLu2P;SNAw0EJakCB3SAQY=4(6I2 z6%`eWKu6~WuBEnc(b~&>8DXArZ?2~Y=%2PWl?&^bJ%5$1 zkfsv)Y9dXnqx%#s?4vvqKoJKT72vYdup}0@hp3br!_R5yMkG+RWpkoJty@5PF)3HU zMBS8-T#jBC<1KNLX!(u+RXHbWpI!<~8IfIHu|{8*;hXmzJek^9#&E5W6gVm7NiJoJ zB~OMk?S|R;RC0FP*g>q}_5M|5s(SZRnQwZPHnN~vtnKUfm7!QRa`eG7U7aMINLTYF zty)v*k5#4y-gs(^ngkii6rm}8G3C0(Yk6@3u{vnvdhXfruH4S)LaX>ZRtereu2+<| zBT+Duaf4_kpFMrvmp{Jx(Qp5n*Q_ny!y;ltFeS$)vNQ)boIbuEbhH^LVmu6cL=!h< zHi1SI>r$l}t!%`!&V4X00Zn`5&!_awSdQW4K90xk zz|nc=R5f@NCjlM%{*(TEUd8w0=r|#v0~77uK8IaT9nZUv*NkdHfr-WMrI@triKCM* z?$;|HYJ!+0p}f+wUb6t zGy5(2`wog`LTQdYZt|TO?5vc5Em9>P#vnDnPREK1bDj!$qxO;O4p$GK{}N~>FrLxA ztIfW*|LACaxOZM2T5E8Dhe$1JR^M<~lei6o1PX_l;tpsYI8V$}?R=ay#4qPGC%rAH zu%!hFNGI5gs6}@swR}npa-b^LQcX09&;8|Ckj!mw3I+XR@FoGrE>kZ=tn{wY7~Yn1 zdz$rkq()gBd+3uDP=AuH2Xc9dBITU}H&350c-W=*+UXG5hU0J77OyZgz)CD9v@Q2S zGb<`=&z>*{*uSf;xZAf<-Xs|HOZp3*pK+SlB&EzFTrT9Qd*jXk93EMG4Sj&pL$5Jt z`cV4g5#VL5#vaXE_Z+SEiIU2(daew84+Slz-b!AqWu}&(lOt(D?8u!@w)2uvx(ek= zF7G0YfgECbi*Z~Xkl*TOLam&gB>3@h6dS=a)%xy{Dkp3X)Mvzkj&i1j^fAe;ISOAz zG}TQzK;f(;dOxUT%xFo2bOJKS56pQ5KVhAw!!CS;TpILny7SNW%tJJ*oH<-D1=>OC6LTB9DmG zbJt)k+EOQ{ny+=5_oudm$sRV%e3MgL4n11ZOkA_Gxu3DtOjo92l1QSy=EcN?=X0pivxpd6>sy)UG@BBZ+g5R`a>9tqS8e2fH8i zR&xMI=HTaB&&9jb=!TOobfd^xV}t9q@9F$$se!s@GNUE^0`upkCoV<|s1aBo@e-~o+tF5|lf7` z=P0Hv0TgVW|8Whcn}vq*bSSfasJ}WlN)&=rzuh2fk77>73prN!w59I@HO|yDo3Ik~ zG28l?=UWPWfwZ9IKxFrhCQdN%u=;y8Ti!|)d`dCycM_QpqW{Y~-9c7{PY*W4^34Zf z8Y;Dlh!siPH8%?FFl@O0HT#~6(|U!cb)~&(mbR`)RMQW$!!5UR8_7D-9rsimWJ-1nV8oQ0x zBO%{!6S?-?j0jLxO*F+BryFQKwD^sut0~_!o?qBq+*3hl4{`ERCA_-lyBKKbH=WZ-p zX@zp!w;t!4`XO~XvY0n0K=8Lu^M+&b&AmjQw)*N_FlyyFd!mZ6%r7?35`a6v_!W|< zd3Rp!m&`9L)Oguv?<|CRAC$}c)y)l?Adbwytqm9;z7#)nNQt(qt;k!7>rokGbx}Xh zvE0v8_A}T*WXuGXB?hFlc=%;D_bW3>6}lT7hrjGt;e0kIVkZr-9Dya{!OmGzndNUA z;(=grkbDvpl&R+o9V{MCSjK`>rt&UlSf^IE1R`*S?*`RcL$<-)8|%Km>|s)FpSz1gaQO@Y$Y!yK>2wD#!Mug%~76 z@jKfIEgf9w)(Pxcx6C9eUD*d$n@@d3GqPqSPk9>px2;9 zBZxxcdiW2*wy-DZ)Xc-|lU;aK1ouwD`@ia-XR;A$tI8009JW6{Gdm|_;9?gc@Dl=A z8_G}t+k9Q==}1R(yG=~q=XYn$#Z+O_U&P)ppD>(jR48e9x~$Zzr4Ds}X*0twUZ#&Y z5xA5tvzXa}czmtNR_W*r5TEw(0Wic!W9M!8(1gQgpG<|;L|ZCTDBr<5y`%L7DqHc| z1!_4^a#urf^GoxKH|-7WNd2KwxxJm!@fu2cCz1JL2rr2}cEWI$iV9v=unr!PObwG} zQAgi1*h!CIZ8WAJF&Q*!g6ceq$Jza5Hif3>H6eGA zOerlcC?>dA+dEc8nbh!gWl=&~D&s}^qQPPmksvKJQ3}=KmrGe5AIcd)TDV-=?US2- z6Er63wjJIh;69MIR&W=~*#f2n#W65PY+T^TOSs?s6Hppow1?ygo`ii5Gep_0w|i0% zdbGGVBVEPesWUv$|KZyfOs`IN1PEBNZ_%%s1o7G3kuelKy?0Uz!WL~KuRsz)+I*d= zj439vvH&{LW$&jH>z`c6V#bf3i5#fn$8h=HdGN_yUWChXX{);-9;@>`#Vi%U2==tS zozP`~`&{kkH(kna&JHLfLRKla<}%RczHquPw1$o#s-RL7zJ}K=7;T|=7l2fCFQ9c8 zU0ZhWkH}Kqe-tlPpp4o2I0i$wZa#si>uTwlb_1O(1*`8 z`EJNG9f@4}9g|Z~l%C=pAehgwe$4lD3cYx8)iNpO0gS}}Iy<^m0~CqLqZwv>6u2Tq z%8pad|Jem+XAJey&+B(Y|M%1sADV)30$*!zjocj4b2izzyT3Yt(;=ydWWOUwW9iN# zFA}g6@zt_KUUB4SAQ=KSjw-TJ?2n^wX0EM{yfV-=tHBh`?BTY*rLjS! z0BjW+E50L%=lVaXSl0cpr3i81Uw|aS7$8*pguNi&55s#~Z_$We?n99>2E`(NTfh*ecY5OS$i9%vl@WyT5173A1SpNsV&5XiOLLCwI;| zhwoRVv?fg#pM0D>r&XiRL{g{?j8IT3vFUHoZX%?6{h|&JwW@5+`N7u@V$EbUda#m| z1=z}6Cs)O;Iwjl$uI7>-Pv?gjHdda=G$`n!%HD0~eZ1aivkrb$Uk?*p`ku0o7)t9) zzg1Fu1EiGt!7Sw^05*=`*6nxDDV1AH)pJImvY+#EZhB|<_cEwT-R4XDMSz1Q*3cmh z@|%AIEs~^CsHYYxG0&z9zW+A&ASnu&L>jgT86=|DeP(3k5LNSszqgxsCn>ihnqdiA z!D`e~xg;A&WkE*bos6aE`2YAv0qoPYSi!~qbh`ac%g8C|C>otchF~=Cx+lf%=|Dbcsvh-W ztWt&-rfJq4Ngc~~HhMMuY#Rjp&nOVV=~=TmS)tq!!$4=1+XXP1Bmp-~z>}t%o0~hA zo<$S@=tp}DgBD9Ai+%K;9@d}65&_AkVt<#A7wa4{yU9*BACLqx7n1Q2wG5apftB5VpC}75&k>Y|(O{ETmc|L{5!2u* zO)@0^ZA1kw@^K$VONPoC)$Z}7CqZZgihY{Iuu*LgjiO~7)z#xB;a{)yYF*0RE9?on zzW{lXaF7A5NSSB;3q6io4?*Z7*xygye8~;@eRQNtkdJg{8E6ptyHAYNz%>4wMK{fZ9r%`DV1O_W@_x1#g72 zv@43(%*S6}owAw-v?{`_-kMBRmezJ7BHvFt-B>~f0wRC*Z~k_TM18AA1Jxd-`va~e zCBIXy#1nI`?_&YoZ%YR94#}cwizAabnn_Jl!1ct?WTvb_nFkXrR7ClD=ZiVrTp;~$ z=u(t_SbM{0UBh{I#@TAbamMWg*#TvY7u(NE=w}c?I`AIPaV3TyxmAJ@eZu$peHQ+- zGH!j52#^4il1erI3xEl%Ko`WSa{8!(UC9dftI8-0ny-_0q0cVN=8?mMY{*_*>=a^S zSxZ(u!J|=9V0qsbrd`?X{+A>FZ7zh0$N*$jL_ljF^;bWK^fB7Io)p<^wYsdf6OXKlA@_w*2dO z|HB>6XOv*wMa&y5{D(F0Cz{Vczw`g4<&h@SKl~q7$H%9hwrlP*f1FLp`q?JoK6$Mw~u zf8S{1FMs9#)lEprtq~pn`nL7&bN-L(@IT)tHMupSC6{A7f1lHTwhDiBy#Dz;NDQ|| z)ZTcM`M)rtnzu%j!K3Wo?1BIEXoYW$=og|V_Wz9$jkz_V|Nrv%ZRPxbYk9PPst01L zAk9Z%GuP-NwzUJKm?&9Tl&%4UC}!>(9r=;W3b1auZCAs%7h{klNl{T}`Da1q@f;Uv z3ayecOuqM_RKRxF*#~=2((uSFxqN^AfwKE_P4pm6IRk4(wLEq#tJ&XdtE494T11)C ze^{@x=m@SR1bBEE;+%bbeTZ`)Qsky|*q#hg17dovS+u%N%Uy}o;BGk3MtJL;0G=yJ1Am1zn)2>K++w@tgABD|% zcUBnf;lt?rxU`Z06}jA&c>OwxUbkBPHUbk5c(hmLDuVu|`#UB?ZK1Z-W+@h=*Yj*J<^Z)JEYL8`v} z@Wz?QwPGY+?^ZZC8b}LEfefryzL(S_#lHW{oe$I18bFTl@ItlL^=w{E3KA{7>hgst z_R|TaD@SJ(O{DG4^i(YQFB}vE`BaC6=kHydK`h|>0r1Q|^q`pOOJ980Srce5LJU&8 zIzOV6ed1h?yy5z;?r%%dm0IX))=q9*rqCA6MN_UKoznB{yFyDCPd}60Y}nX3tCSypFBJri zRk`!$AcOzC<@>bvqLtxPu~8^qmdLL+`hbz-ob;WCI@ih)=j7!r^3W^#U)N&c{ z0^mG&&uYj>Zcq^QuYttY+9$|qCel|Ek(s-0UyTJ4_jC_^Vl15=40yX9e{`X8-}M^0 zx7!r8NW~^=lDgFuS2<06s#xFmT>^Q29uQaWUEUbic5y9}|LuhLtjCf}sJldh-Q@cJ zyXjM6^8^@HCy;L}QGT1Hl%D2#wvSjy?VWzAgrkqcg(p%{W->s9hKU(_@8J`_4g6#@ zPjCC#C_kRN4Em+Vosm{l9@m!<6cQL)lbS$7)hztWwC~0yNVb+dI&;;Ny&;rJ7 zB=`cV__jxUbEp0ldZngAj&tmdAHDtfFU=q8-$lio``lio1m^j#DT zEQ3!^_OUG!W=?o4r*6MUICqsT)U`_5v_ISN`q<_8h!L zPZFfd25jr#@^W{oL;hZ^spX{16MU#Zg*i?mufm9F+|QF@o@voxm`;uwXZ_8?U9Z$P z_w@vBs788@Q@9eD?XC!i)1+`3vLTK;t(c0Z6vXmK@qatq!n9GrnXCOW;Og0*J+FVf zmb616-S%!f1Vj+$vo~t3FI}Yq@ex10=6c$IhBX0%Ywx{!w7%9kAcW~h-ACeG3fh%o z*h2kvNxb7umAJY64cvT`svWHx=(4^8&L)6>ntpAa27sx>pAQ6Uz7q&^9x0UvKVi3l zuD0wqL!3msQJLF8DiXQd5F|W%PwapJm`Y$DnWMFOu9W7drTeTN;h|>*+S_LoR=3ki zD$ok86!E$5X~yO=ge2g2KgWh-V-59yF_TpwBE0?#S+=)J3=}+nLSmtgC48BWVbr>_Ah)z-}_@zy3*Lo9Gvc- zaaOpOognoOxP9ueg(LzCs(f>r3%vGQp;Gyw7s314=|c>hPq=znvdvZC(9 za2%Sq2mu0Q3oUC36b)aX(m=vpkKX-l}-z<5h<%~ds+kFQ*xb_(~GCE!q z$V5qjIz{v1r+egb=Qa#hk{msF-LhI~{xQZ$&*#+9Tctnqduq8^j-Qa5D0P*(RB_4@ z>usN;RopLIr$bSJhQERUCGG1Jw9*Wfd77W9E6F7A)_8koPivCq&vZKe8YpZ-^ zK0d})i})&P1{mo_&lT#wt3TB52gU(idvG?u6j9F)sP3965+db>hlhWnWS%QaV9?^& z`h_|oF5hjILHq%*`eAxMWwBr(>f=CFCJEz&LM>L1J~b%4snC29UZ~8guKU<6NAde- zIYF!0kJ}`*LB2UTc4KcBMQ8ea0RS!)LdacmK~Z~pWN7kUo3-QH4&?aj&a8jz(Rf2I zDzwXPd%8yJR!dE>p1T;Ro znbnea+$duhNIU)?&fYq%$@l*kS406(QbbWgBoqWBq=bP8(%m@$>6VTSL68!Vl4g{2 zO6Md5r6xIgboYQU#^87J{=C2E_o>HuoOAwzF?QX%@9TQy^YwfhH$tCxx!Z9zNG|3a;*gA|8V~xz9Wn7+l!}Nr+68tEG0AJ(ht8Jq;V9>9Xw zzVyh;yuSzxv~m@ZkdhALyU%{qn(@Ma$-cdFTg-Q_ zL@JY!SWGvO%PAb#X za*37q@lS=uJHt)OGRZ1FbO=c|>iOJ5ymg|4S+z>I(qYoPRoleca96sBA?QP;{Sh#6 z^z%B(mC5~9hxEr3Uy~76*i@xXI#;2GBmU^EZtuRA&aWn5Z$P-v}*` zzlg*BoQx`;R!Row_cla6y-yzcco!)tk0_iuGvxc;D! zxY@RPtJ!M7wZXX49hP}31L?*12ByZd^6Y;qpRtdxBK(u(qI5ezmwC1%0dWawWbAE2 za-8<-L&a^go!$5K;3#QEYkLtVW`wcT{G(wj}aR|3}^*N992 zwAh`%${+8`%a|Ff$tfua%tKo65A`=uhbC;Y`nd;Fo*)k)mSD{Fs6n_wj^%A-FNU zT!h_u^80$-N7d7n<{>KWXPu;CysA?1)?IO520!y2lpEA2prXfR)4iZ?pFR5VQEgcB zZIt9v#Of0QGpEm-(t6HGKhr{phh8l3Umn)#k08Bku2*@e%NC$UoEcNZ)7@V4=X_$% zFSa@dyfQMm`mT$iKC4k8?GF~Qfnwu6)TNj0+i2cX%M7PH_!yUTZvnZVad4jXH3ZxA z1w~BbO=TD5d#}aFKmWReFbdTjWZTGiVfPjKX+D|EG6|j}l*CWrJ}Kh|!?q6C5Kl2J z$U+G-T)cSNtM0ho%+}Yv>wy;l>}@}9t=Em@RoaXY%QLDT_D7hU8vii}dMm`40|cY? zORmck@2fePMm&jTK1?=-UeR7rdcBk6aZ1h~udhk;hCgzuAN zy)J&PQim$L;7^p66}^1na=%t-tG9WC;@jMx=~YNdJaE3XU*j#&#!n5CePmP(vb)8; zBs9N%-tL_iv5S+)@ZQHa+nrk0{j4HK2CQaoMkj0?urGmlo6jJqqg8adw`D!Fw!3DI zA#&F@v&O_$E~fwME2K$K1AH&4z>)%jU(pbEfXtC*=B-Ui=8q`ySY+w0WWYHx25 z@;>TWjCf1T6&c#4{cN=mOd&i+3JJZ%bP`ZNwDXDL;MLx{@q3l`CIO?DVM$a*ks@{L z11J*@u;Dcv(Sx~P|M|dk@+c_qLB7l2YZ2mACZ;qYr;HT>(>q^ z`0!Y|oI+DF2v9_|3hBsPkIOHmyq#Tc&Hu%8N4;sk#;zN6=HbrNzlRaL_;C+IQE$$@ z;BDCw0+48`EtpStmys1%cO24SZW1D$4?FeVg3KQ>b#*}ky-D*8kUyH+`LAGzCf_jh z@%M4XcY6zephL=Ng1)#?naMp4O%rrTfo8njxo65cDd0-rY7gMH4OnixxkoqP>#rJiYmQN?JUF$4V~KWDurHGeCHzh|L^2u*~6Z{m!kR+Rie>?i!QYfbsjr%QGN z>Ls4bx}X+hZ=al9DN7QfI9t@e73Eca#M{DfQ~Ku-!;|A) z=_G9TQq!as{)P4Y)JIEKTztmUF^Q7D&-c*Cy~uf^v}h+|3MDS?y3#in z!enwQ>GrN)*##XKJH313w)~0es>V?cRBIm5Kq8M$Vdoe|tlF11ou?)I#yd@qYtOK{ z-|jmGX}R~hMQ7UOLj4xX6DE1?rWiJIZ=4IBE`H7R&TckEs~6(kdHp`S6H8tpp!gu^ z{piD=>gK~cP^l{ftDhxdJN?_I#o?_B>;nNCqkO(e)QNRsyQ#tsHT_9VgN_e}r+nOO z49t}8U!11$2tk73fH^NZ>@Rnd-MJ)`cTCPVg?&HREPeb3w z`C;Tveu0gTUa6q`)}6Zo@=0tcR=E+Ei#b$8K(oJmyA+8t%NNayUl-0ZMY8xJQ5Ngi zC(@9IkHAdM9L9Muf{>O$&_3>`jKcvlIWO{>ugrYx znwk`u3}4)dGTX&Fs;;2kk)*Hnx@LS~8tvwq;tp~bh1NUi}3G)wFbP|%3Vuty6BW3jKZ@XYeR7kjnl7mv_ z1+kTPEfcxnyZK7P>15Q&hV3Q(|s1IX_nIa*z!eJUf>D@djz8K|6{t#>(q(E6=Dj`IzLcx+U%-wrk3 zx)b)El?zg`UnFel#cl@@6vu-D?ub8al7XKe+oo1oN6<^CAL?#2_(107cvJai zWOxen`?((siXhE?B}&eX6k@g}NEDSR-}3&iQ~CD+ed15ZlG%7XX?Jb@OOPj3_j+4i zcA0$N0YH&>y|(}mwoM3CBQMMeYI^-JmPSf@m_a}fq{kG$>L8zs@uWJI!_rq(+;l~oxF7b(p!an_+Y@2eKVPScHDVH-N|5E*-gO`J6TK6{ylmK2Zlp5iik z6Iuu{)qK$MwsRNbF4G+>J#JeZBoHoePdD$hpFjFII_Ni5VZm+rMTKQsG3oBl7%s>4 zpE)TZ>q>$0GQX5h<$m0CjN2vOCM6As-B5$swQ@qLx8=PTj;;94mr}bDS6Z@He@2q@ zE0UzWP-T5{D;4&dYRtCzXY#51>g}4}`IvQ&32E8Fx+(4iHpj9jqQIEUtFV;MAGTQw0`7FYf9)US$ z1v{EDc5K>KMc<+KY>}tC*7_N6XdBUfyPhqKgWt+XQ{Yrfo0D+^3bq+bJ~IhU8C4Rh z-Pi|0P{jkfq-}_GTJ#{~oQQd_GC@E!8{09JJkaLMFm}290q{NNPCAP=Q@+bV1KLs4ZN}zS2pu|RL&9<@`8I|u0_I9zW z79+82x$*|GQJNDm#-SXiVP~d^-4e5? zp53pMqk#o!;D(c>`8J~0x-mJ7?+#H@EHl7P;}Z%4Z@4yrH@mx@h!?1_}NOIDtwr`sYYxm0F^#y&K;MCzIW!=DS~q9k9aA;gFcfr@ZYb8?WzZ|E zA2@H*>03lqee=dO68X_GKu9G|`nL;~e}Yywhj+50-$LTRSdCsS?Y3%D=?}prUTi?CEc+d*Ig_^>l?aGipoEzj< zvvYBOp39b6@z;hw(4GH&bd6Adi2PN%jef{K_FudurWn{)aHb%q-Q|4f=8_4*pv_C%@bQC1RRILo!?mcLt*qN0OcuWX)YHOfEu>rG}hm_k7aeq8akAllLr2WA2YR z1hl1%k3v>*XoYZM>t98qPoP?&{TAu@toLGV$U-&`0uKNYJ=zUe#hM!PJPSHTuLHE= zI-o0_yoYx0gGr$7KGXZMWb(&@{xG|)GbrntsKn-E)_#gxe}70cBe-Fp`%7`K&T^HX zs^^aGr(9f+QoS$AH678&P<$(WssqW0g6(!gq}cGr#BT2%ho$aZ+}VZ#im+|6Xt_Wq zW5uc#SlCM|?B=^N3=eh|EWcEQ4jEvlDk+9gl_&-kdf38uX8hi1MwbfDwi-8>T;TP3 zj-W`~{kp@|CYJqNMBJ{Jx`+#8rQRmm>iydoX5xLJGtj@&x&+ za4T{#-tOaV3EPjSHI)$|ZlOn-<*Bf&xEcphZs@ih%_HXggnzde_=c-#0E5JR``NrtatSwUX!TO_Gf;!jjt` z3;cE+OzbqFv#0Qly^H7OF^l8;iOkxrKlL3T`|E*&Pw}Bn44UOD5w6VB`t5rDas7)u@p7Bn#pZ~sH zJ6yT>r#8zNs!qGPTraJB4%$0O%jA*pMFW!!s}(K$Rv$O(W@_zr=RbHO%9I_}unwBb zvc1Gki8}C^UBBr~Kk@BzXN(5|jPd}{*pC*NjJBQ?K02pR{Ev7npYYC8r3C_+g7{2M z-7FielCSF>nmo@(KSFp)Mqa-Y_d@!2i2Nt_Hj>3M9;ry_bQC=CQ?X_$<4vr*3XP@9A5LG(RrI7GSXc_v= zq7{?$%AE7;2Z~fYd{byy*FeVfR{jz8XO3{z>i~8unQ-V!Amob+l4y;}b#uY7>QGbH z=q^lEupY?@D|?9>GX@RQ)a`64BT=oTW`!<#X~DfWBLWw?6zfasMHV*6Fiyg%UNfs0 z*AB*BOC^qItJo!{#zhmqgx^@c-zfXjG19N?ltS*?dT=O&DNV(PtJ#X$xX7P%EKa`S z8>86Ti;axnfpV(gLhz^#iMqSV5IJl6%KhL~_mlcDR^Y3PvVZEC2fyhJ%|N?P zBk37J=Kao7*!I=)0$VByc#U+X8&9RoyqDGKT~;7{fQTSbc0vTLDK-M6xEsYD>M5V8MN9eK|1xU&t|FQ zpEA&3WsFvc)OT{!Emn!(IbT7t%3_+c6-^xVb^B;jI zGTdKgAhVew^g{7lv)9GdBcOprUu)TKi)l>!I@Stl*6SBC_OItLZ0xjc483aH=%zfg zbh7yD(Ukz#*OD>9MCr&$==dW|%P2x%z zE$!sfI_|ho=f$u1-ewk96= zz71rlDHXU!M`XTeD9GV=5BE3ibT@Yq_ zu${yTnJg@5tJX`#C}O%PxLu>0UsCN-HZbKVDlvXOUkp zo-L3e66^B&#^ZH4-6}UM>Z}crcge?1;b&-pm(F{7f67lk`Xy7>M|nyi(MB_1TwjHB zjFSy!%832$?DrPQds_|i6r0Km%RCRHG!Y+J|1FmNE-eWR(=o>9qYq686z_X)Nj zXiY3%o;P~#W>h{$ARnuLA&j8vV+q^wo2*Bxwz~EurmrU{2?=TG=smoDw+81UaC|se zucZ%tcDgwKZTwgJDxrfF9}y581k0HmW{c7&>v;e)9JKeX+5!YFY>YMxa^4G=u$~_b zDkUff($fz^!%%JxLt=aQrHHW_$(7Xz6r%}S%`kuOavE$s=@=sL?$?)U$em-MVRs3k z;q=$&`9=IM3(#q^OKkMU%>2&u8h%R;sV=5O{)Lfb&5-UDL^)`gAyJAld^Xkc2!c?T_Cv)1qFqT z40k=j)QK?2KeDHQ?^0K?Z1mT|_@PS4d=nYajj(v#L=&H6V^4f!;r3q7@%Ge~C+55h zBBHnVO$vRNYpWQHf3rcmK3`q(`U=4}Rmm6$r~0Bg@uLGXTusD1Z%kden-qfM)z8yw z=vkutsjIX#hi}-sv?hg{dP%ftv=4!uG2YnpB##POW&-bK@LU-D$>}lf>CZd3b2hf7 zSGf*mNTrdcE!D0{fvl`t<<_v;B*-eDj#2Tks}VVEpRl9t3Fgsw4i)FrQuz`N(^A6f za6SXN;}OM(QoH;v4+MD`*<|i{(n3(aze~(Ja9VX=kxt>eIF!B}V`Fo^v0$?%#ka%p zea+*wDzvh?I-|Ew#?kJ~&}5CRT4&1)x4~LEJl$S5a?AF$(c#blx6ju6Y zLs9*cge)JqVxq+ZMe_2vo-e|Z_(7XV>NntbdSd4#}h+wj1*Fse31<(3<}C zbRm{-9?1R70*9FFrcP#*`5nQevx+39$DCo_rU5)J9Se^EET9NQN>Mb+bo^~Pfr8LK zoZN8Kstoag1Z`W+Zk@IN=|P8L*jplUhKFKb5}yO1#*3%(1{xyC?~m}*8JtB^tB4v@ z$GI$$6-wDIrLJmto{iY% z!E*X?TJ?vhg8nM5h*QJj*>^yXhFvysf=KMv#G6$Zk5D4-A|k87gr`|` z(BnY1(7{8N8#gvDb_&Sw9Owp400xG|O;9 zn%hhQs`Ya{Xm2}QF>d$8b0bd;M$Sk^BGZed=rUt^<2%E^5%(3+RE+e8fllibhQ#D8 z$V%6sCaYp$-~KKjN_w-YW%4~maGiWOX&sSa#kcwU=YRR7rJO3}9SaO|IinvsY@iVm zsZ_}u;~tpn2|e|@<^DGvwX)YIK3yT?d;Gjth6TS8ZK81YgwHZ|#!neF_hK`(cBc+^ zA@VX|ON3V0EsOf$2F;d2+`Al}Ei=^l&`*zmh$sVu40VEawJK)i7=^k=(|nE}DI8`q z&Bht#etGJ%(rHs%5*49xX>%$RL)>pl=P8V2>l@?7-SJx}kf-UF)i(B(@mK6#kyR6< zLQ`v$>DPEmr1QSpj^6D2e)?KfN&_-&`!;-O1GCJ`r~RnVIxi+P>-vlMzKiWC!3rlo z4=*M@?J(P3*4HodPNfD-x}!E$g4$aMVhV@kSk988ZxJ)ca!76U#_3vnQff*MmCp$F z$pCPg!}5ctwnagW5*GvaHYY19w#dPsaX4abx1fzfsztKRkDS}jWEot%fqh?VC);N^+xn@KcpT)PWSfR zHp7LV3QH{!`y2{o|At;z1CZbB8UC>cK4AA94cwxV>+5XeWD{3LOC~m|5V^E?mPU0bPooah z3H$js3mdfW8#O7mc_HDQC^$57k`}t%JTMskH4m-eLco_$DsUikYbkYLaDn}*0e4=* z*n|gqM#6m5Rn+>-7YUjuk@2PX)$jme~!tm z4WX9<{^EBlk&-J+~>zmv;WFhIyGEh=!-_KiOGAG z=ZO?;R+YUpowqi^POc`0LB`vWzm0%q!}7}Y#Ccp>1=s-jLURT2t*tBhB7Bh^U^hYf zgRQtRO{Nk#o9DCQr>{$_MI91H#C{(&rUG5T6DaRwVumUAWtnPXHpG&@_RM<(t(wAq z?&Vdu2~$%4r}GQ60Y4wk#tWIKo_&8!FeDr?RW3ns_gRwD1HqE$-gXeNB-1ql*{F=? zBrQ|X!N%<3|f5WBI{xde2yIQ;o|zWI6(M7OaZX`V+KA~VVU$h?Zp zJ@CM?kL#JF?vgSDbxO%@c0`~KL-K?GdH8GN&VKyP(GCKB_u_-Jx=eW!9~$`$``y*p z(REPAY5--gOgC0*s*xYakdyE4n5~ zH&Sfc!4rxxZb$LVin36+NBKj7w`csT)s7D)or3AwZv2Pmym?gyG_v`C^~M*;#czow zHwoih0y$;m(gbWYC?aKJyjYkH*#=`6HWZau0!+uXzDny*-S~ZW%>>pZAvSsp%oBW+ z`+T1CwTGuNGN^)2COJHumPIf&Q{GH9j4h{Klw{}ZHMZbwJL%JGsQj}+qFpK`pM8xv z$t4MyK27|A=AbFWd;VQ`Z9PCqv{yFL7|rq$z*Fn-7BDNH>N@1{HPD2~S`;D6iC!{a zU=IN7`~zb0j*!t-pqe=eP`8!>$cHx0ypC=NN_rw_I0y+LlkG@+NcH4$T|&s3%{DvT8&mQg=%jy=n5;iIi9AD>-i7?|L8;WNlV}tphM1&b4o6 z>XcW>!W>%0yV&D16&Bx6F5RJ5qQtf5VR?9SHvWi3h9}o>oo}e7^W(kwk-Y24EJwlj zezDBS^R?KTtP048qgR)m4bnSaa0@`Q%N;Szu^Z%xi%7h88+w%ddUiG+thW9eZC#PX zPduEEYFH|q^?+jL?y&4;LXr-o+%*Y<%KyEZwu>vT=Pd=rhRP$$08H$S z1rsp*>j8K*#0~#Yh0z4#ea7dfw23|VZ3TJ**`I<=+hnwypKj`-fR5tN$SI@MsxvK^ zb%vdi%+FKo=lcoU<%{yjh+G`u@)3S3aWb*c+i`xMLmdzBmOh*&?@D;8UeNU==>4E? zO}!6<-UYHamEMbw*f_ve&9AKbrqyd>>KhqH#dU{TvaA*oT^t5hPhkkWV;T<>CPABr zp33jH$|$&nT5T}##EX{?5J6{fD~YX9d*esl3OKqo1e$L68~_F2)<#lZi-M(j|Yr9>^;jvBvHCs9A5!_e4yCI{v4;U9hX!SBqG=Wue1a;AMQw(9#f zW8X+!SY}lBa>toTNp>en`xGk}*GHhte9@Q9dv^hGo@@&$~Zfv*mDuk3dIDQqXIBZ1rS2y*aIzy5q zR9~Jf^>CI~uMg)FwbPN*u!xRaQ{ZAX(#QodwkgDn-Qnf6r&>JRn&78sl^f5qR`ro9 zYBoqDR?5CF{v!&+azy@)bvjPZY@su(Z8M7XL=!6hJmEx@#V=3QOM-qZJW&C~W}d2SQ{b#&g`hB?9$*#^C^)~QC@Mny9CjV`(SRPQU!3DV ziY(%0qF?k2)x1V+hJvSy;T;Z9hP%KeKfke@y7HmxoA57LY%at^EgSoI9+=5-SP1Vi z5T-*CRbHp98ctkn$W`Qil}l(%6?Z9s@k*iyV3QHOb5i~!bYs`9tbvUcs&Nrovl27F zMJ1*1u;jGU7{3;rLzPq%B^sbMa&9p1UowYb z=WX-xUN+%o9)-_>bJ{l`GCP;wNC?)E1sTy{sIlDstiwnNH1{p}rV zm3N|VBqM0;_ZSJ8zVHWd?2vM_oQpBOgnM$*-mgv+NB2;@^jivotQ}-L4KM{Q*E)?d z{c3d_p4H+tG}iiK-mR)1Vd<_}-k?hVxun`bUt+upI^6mz#ufgQyByv!Sy^VANc;E; zm+~&loU+v@Uhfx3PNrzwL&csWtMIg+RJqp<{*CVE&42gvY19NhCnA=8Npo3^(y~;j zr<3VIBo2oaI^ioB8q^LL}E&cPOrj_hHBv6Lbd~I+e|TrSh{ix!Akh>^8=&k@PPGDQK-#iv193 zcrKI{e5H(bPo`I6NjZ$wVqNdVZz2za&F;1DhIJK87X5M$H{g8rMd&CjJL(NMrwkp` z8MKh;ohg!cW|qs#{DzL7j&{AXl@0^2FM9vbmvSKyeYYV?Lc{u=EShUqx7M6*W_r(} zDDptUk1QH(yghmrD-1R_UXV#%@s(u{9~J2!jrN-`INgu?t+$75N9!$c9LbigbQgAt znmu>{uKg-se*4%Vl$r^95T1I`kcO_JAEv4Y#`w5}C9IW#%YTc)!!3+Zr-Ce8tQvq( zGGNNZs6Xg18;zZd>-AGQ(8aZ=0w>F;bhCNID-S~g@@HEFl5`_FbGAN~M8K2tl)*dP zgOG8PIp`%|{`BLMK{|;Iq8TUe;RYFrhdoQJZL$HQ&12-+3(pd9iOwPu?}v}x0;y6V zj@9@=0Oii0sSlEZ4C(d6dxDS`M!TLJM%kO9sA8w1YY)Pd-NEq#@Bccoqu7>u9BN_3 z&&K2$embnFYt5**GS~Nd{{x7?`EvBm<3n?ru&|^3ufN6A4e;B!@cA?M=~bi#zR;KM zsIrXf-aigOrWi$m+uGi~ST6r^R@ib!H)_T=x(N%W6vn0Rp8uG6&fpBzd!c+5I9#Uy zCUcl=ep*lI?a*Glql;tZJ-SM4R`K#t?icSJL@O! z)>mY|r~KWb*kcj{6&Y;wbTspXZXPgA*wV71r##`d>60(M!)9G9G{)Xu0QzoQV^gr_ zVVsPoN6I_o`+-a4Ee#x@tv>r-$hhh3_8l&EcucC6i#;bWtyrvx$wXu{VFH-jv4G?JX30Yw_(>IRnWBsGEe={;Si8GmkXkX ztiMD|m5GP^RfcmIAa?2KMmo(}p&HQ^n(u~D=hj9Wf4*)LZ5=ayCeI!@pD(l1#4YM% z_;^=}A5RlB%@>&*S8m?y!Zz&G#j&eSb;HlS=4Mg5Em%kx(}V6$f0b5yL<7FRhrKTo zahTNE`!R`}%99x+3O>L0zgmC;TvugAVxGLABtNRq47@6CjTnj7m3qZ<`da`joZj;# zn6dU#biN@HlN^4?#;YO-&FAD#HKz)aw=X1WJdk+6*lCi@!>fC~pcEslo%pqfnw^X^ zah_36@m-2McE0&%Y4Hp|i{|&-kwtpHoP>uPg>x}7H=OQ#mdJbeNZ)7_nvfV_(^rII zCHzxA`aM@UTOrJ}CjL*Bz{V3Bm@AhmeiLz3e$gn~E3AnIt3kl*v_TqqyFbS0-ug6a zR+RKM)#5u_RuMLB_$1F&MVIYA4X>HsrN4Yn4_}{L6H)x(KB}#2;SN&Lb<`LAdYMFf z$X&_v8G*UP81Qq+uDg-_Ir)>M3Exc9O!@lTPpJsp3OYYoe3c82_FH-!EWHn;&n%;~ zGq80(9RaT}ZrMn>gqSa!Fy2dFYja#Tka*t6Txs2E&fg=^oW6@!terk@(-V5bKm)`RD99hTT_-xzmZ8ZqaWl6^g zyf}LFidnlxMryr2v?*Mp#5d4r$F3Oxw7UL+Zmh;$p;Sh&Zr|E0(kU%+-x`0KGt#(j zJymP`#zvm-DskFNg580sJE2Ocg4`$WQ&Uw!da$RQ+dVPHfG+OhSRlBf?j`kvR&b4- zHVS`L<2Q?+n?J6ehcK>qym?#FS&dQ<5NGAidKZ-j!e=a2G4IW9s5APhpRu8wqMGUs z#+_z8zy3SqX%Arhyyi}FBbHf-W>sIF7<2ISHOfliGa8!Au%w`s5D^9u1PZ?qZ)}ux z%RAxnG4(^sy-P_Zy-#1oWV0q%#1u|4yJ)*)Pb*Ds4Tsu++HE5z>`w=gsr?$v@k3>g zANVWqJFwwX@9Zl<9zAj_%X8J`UM*Mh8yI1i;o;m%GiIJA78 z>(hUFvMz(c{HCc6DSo@)@5?K@!Bt26hO=0si-fw|9Z#B9#!{LxMg2O~DcfRUvmq<* zFQ27QA)_LiE=eo@IB^84xS%2PC(+9oIUyWVxS@DD7#U^yKiv+w%q4#x!@GuIs+X?} zJPJr}BA>bt7kEtJKYN}$pBEjJNe<%e9&;4K_27(*Qd*o{zm!5!KNW6`8o3SW^lwfK znzK7#Q_>6ZE}ZDQw9O1f=2KPJ#i4}b*86C|$*7qS`?sjEfZcD#D4hOz`NqDA3LulgXfX;H<_B~1AEQMy zUwIS??_cH6QdbAartN{bcwS>GK)&ewsx7^8z-5XQ5Uv8Wf3DMA8;g29MK3 zOb$DB`b6#G+l9&o6_z5oLV!`WF5*TFPyB$a!l>O6&8Wb@@s5P8YD+WAiTmjqX;UZb zZy(fr4*U0koLf99Mhr_$mTu8$2Z`U5s7`iXItvV5LOi|$o=mU2tiJ^EB)gEW8I1Q> zl5@m=9hW2f3*P=uSsw7CS|0J*(Spwm4j6n^F26m-X#^O+GpdL(?L4{&e#R#RR90&_ zauKZilau6k(!}U;LTyFa0p8|*V7T5AU@^OOLiSMjd9=oFgBTLILpILhc7aGNFbqow zx(pfh4j2i09$%HAp@05Xa_+Q5ze=gxoJW4K(J)qki{ctEH43Vq_1GF81gKq&zSF4D z{o_&3LD)Y0IfU$daMi}Y_V@k4;JxHj>)hrywbUw^ByN|7-b+Qq2N5}p?hchGRYdwhblRV}0O76y~*`(I7a}2`i zI!?j`;$N&=_a;lgoO|6C=%d$aZ+c9r`b&(GF^HP1oir-@ZWF;%mZZzr30%yPQ4KB3 z1GJNwCjD>SXBSGLx?Q~qcAit;M_($dYyT{4o-$>hY+lT#w(tKW9-Q)ih$Q0Tc*)4u zv7M?|u#(D0W=jinD3Ez%SJtvkMBMh z3A5-!eizlH`FR+|o>9RL^BWShAAbvke6>JA8PDree=T5(xY}V#us-o6Ams`u89fb^ zOE)I@UD&%}q;g!p#h~BpRoQ}FNe%c&YvPp^d5^bUoUug1gT9OZADA3TGQy&jFCovC zKmYi=zB>-o0wTOhkvU=))BIyChU9iLdCD=1TOTB4SThT)nL>%!QtpsJWnp4WAPJj%l3E5bVz04x2T!(iTUGR3Dv*a7Rc6%K=|S z^G%`cD(y|r)S&3s15S2~@G>w5xQr9;Q%js(+AFF@1 z3ft&A`%POcOQaOiWfNDGri@lyoWgWVWvUv-W?UrJm?z8L2TtONqV=~8Mz*gc?D12>v5ZR>*A?H6OY>JCUJqHQ>wm%{<(Lh)A}>0j};2QrzjKHj(-^|Bi) zNv?66nKY=jR&S;IP)GCi2fzRy_^XM_u(qV)mO{=vRpXkU8ZfCjm&P<0+nINd@cpCA zCljY@206%~MAkS8Ris3udn6W$Kk#SJ_&OQFLzDP{**rtkog>K=kOt-Cr7-eTyk+4$ zFo^H1FzqM-3Z<;N&sqPj{`62>4a&19;8*BP5OKB24`<+Cv3($FA0&=Gj1zR4O`9Wc z!;-E%5>TczyG~#UFpE~xH^qUS7%f?{3hfcCj{_vN%1bYX*hBOdKh?DV4m<+D_!GL0 z4{SXzPnkR}$(IS*1+Pejz#OVFtr0zzolOgBQhkIAyL z?>;^0i~6dvNJRR`Z7PsH+n|*tG6Io44RKvsV-5_kzVnBo2LGo1QgZ0gvnybbt!B%uc zw~Zcz+_tuYH3Nt^*FY4@%S1feqrHIF-GB$$Udc&0U8|NquVnmhk4;umJ^ndyyevU@ zv*O_l0M#WKIBH{3qar-yxUAFUv4nH%^8o|i765BLBrH)efWiw-vUYzOVD35-Koi~#sykQqsCHDwFrmiQgeP=1d7wo$BiRYj+SuvXkXH^l*#ND_ ze#M#_)-qO1`9B9y&|F+*0p|>$_w9!^lfrdi&Ws4?R0}3_dm1v1FKP;}u>lmd+MC|@ z`0M-wQuRC_+z0mEW-3F9X|mc{%R2S;zk~n&9lj1knVAa|Pw1D`f6nW2aA~tNPd@{h zM`yHXNDZ&Te7kPkW-y}$`@YZ)jxq;EyCxp1^@m+FuL;oZ-g%`B8>$AZuwf!uB!7`q zj2YP1H9^~zQnLKv#ETrUW!{*e1#IX~gbe)Yf}_#M%)ze*u)o9F|6;BG)3+)lUU}4~ zkm%I)O~`SGCBdURYP;~rUZ>VcBDLHlF0ZfzkAuMsU?9AM=HUq75pLj$w2LiUe2!G; zt*&3rq1jOWv0J9O>b~@aOsCv2a;WIj`~REufk=gl1*l39nyzSS;XJlACv;(y0eK$p zDlP?c4B=4YFW&*mim`&h30*_L3I7JUY&z%w>r1gd?bmHRaK~)CBLoNkr~qaO;)Sou z*g{=~-WO~Awx6~TS7`RT8T7A_#6J%e{0D3scx(zG0BCk-KE=Iod(u;G*?Y6prWOD& zjd-weQky^~0Ju{PdBQT9j80(O@uCZkQ?~n)nFZOD*r^~>2@1b7QBNEQT<<#6a!rxz z!A-bI9g0uC8PhNSU7Y_Hqx#?0|N9NB(m?P=63|z7FYGlg1IhEm^5PtFyee_g7R4Z* zqF%W>kmOh{npIc=^qxFMlZwsJz^uAh4ID6)dE_^MJ8_$!KXt4Uh-&o{IJlQqiT>!6 zPB}n)t1BLqZQuiJj7K>VK7#B9t9OXw<(P--L-Ps=OD+dMVt+(m zK-`iKi*wUXf7Q3LYHKAw&DW0;1>iah!FY=<`G+3bc0DT8j{!W>`LI@P(W#QOmJIq{@; z9C-!M*Ws(_|Bv$He;%3t@(_PrZX3U~1gY7wnZ_yqbL2(UWrF~4i2?^E(0bKE@uDvwr*2~=WhPak3Hgwas6zLD zIGF#qMgMfS{@ag|4}pltMXP7672un?odlAv<^BwD-~4IclX)TspjA`2y`TeNo9zMhv0Jg)d-7{37r0*7^+6@i?aAfNJb2a4jPLlDtd0_I z^xd7|X~5E20!E@L5@0}BLb6Y^LVPuEH!cnJ+W&v-y=Pcd*|I;ZhzckoAfPBgBq&j` z2fRXD+Oc1!!jBpQOFpVSdH@X=?9#rA^|*}zDe_X_WD!h# zW`p|f18H->oq~lhlUo7@&3RXwJPP=ias14Sp8>B?dD_`0Q)bq)xn6mZ1eELz>ARgj zASrP&&|W6mJqUbgTMBeZ&z5f!`A^i0@-7hla>!*qf@%N}5zt`HdN~E&r~cIfqEiX3 z0P9qa0c}nSC3_M_OC@AM1Etv&mP4a}*QXn%9a!+|d;^v=B49{eGKvc;0Ak2lSWK9- z7Vysr;h$oaU*x5~L2dbp7|3&x_(_B;FUO>H|1wERrI_?_*7niBYWp)2^3TuT5qT^u zK7=QuICuxk>k1ao#BKXpKThIr{z>D_4_ENvLNDv2b$&v&{dBSJ4seiIE&S4|`9Itu zdIOkDoc<0D{Qp3ruVO7+78)}Tw_p2@I6;2}uwF#zQI=GHfuQ{}*M4Kq|B!yS{c{}Jh`R{)`65T+Xv|Bogy;ub)AmC_Tu|A_S5D}a4ff1?2T@b8ED7v_$V1fbpV zvn2U{M7q*dU`c{rNs%M`HE;bNb1ck!>2ZmM^8ZJqr(*z)h4xk61X`eZ#jigB5O+$B zo_D0~KcO1`DwD$3DFOY*aAK4H#n|8<`K-Z7|Q}mx;)IW*F9~C|Q3~2T#P}YOEGghPL{6FWd)3ZuS5d8aZ8`uNWo_5M^`Sm`!OwO^poy9beVJ?p za66gO6$hPIH!pO9LAf?(!9@Q)A{OED;|1m%RxQPH!V96Xn?EZ{!l#r}I8Qy@Buu3Arx+nER;5h6@N{x$78ALuVJ0rxw7+_(p-P5flQ^6M{ZxZ|e^BT86n8?zRUu+LMSJ$2FYSLAA=J*M_0s2IOgY zS%<;|j$FEQ=7dX=JCqPx*VmNA6B+aUXw31}#;p00&LuP;-?iYV^;+Z+pzQSb{7z+I z6Tn_usKih;QT`MM@z2^tzdiZ%J=Eek0IXY|brokr&qJRLS zA!aFSmI|Y$F%rUbpi;_<91k`2NTNzhwNq9w?-qCn<;lV501}g{bA< zQ{~$|%yZfK@mZ52MYN)lw`a{8I2>viMZlr8vs@cvRb5u_d{gJO;iK=w+FRo_eFwoFC1D_y&n@O$Y@2Cz zHJNe%2w@sSuTct-Cnd?78_pXl+RWKp$iqk#!3YwZY<=ElcNGYR?9r`$5C{()v!DT&d-a`s6=_MmYM4W>QRca&$7PP<( zz|LtV{rV~OA_RCOUmaFNmNa&KxdJ9Qm1M4_z)>=>7wcJZyvNB0ZjSXHg-Cd>kLG;{ z{hD6KN0KE($E;H~G;Qw#p7v>U+2CC`%YV(3G=h6p?eT1NGN}!Vn=ved>kdrhLbbV6C_y zEkx`g)Ha-$YvBx5;+-O!nuSFB=+Pa}BY`rO8~bu7&Pv`&TWc$^(6wFog6`5%s<+gJ zU)!?g6z|C9KE*>5VArd?b8(qOmn-Ic9RTUkjwUh~>8yEq0(;P#iVnBUD#4IN?wN*9b7gWMCt|VJ*p+Z`J1q1123Af*#7N6 zP;u`|3*PxDo}Jb{+e)9Yp9(6RJhm4 zgsAANv{i;mU%tCVR;bS?U!WgFgXO$|M-PnWaRF6-@OOD`eISMHie1Wo{EdO@u*Wqy z-Bss{Ua`I&>VVF+?7Oi-Na#-m*?IpiS^JDQ=a!o zvc*^9wj;MN-;niG0v2>Dn)v;szN=`9xxUuxnX}3FnzPG3%R|RLtgJN21#54M z2^eMG)9q%6M-|tW4Ax(SDl440s*AHo=_iy9Ze1)}13;8O!PeUv0?%H(T270Z{bD9u z@q8=AX#4s{)O)BygPA*L`@*rsCBo%T!z#Vq-pr)zvQgZrC)jmc0jjjl#Qof~yeS`V z0q)c|;XKJi%#)gNx}t4!pnpT1m+YgnO1kASOge=Fh!+93VoFKx`RO-N)LUb>#qWBz zu!U)g(7+pTS_(Vqt}aT_F^}H&29nXJ?w)Hv)>NX{mm%fpVegCrtXWC{bNM@fY2U~g zlTbKeyg*di7*(CTjW>&8bw=98JK zzSr4?T)>6xeiy-r&&poFQL{nAR_loox7j+TvEDc9P-pM+o*tqLv3DuGikr8Rkg626 zQ+(VNSJfM3_mx&T!-<&-Y=zEyOkC59)EjJYfn02Q9|5BySoX8%*w3mku*819`=UVg z8Lg2txw=yigJgI)NlJt=J~iEo$BPvdq*3{=ksrrlU>(0Vpq4L9qxou0>v<~JR1CpK zr*S9>?6={wVg!*gFHYi6i8PtHHkLApH zc(G2}w7{!2YBn@*VfJk)-78di2EUFTwb}=M1K)Z18dUE#BqN+yCVshfhTLb8`r}9T z60e1l92|*lRbGi8qV3aL#E1s(dD+oIO9$23ID>?RPB%8STJaj$*rG26=q0?P`HOQG zO3_16!?cw~zknme1q#$Z-4uXxtK4Ce0x0WzjRJ@*;fB-`O_RM3@I4MfZH$!|yR6cX z5c9^awzj}?CeV22buS%0xM>vXf{)LR6uCNM&@5@E;-5G+a=&8UlTd!Gh%LeLa3Jq4 z7Fo@5edV=*q?W8W+-(ykU6Vd<=FSDc#rDsAe_=N#B;kMdjqV0XXOfMW|KN5iz7xH} zg1I1D;{?p=hj?NRxP%aaUL8mfS!h8Qr6Pp*`1O=a+I)_J@KG@m*UgVA zBxLc3>fgOe#};F^9TFzSLeiuRP|h>3N>4}ZwU;g77tc)^!)9=YU>yy=sI?-vL;rfM ztw?}ngjOOvd1r|p6+>uf2C8z{IpjxfoC!b5W6ic__cG)IEoYe6jQjNO&X8kC8n_$3 z3*pd)7rFSqPUsDF<$auykt_2Q`C%PZlbg{)HZ%bn{orL@&5E2Xko9MUk5r6Ey^m?% z;*18$0Mw@N zo^XuP%IlE5=iK(Tt441hw8abz*v+Qj;X0Fx9%@U~G3={8zq_3@#lNqvg){zMx*a9Oonvdi%0YZ@ z^|cKKta6ZG(}XGC^V zt5%;^mo#})11Ua!RvI?&oPPHC?8BlG7qIqtEEutwmt#;4wK?7D=25U1?=8B8tzF}^ zYEkFuj3*9#5{L&2Bb%twfWTqjWn-%j90R=emcxDB`?pRP6<-Z>koz3$3Y!2s!+d8Q z(@OV|M>zW62Fv|XVJx2csqv%T@M%qYsv-AV#N$Bu(&o2Wu|nSqK|e*PHZhhxP4HP# zh!=et&_&krz)u!=iwqqM*#;Q=78#9sL!GJG6k+?Mw>p=8ed+ygP%+30xHCzl`6JZVZLb9Zt zyXC)R(HFFz6Q|cMY^fxO%J-50{BxfGX{Q>~F0Ptgq9 zCMr@sNI%bgne6fXsIq}$u&2ylH<;Hel`wT0ZJ;q$x#dN(BR|)8>E^z&rteXUb1GA; zei^M#oqvr!)3s9hD6Y-yIzD?v?YdC$%aKj?i#8ILy@GeKKml9@(1IY|dwIEdJbD#$ z3tN7Yh0V2GiqPR(AlYbzybjLhJ{1M#;p5iHiH4qt)3C)Y$4zXP=*aY8)Q z?57(X0fSS4D0RjhJ+ zR2p)R;ge+u#Ch}P%p+5IU1}}csbo#fw8sj!^H)msP4ee`oo`cLQF9tzFWOiv!~FD$ zhFD#7a2xHAA$`U>JhF}wo&zj8i~YQd>Ptgt$y3(D2CoB*n$yJkyaW0das1DM2-Jsz z2om(|^w$kjpOF?-p4%|4vbRe(Zcf%K%a~}ta#X=LX*kQR@!gs&#&HLZOYtO$ZOfKDF13WpYEjAHCt>8n#RO7*?1yG1q1K3mQ0x?>6%mLU69< zGyalJ)T`$nu47~feV)c-pG$GTjGJWneQ|bYDj96LDC->0cgUf>FuXe&Knl{Wt~z{l zJWu83I=r&ddtPV8F{3&2Xk(w{dT~4)v{2`bE=a57RnR3RR+kp$nK(U?k5hEsp00x* ztQ{`(B;G(2!0%yoM{j+@7xPjEvaw?8h#d1Bde@3#4(rW{!=oNV1JJWv=pnZJ;nR#+ zZ#@3Q*N0VoKHpmU5T|J5jRCE=VolRqBuvv>?pNaz!e=RKRWfnn1(VIXc_QAbFG1tGaqsN8Y%~d?nE9Yy&5nWSzZ&;0?vVeN`#nk zIqftGJ85g9SJ8%AFf2fs6nP6&3KFL{iWFt!mWJwAsCc&!z8vol?h_{<=e1!@{`?PHXpd;)3wniWrbfDqDw#!E8uV66w8a5lt27p<%MvQYD> z(YMx^Cx=#t8FSp5HJgyDO$?hFPy`tkIH>w%SVCe;SOpmiwwr5}Mku%a0GBC2R|mDf z92<+>LEHXfI=p6mWCwQ*UfwtDAoBQAUa=S!^>B}b#ah>U9a?*(i6A}d?jZ#y&nY4S z0u=P~J`W?Cnp0N;-{ahkvdY_x)NHsesi%q3= z1iq#W=>rPW09)+{yy6>Ak`;<46;}YmS1p@~OMen}ye`RZ1C(s-kp6zD=-ySOE zK(XuMt(yi3@6$SOL>iHWcv06!aXPm7`ob$D#38(}!MZ&?+E4ntHQ%rw5DnP%1lIXA zKG)MG1NyHS>`ZJ3P9@%?>c~2{rpuuqAutSDl^vvBin^-?(TFk!g+3g`DSgDRNvS$4 zIm3>x(Wa{DBPOnm~W(zc)yOWX1tXto+j+WzOcraT-2joE&_ZN!6+h$ znuDdxY$TYevKrpZq6Zsvsm{#~p3bvKCeT3UCd)Xk4L@VT7y^x_`RnoHB_yD_%hU6m)l^#Z7BPt$?r z3?}nBPn>&PG;=vm91JroqeZY4ng^KCK1={4A?Ekq?5vA00A93SahOzTjVoxYnD#)N zA3Y4M9D7M(bf~Kp-<(*nE}!NEJC%Do>SXz?Em)@Io0MJ_{62odtGDP*m@f|eZbPr!Erh%&*PjA}t&7Cc9L-%P>jB)d;Lu9s{-FSwTC3Wmobs{Jt; zcu=QcGcS$=0rX{({-jPOpuWRlb3FAA+cNqWlzQH3Dd4U>#D?FBOkx%f!#bT%**kbUy3%*f`t)f9h zKpt3dF;=n610nO*_{^dWo1#uns&oVGxNlTlcbQE;Ix?k0LYLlFm3r|!;?-@eUV3n3 zWU!~#7Zb3&dTO>NRdmYV41=!g*o!Wt>LqC(=BwdUWx-pIHwK3xed8AUaW=Qa;XtEG zj=I6~Q+OeUn&7pQai9X`^0=nGZx=c7Gxud<|9E+WWkbe=?`DFGya*? z;*GEm=CteQyo|&(=N%TF0Z64>W&*u;S8PuJJOzZ_zi(ol$G*)CG+fL-OWIrF zYch&qPxmz-i78JB!E_r_FVZzG1L7zBdf=>hmwkEocm@1pi9|>okMc4v$z!LGkl^ZX zcgXn{s8Yzw8YYkJ?#`A6ggB6LVynnbEHqShNrjioGLz488^^8c$304V+?H~BpctlR zmI4(CK>Ce2g@@$V*v%4W}3am|6m(LLM1Nw(fbTQ8@UFJ(n%c@OHX!D*kCWu14$ zi0QyD)Bv0v%3Qh$^zW4)uwiGF@QDFCfje4Tls=i?JhC)3mU8Z+1<`{8JUB16bp?dG z$ei&2O-()B_i$8vXHboNN1479DKf<|x_kHNe{=^@eeJxkM(AlfviG(PP9KX{$y%0W zc>Uz`U%}j?+o``LKk^n-RR4|khO)dOrt)@CgN=17)6jZP9k7wJLeno>v0zchwhxO7 zG@NTQQ!_s!=Pzcfp~u=O!ROtg?`xbmqh^w)F>LVsi^0x-$Oi%n?~P}k02oZmx>|c0 zf>DweCY`(n?uc9*EfM2u(4y*k9t6}JA;8QTYgGhM5RmX#u{DZLuPWQVP`UYri~Um^ zsCaY3+2J<$d*=uYbWE;O=@a0*K2gPy59xLgPml4OLVxiCZ*FQm^v{J{?7j=Zac9|0 zdkfi*vzBMz&?|A#pzMu$&laTt_EesoBSHk^rY0;rThPR|ewqFZ&iFGyhM|tW2t~nbD9;{j?|zFt1X2k2bn!6Z6=Tw=*Ju zldKrpQF{eZx=uqhO&%vgA20zoj(D2ry(k_z@1qUS;Mj-sH8_J4|5WSaINR~P7>P(# zsP>4*!Ajx;1#ukAdVsOw0=mksvhHJglzg(1ckX5{TQ@xwLa71O2Pq2i)xV4dP6S2l z5fub)u=J2s9VtqmsAhML&( zLK<;3h{UG>g>7E)en;wiDxrrli(oHiE)hV@wM}|%CkX8H@rcwjFbjJ2K2=pR$@G~b zZ2~O-q}$-}>ql@$Qg8Qw`R>rhvbydPd%8~37U<+u>n-S;Z*Kz0Etj=nPxBU^1nhG! zeI~^;m*)h9^AALfV(87gdg7WXNxrKVhs51K30(ydSivYoL32&<*G?Vo^X2O(%jY0|6w zmMOx8j4uu^e5{3P_ep?8tXd+W;-A5Ya-2Qzbm>T{=PVJzH(l7o`RoKciQ`m0iN{ml zjvqOL_C?j8Pl_%oYJAThCUJV!Z;n*~as*&cM}2K+xRJ7kLzRkss-yY>ef6oDK4<5O zcw?_g##O(K1(CZ?l6##{uYyijE zQSW#)thP9i@gBmpNE?!|D8m z`L^JX%=|&YFrmlSBO~74!=iah?!od(wNd}>cYoZPqF~U}2)q>L%mmWY1I~R7d1^=^ z!bmA9jz!~yMNRE@cTjB2Gxec)yfp1&Z?njm(~XF#<5bTro*BM1#xwV#Ne>iS{kl#a z9g^pz>!rjjb1s~m9zUdUwhi07hf*XvZbdbeV-y~x_|`w;ygH0WLanLOe8b6wck=Gdlx+#~ zurIBit5Y$hhDI4G_m%N17DsQUo;IziAPh+7(&6#EpDS;#!IjzA_7{uV>I?R&p3yT` zY;78BpXUTx$&j!&4axUay{Q6Z9C2J$2+ask_+9ftK3()*q}B zSr!lLq&eo_-uTiy(|y50^0DNo7TrOyH@gffz>KZPSeqd~(bo4m=0>5xoxWUT5RG}n zbHZ;UkjFED9EzHBZe4E>VPLEd#?#?Ae!6_1{ z@@lcGm?TkHx{8Q;INf3qHipUQdAMdY&dTt`Q0?9rr5VmYs-|V_Ionq=qgTB7Qr+eAP!;N9P#^&X`&A9x zUdtD(y!mz3T#_EC>fRsM$)1@fv}N+a0(s@wh_sHgmg9xDcu!|0M`*39l|7O?O=6$w zxNLD7?ThlvuK4WrM6MN>^7ghJ)z{zgsMkj!yIOUQU7BO-91vnNFOQjxGSZ?BKI)E_ ztiQ1sE0?OgGp7mF5^Jc`cZ}voBiXc!=r@Y0K=l?hW4Sw&42Ah=x1h8hE$#R18Oiyq z4b7|OY6td&2#3AUnKO$a-;=Uz!?E^fo*0Z<(!bl1>n+_%(pL$nhqVpmY&k>!|r*6brng zQpl#{oCgG2Doz`(L+uy(!ZN-EKrdPm`2}1fLP;ZXWt}!DmAw)HwPhD2!huKOvATqV zqcSxrbO-r^4G^*|eOYc#Kv+K&IrK7(78FP(kuC zaxOBs4HGD*l2ugs;IK44^t~iMH%!P)$+rqU`f#BRPw-QUbPe=*aG+dGn^Tk)NitKH zkDfA(+x-U*9xDoZG8S+4dmWBG4w+1jeS+zYD&oeTp_j(@ z&ZQhpJ0i13&&uIYMK znaN&*C2Y=n)C?|Lf#6_%^WpL^F&sUL;izYJA}Ot%*OAkcZRruHqUOEEq8lGS?jpS#Ep}V9t}AT zHO0!VT3bTXC~Sqb%!vw1tb=%I?}gf-!1wBAg`gqBnR(YV>g{fHGfs6YU6!U;e0Tvi z$&D_{Hry}zq+bg_eCrD$>Xf@rR35)#&>~I>j?vCjX}0&UevkdV%8K*`dYP%M9bu;M zFtlw;fXK)jTJBzsU94}1d`|ckT_n@5dM#^S$~o>>P{&x!ZDgkqdi^@GtBSUfZ}aOp zq~C2Y`E!<6pOz^4MlD z4SY3WQ2oQD`8+oB{q5N>Q>!V!0I)@{M`{NI6{L7aU-48Y& z%yNjUoR_USeYWD_c^BTEVr zsw{-~eOrhYSlVs8I+&-T3Z+-Jy55gYNFX43@C=N&F-$66T;ZCQrxYK@l9I_MZMXB; zPTn~nIwnTi11b37JyvCYf;zmI^=SRckHg&^Qj?K>C|x;nGA*#TrUf(ncoV^rZJJGh zPtNS;M?lt@fGB)DIxY~RK=bG{IhDwpfL)y>HEg(#sh~X>ts&?Hb)pi>_zI2kE`#u1yOJ=O-VUw~A zHdFV@>-6YPfYx)l`aDid#zKDt~ zYJtt*Z=Q1b4pPPRwf*-GZLK9m|Mrc4MbFObtNsvuul;!5pR$yHa5?&;0UDED#g*Xy z)pP&u8VfO{#oBl7@VuWA<3Bn&^3R0(%bz(vc=&gW{i|31-!T6$bAM$#{$HC-A(m7= z6{&v`_s03_Z0zg;K4Efq|4u+GIxuEuXPMmHSnG5&wUF}r8N5-M?w8{${4x?PED_(xVi#R2{>R1Gi^{-Vg<%`E^#uR3^u z;#Y69ptsX1SY9G&k`9=nO%KuZ%zcGyee^m1aTxPW6(ir%8 zU@t5Yb+m#}COU&Y`<>Bx&$I~ct+0HW6=Cx-G=IQNB}v7LISR5?$fsA*)}~dgEmgfl z;UEmOFXI#*tMR$_liMa0-yC2i`dQUs!M8X_Up=R2h%KD)iS!3Q%%-L*Xu1u?2%!Gr zX^Tz9DMA%4AU{$5q<_Rv^#(wqHa4SHz1Z~GifaeM)1pD&wykRfX%SQxNvI&*7sg+c z`Dqlqyz-rlrO2*xf%_t2K#|b0*dn>eGKB}aZTN|mHI+S;?#^FHf6{6S%igspPq&ChBuWF_-+7L6Cr^xs;mmBL-Ugj-C{a<_2FibR&<;^MkI)1aSPps0mO`X$wYjd&GYKq+5e9Nk8EAmM) zlIu9|hJi0@jBsY=1ov_F!$pt!dho*0xD;onCN5c4dAaVAcbw+@bAW78x=xXw6&B33 zXZ=6YEv3~V8y>3zw0H@;MJ$UcBw2cLik3od(epObmmvu*as2)wFM|mw5k58E*{0@) z+j#l*-2-AZotdu5Pj3;^cD`c|gpb7q{DKjBQ;A(}x$<^ssg8kW{3a={TuPr}63Qi| zZx$0EKAqNYvxd#|yz*fovqmx>^2=itgeIv>o%PaF?49F^%{jWCl(tL5-cN-|sya|! zTdsO^u@j?1xyJ>KI%9fBox3eushbu;^+vdh@MLAb;+3{KGohq22~>5W|L9=7E35mX zYfoVb!C3DMaA*MbC6MB*#bG_U_04$~wr&t4bTT#q8}N zK8B*TnW8gbnl=H`Wt(UT#a)!>9Azz!q2wOS$V%Q>eLVxK`=I#pQ^ms}ll5M-!i5oNI(isNztxb5BDC6kv=XQr z5;)0J7X#}OYzzDik)E+h8ak|Beuby$wc@D>3tlr1p7`_M%*XZyo z#CXQQQn~GmtS~hbAW8yXJ2N@@KEKhX+XMI6>Eq^ep}1Q|hxoX!Z`@x8ia+=e8j%@V z1`dtslYV||I;*H-`o^BuT}Eht@?cM`#&l}Q=@~O~4EYpq`-do$^!C_JXHIG8A6MYN z6C>eFY>uZEiIuD(ogpElU^Zv6r!4lkz_Ochx$Nc>jlC9qGr=J|et#1_vnaJ7ZP~Cgw?Jwft&iL_F;bx>l{I%C7JcXHgJ3OK5b{9%psU z&p?B04;SYkZrtIi#hO(;tckrG)qrM zC@1I#x8P&VRIf#nbfMD);#w|HHkE5&`uS%DTc>Q z<40!MMiGQzTOd4Rt87(-!-2Pp!e{=YK^C(O0-nYA7da}jh6o51>Q*2;>KCqQf;toNltnP1TS?m6 zc*k7@6fIq%gk~ebu(+N_mh^QlG5tqi39&5F6?FGxL7P5OtEj=LR%L9&eo`L6R)|vy zq%pF9^qw?_TVd1GMUNghbT`a?xbMAjj85CW`%i}f!eW@ZLL^nOPh#U@MoZ0yoETV~ zw-1xd)IJ7Z!PvUn-xdi9xs4Zj)O2+#-XEQ)t*j!Jjl?=Jy2hvTSVdq3lpof57#7V} z#HXEFb)j0&nYRV+&n6#=J53wmcw>pk5dt^K3B2%~m1Izw=zIH|;=EzrG&fH!UyZB6 zKyhCag(%|b^icKuVEI6+ma}}2yT@^r?_eU zPM^~x9}3N*^%&=Q0tKy+Hk=!kg?uX58tjMOcy^c_9=ttLH%9~_7ZKVvbj#h0;I|P%nK)kE7n>+I~!nZREPi1J>LS zBDN7i{{W1IL@i@zUy!;y`V191`r^$0r_G@8Ex-&;j71soUwTP;7_f-68Zk)qIsZPE z2N;ESPg6(_P4GJZ^=OXeNS~q{jUw(lefMb#20JbHN4VMgcCB^{PDx)_<<)IpLMOjZ zkaP1(dR-Lmt&Yu(NqcW3MYSE5H@JE^c4tkGLIg$YA8$7I!Gn91uVwQtS99UoS|MTv zzqo&`E>gGQl+a&%L|D5y_^d^Zq@XiD(74PIuhakC2WHgmhj*FuGWF7Y_o979d89kE znEOnBe&xm`+5xRxNxl@&a!kKeh$sZMFl@a(uvdf;-BZ!~*gi!rrWbcF+x@Ioy^r6) zy3pxku3Mp}*m6X4B#m}nx$pMV0(uMQdCSFtye0c%q}wT!@3_lOMXLfPPoY>WGWLit zm64Ir-d)>C)f04aUbxm=&aCJ(_5kpH)4a>{%eB|!HRSB_h1dF_t(Dr()N~Z4n@CY3 zhlW+s@iwv(w%0wvh4z$oMn_)IC45=g6LRSyp4Ww&-AXrm)Ly)v_s`hHj-B7fkGIF` zJS(H4zn))=k_&o6f_|IuvFm4NXVkQ`l2lKgY@*x(e!G4d=uXr8fTicz8b*|F-e-De z>6x`*_}Mj&RR{B~g+0a;Z;*C)E(_OVIcVv4Gr#Dxo;<~};Cz;d`q+WD3XzHdnOyv< z<*XP!!0ojXn5!4uFH@@@J|qX6fV`D5_S44MYIPp+AKN;nY4c%M2u&&y^G>wVVu4g} zU;SwT(LybtU{p*P6{rBc!3DZhwG{? zeVGhCSf!u_rykW(pQlj`H|HVLt58p;5^Y|)r#dG2X9UN>;lMJ^vb8=-&9u8#DZJQb z$N&E28*;WlYquLMlff5m%)|^Mg%9B* zuFcOK+8=VNbrg2Bbak$2z*GvtQZ4C|)?^X&=+jG=WnrC0X939Q4UVgJ@gJ9ec1{Q; zf{YNp8g#hhnF>`b#Qx#&%5$@M#uQZ~_kg`HNlwVeutG(4vbql^Va>aC9oa#E7;z^9 z(wKH4{$5pXDiy}V$HJ~ExUf)cmTl=i9&5MZrOB!8@CZxq?>u;a!b&WvFzV~;M+pVI zPJ}|4j%mx-{yUP<&K0i8D@teiQ;_M_AY67`-uqer4P|NOf{k=^kK(kgKg5%<&LyQr zrXguN=7%6Udzpy4b1jK^*GEkqP$m6mc7qG`r5u3MoA_pKowoa=vOzBYkazHCQ9In& zm0zSFaA|?)gWysft7w5Tz6e|MTLsQH$gg=Tr>F@5XS~E#r!SDN?kK?loJ3fDcGy0w z4vv#Q;o(&9q762aB1FQ1UT()!;ge`0(?9% zBZF-CrcIw73A=pmMtcOPB`g8!m@aO!;GaWbKXvBx$12{+1LZNkcQpn7+jrG}D$J?E zQfn#q;CEs4v%*YdvdD+C$jQ6#;8LUo-&H#Ag}#;3!zlrDGf_4jk0Cc&xLW(+$9ygwR{Tt#1BgCd8o(uibl3Rlas;p&ZJy}da;hQcl2doAM;6-2x| zn!OKGAkA%&WWaEnv#eDHobTIu7+elHoC0FAy%T*k|2$+nvahEuuP84x@Z+I=!7_kI zj5s@2889rITWl?krl1yQSk9<@If*pMn)CUh@Y+?1nJYw_=oGf-ygenqJ_<_tqXb?e zmlo~O>Ce)x{h9s0@z*X+xa@{}0psA=4a=2ABLc@>8mh&`NaW%qz22A~a5qQgn;STs zStpZ-E>rYU-QEI&EcBVv$J?=65E;w0=||&HshJlOrP>#Q$_~xh^Ah2FuqenuRQ7I- z$vn(^uaRA-{k@1@mM8rA`s88K;Nr>?k6?9#ZdEJK+Xj{=ibtD$acy#U)vm>$yLB@% zC%ViCt@Wbf&8`#9dq{O^<=l3uO+NIo)1_O-OXU#fK~dZ?$;GZ*N=#pfH<~h8d#kUW z_Wq8a!w?bS;&^3jSB^n(<+q6HY1mbtQYOm=Y9Qus8Ug}rs(C4wVh3E;jd;`uuQVbF z)U)0tk+g7YpJ3jgs3G30h6Epiu|CDEP;wMXM*bu-$R+0F?Y*j_-cvRw;c{m@96aK# zBfXm@-`7l5$#j&-MtPgQv#cGj=j+ABs6#^mZ@b*P%3)hxMeo36I@|Y(+x#M7;hT+Z zkjetmQ!uW+6-eMGQ`4Ats2l6O#%Pz@qH@Bg~Je}nLcG^cur z0Yz?~xX#aCMI=+NZ`F%95HRE)xWC680w6?n#`Mnvp0>P_#OJkYK;K_uwd_d{Mmn;z zLVpSWh?H1h98*S5U`an9@HoDI{^qUG&dX}1)`600=Q}a0ZFmt6=x`(3^v}k*lF>Og zUbcm=F>iarB)PWR??T%xK_W}`yV`zEfP?;hMs>1q(!*(;QX`dHd-~L=f=FG@`rD_8 zKs=`+A6^GL68Ezr!k)}24Qc;8n|w97iq&|ur&NaoBr!iwOCWnODHt-*DJP+U`%N8Q zK9>i5;KQKAcTpo=;8Acx_AvWc=34E=SD#W7GZIZTbMUh2c^;9T>5PQJTh?N(I?T-}FYDEf{#6VJbrm=nLLn z$#reb+`?9}UTvJ~OA6w=ND2&*p}4dJenQu47d>T+XTB_OEMFLmGF30p{|NQ=ZWa3n zPd=TTxP=(4^naeSJuj_4&zAU~75|4k2GVo?`}gmW5lYI|7Qhi%(;VJQKTnjen@^UaR;*f zDY8}+ISwl16O{)8c<@YC<(#YIzEi#1e@{LSxsTf52GtfBwcy0;L zPAVUHW9eSCKnIRmP@MksF*{_FaQ^3!s^5n6#`F566VS!j+ZhdJ;WvYhRqCZz2RK`9~$d z;wWzHJmGZM#C7c$>Z^O4kf7D$X;@I;m+7BBFMeC`kcP6+pxSARx;Y3pk{yyp`6LLh$lk2D?(ox)JsI8kG3EmStK1=< zw$P6s<+RGUlpzYKKfWd%{}ti?xYpl-fs2!fl#<}yJ+LAdZ0vy-ySqG+_!puvwPPEX z4SZO*(P$rO*%=K}BcLr*>^8{-m7*Xz`1XTI19IO5<^&ESxfq}7Cq=f3IcQSV(9q4L zaz*a?^P`*Y%jiCn5eg8ErA9F3_3JX)ue@S>HvUGd{UC$@n>fB+DDCdzMeNOGK$47b zpWMW|uimV@&9ADj&z!_<`~R``p7C&|ZP@t6h6F*HSV9mjQ4_t37D13GqZ84M7QKy< z1W6=%38FLV=)EQ++GxROgCTkuqYY*T^S|@#Zg%&5cAxioKK;ME-{!~7T-SA<*Lj}D zakkj%(NRf0mJ-GH`|Fd&3JQuF9yii1ZJ#~E%zSC@t5})a&R42GbmSQl{EX6db1msP zn>(auFS<4bgRYzq&@{atwAxA#CS#?@TU=>g6(-*OUv|6OoXgw>II0E`apt_$MeoT- zYvWQ~>a`{BE9pi1myL&!)quwSv4bTkv+VwOcvZ;8#?uG3G* z*QLrQ%aEgV0ZU7CRvlqjY-``EOKdhM|f~XSq2aad+^#9M<6s=QkeXX zc`p{+%tUEauX)pc-`G$J>6wVkP5iZ6ny40!n?}x!@P=R*uCS{-z zFT=t{eH}Ib(`heXvfIvhe?KEI%ZktZCJ=N=vF!{p{$@d$jS+0WKy{&L z>ALi-(kV;E|FHHmgBR^wheic>O&ZN1sg6O%rEhG_#X1@r2O2?BG&c|z^c`l^t!$Yn zHV!r?)$hM!(AgmGOBK^sQ&)$b`uaBP9`6mlFJGg2sR8B#`sh)dJy(}xve(ex(=V#$ zcs`|Z&&<{7x3?_L{^zqdA_aAp#So7VYq;TZ;Le`izAJ}%g-VT{NKJ{2X0TF_*ZMEF znSthoZ*NHC_TnT<$#j^IBKrM;LAW6;QFiB;(1^fVYM5c_>ckhn%bh_PK_jgK+}sKS z84@$C==J_@9B?ai z`*-Mv+O(Fo#%jZSxUrkT%e3})T#XlH6wCUcr??UpWL+1Hz3kcL@ z2)TWJBH{MU;I_2Sqd?=Ga9*5!!{$trdDw->IQskycBXfh8hjS$`>F;>b}$Kh?>E&u z_LgHarr+?`#5m3OjuN`EZBYM`Lq$wPpr&w1Kwtdp%a`3&+v?Vjk-c(@;mkoIdwtQD zI?naj9=m=~;N7Wg#_<>@t<=Owi#3QLHu%Sd>h zW(@XLknzKXzEn%1EKAr{?LsU#4$4_?B=+xaR%sbuVUi2X{@|a!$Lu#+{T%7sGO2sv zw%7V)M#hH|qpF|%MW2%xk1s4lyrJ%0=A#W-r5kt2#J%`3RuhQ9SqbX=DilUh!GU$N z)xIxk<^mxE^?Ub_V^uy?!;94q^RZqL)ZSAzz`Bj1KHA%wIftGw>IZy#rUL&!W9Biv zv@a_pq`p8R@IX)Mi7C9P^aii*{wJxTm$z$(Zy+(tFd5LA|3wK=v?t z#Hi-Qfj=?ldofVbGO^0VTe9n!Vh5B)#??4s&va%X9^KX>x8-kQCN^)-1x;{i!+m3d zYm|vNbuNJtOuA$tg#GwK)Tv8N$TS`=Y1T0^+tt-&tivGbQGoU5kd>897gb*V!Tyfk z$_&D(21RkOvVK|@1IjWP2=0GL<&@UX)BvPW-1*f$VLalpI|9XSbtJw+Y5$?FU0t!I_~=ozl8Se27#t3-;!cIKbBT>@zkP8p?!28V8*j-A5ih*i zc+it^b~>9!XD>c^lLr317r?J#n8|Pk>3#Vma(GGsiij=;(vFR?f={ztkBe$Fd1%gW zC#f*Ej@X+oz1!Zt8$$wtuwbD8jX+}*J0wXXc*MEb?XjJCRLd8 zx9qy;jn&=^tdTxmbr%VHh&|Rwt?R+joz(Q&Do5!#*G(VX11PtH9)VlcokMEH3`Yp= z(gb88Olonrn7HNE{|;@8n{xc8d~2BL$FhnuHzQ?L_m$nFg4=?EO}uBQcBkD39~c=G zO|(O+Y*8$xO%0_tzojR;>7D&RD(U$)adY!$x4C=JvjD61>ea0kYDd=ZJjizktDn6b zXsERz_4*ps2M66G9M?`=HZiIl2|wTkt9dpvLSu#R7EKxSGZ z-R=1F9MMwmVoiU(O4Kj(LJkF1R#s}?I$^OXwd0bxdde=%TY|=78@3=&WS=Ol(cbQE z+QCN7H%dy%w9c7Y8PzR8Jsoq%&g1;n1hI6;4vc$2Z)>6c1-D-GdP556gsX;9KK9uG`q(W>bb^f={X&ja+6^@^N&;H%S6fVH@y-)aaIr+S#JH= z1R#&4Ri7Z%J@ueMc2C;43A2I;;#x8bl^v~Sz9%Q#D~(gnwj}a<(wTTl#`EaX7DhR4 z-5LsfNC+T$qB}hpawD(j<>giS^^*|{1A%Obk@l#ie*N@lQg`#D{*A?NMC4 z@Ikqo3Cu2mhbLMSFA5}Ih228=EIpe{Jc@HPYf?J(9ppQx!1jl`%O+(cmAX#p`&ue~ zyG9@M`PPOX`3|akm{~SqQr}#+Ar&GeF8<*35Ff-oDcvZ`dTLy_S;VBz#b}h{3})G{ zZ8NnDec{rw8@RKotn$Cs4ar@z9jdil4 zAu&h9Yl+|Cu#DhRGw9yA#s%7Xy4)~pZ?1DBX&U^`RTr#wQwnltUuqbyzH^#~Q_w_3 zuWF{j^c+62NmwTpZfZ}r>-X>e20%YvIlC_v9(Y(D`VcGiI#4X@`#XUdvIq$k_wIHm zC>CuNqa(MeEo#=+F&Hj1@|#?;i*mO9%| zz}!WAf*oSqZDf9;Fz#XW-t9HUnXhC0_`3)Z)p5RwetPBztx_s#1pbP^zuQa6Oo zARg_}Q&3XINIAC*7_}|zOiVa~lnq)iGnS3rE#5PWJ`;Xz?kicoq6sbu5taXBwC$Ei z0$~9se15pv@-_EC88&qx~tv4~G;=%AS|a&E>A_PB_U_ z9()XWxHiOUqA(S%_T)+Q5e}zUNWIWfY`y#&qM74ALj|?7E68LqcXO+PVVET8bRP5< zS*dl8ntF$A+zbxpBEP^aS>EeW9cu$Y&dEQ+${=7X_M{_^*}{9v;6ZhR3nRX$SFP3d zHA8Hjk+g;ePanqy2M^T^jsXE6_`>2B30A`KcQi>f&Db9;f|HtZ0WFeN1qpi&jz z^SVnb(f<^eJ91k>!dDY1;#9Elc_+vE6CGtSdMw|YW^Jsd3I}H?Jdg!yrw$G^mcVU4 zx%@o?0$?{@AQzeM_{F`6>QL0&wMJNjCX;^J_(iR)^+cK36e(NZa%7Bnn0h*8a^^Sx(x^2U#E-yS!!s$ifmgk$PqyT{ ztCvvzpjQAJKsQvBbh6+ll~(SJ3d9WtnY&LNCh_n`XI$&AXlo^`&u}9|v3C#g1|BX> z47sKU3;AOUYfOr@3FB2#5_QqglRH1jWvz&VBH^H;K zyxe{4o6(D->yvaemt>jKJVWIV+@wmgtq)p~1Iue;j3vZd6h=XnGuYw4)C=CMelN*=5LD+0IzbQg~`nIbbZGQM^0d zXl;Y*C1to^FoiD8EqfOEzK7_Mk;bSK{6S?AqSTk``1TK6#yuv| z0y`s>J6dR2tL`C5Ek4=6(5rNG<2dPmhrJz0gE}Sjdx$gGay|6! zlgBZ3qyq^%;Kh=?(nPV@)9x_@zEF>g=!rq49U#1Nb}dIJX>P=$K*x`fBe1|vpF%WG zL<%ImXU8=OV=fb$)o2IH9$>g`a1qE>X1+dWG4Xm?teBaviD;Se%@+SJl4+HLx`7C& zp8C0c%!0?}?78&IR5_BhB_)iw-Hk7iP1AT;HZ~ovt!cFIInxb5pR&_^@NfK=A_g*M zq?o+B!s_si9dE$@l=Dw@DKpz%abJ3M+CE<+DKnEr_2Kjry@LXK2LS78KYH{;X4!GP zlznXmiKCHrkWBhNBkcgG;CD6v0$EyGxsj-W6PB>h}=_@x1H@2EwDTAZbH9pgW3 zSyat0q^F`KzGY{4sm*8>Labuw8X8*aqqI%E=M?iW0|+d6cJ^EzFRPZ=+kMD$(bJ$iTz(l)f7nwqLp?7sT)-}pk9&OPSj)7`zO?#=5Mz}YQoi^|OESfBb* zH4sZVD3{aN5k4blql@6GUtC&(i%|wu56J8s^@KB7t}l`gmpU1LbttF>fk2$!4TaxY zYkB#_jc41n3z2dny8bg7-s*vYAvOL0@{edO0$X-nNIHGif)0<8T7J-Q9Gkq0HxB1+ zSvQeQCBDN}dJDUp5{^?V?MFm?_Yho4Jo$~qqyT>ffNDcpu#N~@U#u-GZC zo6bG`{Z&kE8(J>=o;<(M{ZmcRI_uo*?s@F{JNbX*M}NJL0I#~1pT@$I#2>ArnPOB- zsiJ(po8Us!PbUoi3?l6_N?XhxdH=P;YK&CKgt73X6!03{#+k$s`=js;HwSuL0=jx#dGYdOCubyg}Z$`an&8&k6( zYQ#Dc9eofPK8>Hf4w<3o{PGW3=^>KetBKftnfdqMhm74C%5&$!ZKtg)!t^uZ0UqPl z_q!VUKqS5ZAuaLQWki0-kB~N>t~UG``jcF}-7d=SBOv@hZ))Fc`}K4y@adfFy-7_oNaQBrETK{ zJj=&=okMSmqK-Gba9a`HR=bZ?9@yEv(#aV3%Jdy8Fx2_F?NRB!$;c=hdFJhS;l@=i z^=pCbMt7?xU@XX{v_8C(xm)T|GG~0lHW>35C@h}Vqb9J+Hi}B!xUyu$^b?`S45#Pyy zl(E&XIWqQseWZUrmUWgn{qR|Mx09!}ks6{}hG%ueLe|0V=*)FzI(K|5l3s!xl0Pfnq~ZN+G)c6oC2Lf7+}S zoLP7{BV_aT-;e$86y6^{6OI51+iWbBZ~j+%``4kNZU*|uWjemMsn9G^jh396F||%e(KXLs{wB)yZ%6y*BWuZoQtMBh+ zE;E!u>HhsU|F~OVQw4VGTT&mffB*OYV0gYu0S!=dx}GH#X8(h;`fpEk>w61`|M#8$ z?`;2nlA-OrA>X@vz%BlG`4+e2EyGE}*o-8e&~ub|xw)g80xIWzR~mNZ-*0p^7^(UE zIa1xg?)}-b)lS>*FZ@aA|ATd@76$Y(A3Cz~##y6R!DJ6d4xy@`v5;$(Hxs{S{C&4J z>70+WwQn|XG{k~W71aIwie83#Mr$(Vkbm%-diPZJ|8|+?K)^RRFRgq#&oZaRBIMqd zyQwM~&dr_VwR(}C6|Kl|=gx!b-S<&ZQN<$@KQiw}jWU~?r*+i?VxB(_=;`TC{P~<9 ztZgnfA%VlR$s=xi`;}3YvdTXwxIY9olY+y2A_VRJ&ByhFmq;QS&Vr{?za?z=7g;Wop0afi-~-kChbe!_dSyQ zA9eS|KY2Wvq9jH=y3EGKF!hzv%a<576>myx{N7@JM#u2PmQ-WK!i+^3-$Lpl~0*$NQ zmz;p)gSMQZ|I4ZY+djs7PkCf4;LuQtM)h5{M!oS6yjm6g;6scDj4wdmy^btymv!oOl%3VJ$qGi3a~I!pJ8ud!H7 z6}iYo{OSc{DwD68fB1?K{T|HuAq3lIK)Ve;OpE36`RZRnN`S;HKBN9o6sqk@Nkr&x zX9{$oS_MLA&e?hz*e12E0?pZ`Uu+_OdkeUOX$!C*O(AnRQ6)tabY zWc=w0_!QnNrc6mpOng&TRyKm}?Hx!2C@XRr%v^QGJ3M84Qj)r%VM7Jf&iRDacrY2~ z+c5T2aVoqvUAap8w?%LJoBX z?OiV2k~Xl@5V>=w+Zfs>{hK|`q&+{;nmW;1T>YG*O6m8l+&crS-dY*wZF{#7Qf#aC zyPTj&YPr#~t<=kZs&l&srn5^#W%2S#-||Ksc3Z%HCOOWtjWUoRPSX#UxnMdD%GAS; z^uX)_0&Tswe&LDbq()`h96GRd6q|2_o~in zfYaNva+H<7RNC)>a4Rpgy6H!>602+;N_mvOo_%*+N;^=DRo6-7?e!TYeG3Di*2OUM zTgC0;5Y>LQ-}9P6mTBjjRQLScMSeS<0<(K>TXvO$1td)@tNu)IQtKk2E$N!A;@EMh6kN(9qDa6di4C zAcJQ@j}Dx%(8x`&Lrg#rC7%$%lH=9YEtNv{b&GUY>({jxWV^6qRwZ4I{CRn_hcmU1 z`V0|?^}AT$qLw~OMf1RHawjJ;evI`X5^b|@E;ZhmnR z|KePP5>HxZS6OX1$H~btd#%dbKJk;Q^miR!wYWIV1~hG-!=aj(jZFvN2fq0LS+3^J zx4zLGOCx)%3-G$P@Mgvj9{8^zgg{U&DOIw43>e+CavG#QTxzv(QbIWZTGN5krKcdPcJyP7NOo#~^( z#h5bq0tX+YOvklWr|XskTwH@u4&*@{4#q(4=(pmWD-cfm1r`8vG+r;gG_R5oL-jhf z#8R^Ciq?DXDwiXKl4CB#%V@NQ*c?)DN+11=9m5_!f&^>wy5uZRJwDg{4Q>?punIY=ql-jv$QXC zEABmNwD`Enz(&T_x%$fvF>pXU$$e{!2|3;Q4U2u&kUw}RJ;*fs40X7d)@BgNEXV3( zB$jmMaAs{f)c${a-GbG@Quaw?{GNm9=d}df7SBhMkdnykNws_TaAgGAlQPRt_A9*w zeVDFQ41*jc1J0Q?9)(b;w9!a^3R6!C?bf&Kf&lrBdD^R6Ifj!EQ2%*w?x3Y z@2cMM520Hbh0K=wj8~1yvJhG-?_z{(2MnAKdaG#Hc7L_B zMzx-}>6F!fG8yl*fqE9(q-U1ec1ABuvBU@krT(x#qpeo4?uPexF`8=ocF|D<<9`q-nP&!LjM zggTVg?veg2^8uZ^dz+J0yF0H0loTVUgfk}_t#x=_HF_Gq?>n|FUA>5|TH%d;s!R#@ z9QUfJB?ttqx^A$k1UZo!V#Sww6B9Y#t*e(#Hz*A@c&w>`(?IQ`W0k&^xM%HGN1`al z@IRlU`9dx@AcDAy9;<+W{f9B`U*0U`-p6u}4Pp8Ec4}xE+*fLgiusLO)ee-m>YnH3 zv@vpZ$oaq*mZawrVMyhl6HhQ(Y_vS_Rop3>@Ar#0Ur&I6Gm`?cT?Rf#zUJp<38n5R|*^VAIyW+GQh5OyK~ z>yCTZcn@?noW`nS8agLf9HN}llz5PxAkCIe=?IaQXCol^y{H(JZW2tlqIt#DuLbp< zyN02h>iqfW>t!39A`j2&zo-&AO?LuP1JWT_>>+0+q25+*<#SAq%2NJoIrX$DkzDx} zNs!(QuVJZ43&QsT^nb(E4=^P99CniEL;6@5!jg`8z3XG@lt;@&2=G!t;ngBO@L0)k z-Jr$|l&VhP-phv@2pET!^g*!1eJ^ke^+~CGPu(m|uK4*<4ftU8Z{gX?JELmbZgt6GLvw{FL~!`YE83Zr`Pk_41z6PJ}k*|^1OlZS(CzXNIC5|2KzICj4|h$zpaR47HqeU<%i+BX$=iuuvc zsWepeNZtOoRL$$VqLFH85lOstVm0Y$dQ!%9&ev8LOs-4W2*MV# zvWkYn$n_cLb;L-O-IrdGbo&)0S69{VeUH;3-v4md|0@TDWrW;>pT{pjz?A3tH8I); z@YLumvNIw|_H{WbQ9bjkY-5i0LT8)E{>xhAz9{c(W$`5`Y)r~K>o*|ZSuLTJh3u{D54e0!S2|0$0_7;ms zk$%igWeQ(Wja7*>gqdfCH4jLYP|F8fuVrA(&Il!xOY#u1n&1qaS1a995}w+oV_w{vYC8P%Ccej>FjR^kbEm1FC|oce0k7y z`#_dKygvbswkuQbuG+$s*%P@m(>aagN1N=UMQ>{qx0GIZ4Pz++)Tx~xexKg3(J{}n ze!9U;)xGP^;q1zLJe;}mn|9um8ZBI%*yM6Jt8~CDzG`@_)-r#Ut@YY`K80fdp`7|Z z8?caS7T5jN#}Xd5)HKs%IRKR(!zkhQp!7pSNxKYgZ$*pJG?(U2z>p>S%-Qceq}^ea(B#9GG&`>x&ju{#co@dT-)wK4ACpFyjuZrJ{*B=wTqy+N|RPDl)^4 z>88u9bT+MNv2G#z%0OD23^Zl6a*0({vbk!in9L>Wy?Fpo*lruRCIe-nw{8OIr3`HAShnJDHD^rz4vYR=5?4u>Sk{mOq3fmo9|TCbzxcxb}gM zPd%etV7p5l*1fgT8m^WA4D-EqywfDa^Vi!Les4NA-O}19dDLQ@GR1WsxMW?0Uh|f?yd&v(^B#*3;y-V4f$cLVk{```WFzuHEwAZ1Q_Y-Xvemt;g4E4A@*#M5B zPl1#H(^QtpZ5oSTBBxUXBYEB%s5Um$<#;lQ7DUsK7ezMMzF!o)+e4d2} z?(S89fSSc5S$hR2-ftVxo5ZtV$at+*XKTwl^&%%W`c8}*$;yCf^tQ}bH__#0-7*h} z>U6dI72!XLg_U^7-pU{x6LiWZN0d}-^agW@?QcE}R2fX4FO8%8qq)F$D^SXQk)Hl` zF{mt3?1=-jqGG|u7_5$@5W7B>@bt@@$zq?sYP-uE(frS$e#(-$ctBIdzkmM=J)xgQ zaJ%B12`yip6Owhr_A|A9hK#?L{ZOW6HcPV@KdAbZZpkCfS|=3ixqjCxr~t7~7Z9^5 z!o2o%5W)d`nlxf5ad!L*xlpY$!laXUr)SDzlx{&n;mrj=4;p7xjBXSG#ySNXIJxb=%zjBB0iw$ecIXvjj%fx`w4@C+;20+MhCHp=5} zHW#-!T)!zrxg z42gYJ&y%NWX2lLJQoT7%g0jNTZK1gYTJW`4_{3%dCCv3{P8gQmytTQ~5^!g$twKM@ zLX4=BS=JS4rqL9swT`m}fgkRC+4PqejxOQ@%-V3PDg3Orda<{|kv30`gWjNdP^$BR z3kR+rH<&C$}<;v-f1|50t0!0dE*WGVY=4xdl#QbAv$O{|+{rnh*x%M1-n`&U^H(#5@@T{ow z6eo{@f;Bb;TiGjp^I%J?t%@#D@DoR#`ikgq4%lDFPvzLWgi*-(d9eWMZ3b^y%du{= zo<>K9cd9_-jl?i2ho%E-vNOhWi#p9t zLZT?*7{@_1UjF*8Eauow;ugvo|45SksD4i_>VuR^E2ETGANbvap35A$4hU`=;ck|} z#)5)dlhyWBxD&W(v%F%FO5}|MQJAqRfO2GzLcfOzepPBFsw^{SH9RNqAyLx;%t81( zMsc49?cQ6pH)iQ3pn5`UUtv{;-`M-lrP8#JO?&4DIB^%G%R)LSQXDuQ+K#N}wsJpn zza(QfM`AhNz+Z445fBqQAdXQW!{?Q3GqTP7+JiVwDt7NuliA|;Dj(UN zgg<$qCI6OeS36uZjQ7iT}{z@)BDb} zn5*FWnaL{rG`~dT{NBgg&5wu~?vSK)U@$~xQ*B{^;Q2D3_>Cz1gj>VMR`rIz3RC8{K^vXPS+=b-8-ARLF zEQW;Kuw@|N@m-@vFK3>(z+cw(-t#K4jggR6}k1oZ@q^_7LhYEivpNNl+WPQAdlHUt_Quu?` z_8KlbPxv*B64tRcCOLUg$Ek1h?WP^CX}RO$jQz~HXn7L%e0ix_Bws+8kc85yHTM;D zO7K_#_jjHIMHHW;7&8;LmInHejUzFUsn%b=S!ajzEIKl9GaU~L?Vf1GX%H1*=9-Ac zCn5J5=J8w56iZEd9BzU=V;FD-XojJl?qAnoJ(DTPSzG%rx-qR8>>CehK``xXjpAO1 z8syfDq?*4@zb?=C@WpMeOvPr*8}XZZJXaH)(cJLuyAg{Sp-2vZP$rsI&rk#(Y#Jb# zztSdQW`Z7?;hrRZ{`?_H`^z5u<7t0xfW3EUX1jbto_))cJ#P)BWQQV8%_Aq+@$TXM z+xE3CsOEqV?skZgMnpuHVfuU0o@Z}Ae-MzUYk}GFeLeRhRP_K(()KWwRf~$@Y3nTp z&o9pFub4Vi-rhAYIaY*f9+?#BM-W0&s^EIZked)U94)PwyIOHWpt>zk|!JZJ}?PtS;!tRpEu8yk&*Vt3N5$D40h zzW}IaBK)GveSqVT-g})qRK8}cXjZLI`Z%0MeO@7yT_tkD9Pd$oM8F@ubFUYKHo_D7 zF!e2Us~!40HnR2p4s(hi(h-0nQ)_MZg=MXvokW5+ie+#|Kbc3E!Yh;4a}29&L=r^! z4Z@hdkZ-z zE#n&V*tNEPn!I*{V;;J0GdV}HMkLWWqIk$}c0aIblp=YoOiv-*H#6_3_)d}O*SR{7 z77SGJ%5lo;qiwfvXj9+(A4E;8{F86-sHNF6FD^rJWiAnNZOcvtPwHIqV#nzujfKIt zvUqIXtL1IvIiuH?;cr@b#<}phn|}=o=URkV!xJMwELdj=x5em2&y8-wD@ti%L9Mt8 zo7LbeRB7wG18I^*Nc8Jh(EyuRU;A}oeaE=Qao%X)!e0>LoH~o%b7-sP2S#{xJ5*M? z*#3Nx&rUYE>`cZ8amNvvWm?QbrXzEmkldZXlONx!*FHEEZ&;FW-}4rJ(UEv8g*yIr z-IA%&3%0IZ{a`qJQPZxi`ps>skk98oNHVceCSe3oi~Zbu42hy=mP&?;9@8hwdKc>< zs);bF%kK3L8_?$NwcVXg=QL;+H+Scl-YrliONKb;^54Y&QLc18S1zRcz4Vap5taV$VjU7HDnkJabMt?po@5k(vjDOV_julnS)GRjl!5=m4^h*ePrgqueP)snww6KZ*lm-6J9cy*2LnTxLJNM(<;=vt{y5#ng>EW9WM7$ zZOdntwTZzcH{GJaf;ZRN4m(F|oa13q*}47%Zs;33M{}D26ld0TOX9qPi`8abF4swg zrbolfcXwF%`R+uOY=%IJ8&pn%vSw`NnI#iBcQky(YwelED)d3JgiES!v93~MT`{jk z6E!?GdZyAD9$4%Lp42AI1-$m`!`rRUL$9yBrj@<~d2%FVLJ;uM$GmvJ}H*kgJ~~w@r6@Y%OKr!rfEQ z1j0#z?NZ+BOKe?+Y$+4)R1sicq7{}hjz>|!x@Q-$Oc@uN>pOziE_Jl`7it>>pm~zA zI;eZhNy=)a^!#L%ZN}AG(Woha!qw>CSpc7-QSKQvhr%P7nykG)n{80m0j4g7JE2#d z;Kg@L?Ou3t;ydMGS*78Xytm$cleRbM(oCIcs*O!`JjJ74NoCBJJ0J-v1Gjhse7cJ-87(i1fDG~dRiQFpbB%CS zro$O4Fk;Fx^_!!h#js1|lX#2$IE~EE;BjkuKci(-UveFgt4|qoc{yUCKUFk35^daA3;5Q*fx8FABt|g+ z7@-PmN)j_S1DlR!DF)Vkr9JTT_cy=3;roV8z$Q@3f?dp9miNyMUqTFk1el&BEoa57Ghzl`zs+CSmjZXrbV z5Fs_)6mCG@)T!LVgRqN&1X!4OVnwWUw}Gr zuxfSw%t`4l!Vp}IMfNA9rk4F_%WQM*7Q$)%Qg_V6q3S^+z~lGUm&tmN@}oT?G>*_* zS9VA4WQ8f8h)}h*i0zXWYD;VpmRS|U;rThO740#t2jk^-0NWTtAfTM@v)x{vwCWuU zG8}K=dYWOI?0!?_UhwpEQ@FI1^g5!@V)k$;QQwUC(Q}5+SU8pp%O8H%obkAn)~F`x z%Ec%5`Rm)tWO&%_zpEmtI3S@4@C%PXd|M+@0ib@t&+g(uMfg^1l9|u+F?HOC?Aw(| zLhFTq+_tkx-2CXqX@0MdK6sS-x3e0+ywbTGf$r7^hZqrnX^xL!Zd;NF)aFtcca8-b zA^_bK@sjt)2b`>r&XwUWe8u~jqI@89YtK4lvOk$N%{)V517AQHHoaOq(U47B$cZ>I z&3oUARKxP=K+ieiVM8d8U$N-m12!W(+VH zzYdc}L)*Bb@K2kYB^MPXmP8hdopZ|2Uo%>rNOQmc>y|c`=93B;unfxo5VrfZ%e>RD zl*b=6(cg$^aJT&+pxDTtPX9Xx^M52Fu!I7s+0ct6H$=f>yig+r%Qa8MsH@WIcxjK& zUF)SCmE)jS?`6y0nAu)ELq*}hp#qySEbd*R0b}u!)wcu|IAO7dl(pt}?HbvwlE`mv z#Yp*&#{n2kZS6A7`a7ZI=Jb+0BP^wSl~X9lgiL0Fn>q~`3lMPVqN9gx)@#_W-Ec5w z)rZAb0gw;3o=*#!a6O#O+1;WvJr2`bU_7FrB%A)){gUyzp)u9zlSDmLY+l!t8q6Vy zNm$x14;l#Y)Pn+(Cui-;JlBp;yQG_kSsopZ+GsQ?-rWg4c{jLHqF=o``3Q8JasDSqP{MJYEaLH#!Z#U z5F&fkF(-U01Lo1rP;GEoDI)L56aL~1hF~VK+e-H#b$t{X-VS;Ur`nJZ@!o~iLKG~E1Nz5{xV&MBKGNJjm>KEw0Jdb@%xLa4rT;lTci(%k;{}JNiTY4&kb*b7ZS(e z69Tf){Aou1WsyR}Wn@OZ0`!^agHBS0A@n4{Y)6kAA*UnRL`UHaY zVDrPVJ_Q$Qi~-=Cn@PW=5&mg}8!D-x$O5D2Gb-<2H%hfx`h4|?Tg{k8Z}Ly`42CXY zs^fR;DsEPEjMR%Z3dhO0X!`C{h=T5onw2R=fjI!ss@~1hVbfcQ@PGJ=NION`6moSh zNv^b90m^W+5v2aJmRu#7RooQkK5k&obg^H{#yCp{mg1*#$S^PyCk>;`uQY44Axu@h ze`2oy1bgGc&~ISvMx`F|E8nb=K?HA=fj$2cGgI(`1d0lx&$0`fNRUH!#wkeMMW?35 zGwz6IEL~KwukBR#+-<|n-8-?qZs)ocPZ;3xI+Fl)ckmqM+H%^G9DJVvGMd+rIc4(} zt!RyZ;_|2sL|&+0_3|O!687*IlGY;rcu*BRt`9Z83w>G&nrz8}FFA~S_f{kMcplK} z^dHh*kv*N&U3D@NFxXw{k0}VO_`L|iDj+0U?-{CXzcs6Aqg}*R+~t$@xL}YFU#eJT znEzp&Y)xVpUHgda>JU0gX6H>`n#kiyAXdFLmYGl14X~uI#a`OEFgk}F1!CVtE#@4a zGmg;AkYICZk!m+{k^$3>_a^kFTJ#?pC=P5yuT7-~9bB>>u1^<%1vQ_J5gVREtl?x4 z)Ip_L3RL=22{Hia;MbC#LRDo9NWFkY^j}<#N}w0*8F00Ed+L{uonx$|Wq%s_&g+GSxsG_yA5B>2CV&4GtMk5Yc zHlepEN|%*ey|nVQZG?fkW$hqbscgpCs79ZMQL6ZL~x47+W z12}24NKdCI)yWGp%a;$)4I8w-Pcek0<2SiDGpo-7DtV71NwHkzHNReQ;r9#oFDl~> zP&yQcvmPq6Otq4I+9_@_BPpWH3^;R*AL*~$_|WEnQ=#GA&`=bv7`KRcEDfi<6~9ek9F5Qk*Vg)|e?w_D+yy!(nY$DS%_M zW?f*vq>N_TYvXAfZ)=aGsQ6yF(Aw%Q(!^7`(z`^dIxd>9I5=r+g`bAGxzn6#dY`%b zdvf#TN=fG-Kn1Ds)5FYs(C?Bu-jybp30<;K=P;Kgnr~K$F`v$ZcRw`=7*{z-p*U0P z9P9K|^QmEr$h*wG%T=lKvvI@KmzOkJ{0u%-FY%0Zt7HT$QIx{~O!1ur2T~IvR<^Bs z<6~PPeufs^sr{`0v70bAce&CNNsaR!xam8ttLiBVQ*x-Q;rzVH=wMPD=@5-@W>88K zU-LGsw+fX8lK>W@D6@FnvD_B69=B(sDQtdlVV`$|qR6r>jUCf=lFidSnPp1pi+S-l z9ewRz7G^zfR^#UYBWyK*uPVD=YNx?8ilOO4=mFD9*&VY|sh~%Yy&BuTTX(4X&&^%} z1wW!fi`vd!rU&SIAmZS3kS#vQAV|fpXF?|HS61ybqf64)V%jP=I;DwD4>-Vz6IMlL zXD~Lmwb>tlQl9J+A;$^0Ia%%jFMXrT0R~3TSvIOKvLf4oV7mjI&gH$b!06XHfrpIi zA3xplUB-#QdZFo|W>*}tKFzG8LkuKq!S<~s#t%gu1;^K;?4-3(s*lVFt z=>f8>VpBwl#JwYgVDs8k$y=`{Rt)oLy@S$^LV4_(fS}w3$T$;OYpwsek??%jBWyMY z&k`o*@Io!~6sgzd`Z-OVy)vII%pz1XAq69XM<8|FQR7VNGpayNVqIR78}n zs7P0OFCv0eA%tEO>AfQ$AS$AClp2~yGZ2V`UZWtr6Ci{Vdan{lsL5IEz4ddq^MC){ zxi~j@l00jz%#1na=;Ix^j=OdW6b=5)i%vDXPT0@I(3?YjYd0|nU#A)`WQb&DLXTA8vD~)q7UB&M0>mh`A*wFYVsuvC|>!l>?O)Axtop?yt}6Gq3i* zk>!jred~)`QW7e|>SYkZ_jnoDflHmBZnrk|R!cCv$vXfHvwqxTn-7F7@+an2K#myt zn^s+odVvqtl#}RlpV_SM0U0zm0c9mHhY9S>2&SxT>oWmu1={S<9+aHZ&-{vIPxVuC zoX03ECX#0WafxWaqc))Kx*va&UIez3d*n(5>BFm)!5dj>%`W(n25gccPQa=o6u{xU z3$47HmocRF(w|+ue2h+G*FRIxY2eGyy*v<*dDf#ZD_1W@6M5(F*!0FQ~A! zYNj<7RfMfj_e;rlPG?QrnxnpO`SPAXUOI?Uw9G!>z4dKS(n%?H(!N!-9IEJ!Ro0r6 zMmcAeZIB^lVw|v?omCQkj~ll~u<80J>Ft{Ie10iaIfDlx6cZ`qGrFsf;xrm6epm3? zQ|R6zJp9T*>Kw$WydV?^wA@hl7*5INzx^|eu0&0?Tcw#akZ-_xt@@#<}zEfxNh`2xCYf70oG%NK&`Rc4I`n6PnlPjo-@BQtZ!O!lxA0{ojCK zk2}x6bMq&l7J))Fc}EN)Yhtb`+@=hQRHgH?MzNZr8n^CoN#kn{PU<%3Njc?R z3O8?T_r@0>x{oWh#bM^?iAH%D%+ic|{?6IZh~3$xm*$1K3WwfFc!m~~S+D-3XLFx) z^vUZie)EnyW1;dZ3Kwi&B-8V@n_;W=Y^Br*!Z(i=ScnVELr)pYfohtT2ArZ_Z`n0qbm+8&z}a0Z>MAgTgh9-v z|5@gZbhl`se7XKlpW2Xyw$9plgS&P<$dr{KW~Qm*YJ4WUHP{L!)Q^;;tO0Ga4Hncu z2N;8FxjOmR*E32zlz{h+xs4?qh2js}|Gq?%5X z)g>{n&cWOSymW181$|p9#5Qkt0{iy8mBn6Xy;i!a{raZu<_(?{RIP@XTXsI_AXS>i zaEr6t-2V*cIg%aHAgk^|)cw0GHVfEZx<6tH=RkLgER#Ph^v>h~)b)$}1ip}>#zpU= zn+CIZ5oc4=57$NYH_XpxAow<(gB`SWt(9DXx)_UZ&4oIEVORKCDU^U*C{Tph9-yw%-3yIsiQ%PCn)!iV-|Daz;$c40NRLTxYWvD7O*yD|1` zD|(4o>@-|QE7+gjCgSuq|6OKNw?Ae18kM)#pwdzlu-$P04%yq2AuHKnE{}PSs(k&b zuc^hUB`=`xS*Ck^wYCc2xx!~Fb9R{5;f6+`B^p8GH^$bkWBXNs(yB|Q{rB>8pw=fW zR&0}ppbw`e_^cNf-N`$FlD76&X>3MTZ`Nwdff4Kz57Bb%VMTYL1#NLsNv3-xOQV60 zR#4k4**+}%o%=vhELLK=%WFoH?-%uSPRWjpp4?$Ly98!XV&J*vqHBe|4V8Ak7tCl` z94wF>QfnNG-4lPI68p|)YtdlX8~)^nX8S$a@481R|Ke$R6oUha3^`Zg=$GBZTk5O=e;*Wt`59u zeiDx-7{6^QkX=~Y=O{7avJ!?GD#yWwcua}qMp*hj4)v`MG2&hZ(vCKu7VWi_)EdPs zmz3?`FRC3&-QDl9vSNvZc!`6IJX?Oc|-U0=J530G0ebV^SaoB@i z<&s*+YYV`27;UU_s>Q1;SO7)x2+lciQwCze*S*@~#_8nt(l~+f5yhOnk*)If)bH=D zM1A*mt9cMf4{c>-pVthn72&r1Ma)k8^udmv5WF{3Y(v9A_gigS>3vmalkC?j8mXHH z{t`e1<7``?N0we;Ih(L(a;JDk`MCtM(={qSbCQroZIB^;#)y4?|HxK9jw2 zDqlaJb7S-|+hh;UZ+T2)Q@{B44v*S!`~OC|iPQrsM0b9#L(=?-^#lTzNW z%?D7@YjISsQuvH=6W(rSsJ#AG7FcEX_ip$jWHuTfjFVBwDIZ~9)tx70OoNw&Fv+5~zjd}o0{Q$;>j z!Ja&sfmiUOR8&i^Wk`#j>r{C@x}S{?i@n5r2i&N9C&$D>mme%us4l#-oYx?%i4{;z zCiW~j3sY)#CWxUc=4I5-c}oSYRbFF6QLy*caV$Esty;=mU%Axnj!VEv!EXJc%Hd{R zQ=#h;fPbV*DCi^k`#FZ;h6X|!sHO2Amqf)gz)>mr=5NgqepAmdbhVP$CQ_<*a|OeH zbWAo)_h;)l^^{D@4tkf`_Nnmnqo7gsGIsOD{Cde>8RhzY09(ndc<|EEhEd$E2FK@a!?CpY766DZ=jk$r2T%i4P+P zAjzU{!Msn zT^xiFqcO;VeThyQLpCZXT$L7e_k^3_ z(Frk?x_y&|ui8{Y!k@reA+()bc^!6+*sL!lW1WR$Kf(^{Z09Z~Xxu*=z}7i5MohTD zGqe>47$qY0VvYWZ%Evw#v=k3-d9^$SIrL&u{U-yjQ^prGb%#JZOU*HyY3cXpgmodQ zckBx6the3fI@`vtvNWC<7qWdg?Di@4s+|-{Tr<--N|k66BMCU1d38(g0R*D5&DDva zMs(O~eWC06AD?Ohv2@)l`;#>M3&GKdXA^?x+1)(_ZS7*K#Mj5XRPYk`_jy+fWuk<#&Qj&o1z3Pu&?9Y1;L_U*mm4cqBG%3UR2PC(Y zmmB?>r%*Z>Xy4*|mg=yGF4H$K5m%;-t=)N>D|Z~<+GG8j$q8Gl2BRgW5zp;i*YYW+Ycz2d+X)RD z50Q<%)p9mn!t?|C3uPtz4zu?K!Yp)vI8S+O6r`W}k`$>}KPgkE|KqHSwi=xU|r4_j$21D ze8EQqAJGG`qFSNAz9;OR$}MI)s;uMHV^i5^S|6m~vpoP-(tLA!#>QI=uAzb$U#1Q%=4&+*nRT|AT-bAo`2NZ3VH2XWQ!=yXAN76=*!c*M(fkS z@w-(Z%PK|gzS4JpwH9Z2g|Kp6m*A1GUA5}lY7oa|r7q^NTWnV&1%jH1dE=o+@%A6n z+Tyv`((OdN@u(=v4xf}v1>9@P(=DjpBE?ex0I8wm5)FT$3rd(KX5~hSozDBoo9h)f z-Cu&w^i{yA_(*jm<}L2lB#|;J19qy!bMw1fhLRI4hc@4{270tGRsiHrR9USh*|em| zq>YTO-Rz07idCKoAHA}J-{UCgNIBZLzCP+|H>NlZgVOu>b#=O;!bh`|XUN~NYd9vB zJ%U0@E1OE3>QAnIHuZH&O}lw8J9OWw74kfjNo%FAHkK>K+6fkWuY|ADv)&^mD;@fx zvhI8>6VT|x@4IRS)LIoR^Y@zyU0z}|Gm$d&S#_Cvd_gF`|KZy5@bH%S2%WcVd_l%&x8kx_C7XnWod?{-n1T8RZkUn01Ip}Px>{F zTS*S*e0!zSzvbvuv-fsi>`7@19|O09YLwe7%T&JF=A7zU(WoM2++vsY(j7Hb(e$ua z341dz%RC9NFdXUcwYed!knEkWy4zs2)~Z$}V_h5Lz0>wu{QMy#HVh)xu zt~Sq_yKF0duvVdSPU7}$r1c3S$}fvj2MbjiSwK~Eszc(>19$EXZF8Coa;N614C4=< zfa3*@YYueQ2<><0bIrFv%`GM{YZ`|=_AUzO$P0o9HRI+Py2pkubZJJcd5+kBI2!0uu)p4g- zd49KJFG~&O`cBC1lD^~JaH2tqZG$<+7AKc^X2Ovo5>b~PeM&=#WVocVph62eSXnai zN2_hYa`S+(mwk&}g<`C z0!7n^y@?7q%Gy-sifcX`{J>zK@741?te&F3;MZXwJ187Dq1GteOzz=$M&f#tMr!Qp zO0M3-$n_M~w-WtO6QfnY;-SSe2|Ui)C$3pS%}v~n-ehE`l^8nyIlQX?hOUy zmwQmZf6D3kN2x>LS>E+dhOQP9P=!0-{z}99Oq;dyJpI38Bxd~{J?}cWfOyDt-FD`l zRp>}SH%*BBXzp7#@Qa+15S!*jk88W@J*nQk#z7@=H3pMs`)uDJjN^x|mutJUqzqS| zq8hV!@!^hi#KkHAbgh1)-Ob5BKrxcJh%CJGVFn@MV0GSsr}yDlhDNQ~-IBsJxDYIt zIza7ZDp2|CobRc_gDy3-KovO8mx7PWvj@$ao%TeK3Xq3&cw)JSr4!4ss3-_b~fgKxQ&7iAGq)CFRN z73(Q+8$KQ+n6h`>vr;R|^ay}5 zhZYBJ@t!!w7qA`|6;bMBf*rDVX?7HIX+4m0DZJ)Avoa?hdXnAa%^oJS9wwVdBtOUVj56R>Mnqnd@f+T|IOOG|Eev?qWrsAV$B*mdZv1^jUXwaMyDdZn#?_vY5G z8pZFI#K8iw@-et)Jt(ma&O%<;yKd=$)?}v36|ShLkMGO+7=m$O84))B*?2mMT8? z=v^Tdy?z}!?lBG$@7bak+4N_b2a$>1#wG0L^kW?sOn=ypdi5n5M3>?);iHHbCk~Kf z9$KS)c~#trgiyf^dgb8?wY%9Y^xbPRr!LlXfyz8R^5{PiTvO2LtwP<~BSq9zI;T$1 zMm=7uo;Ju90DQBeyYBS-9r1il$y@jr0khnKU#s5Z?W?;C6!87=sh>+R)i>H1Ww@~` zE3pPwH-ep{3$bg%ZJYXenzkpj*DQ6@`)249wx~WWZg@ICmO#lm`L+s)+x1EuOpE~* z`_G>*^KUn>n~$>*zKPv8qr1p^@p{0)ZuoZY2DGVn%&j=rN-OwWKkN6tGifTJmXz?p z5<{m&o1jnd@`->ES^1$gO20c_6)W1bTm1<6bU?-XU=R2HiXIRIz9QpU4h|d`6RwRz z?(a|a<|;fv=iUO1maUB*o7qeh7;vqTL8|WG<I|)%TduncICnL?bf=mK;;8g@igc?$Y6Ht zb)f|4(T+)l4gG#T8lSUFP-i4G6H>oy$QrQE!n!M-y+eAnEa5z20RCt#jk`J>5a4H< zhG!DJd5S6}N*0y#F=zwQDw~ zd))G^vgs~#Orf`Yvuu}zrZiq@kWPay`N4(yDr*q_qY!?tfqT9KTd?|cq=bFu6%+s5 zWKkC}81!o=HP%o6Fj#HpyOv1SV4I}8Iwuu+O1jr{wPsGoduEFoHnB=r9d-(uge2I0 zIJR2FhIL-vM9ww0!71MZQ6KM!oX2f+C#5*qRr`D7_^N003ut^x`R>S@%ofElNk6;S z7`FGImb9RIhI(uz_hc@E^;29xm*jPk(ZNyLxUjck?C-OQS55s7GJpuPLh@{78kGa7 z`K4E4Q%V7Od}XKO5M0wVtjsEZD%c^JkN!i+Fpdw&mKL$wm@333Wd441IBr`i+wqg% z6@K^feKEfXaDP8mKXN!zQ_6d)-wL*bh?hw78;vh}eb&`+(#?PiQcL)H3zX%Sc!k{m z<;Bxyi&rr~#DgZEpI)yx&N>TJWh2@vA!-lDZNb3iiUB({VSA46D!L36xZc>J)-Cf5 z`lt0l{YAcLe645fx9S2v<}Y1!KYS*749GOf&Fw|zwq?_irBw5S(X&fUrldAc^5k>KGA@}c`X8^lj$%I)L)Ovz0 zieTa%!0HoQ`OOBX5D!%4iqap;IVadr%(ru~#`)m6X7CmC2g{B{uu*zLjCkQ|b!x^p zh`X)^v3IWabHOhrqhyVMaNmV~3rdN_?lEyA@4I=`;u;@3qxYy=dELU6vlp#qLS~HQ z#OF$}sGc50i@DX)Viqs*f#N#a{LREm5QzO?IaoQC^D$USEnGSU2o#X>X7^QWZqu*! z+vdb_#R`}Xv_iCUl)GI@TvvJB)_@iaI0?vqn7Sa})I<*~spbvcoGI~Xpt=6&80DM1 zj8s#uR1=4$R)P7CKJd%bK|Qo^J;g->3_-E$=gcax)lu89$TR+K zrT|kkqy89s>j0dgx?K3q%~!}~DAV7Sc_XB$cQJtjv$<{HAd+8vghpAtIcl?$7{{%t zy6Ga6bkd9=Ddg*)bB@2L<-lS#*>1s=5elE*0JWkX9B))3j|Re$y(JDe4vi}Fwz!7M z4V-1d?t)ucE8v*@R%ofX$C-HVRogE(xW7E}M?l~|#xYQ;dRz^)n38V#n{9kWOSV2U zsh+Ck67IBq8T#y)PxwWS7)3IKMQroSrWwGT6A(1Nw1Cbl(B@7Oel64yCGsNl&#kBb zYG9mGiUMFrkKZXg|2tc^uzk4NTXxdpox_ACzgG(tre^KaJ!Vl}AYc-W0FtFZP_80f zMTkRF&~zg?D&w!p;kU5fKfSE80HsO9Q<9#)tNDNPJ)WxojjFH$ z?|(PP4&&GDyt4Wc?L_kN-T!oQ{5yGnuJP~^8DLuvzI^_14F1czfJDkNaHGH;*YlYUryS8^|P!+0PH&xSX6=rVIGK$CKwx_v-Odz=c%907GCx;RIF$tny>| ztSG=e>?kfvrBGyDIX>jaqDng4j{&IrC@!kjv&iNB3&p9+=!fy*%=lz5n~iL@i)( z+0`pXf@C%-tX`?rI>8Z4GLTa7`#+{+u!1NC*VL8?oQd==|G=sH_p=L#Z9qJrus*zu zfTTE=Ak)35>c08-?c28xB$zVT|L}C9Y)))Sy{#4Lu|(>&6kj$H{h?9*zP{h@Ft-KN zNa8Nu?fdCW%E0H(882Mc`?AqyXylJq4y}?T$_Q9>Q;fmVP6^xb10R z&(wguWKT~|*PYr-{yA$TioZp@@^^a4>Dn&8xOaJ$u`J&s@ zyH=AicN%ETe{tgF^vI4I0+4(ft792loBu&HH$kK`-b# zs8Y|z28FStpKyzTc{d&cwU@tiDoQU9NGux2_oRw@XaRh;cqSpl=n0tr zhB-t}v-E#D>w#gM0JCLa^$REh-MK$}jga)-NXRvdcAZu#W_N}}@VzbgL&V97pF4e) z`%x~G?mfUf3m?kd&;MkEe`98)L(>I1)vgbe6GW5Iub<`xHEAd0AO0h7vFzeu2+-K6^Jmq_ zKVSEEb(6^e@a)2@PLJmQdRIIEt022T#Oha}^*^4GLo)P+1NM`5Y$>);}9D5F8)R>WpX$BU0Zr{ZI;-5zmcV1P`&$GJ%}B-Ur#m*D@z-!(r3 z*jAu#W!mgt{@K6Y95@Zk-+=u8-~4yF{l7-rz!;jtcHI5l;W5{>=W_fmt!u7$d)3yI zWlm;qpxl;&h@_9gp+!pbMtjBiJ5`FfO&Hd{05g z+iJ%rvw(dg_V<(XyIcr#=K)L=<1uORe{c`4t3H~_c0gRauB`*t=gVtnGh6fL&?){L zbB340SiCHn*?3sx(WBa@)WVh{$I-h^jT*w~bvf5rS*z?S+-^!fD`S*&*P|Eyv|^NO znSz)ACHDMRJ*fZin1q;1Jqi=&C{MN z?q_fkNeqM;m8jp97YXS^?(DL9PxcUP(tS673>f?yFS8y4Cc&u5i?})6d&O;nP#VZL z3ShKx3NazCW()yuhzjWXWSQP+SpnOP^oA>+9FQKh5FvKEK0j zNg?YujG~u48mLmF7}ySZRHrD`R=tY$clT8DLTpxz#Acv@1eNGIIhz7ByGHUmAQG+NcJNXDuj2kE z!LI-Vb!_O%bLelU2rjTE$^@8%5bnRs3#Mi%Wlp!#X^WHzi`U6FXzLIeyFV`2uqF1h z8|a4-4Q0Q5cy@p@^j3Nz^^IR|k#0aDak$Lo^<$?VSo*7igvXq*1@V<7c`Bv$`ZRv~ z#kKN4$%q9$EX{m$w?j+3{MB?<8ehIwBJp?2Z2UsE?PNW1&F#z`Fq|4F0vp%50c)Mq zFWM!M@C~7K7E7f}vlKTTyE+i43Z}A3t{k|w4{aq)Z!QRYTvPkgK$hRu7`1U|_+dq{ z0_~8kvS&LD^X70P`n3l&I<{Xt0C-YY(lKh~rihf90shdx8MzB;tga+E@7W3wKhG*~ zXk%}=rZI<6`3G*p+WT?bl+iVN_^Q%;!<(q@1km?k{%L9A zcU^LU@Af_lZZTZy3^mTnm2`GWJI*vdSU3fQ+Uu`dbsq6{nh!lQ#4aWx?mqun(82HJ zyzkK}hmqorXD3}W1+8|6S&F7-(63waMF=r;B*LefxAw!#yp#}Qt{W;BRd8~s?=tGK zff~r0Wr=pc7?z5lza74)kB4N45h1?RND;^6-l8YzK#O#^Qv9WTG8v_Ow0*WJIXu)` z0SELKW8+Zau__#A_I3SyrDOWd(x3skQ(`VS8TUb_TnUTd7-9d*@CuuO(Pj01rA%gO<_sn2623*%u8EK z2G*8`jftc#tnn8WaK7IWe}!+2vJEHCo?UiSD5R;XswxQbSXp(f864#)O}PB%!;4Qb zJZbskW$1w`mg>$_&W}z$9at0Tj3^0O7}pGhgU;!5 ztPers(TZtr- zHLgt^rC3!|@s^O`9v;__o97WmMZtSfpu{o7ufCiJwYOy+PS^r4LK<~np0YwAx5DOt zMzR{;0Buh_dQe*&4_KH7RCxE7#{$o9WD3-+MA8ENp7xmMpyuzZhVVBx;`PeyeIL)v z!#-k0+{)e(4^A~)J+*2wXtcC5#NZfem9}Owl6vuY1RJUZG~FuZRa|9}M{v4GtoU2+Z%>hEh3C4U5KK5aRo9Ak05T`$ zJZ6mGcx4sQKQL5z`HkOx%Up;Y$|}`QOkMimBLcTpiHh?+HwAy}5E76Ah zZd~cbD5>@Csj0U1qHY~yZ_HpoTFN9G`Fgg0dbN@e{dE8B+{QWcbd3c!+$_ypdJBo! zO9@{FfreIfiW5S(W5hp~n^dmPPmNxaBF}e7!n6UoFC$$eKeuG(UhnTqPDt8H+B6Vt z6&IhB6h#HE?uc+D#j%rA5#hqaQoGcb9q%+P7kvXoVzoRMFW$$xAv4%&0+wtg9Fh9T z9*aHR&Ri=RM++_rs-Yy~OV#t>$zx-^4v|tsBg`J(io|}DluDJ}&D$ntGFd&-YEAEj zUV49TxU{G#lgA)T7Y@I`ck^I>#FzBs;~tLC;EqxgsJoguRuO9tw=n&t#N$`-IA5J> zuFb7e%#gU>g?E_3@typ3DJh@b+yH>3|MMQ77QEgKOQ*t%)O`7J^w=aM4-WH~l){fl zs7udm&iC2mCs+*VCrO$^coSaaEsQMCFBky8?1uD)^cna6@}w|dGN*G)RSWwDy5V1y~%-z^``Txai{riyEEkg?=c*n$_2Fgmgtp;#FNLK0EIj z&k#NVm|KM^Iu*JMRb(>zx343cI9T^PeObarLp4}+RUU6|7CFxft5~GPcNX@MGkk+A zQNb&drDcpGWF)9$7W-fj7ZQK$MQIJfjRRF*(Y#4$EJbn43&?`i^wHqdhqW0ICFFCe zQ*8mru+McHDg$>a--HY631EG3-$jWDFBeCg*nXbeYUf zwUWTwG&9lF>+s}>*a>x1iORq2m=tyuY}cLSSnY@@)lOX5p)+;p%P7vZ#yn`;Q0_8e zi3N-1d+)#zHgg1-`Er8*Hz;NeYGu-%V+F6Mxw8c2To`dH;aGxjz9;U?nOY1x)=UK= zwgv<`&N0Bs?$`1JF-A&0OG6y68FL8=6eBt;}lbKiiyzllk6<%Q7|#kKnpzU#1`oh zit4NsEFEz~>OE~K!999npx*C#ifT6(J0*fKBk0+^T$%b%uO7DPJpj=e4;L8=-x9`( zVOMq@W8SKesQi}CST!lc8?)$|xVbSVj0X35E?$ZMrpzP~Duoy0XKwdj1*W>^q&+jw zOq*FyAv1QWD0^lVUh?)Mf>w=!@a)~}&Eh;4JJ^LkN${g&8CS>oC^G^@ID@m5)A?$* z?_$!Sx$_@Gc}+?k>Lb<(rOM^U3DVIBhpJYzArWLUx%nxN4goVtX) z$tB20HLlWysDQo)8LGuKF5L@0F&loUJh6*C0;}bF>E(M^#kL3yFuBO6dCIe420odX zU>lSNoq=mU!XGL=3aAj%5n+t^`Y zdjBF;g5$c+{CV~!Hp19L&-P|mW-d^0vgi6e>cLGLW@9+=cASB0^kiwV^GHBfxZF!5 zuVa#Z?}Mog74?pn6*8nv6@QsXnT6^};_#Z!El;dVsGdzwmH<-BtimGx%_?S_f(QJb ziGP~((V`8CQzJ;NKi&V{ly>-E3nU!CrH)yT124*|$0}8suN^?r$KBn@MWlD1mWeJ7 z3Vdvf-fNl&UcM5WDqTIHE9Ac=%3s8H{4Bde&ov!m3rqs?K=O{JjzUGZG;y=2&g@xl zj;RagZatYmF+`ddxm^rH;7we%dvY2>xVULohB`Ip0lO6DoD7uipCPI?Ax z#Ui*$on*#Nb0rdYm*C$qR(?;`KgjjizP|Di07k@+Do}`JMmB>7O#!3>uk#p|mpLhp zy9s6?9E;1ToJrCI`?C2_-={)>f&-l?B6&r~@V~O52l+EnePqc=;SOYam4O8PU{sy* zdktytV>Luf3fYTjX8ok6lN%4*Z>Bz-Ot8)6AT5Z7kVYjb5=;WN#2PX{PleP-Rkk@i zZP_1?D-ov@FAJssw$t}^Lb;Gw9(rVrA~MGSmGZG|uvY>NC` z)R4)u=v`F+xCT+jyta(n-S4zD{;Eq z$S1Qu*w`966+YJQ77Q|H>EcXqEL_;#AzoDFaVTn+1bsJ&bu2SN%0kTi#$HB*&zU?e zA*z#BAJ9f=h_BRfSMOUI`C$?@i_9EfvUfj@IsR@>Vy)U#QrIuGY}9sY(&sUNRgMpR zNhNhBuWsKexqIeAon=?}xortzXTa-~lD$&zE$k>>`daFO#WK(SjSK?<21a;%dDGfP0PNblP0^ygW6F7)oZyO=;s>+o7F3$^5?xo`n`iZJFM zNyRkOlv?G$5Xv`{Ziz;0Z7RGnbVTx*bk$aGc}O=9;PbVMaM3?$ll@)@$|*Fy;Q+NMqzR@h(c>FA5+ z1eqRu?peX+>2@JNuu6l`0NC~t9QkpH~+*5 z5N%ghyn%aWla%RR#Yb=4&{asZv?dMX?IrGfyA+GBunY6dRSq2ZVAp$9UDfOK*|_YAbNhjdCmZw%>QnO?=+e(mIkiHDuV7$A@KkPcqam zQ#PG^dIxs&7?P6$2``$>^{6c}19Gy-M;8d+A2hLCI<;Ko)*-*Kwds^GiYIDRqj71I3=3_P z9I!oCg2+@amt!ku1e}R3)y+&*WK__iDTh$!=*x883ybR_dA%nZ-v$d8nEP~%MK*}d zna1j3rHKj0Li#gn)T>~M@lG{cmiu$-Y#H@;DbR~3T#eU8lubSp<~1BiYj82j9aVwS-2MP}kIrjM4(`e1J__`^~Y$ez38b z>8tYwt>*y9H@Yhioyp${_epQhzc-7&ctrUz_Tms{@x?x6@ZxGKXWFH@$2O)#mK|m} zDNX9|WC@t85dGM;;L>`9u8Hp8RO5}g zG;Pn-U7eGD#QTswZYP|lo>1)$zUt}RRuh5~T0~2IC50~{lM|aVFw9Hhm)#|+)6Zd| zp=g)U*xy2TE6L%GQA=IrMdsQ)!*vi`M!{Bea7;oFjk>fMUmD-S(ebxi}(QL?%s|+&=CCI8O~6aUcz$`@t#M5RF(ym0<@j>C0Z&1LsT*7+_WUFBk8I1oiKW zonS2+@kdtg8g@k4EUx#X$7UlDFYmiq>@H;UNYr0{FBqv!Tae!LNn1;84t510K0ZE` zVFlm#Y)9X{sSk|l;Q?>iSsS%{-gGh>wy)5{0JvMI;!ZDfLS}K+Li|!Lui;SBhI61I z^HQ9~lJVfXTv`+Fg$0YNsJhzC;*;4XW6m8*m{UutFD0))a6>Vjf?K^ zoOpv;!*4e8M|vlT?)m8r#-%Fe7(4fr0Jr!RuvE`gR_}W5>Zkdq!Ae_Qzwd**W>F0} zM`m$+wL|kNH8|`kmx&wbnK|$ER6Dmwg-Z|_Qw^jQDqg4(>1>+p=M!&m73CgniXf#; zV%k~2L1I|%+J}fd zUKTz{KPzTdb+86s`SuWEilwdY3)J{&=b4>&PjVzKJK-5(&^)7LvY&1>($@*eDPy`2 zsP-Cf0X_YeqZta`IIv?oJxiuiQ1fzI@s9|3DD z{7yp#YJBD+Ouj`qO(R%CAWj&~sM1jw$7mb+>2p48@dkfrC`!qVJ4)j@slQ zR5Ekz4x?t6Qe&@?Yt*%Ij@3(8#gBV=PO*-yIaf8n*Fd*t=k4id#pV)9>;s^bHi#s7=G<4zQOerry-!d8J^QZ7Xv&bf;K88|sf;oF4YfIo4L!39bJ~ z!S}FjF2;Un=5=E%K1bFiJxdvZQWfxcEEFKUR%bUkn#vOAFzhhL(>9PFrZ@f#)XC?0 zXbDbjKcV6*h_rr;tnq3m8{i86q*BWlgu@T5%_rCqW6hwn!f&WlU{@T5;O9h$YXv7G z4+D@Jiy=kD`r>iM-cyr>hW1rX`K|39DclF6xH=VhS7b`bN^jxDV$vLX_4Csl(fQ9b zY(Ynt>`Vi2#*7}zSMK1FRT_ZFiszZoSn(mgVuSV(OX%QJ+^8KmrocNDjj(;YMkT>NFEWO+ybzML4IBgZLl{pr~&JcN;=k{P*WVC61l+2cs=;PqYBa4QRj4*zi$ldYt%Yo(zll zvW{$y=+tK%HYa28UneT1EFHWfB8j_pnIYNX4rBg%YIujGH2PsqWG4e-@=ad4g zRCpyT29!{JlU%S;8)@3*=YgdC1J)A{`6~7s^{g_O*wp4shNz^hBcDNrdL6=z3-rZ! z)Z~+L=fl-~Cl}_}z?Zm+fiTGS`_9lglUwlQ(!L86bd_N}bAmzJ)9=-Es_&B*_zkRu zPWq5fFGr~b8x_^;4ES0k^~Tibn)+KVR}7aHPT`Xp?&x>BzinXfr|d`);girX@Fq5( zZ5>n?;!Iql5i19X#mJmwe@#qj@kXBj-z-Q3J#^68oJ$c<0%k59ggBN#I`h}M4-j`aR|1Flc3ZdPyOmmpkv%Ah|AD3cJX7nKaleR^1 zcZB4#H6O0TOS@t1Zk0I<7U}JPGlg81iub3=Ix^kjQ7wbo0a<$^Uq*&@lwsISI*Igq~$q z_(#Cy?i1zT`0SqJQ5LQOFNZDcD0FW z(9|L3Dn}4{brKLVL;UbJJAf970k`scUJj+G!LBhO4~V|Z$5U(?b+$~rJJh+F%-^d+ zg7#%Tm1!(QnD6@NoEI%Qh94CRaBL-AB>Qx5Y9Hs6T311V3@#h>nL6)(=LT5J*dKFa z1D$%7+yQW6JLss1T>(=8B4af2ulrb3`4|PV&r-~3bZymOd!_#>o99pW5koiUlRFAC zc)Hj}xPG>T z^B8_%&wIIi`09>=mJ&iR6YMkNJ?qF2%!065$c{E}M0<8Vh0m=+dqFdGRG}Urv~i~V z6i*H=0g+gr(V+K~cM6SBZ$r`AZf%hv`iS}ibdEui2q4P&l_-GzkS=j#GpwTvpf zNICA>`4`_UNOC*c^%Q)9ruOCjIeNSlZ817pHQNXVgzPY`upxWNqF>gqkqcg%7#sx> z>L0E$foM<~qdgdkcus^nmG6$|xs-HV3reI|`JR&+c^IsXkXn3Rmo2)5B)#o4qzZs% z<+_CO)HuS5@V15bn`ja1j-+zjYVfraM?mK|z>+-qmIk6d1BQ;5(PQq4k4pw{5&H9G zv-Z*@;+TgQpAu@Q+wOi<;VHCsF$HlaC!7eevXzq0l-;|_G&Fa0<04k|aYx^wNxNKA z;h)dyN*~P;xo?&!ZO589KGb%o zpSlf#jq=_cUeS>+gz5smqEJk|~TGE-E^igPQJL&(l z_nvW0XHWa^F3PH)qEZ(GRBUunq&G!Dr769GAkw81I-(*XRgvC7g7n@=KoAg+8hS|- zq?Z5*1QHy)i}h7L#P7*Db7tnuTyxF&8p#`DPHLSmRF^{+$hAwd zmkw_v2`%MQ7iRR)w`DyDzGya7)Gz7Nurbu3Hs_JX)E!AXY0-ZkK*bkg3*iR*JvGeNi@p9B_1D;6)M-X8kqOvk*+mBNBYYXnX; zA0BJtmV7MZPizXrJHbc>A?Fx#D04=UqUh+-c38M-m)ZR7^NAiSjn2Ix-yR>w82t9P z3vGO4i1JNKaGCWLk<~N!$WLyX3!e|XmE3mEI^)SCNO82B*FWdMo1X@nkGF94iix=S>}cOr?M~#OXhS-Tg0NMjh;=XBTla@7qdtKCM{~vGmO}Dd?5%~4nr(0;{UuCh_KJRHgyzAOH0BHxsHnWg zv2R`=7ZJ@V)6<1a3>F|om?>jr@xtVRx$w=v0mm#@i++a|z%1l=;CJahY)p-qzg$(V z;8lCYRZK%ujrM86$llj+Q~WZ3)CzB7$`vkCcWP60%594)x|!LhU6l6NoI>9+i2kFb zDbYFc!Rtu{7JIqm3Q_?~yCf!8=pD_A#qz#B*VRU>meTvL-7m}X9KAVnE4E9ky(w1W zA$@iQ1fF_H(;3sD-w&{|mZ4VfBBvx}6JwODCAP5jL@zf0=+j6;XNJmIsK`FrvIk5zOMW4quj0FR&lv z+SDEbFW4N;Cc{)TD45Tu(Q+ebP@-r%m+b_l#4fg~IF_;zmwN@?dX(my>`M{anb5c= zmA(=1inW$$#X|g->D$F~#rkm$uBk`*KJ9DDD4akNSgCO+Cxv*G0(yN@iks;I z3auHGv9q2DZnNI-sJkN8?y&f#&%rd$6}i=(>sxglWvlKkY~_kTgLh&M93-U0OBeFe zz3nSJPUqTm9aeb{##Rz3K5ZxWs&FGcwmQS)-X}~V9=I%Q8Lo=-gr*6h&@GI zI!aI0Nti8o&i?MnViZrq@euatAr7ft)5giLUdD}J zXb6guo?D1M8qr?OsQZo47FGp!c4GTfWEu98;58f3N(!Dm1*UJ*;MwTav{~<|L?;h@ z_9D1M&>$Q_7c(29a86fb)!8_h>0aW^qC58!AB0QDrN{DMmDCQYgnyDgIs(f#&lcmY z_)zx>+NY3Q+#OM8$9`8^Lx(d~+hvYhAaHomBfngfJnBwPH%v|q$!K93XRlhlG&Z-Y z4&@e?P}8ZBq+DC@l!{z0_Ia7XOlOs-W)}y;F5S~sJl##>B1)*{3}{O4uOvvwHei%S zk2`eqo=162n#(qQ)v}#h$*PP{>*8X;qOVina?0zJ@AXIKs4Uq6dep@#^)Krs{krG! zE^BJyM)IXHL$%B@?&xRc4!q&s3cPqE8tTBCKt9l?W!dYp-etNX=egc>!6Z^lFw0&W zY+lD*b5eyE9U{joat_?h?2MhmnRoy=-wwfz`|zHCj!C@0?5A4Aw(X+|}tAkTjO|jyI9Kl*bA|=-~xqP(=o)Sq6{B4kj#AxTCh*wD5Rh`T_ z{CEg4(ngV188T?sTFAqG*mJDlK+{ty$?yZ#2u$rYg9$aQRuOeG6J1tsm3&&HyHot! zJR;aXQs0ZMQXF?j*M1|Y0MxvDd$~~&UT`>GJ7jw6HtN>z6UR$JBsaLIa(FHgmxxq` zH@2F3;JzZCA`?Ym5Z_Scv4d)k@-()g%0B_q^u)O^e)@wARx6 z@NQd0TjTQ*X{CnFD2q}xb!~xewi4|2Eh615pK+$5mc|UcJs#3(k;N5>W>tB<(Y)pN ztq%=6=kw5bMuZ1(%V$DEll^@3+hy-^J=Zj~mUb~B8QZpuo%xjO)YcT$jkIAd>K#D$ zcw}v&^%Q*b;gnvhxkS})ji{{UKR>dmYPJ?lQss&G|R zt~jrJQ)GWyzUw5fq zoktYcj2e{lmc@WllZhHmd9~h`K8BY^XzH2E?5kK~P*TmAd(8&RAr4)cCqzWo6+-lB-Twq;{Q4-ZHs?>{7cMS{b3+~sil%%3gH&oW+_NAJ$I5HYi864eN zmiAaRIqmV+$gKmk>P^#_P0SIh9@^{izLapxBEh#|ATKy$2GNd{;K`xEgD{pR+dXhCh1C!1

V25z3+nQDsc++i~h&<=*fmwhoulA!RdbhPZ`0FnoxUQ04d@0^BMqiwqhRH(m zuvcC(j|m|}$O?Tcq_LEL!QCxTUQXo|x(pY*VZ5Y)`XHz^(NHlNb0zO%RC^fN`ygxf zV{ZL9kyGJP1S*C&KS9%v&>o&61rZ6H(P=IIGq0}mqrI2x^xq5kMk}i|ys|z5yU;Dn zT0wj+6YorlIQqItnC|sR18+`erE9Z*KcuN! z)+yu@gD}Q@dh*(QXr6EMd~ET}_{dwmw+|fI7C}Xl=`BoIYnav)^O4`A%;7(^0ko$+ zf&FcK-RNqGWAOD`^RR?^>8I%l*hFwiI%Fkd7SYk&UpSjFbI)wXv`4?nCQ`hVThx0- zxVL$Z@(l*&%3g+s<<{m4Ih*@W{0F?D;}yWH;44>AnbYg!#?C-h!8J zLq*xtrboSo+h0AwUe$54*_w(%th7}vD0@5g#54tEtYQfs0Sf&gqG(s4;Awj|UAOnm z3eFjxYXcH%qU+^CmqpRDSvhy-S}*xhre(}gA_nM7gJvBvNiSKEe1{rYg|4sm8_bC{Md&=Djcl~-!&i5VGSWZeHRab2@GoW0HSvL1G*_jqqPz4GwPtqCX z68J8~{L3aO!xRfwYo6bp)$vs*Nubv<+a56OSQvlZY7^)rIK*D5?|sejVsyk70qq?q zz9!C*XBLxbxL7q6T+)8e|A=XVv!mF?CrUe&{;E{hHS#CeiSX__Ss5$Kx6}2ayqmv7 zv8`ERkC8H=^3~u2D;60fY%DKZf0jhGGeLAFQbR@wx5R95C9b`lGKtj*!6aUgx+`{I zz=E)46e&&&J7B7k_T{=6QpTo_?!%q#&@i{7in6gse;rFJ3mYTr-Lec4peX9J4X~>r1IhFJqP8 z6?M{SttZYDBHYj+gs%qJJl=f#7uiI*qgk|8a%v7#!nU~0R~($U?Q)xH9P&VPM}5~q zg~kd7+7iMpuX)g(7jEXa{tlA38CSJf-Fr*p8qZPab;@!4dh8QY)l~KU#!zcV;Dq|Z z$qX`6&xP_-s=(j(9cU8AiPL2{4xOPhuu9IZTd!W;px-yPDv0u@8IteKBxU(#NRO|a z3jL7LuE7L}r)68{*8|phY-5#7=obW5x61$v>jL;}--bIVv7}GqGsX_!5w>$R`so(8YNp*XJ?3MIC*9uj-)eozY~u3cYBjnl zqU3iVBMYI^wvPz&5{@7B>v^?4;^Nl}iAmK%I9mEdx{S-t$!RYKrJrxo@K$5Bvy1VQ z1>F>K4MqW63+@o}QsY zkj4Ge@5>*@N5{gHBwGz;?#m{eP*LQ&Nn$#!!dGYnhMk-C6^7~(rrqkvyWWKR(YMv< zK27l8saZ487^NWN-S7>vKBB|djun14Z_D(jV9g}|P`DU5#JUhLr zKKOtrUE_D=XbiM}b9$fPB<&3%q!rdRw}tGwLfCxUQU?w=dZt_yI|*5cD!v);O4$0T zCzYs6ho;lS#Mry>_P{dKVz_}IGk+VuN>d|KF0E;zm;9&87HfAI_rk z83&-RfG{Q4Mdk1gUie7{9qTfK5eGu}t4uM0o1)kxK&#fNM7EV7BQ;b;oYKD-bSw3X zPj^zMqD>9HM#}Z>gA6=GjHRhCEOus}FpoismhdzsGCPhyu zPGA{0$0LHSc}3>u8$p&2h)PcL1#<#?fTuzkn>FT2LTyh;Y=t+Cwle?{&9ry&DN_FwPNdGo}seDynE94iO9t9r&P#}U?Las zsZFeawK3qpf?ETMt$LP4j_=5SKuO}=Lmw_tO)GYWH&9*0(;pX#3=O2OC6D>g&C+T* zM>mXD7X=5TR>r+La7(2r)&?dBmY9I)5QJa}Dc&B$tq_x`s7ICNMtP%UmW83_A{!K~ z+|f$H-qz~J`F%yGMCLz~PplD)D?s2#Y<=R^A%POdW4Ee>f{O|*o|&Ia<0c8SdM6E8ID<8QCz3aP1b@I}w zN@o}!(q(*Ao9)&$!~$f1eKOW&Tbn?^#NxK(Q@$}7yJE4=*V=c=x^$37V5VB@e(w&d z%PFa(+5PYtqBF~R&cjw?{;{-l;?x%@#I|kw*T({WcTKYE)6x;#=xJ%7RH&t_TBueN zfME*@aKG!NT!KNyZqeRAd6hY@*3(2)eVKK@WE987EEI-zqs~66SWYRlNHgzun{)gmUDcFe>%93I_FQ#! z6~HQeVq)H&fI4775fe-`o=0xI@7rL96o%Y7v`)Eo%PuIs9W;f|$TB;*#Ggj+KPe`z zj{|(dAk&>9E`UdjcN1DemI5PGDjJ7s4Zz_E9CeE82nD12#I%(eA`q!fH; zIOGxHWvx&trPiUS9;m!9a9Q*(==#G_Cf4fZbazB%6A!E>#cpjzZ*2JhQBdYO zbjHm*bA!}gL1hn}eL6EGot%~#YU!xUm*9A;=R=tPXc`*b7Y` zi5u%5!L3HJ1cIDM)!8aj89$-|xzRtz`_aI%Eu#+6k=@Re$D9WbRnyXQ_AfN1c^zhUWyb^W>W1h2cRj}AfSRu}7&2^CGE`k;!j-Rf# zt6%M>>z6IgA9WV}Aj1UVnd^>P4rewr2|NhU#IwdPzAy+dANF&}UuRS5Fj_ z9X!hUKNZee2I_J`f;+~+rqp}`g>D=mmtFaQ@+KO409J5U;e_g7aaU0fg<|m68JP?M ztM}%gFo|hq6$Rm&EJBJt{jaP+z+>RC^yLDdDP2Om$z-(5>=NKW2X{yi&JYOm#jXRw zYFC(}`vgVTVzZTJ!Al!jPPRTxXLCrnvzpVmtU;K9D&tz5zGWi-<4onew8@D|bwA%E z=wAygy6au2dF4RpY01WVD)D2(=zNvsA>4?khFwLnZxtGTr4MD8>S0mv96zM=U33H( zJ3dcpL6-}4E3XD*qWyXz-&Wj{ct8ieU(6Fmme9&mw0<$3O-)K61fci;jtR^n6%Na1 zAB}ul1_tBYIT+=TePWiae6ooZ$MPOIRCR}do5N|bNaT!WEppdvt?78+XD&FQi^IQl zG2iX{Kgx7bpFsmw);#wm+uFyk81E6cw*tT`+fQohKANvfx+erJnCjbEjQIX+`1>ym zWq*yf-FB(|Fx%CX=!Y>G12t+{>J1Z(Jb^8ILE>dzJD2sHHUB;L+H&qwX4)n=n?=`2 z=8WTQ;yAH}ZOnrv0UKm>IWo%k6-?i_J%j4!1N=SG|9-gS1UylC8_6uO<{*@g67Qz2~ zpnfLhI&1gDr8(U572t9x4E_dZ6f3v#e8~w%S?PFkiY`=Jf&)3%3fHG&!vvyp zsln1pb&#@(-s)wEg^{feizuoqQ^_5Fw6K}wJ!m4o%fSn(4&x-Z0?JLkGe7t+6}99bw&Z)$7hzi19(4} zCawm7>q%rlhLNIIRbdou5*ehrQ4H@(xfw8EjT1NS?G zvHkW%mP;onF`us3yp=W9W|U@>GnX^&{gtS{m5a|IjikY6glWfF6T+8QH*+qz{UVF&C4W}$$=j!8Z`n! zm+>Q~e;KV^7VLi^p**`|I`=TM2tQC=AvYN6N{u=i$=WMo!We4-Ez#Ub2LHtlP{)B@ za^FWAjF#DdN6`Hh` zPtI~00}O%oio&5_YJ8K@l*w6h3`9aNZ=(o_(AO0tXVY0Rug*OKFU`vd_ z%k5+h<7h5=s8b}y+pXMW;NQ6cNq0zx2DXubZs#{75mV>ZzEP2nu32aGI~;9$yxN|O z?eyLCY#IqsHoJGZ-~av*QttEH1Hm7SwZE~nHt#q z1H*XhlD-QC)HuKilqT4i|0Da1vLzoXj=ti(41&&+DB@E6Gs-XF)Mn45@PThT?pXMC zD6$^3%A06}z+*kFZDH_Weg4WKEilLHLUffVt-l5oFZkPT)r}irY;-`$V zTw*kKul={CA01Ct-haN+xB?x>IAVew%04~*ZfC&8M}_WJew?ciE1YUj(=iTOT-r0^woleS z&tScD8g`(%&)(-@+xeI5=~0&-#@RJ)7V&Li5s{Gm??V1loo~U8D74Hx_+Fd9U(DQm zXx>soE!{Ls&;H=dNxJXz@Cc;q2k7YEg81%(;dNlL@yF1W{X5{8A8+6PdK$B5z@M;% zI__*b_|-%5FTm2M$MkS9Ka$`#e&iq87Pj}v5U9>T4nm#$)S+Q{82TJ=B>1IkNxjG#--ehce{QJ`}oaFX9+)ag{ zl$)P~jI*L1yuLlVa79EEzO`00ZC^LDj8Kwn;^5?Ebzdx%UUmc*Ey!1QZv}}xbDO^A z-t>g>lg3DYl<(Z5>Z@+vo92fZv1+#ivAcirf!Tnz*X_}m9j&t@`*WehRdz{C9H5gYn$8zlp-emO-_(~`-300cTKv49!8 zXpkuz0vRW;dYzmYXWm(5{kf2*58iP7?KhF0+c&PM9t;#EYio>84mMx|mjzC#UCXOr z2R&9Rx8@Xj>2w^Eqa3@vIf8f!*3UGAnybX4Tz_Sj-~Ob}A!%?aE1ySVzd@NwvGoe|X2X53UOw$$-jxF?=I zzL%d<0;YNxg#mbyV1%aCm%=Qr#2o92K^aiu5*_nTPiVuz)?`A?Q^r6+kIcq{>(Gj9 z;cV^n}nbw@Ip^Dm%P-ydA5 zaTZlt@2vA-$kLf>I8i-#-rk<1hw!b!fcC%$?)3J^nss}rlMW*p8!G@F@E;Er<~MjW z?~U}B8_n*vC|fU9s#yoU_ePC>>NLC#;APZ#1h+F*N@m@|^jJut>h$?-ET%&%3j1ZO zH&V;Zf6P9O4y>MzSTzysGCMQX`g{r0?i-Dj#He9N;w3M_7Ov2fbPvlfOyi$l`7CSv zwWY&T3Eu1y>z`8#v);Z;W%U>kRnEUs;?%Fjrmk;SQ793vdHa5Mcj(NC0NxXnJfJh1 zWewsnKp4LjuDGYP?~1r`Qk_~UY^RYv+J0=nwP_SNu$T}KzV`zUPh{7osV_wF3j2la$E+v^4H--I4&8~ zv?PrIPcC?}jT0h@oL^S_iz*VOTwBclK$~H6EP(qYi2+RN>h@Jg*!>ykv#gn9-`u#& zP=ZZcC~b8vxIx#+WnKULNC5CDLV)h1O!9T*Q*giWQ5-UaI#^une2iI2cdoJZMgT9K zKCfi{vK(FHUe-#TD^+v|m!`28E@;`uMW<^BAAscP8Ra@#ulRVZn4_k*XJcuZdO#vAyohSZVP)%FM_MThRv8dC`WsGRuBw`G^}d`eiG6ZS$1Z_D1BGoAxweaB6uA zC;7&jDLx!r@x!lOynbOCe+MTxRza_y>r`3hR?Q^2g>}eT*b|zO4$usYiCRaN+u}y# zcs-RQ4^tZa_f^LWq(9FT<4G7N-1ViY{_YXKOZ z>XdxZ(gCYfmoI6Hd}f^*4c4hu`S0B<8v$=Pm|lNAA#rvA;wIxpGxUVAIE0r#6-e`D zFDS^e0f@55a4sqS=U>vCwH|eYYCgng697=f#ZCq_Y%&eKOtw;(PZw|jycM9zbZeo?4navHredJBWfivJ9TrX zu>w!6{yhL3nKzQwJQmb0U#j1Ok%KB-Hpmf7w)En^S^TdLlDj1!2v>8rJRG=}hqOTO z*@CYU`A#8!K1h-UDbZi+V_?|JLxo^=;j0j*-8+!SQoSH*RA0#9yR?^wOu+0o=g_nN zx9z`{8&E!&VOsQ&yAQu>qo}95vb;xd>+W4JSpXS+rdsaryl=c{)UJEn zXOdblV9+#LAVQ~F!K!eruE51_kmGXj@@fk8)@CcKcSs&@``npJxfCR3)c9;?Q0#v) zBtx-d(~|3iLJdBhxtW%}oS(yejkG@0?e1KU-1D2tFYAt5o$<*L)D_!ypB7PY6i7FJ z{u4a^2f0F^4OtblT~+AJy0Z$?hMRJ^(5QEg`TqS1v5j3?KluMYoKw=B{mSPM^af~^ zbE$lRcMiTKBq9$CO;ZA>9-e&VhmZVVhEm}NvD3W<=MWqf^x-TrnN~4Ks-bCsDFr7a zrtUU3N_x3}(R~xf!5EaRs$EOCk3|E-aGFWvdzRpTq`qS&s{T?qmaWVOXP@6YLWZPD z^`_siAdBk!^BY-wCJtBOE>>mYkAANCB#%6M^z7Gb*Aw=K?!R>Ev{;?{3n_*tH~Azg zJ1G_lO}Ha^&#CK_^vP=7srsOiqo!^7O7q_B-vah)J~?yj^tC!pvlA;a*Y(eyj{YP+ z6=%nDB}~-sBlAZX&ZAvh(4ieknBQ3FfN!9y)_x(#H~zITt2!-jPnf)U`WP)eQw8#` z%H(e+y-T*z3ZJLi850eWMUj;y(!-a>KDIB z`YH{mNW>$vKlYNAtC6zhiBfHveLPZEL}J9s91*y7%QTg5+w>C+9s2{}RjU8^O#{!UJ<7Vd7s%ia{V{&-(aytr5ke-3>C$3da&a&EGXwCWG^Usx zy=^~Q```P1H=KlsRpij!{Et}v{_5u+F6se;`2WU;dcq}qcWvtcrApY3bf59(n;J3h zUL>$+A2%T65!@NI)fW;8)4qJJoB0FV-HYWbLmMV)u|`NCUy$2V5VUF6@rQb*{L2$S58f>(bM4k8sJ^Z}cSHqYpQuwN9KnqWMG6YYXT3f5 z?&=iSXkj9mro?VXs+J&ga=L2we$YnoLJjc??ed(gdK%8OJuWW63Xk7ZFFG-;=TnJ{ zZ@1dLVoRN|Z47L_C+TST(henE6B6mX7+h1n`E|O#On^rSGhOcb<#o#4l9H=@cJrsr zQH}JaO>4|msZgj=_3A*q@yfF=_xk&4=A(}+e_aVGu!N{|2|qu)$jatNb(^4`>&dsa zXzl<0DZU|ays6P9Iz`E_pIPGyC6U^YX^x4cR zs?WI7@k9R8u~McydDPYbJze8-NvnVkudh!SAe!#AMNiKjir(IeTzo+e;hr<&*c6*8 zX15z{;#ExSfNxsbA!lS8d(nxs(o~Fh8Nx=gNAs`dZu{vN4Xzx~8*+CuGq(;xd%5bL zy;@pa+*pBuv&hK)R8ViUWTc`4yX*spjH^52c9PR7@LC4ZQ&!Xt2MH0mSw6gGwhtZk^~p z0xpQxGlfrL^L-J8b;BbhvHj0w|175NQ1cThk$gku-vytDbi487dUkT7u0p z>4Ky9TOwzLO`H~ogBR@9M+Wn-Z3cHYv3)ECefI=_@|qOUQtXxx%5$=-tHyx9 z%4}fUPwi_mTKaAau9Wzq5d)_X5i!^;wBL?H|QHC2miLU!$|cFN;59|qBQw-GxV_vxz{7?u7{JUzqX zH@xR>T~AeTk42*mdv<(;DGJ&mzV}VhOC}fEShO&;9F; z^GEHx?d|$v$D18CZtN_&g_-%4=ajO8uFjRc?VuN|cI)InWQVjJ_gwBkm5b^RRI_>V z3io1BaH5pQ8YcwW(cGNE3SaqDho1Hd`()Q!f*F^Ea4GCdzfG(R(ixBG*gWgyj8>Uh zy61P)AE)nTgwqI+xZvbiE$Hm%8Mhg+ObCoc(52+$SchC}H<;!}cs}NM2ZE?40&*F< zHT=8VWT~=;gTjJYBk9}-qe?W2EDP^E?(68-GxK@5$j4vKOs$yiINP%kAIr)$1aZ)L zjHz&nMZmSLoR`(pTfX&qv__kSO0u+a`ebwSyEg6|bChtpBD)AwbKIM_F6cYi$|DB1 zMcFyb%o`(y^>_svp4@B|iP_4Q@)<*AQs};Tz1txBv6S$^Pr|sUy2P-W)m%^M2uk{r z0}5fFG2$V#Lg!959j>_!G$%yrdv2b$(>){Njv1~6rGj6GS>@?!RQf5i4ac>Mg z0@oNKTs}=`UV)b_O9O}I^_m1Imx%d5ndtovkVnZ0BB~X2InWF^`O357x6Nh@# z^qV<$&-0q#v~Av4NOwI?yS>Du@qo^)OStKS6RNt(Hq#9Ep5)4qJrk}9>Dy;7R<493 zceOuN&$E$SEq2hEB7B9&GYWDYWp=)Mcpg>OWN0}Bc}@7Lis023z3>M%FCbv3u0*nY zwafA2$RL73+D1SBtt}dQnLN%+JDLEs*lkF1QQGJ0*$#H<=ky$Mij3TAGYp~6M3sc^ zUvChn6*w6L!cGxQXyw6(b5GN0i@5RJDp;RxM2!i7i)-+c(vaxbaizD06&$LJD9 z6SrAf=P(s}7O+t*AEqk=9YKt3H*ktTz3G}r0S>jTMF&)eT6e-0yqEw}c<_ zF5Ld;&t~*>>2$%e?*c*o&1N*=%0qd@VF+wQ)lt6Nb=IGHSWyio_?lX-%0MMO@MS^j zEMhV|%U~WEF9C^j(ay#|by)qW+GC>=hD30i=6v&?*FtAnt8k4ulHSz=oI@P)Nn6#! z6r9=>yR~?!q>=p(6sza);5bm#;jC3DmOHAh4%C{R0%}6(uj54^1(4*6_fw z&5isY2Vod#Z!hh$7gEpn6Or)ZCKTk;n^((%8lPsj-LN@XL6$`P$TT7y#wi?Mj9Kk& z7oQmqeZMun)U|NGr+uq=3tvjDL%+2WU0jiDeWd82{2es99M?PmH-@;O6Iz0jf-Dt87k)-EwGm$rzCft74@JEM`m#zl}gMKk+%EJ8gz-qu* zA$)`7)CV=R#5ra-I0MVSG!g<}+Gd0-TpVK}{GoH4BljHwW65tJGpE9bwh(HY441=V91PbYo^| zrzOsECTwnujp%3z;;Rz(eu)ku1|dsfjiDE5D}H>BTo6q8i9+%I-3nePpX_!yR_Rcb zvnpYfRf4AZ!kjkDOU~nSs^p7$nZrT1$DcO@>nSYv6fqh1FG92XE3xOU^#&k`IYLI8 zOAMlw5`B+GV*XHyjn%0PoZHSf>?*t^VZ(U&5*|B)B(z|@`1Ph!RpI7?5|JD0oXm?H z`XC(}E9)fNEk1FIiVVbwbj?#G`Z+nrn-fcvB)n%!fZnng2*35ZtLyw_*_;?(<04Yn zxF+NuTuA$leYk~Y4>jdC@lv=j1xZ{NrSbH&eJN>aSK*M>vBE5kYiWmsx{CQFZFXI! z_t8D{$x`ez(zE%{axEL@cwpFtre_6yZ|8`UIB#0HMBPZv05LB0PJXH?tDP@7`8gPn zM8Ds{693@i)+eqmX;nHIyf2Q`W^)Nl<7t@z)!q_j-E@P3BZ$Wamme>Zo6XmNpIQcSd{nSUO;S*qZetF}+Ey9q3v$(F}im^bHA^ zUfCP?)^fve61!}o?0>oCS}iUatG73h@a}ms2UAv^^Whg$Pww|%y@Mj(8w_l6=91@Z zlncm$Ti-I8oV?}p)jiaMRW}W&dc@?E^==jL;uW6`k9BK1{Oz!oY>tWQS7goG7f|~& z_6kL|$bXj1tr}^Dnv`C!Q59~!4Q<}8a+6K!2#$Bxb~oiHI(Dj4hYUoH3pp8|r2pQ| z&q{QfRdx=Mkj6l<^46jQKb^MJxkF-=R@R$eiC#=KUXE(nS~cfDT|iZN!(x=mr*bHU zbnKD>Rv=U+M0)UGNZH{*1K^al!Y>EcGJ&QQ{2xXHwZHX%0J!dp(kVZ8!oY1jBDb)w zvZve&Q|#DBU}J4xyKeuz!vFr^BVdl3d*P5RyUi>}Lq-EP7%e8Umq#`LF4l%d>VVfD z|1F09_TiKYcqw<7?1jBNQUj*8G3w5_7r8wEKJekn^pCpMekQ=LppSsR#@%M(zpddP z1Ng`TjgV)F-^(MLU}}>PbWYqJ&d^Zc0Ard{!}jtBNm(}+Vd1-utiYaJ24~b2SI3>N zIsDb~RsjDo1_dj#-@Ot%mLi1_=R*|t@`x9h8m0=Tz8CuAzs7UwU*kFTuklFzYdli_ ko;*JPo;={>sU_|s7dE6bOEgCO2L9c?sdyvzy5W=m2P#9P1ONa4 literal 270076 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�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 z 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 F{{Wy@T37%8 From c96a9c017f073ad6eebd5f750999a75ee59828b8 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 15 Apr 2025 11:49:30 +0300 Subject: [PATCH 039/142] Added cfdoc_codeblock_resolver to pre-process scripts Ticket: ENT-12752 cfdoc_codeblock_resolver searches for code block headers that include specific flags (file=..., noindent, noparse, noeval), and moves those findings to a new line inside square brackets. If any changes are made, the file is updated. Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 5364c63e9f3cb161fc5ec3f5916da8793b4b5e5e) --- .../_scripts/cfdoc_codeblock_resolver.py | 56 +++++++++++++++++++ generator/_scripts/cfdoc_preprocess.py | 9 +++ 2 files changed, 65 insertions(+) create mode 100644 generator/_scripts/cfdoc_codeblock_resolver.py diff --git a/generator/_scripts/cfdoc_codeblock_resolver.py b/generator/_scripts/cfdoc_codeblock_resolver.py new file mode 100644 index 000000000..1ce216bf5 --- /dev/null +++ b/generator/_scripts/cfdoc_codeblock_resolver.py @@ -0,0 +1,56 @@ +import re + +def run(config): + markdown_files = config["markdown_files"] + for file in markdown_files: + process(file) + +def process(file_path): + """ + Reads a markdown file, searches for code block headers that include specific flags + (file=..., noindent, noparse, noeval), and moves file=... finding to a new line inside + square brackets and ignores the rest flags as we don't use them in the markdown rendering. + """ + try: + # Read the file + with open(file_path, 'r', encoding='utf-8') as file: + content = file.read() + + # Find and replace codeblocks + transformed_content = transform_codeblocks(content) + + # Write file if content was changed + if transformed_content != content: + with open(file_path, 'w', encoding='utf-8') as file: + file.write(transformed_content) + + except Exception as e: + print(f"Error processing file {file_path}: {str(e)}") + raise + +def transform_codeblocks(content): + """ + Find code block headers that include file=... and optional flags (noindent, noparse, noeval), + remove all flags except file=... because we don't process them in docs, + and move file=... to a new line inside square brackets. + """ + + pattern = re.compile( + r'^```([a-zA-Z0-9_-]+)' # language + r'((?:\s+(file=[^\s]+|noindent|noparse|noeval))+)\s*$', # flags + re.MULTILINE + ) + + def replacer(match): + language = match.group(1) + all_flags = match.group(2) + + # Extract the file=... part + file_flag_match = re.search(r'file=[^\s]+', all_flags) + if file_flag_match: + file_flag = file_flag_match.group() + return f"```{language}\n[{file_flag}]" + else: + return f"```{language}" + + return pattern.sub(replacer, content) diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index b6f2a3663..7d6d2cb9f 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -25,6 +25,7 @@ import cfdoc_environment as environment import cfdoc_metadata as metadata import cfdoc_linkresolver as linkresolver +import cfdoc_codeblock_resolver as codeblock_resolver import cfdoc_macros as macros import cfdoc_printsource as printsource import cfdoc_git as git @@ -52,6 +53,14 @@ print(sys.exc_info()) exit(3) +try: + codeblock_resolver.run(config) +except: + print("cfdoc_preprocess: Fatal error processing codeblocks") + sys.stdout.write(" Exception: ") + print(sys.exc_info()) + exit(3) + try: macros.run(config) except: From ff90fdc4cd6c3622cc2efdfc7231f88b0e924262 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 23 Apr 2025 12:58:43 +0300 Subject: [PATCH 040/142] Updated code snippets to follow new pattern Signed-off-by: Ihor Aleksandrychiev --- cheatsheet.markdown | 3 +-- examples.markdown | 9 +++------ .../promise-patterns/example_ssh_keys.markdown | 3 +-- examples/tutorials/custom_inventory.markdown | 3 +-- ...tribute-files-from-a-central-location.markdown | 12 ++++-------- examples/tutorials/files-tutorial.markdown | 12 ++++-------- .../integrating-alerts-with-pager-duty.markdown | 3 +-- .../integrating-with-sumo-logic.markdown | 3 +-- .../json-yaml-support-in-cfengine.markdown | 3 +-- examples/tutorials/manage-local-users.markdown | 3 +-- examples/tutorials/manage-ntp.markdown | 15 +++++---------- examples/tutorials/manage-packages.markdown | 9 +++------ .../manage-processes-and-services.markdown | 3 +-- .../render-files-with-mustache-templates.markdown | 3 +-- ...ventory_remediate_sec_vulnerabilities.markdown | 6 ++---- .../reporting/command-line-reports.markdown | 3 +-- examples/tutorials/write-cfengine-policy.markdown | 6 ++---- .../authoring-policy-tools-and-workflow.markdown | 6 ++---- .../bundles-best-practices.markdown | 3 +-- getting-started/developing-modules.markdown | 3 +-- .../installation/general-installation.markdown | 6 ++---- .../installation/local-virtual-machine.markdown | 3 +-- .../installation/secure-bootstrap.markdown | 9 +++------ .../installation/version-control.markdown | 6 ++---- getting-started/writing-policy.markdown | 12 ++++-------- web-ui/custom-actions-for-alerts.markdown | 3 +-- .../client-initiated-reporting.markdown | 3 +-- web-ui/enterprise-reporting/reporting_ui.markdown | 3 +-- .../hub_administration/enable-plain-http.markdown | 3 +-- .../extending-mission-portal.markdown | 3 +-- .../hub_administration/policy-deployment.markdown | 6 ++---- .../public-key-distribution.markdown | 3 +-- .../hub_administration/reset-admin-creds.markdown | 9 +++------ 33 files changed, 60 insertions(+), 120 deletions(-) diff --git a/cheatsheet.markdown b/cheatsheet.markdown index 372d2d174..e2adb9f23 100644 --- a/cheatsheet.markdown +++ b/cheatsheet.markdown @@ -276,8 +276,7 @@ These two blocks will be joined into one element on the UI. You can specify file name of the code block by adding `[file=Name of the file]` in the first line. This line won't be shown in the resulting HTML (it will be converted to the heading / frame). -```cf3 -[file=policy.cf] +```cf3 file=policy.cf bundle agent hello_world { meta: diff --git a/examples.markdown b/examples.markdown index d8716cdfd..1a19c9e6a 100644 --- a/examples.markdown +++ b/examples.markdown @@ -106,8 +106,7 @@ Go back into vi by typing "vi" at the prompt. Then type ```i``` to insert __body common control__ to `hello_world.cf`. Place it above __bundle agent hello_world__, as shown in the following example: -```cf3 -[file=hello_world.cf] +```cf3 file=hello_world.cf body common control { bundlesequence => { "hello_world" }; @@ -136,8 +135,7 @@ notice: R: Hello World! **Note:** It may be necessary to add a reference to the standard library within the body common control section, and remove the `bundlesequence` line. Example: -```cf3 -[file=hello_world.cf] +```cf3 file=hello_world.cf body common control { inputs => { @@ -157,8 +155,7 @@ Again type "vi" then "Enter" then ```i``` to insert the following: Add it before __body common control__, as shown below: -```cf3 -[file=hello_world.cf] +```cf3 file=hello_world.cf #!/var/cfengine/bin/cf-agent --no-lock body common control { diff --git a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown b/examples/example-snippets/promise-patterns/example_ssh_keys.markdown index b7a5bb229..af4b9fe0f 100644 --- a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown +++ b/examples/example-snippets/promise-patterns/example_ssh_keys.markdown @@ -14,8 +14,7 @@ the [Masterfiles Policy Framework][Masterfiles Policy Framework]. The you do not have a `def.json` in the root of your masterfiles directory simply create it with the following content. -```json -[file=def.json] +```json file=def.json { "classes": { "services_autorun": [ "any" ] diff --git a/examples/tutorials/custom_inventory.markdown b/examples/tutorials/custom_inventory.markdown index 551ceb1df..7827f7a1f 100644 --- a/examples/tutorials/custom_inventory.markdown +++ b/examples/tutorials/custom_inventory.markdown @@ -46,8 +46,7 @@ information we will write an inventory policy to report that information. Create `/var/cfengine/masterfiles/services/tutorials/inventory/owner.cf` with the following content: -```cf3 -[file=owner.cf] +```cf3 file=owner.cf bundle agent tutorials_inventory_owner # @brief Inventory Owner information # @description Inventory owner information from `/vagrant/inventory_owner.csv`. diff --git a/examples/tutorials/distribute-files-from-a-central-location.markdown b/examples/tutorials/distribute-files-from-a-central-location.markdown index 77a5504f3..a90580130 100644 --- a/examples/tutorials/distribute-files-from-a-central-location.markdown +++ b/examples/tutorials/distribute-files-from-a-central-location.markdown @@ -47,8 +47,7 @@ These variables provide path definitions for storing and deploying patches. Add the following variable information to the `masterfiles/def.cf` file: -```cf3 -[file=def.cf] +```cf3 file=def.cf "dir_patch_store" string => "/storage/patches", comment => "Define patch files source location", @@ -75,8 +74,7 @@ promise type in a `server` bundle. The default access rules defined by the MPF ( There is no need to modify the vendored policy, instead define your own server bundle. For our example, add the following to `services/main.cf`: -```cf3 -[file=main.cf] +```cf3 file=main.cf bundle server my_access_rules { access: @@ -95,8 +93,7 @@ use is a good idea. This information is stored in a custom library. Create a custom library called `lib/custom/files.cf`. Add the following content: -```cf3 -[file=files.cf] +```cf3 file=files.cf bundle agent sync_from_policyserver(source_path, dest_path) # @brief Sync files from the policy server to the agent # @@ -121,8 +118,7 @@ policy by services. Create `services/patching.cf` with the following content: -```cf3 -[file=patching.cf] +```cf3 file=patching.cf # Patching Policy bundle agent patching diff --git a/examples/tutorials/files-tutorial.markdown b/examples/tutorials/files-tutorial.markdown index da898bd6e..8499025cd 100644 --- a/examples/tutorials/files-tutorial.markdown +++ b/examples/tutorials/files-tutorial.markdown @@ -84,8 +84,7 @@ Note: The following workflow assumes the directory /home/user already exists. If ## Create a File -```cf3 -[file=file_create.cf] +```cf3 file=file_create.cf bundle agent testbundle { files: @@ -126,8 +125,7 @@ rm /home/user/test_plain.txt ## Delete a File -```cf3 -[file=file_delete.cf] +```cf3 file=file_delete.cf body common control { inputs => { @@ -193,8 +191,7 @@ ls /home/user/test_plain.txt /var/cfengine/bin/cf-agent --no-lock --file ./file_test.cf --bundlesequence list_file,list_file_2 ``` -```cf3 -[file=file_modify.cf] +```cf3 file=file_modify.cf body common control { inputs => { @@ -292,8 +289,7 @@ rm /home/user/test_plain.txt ## Copy a file and edit its text -```cf3 -[file=file_copy.cf] +```cf3 file=file_copy.cf body common control { inputs => { diff --git a/examples/tutorials/integrating-alerts-with-pager-duty.markdown b/examples/tutorials/integrating-alerts-with-pager-duty.markdown index b24599b84..63b3e9f1b 100644 --- a/examples/tutorials/integrating-alerts-with-pager-duty.markdown +++ b/examples/tutorials/integrating-alerts-with-pager-duty.markdown @@ -28,8 +28,7 @@ touch /tmp/file-integrity Insert the following policy into `/tmp/file_example.cf` -```cf3 -[file=file_example.cf] +```cf3 file=file_example.cf bundle agent file_integrity { files: diff --git a/examples/tutorials/integrating-with-sumo-logic.markdown b/examples/tutorials/integrating-with-sumo-logic.markdown index 346c09a0b..74fcf02bb 100644 --- a/examples/tutorials/integrating-with-sumo-logic.markdown +++ b/examples/tutorials/integrating-with-sumo-logic.markdown @@ -158,8 +158,7 @@ As we can see above CFEngine detected a change on `Thursday Oct 2 at 01:16:42` a The policy as found in `sumologic_policy_update.cf`. -```cf3 -[file=sumo_logic_policy_update.cf] +```cf3 file=sumo_logic_policy_update.cf bundle agent sumo_logic_policy_update { vars: diff --git a/examples/tutorials/json-yaml-support-in-cfengine.markdown b/examples/tutorials/json-yaml-support-in-cfengine.markdown index 5d7faf689..62259ade0 100644 --- a/examples/tutorials/json-yaml-support-in-cfengine.markdown +++ b/examples/tutorials/json-yaml-support-in-cfengine.markdown @@ -76,8 +76,7 @@ expressions or class names. Easy, right? -```cf3 -[file=json_example.cf] +```cf3 file=json_example.cf body common control { bundlesequence => { "run" }; diff --git a/examples/tutorials/manage-local-users.markdown b/examples/tutorials/manage-local-users.markdown index ce8d4f1e4..a8bfbf85c 100644 --- a/examples/tutorials/manage-local-users.markdown +++ b/examples/tutorials/manage-local-users.markdown @@ -30,8 +30,7 @@ Create user group security and webadmin. Create a file `/tmp/users.cf` with the following content: -```cf3 -[file=users.cf] +```cf3 file=users.cf body common control { inputs => { "$(sys.libdir)/stdlib.cf" }; diff --git a/examples/tutorials/manage-ntp.markdown b/examples/tutorials/manage-ntp.markdown index d691d7749..3635782b2 100644 --- a/examples/tutorials/manage-ntp.markdown +++ b/examples/tutorials/manage-ntp.markdown @@ -12,8 +12,7 @@ Note: For simplicity, in this tutorial we will work directly on top of the Maste ## Ensuring the NTP package is installed -```cf3 -[file=ntp.cf] +```cf3 file=ntp.cf bundle agent ntp { vars: @@ -99,8 +98,7 @@ classes => results("bundle", "ntp_package_"); On your hub create `services/ntp.cf` inside *masterfiles* with the following content: -```cf3 -[file=ntp.cf] +```cf3 file=ntp.cf bundle agent ntp { vars: @@ -181,8 +179,7 @@ Now we will extend the policy to ensure that the NTP service is running. Now that the NTP service has been installed on the system, we need to make sure that it is running. -```cf3 -[file=ntp.cf] +```cf3 file=ntp.cf bundle agent ntp { vars: @@ -520,8 +517,7 @@ Next we will augment file/template management with data sourced from a JSON data CFEngine offers out-of-the-box support for reading and writing JSON data structures. In this tutorial, we will default the NTP configuration properties in policy, but provide a path for the properties to be overridden from Augments. {% raw %} -```cf3 -[file=ntp.cf] +```cf3 file=ntp.cf bundle agent ntp { vars: @@ -663,8 +659,7 @@ We do not expect to see the ntp configuration file modified or the service to be Now, let's modify `def.json` (in the root of masterfiles) and define some different values for `driftfile` and `servers`. Modify `def.json` so that it looks like this: -```json -[file=def.json] +```json file=def.json { "inputs": [ "services/ntp.cf" ], "vars": { diff --git a/examples/tutorials/manage-packages.markdown b/examples/tutorials/manage-packages.markdown index ce9c09269..c248e7585 100644 --- a/examples/tutorials/manage-packages.markdown +++ b/examples/tutorials/manage-packages.markdown @@ -14,8 +14,7 @@ given the recent disclosure of the Heartbleed vulnerability. If we simply want to make sure the latest version of OpenSSL is installed in all our hosts, we can use the packages promise type, like this: -```cf3 -[file=manage_packages.cf] +```cf3 file=manage_packages.cf body common control { inputs => { "$(sys.libdir)/stdlib.cf" }; @@ -82,8 +81,7 @@ which telnet Making sure this package is removed from the system is easy. Let's add one more promise to our previous policy, this time using the absent policy: -```cf3 -[file=manage_packages.cf] +```cf3 file=manage_packages.cf body common control { inputs => { "$(sys.libdir)/stdlib.cf" }; @@ -138,8 +136,7 @@ Copy `manage_packages.cf` to `/var/cfengine/masterfiles/` on your policy hub. In `/var/cfengine/masterfiles/def.json`, add `manage_packages.cf` to the inputs declaration, and `manage_packages` to the bundlesequence declaration. -```json -[file=def.json] +```json file=def.json { "inputs": [ "manage_packages.cf" ], "vars": { diff --git a/examples/tutorials/manage-processes-and-services.markdown b/examples/tutorials/manage-processes-and-services.markdown index 010d8a956..8b53417b3 100644 --- a/examples/tutorials/manage-processes-and-services.markdown +++ b/examples/tutorials/manage-processes-and-services.markdown @@ -17,8 +17,7 @@ Using CFEngine to ensure certain processes are running is extremely easy. Create a new file called `ensure_process.cf`: -```cf3 -[file=ensure_process.cf] +```cf3 file=ensure_process.cf body file control { inputs => { "$(sys.libdir)/stdlib.cf" }; diff --git a/examples/tutorials/render-files-with-mustache-templates.markdown b/examples/tutorials/render-files-with-mustache-templates.markdown index b7f692dae..c61a5fd41 100644 --- a/examples/tutorials/render-files-with-mustache-templates.markdown +++ b/examples/tutorials/render-files-with-mustache-templates.markdown @@ -59,8 +59,7 @@ Allowed users {{#users}} Create a file called `/tmp/editconfig.cf` with the following content: -```cf3 -[file=editconfig.cf] +```cf3 file=editconfig.cf bundle agent myapp_confs { files: diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown b/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown index 28c93dc83..b962cfd6b 100644 --- a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown +++ b/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown @@ -37,8 +37,7 @@ This bundle will check if the host is vulnerable to the CVE, define a class *CVE_2014_6217* if it is vulnerable and augment Mission Portals Inventory interface in CFEngine Enterprise. -```cf3 -[file=inventory_CVE_2014_6271.cf] +```cf3 file=inventory_CVE_2014_6271.cf bundle agent inventory_CVE_2014_6271 { meta: @@ -156,8 +155,7 @@ Now that we know the extent of exposure lets ensure bash gets updated on some of the affected systems. Save the following policy into `services/autorun/remediate_CVE_2014_6271.cf` -```cf3 -[file=remediate_CVE_2014_6271.cf] +```cf3 file=remediate_CVE_2014_6271.cf bundle agent remediate_CVE_2014_6271 { meta: diff --git a/examples/tutorials/reporting/command-line-reports.markdown b/examples/tutorials/reporting/command-line-reports.markdown index c4cb2af2a..946b3981a 100644 --- a/examples/tutorials/reporting/command-line-reports.markdown +++ b/examples/tutorials/reporting/command-line-reports.markdown @@ -130,8 +130,7 @@ reports: The outcome of this promise is a file called /tmp/report.html which contains the following output: -```html -[file=report.html] +```html file=report.html Name of this host is: atlas
Type of this host is: linux
diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index 703372626..7479ce39c 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -76,8 +76,7 @@ Now let's put the bundle, promise type and class components together in a final policy. As for classes we will use linux to define that the file `/tmp/hello-world` must exists on all hosts of type *linux*: -```cf3 -[file=my_test.cf] +```cf3 file=my_test.cf bundle agent my_test { files: @@ -166,8 +165,7 @@ Now we need to tell CFEngine that there is a new policy in town: 1. Create `/var/cfengine/masterfiles/def.json` with the following content: -```json -[file=def.json] +```json file=def.json { "inputs": [ "my-policy.cf" ] } diff --git a/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown b/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown index fd2aec037..4f9a0626d 100644 --- a/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown +++ b/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown @@ -107,8 +107,7 @@ git remote -v 1. Create a new file in `/var/cfengine/masterfiles` with a unique filename (e.g. `vcs_update.cf`) 2. Add the following text to the `vcs_update.cf` file: -```cf3 -[file=vcs_update.cf] +```cf3 file=vcs_update.cf bundle agent vcs_update { commands: @@ -126,8 +125,7 @@ body contain masterfiles_contain 3. Save the file. 4. Add bundle and file information to `/var/cfengine/masterfiles/promises.cf`. Example (where `...` represents existing text in the file, omitted for clarity): -```cf3 -[file=promises.cf] +```cf3 file=promises.cf body common control { diff --git a/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown b/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown index b53f371cb..a665dd777 100644 --- a/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown +++ b/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown @@ -60,8 +60,7 @@ will occur for a list of (multiple) names or promisers, then use a bundle to sim Write the promises (which may or may not be ordered) using a parameter for the different names, and then call the method passing the list of names as a parameter to reduce the amount of code. -```cf3 -[file=testbundle.cf] +```cf3 file=testbundle.cf bundle agent testbundle { vars: diff --git a/getting-started/developing-modules.markdown b/getting-started/developing-modules.markdown index 5d114df26..2ade90fbd 100644 --- a/getting-started/developing-modules.markdown +++ b/getting-started/developing-modules.markdown @@ -33,8 +33,7 @@ cfbs add https://github.com/cfengine/promise-type-template From that repo, we have now added a new promise type, it is called `git_example` to avoid confusion with the "real" git promise type used earlier in the tutorial. Then, we should edit our policy example, `my_policy.cf` to use this module: -```cfengine3 -[file=my_policy.cf] +```cfengine3 file=my_policy.cf bundle agent hello_world { meta: diff --git a/getting-started/installation/general-installation.markdown b/getting-started/installation/general-installation.markdown index 0cafd8f3a..7d91869c4 100644 --- a/getting-started/installation/general-installation.markdown +++ b/getting-started/installation/general-installation.markdown @@ -81,8 +81,7 @@ together. The preferred way of setting `def.mailfrom` is from the [augments file][Augments]. -```json -[file=def.json] +```json file=def.json { "vars": { @@ -107,8 +106,7 @@ ensure they have taken effect. The preferred way to disable the agent from sending emails is to define `cfengine_internal_disable_agent_email` from the [augments file][Augments]. -```json -[file=def.json] +```json file=def.json { "classes": { "cfengine_internal_disable_agent_email": [ "any" ] diff --git a/getting-started/installation/local-virtual-machine.markdown b/getting-started/installation/local-virtual-machine.markdown index 384eb42e2..8e9621122 100644 --- a/getting-started/installation/local-virtual-machine.markdown +++ b/getting-started/installation/local-virtual-machine.markdown @@ -67,8 +67,7 @@ touch Vagrantfile && code Vagrantfile Put this in your `Vagrantfile`: -```ruby -[file=Vagrantfile] +```ruby file=Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : diff --git a/getting-started/installation/secure-bootstrap.markdown b/getting-started/installation/secure-bootstrap.markdown index 56a564206..ec7c8d81a 100644 --- a/getting-started/installation/secure-bootstrap.markdown +++ b/getting-started/installation/secure-bootstrap.markdown @@ -40,8 +40,7 @@ In the end, you will not be running these commands manually, but rather putting In order to specify and limit which hosts (IP addresses) are considered trusted and allowed to connect and fetch policy files, you can put the trusted IP addresses and subnets into the ```acl``` variable: -```json -[file=/var/cfengine/masterfiles/def.json] +```json file=/var/cfengine/masterfiles/def.json { "variables": { "default:def.acl": ["192.0.2.42", "198.51.100.7"] @@ -77,8 +76,7 @@ In all cases, it is recommended to disable automatic trust when you are not usin Either immediately after installation (if distributing keys through another channel, see below) or after you are done bootstrapping clients. You can edit the augments file to achieve this: -```json -[file=/var/cfengine/masterfiles/def.json] +```json file=/var/cfengine/masterfiles/def.json { "variables": { "default:def.trustkeysfrom": [] @@ -90,8 +88,7 @@ If you are using CFEngine Build, you can achieve this by adding [this module](ht When combined with the variable above, you can create a very restricted setup: -```json -[file=/var/cfengine/masterfiles/def.json] +```json file=/var/cfengine/masterfiles/def.json { "variables": { "default:def.acl": ["192.0.2.42", "198.51.100.7"], diff --git a/getting-started/installation/version-control.markdown b/getting-started/installation/version-control.markdown index 51a9c59c4..eadd468e8 100644 --- a/getting-started/installation/version-control.markdown +++ b/getting-started/installation/version-control.markdown @@ -35,8 +35,7 @@ We can use a Git update hook to prevent a change from being made unless it passes syntax checking. The idea is to check out the revision in a temporary directory and run `cf-promises` on it. Here is an example hook. -```shell -[file=update] +```shell file=update #!/bin/sh # --- Command line @@ -82,8 +81,7 @@ For subversion, the principle is essentially the same. Note that for a post-commit hook the check is run after update, so the repository may be left with a syntax error, but the committer is notified. -```shell -[file=post-commit] +```shell file=post-commit #!/bin/sh REPOS="$1" diff --git a/getting-started/writing-policy.markdown b/getting-started/writing-policy.markdown index 8db80a6ea..890783487 100644 --- a/getting-started/writing-policy.markdown +++ b/getting-started/writing-policy.markdown @@ -26,8 +26,7 @@ code . Let's take a look at the traditional "Hello, world!" example: -```cfengine3 -[file=my_policy.cf] +```cfengine3 file=my_policy.cf bundle agent hello_world { files: @@ -101,8 +100,7 @@ cf-remote sudo -H hub "rm /tmp/hello && cf-agent -KI" Earlier in this tutorial series, we added the `promise-type-git` module to our project. This means that we can just start using the new promise type in policy: -```cfengine3 -[file=my_policy.cf] +```cfengine3 file=my_policy.cf bundle agent hello_world { git: @@ -133,8 +131,7 @@ This has several benefits: Here is a simple example: -```cfengine3 -[file=my_policy.cf] +```cfengine3 file=my_policy.cf bundle agent hello_world { vars: @@ -168,8 +165,7 @@ git log -1 --format="%H" We want to put this in a variable and include it in our reports we can see in Mission Portal. To take the output of a command and put it in a variable, we will use the `execresult()` function: -```cfengine3 -[file=my_policy.cf] +```cfengine3 file=my_policy.cf bundle agent hello_world { vars: diff --git a/web-ui/custom-actions-for-alerts.markdown b/web-ui/custom-actions-for-alerts.markdown index 86fe2679a..5ac8ca00f 100644 --- a/web-ui/custom-actions-for-alerts.markdown +++ b/web-ui/custom-actions-for-alerts.markdown @@ -105,8 +105,7 @@ When you get this to work as expected on the commmand line, you are ready to upl The following Custom action script will log the status and definition of a policy alert to syslog. -```bash -[file=cfengine_custom_notification_policy_syslog.sh] +```bash file=cfengine_custom_notification_policy_syslog.sh #!/bin/bash source $1 diff --git a/web-ui/enterprise-reporting/client-initiated-reporting.markdown b/web-ui/enterprise-reporting/client-initiated-reporting.markdown index a9659a67e..8c7341643 100644 --- a/web-ui/enterprise-reporting/client-initiated-reporting.markdown +++ b/web-ui/enterprise-reporting/client-initiated-reporting.markdown @@ -19,8 +19,7 @@ Call collect and Client Initiated Reporting are the same, they both refer to the The easiest way to enable call collect is via augments files, modify `/var/cfengine/masterfiles/def.json` on the hub: -```json -[file=def.json] +```json file=def.json { "classes": { "client_initiated_reporting_enabled": [ "any" ] diff --git a/web-ui/enterprise-reporting/reporting_ui.markdown b/web-ui/enterprise-reporting/reporting_ui.markdown index bbcbab5b5..d25a651a0 100644 --- a/web-ui/enterprise-reporting/reporting_ui.markdown +++ b/web-ui/enterprise-reporting/reporting_ui.markdown @@ -59,8 +59,7 @@ the following defines the attribute `Role` which is set to `database_server`. You need to add it to the top-level `bundlesequence` in `promises.cf` or in a bundle that it calls. -```cf3 -[file=promises.cf] +```cf3 file=promises.cf bundle agent myreport { vars: diff --git a/web-ui/hub_administration/enable-plain-http.markdown b/web-ui/hub_administration/enable-plain-http.markdown index 7de763a7b..2aea383c4 100644 --- a/web-ui/hub_administration/enable-plain-http.markdown +++ b/web-ui/hub_administration/enable-plain-http.markdown @@ -12,8 +12,7 @@ If you would like to enable plain HTTP you can do so by defining For example, simply place the following inside `def.json` in the root of your masterfiles. -```json -[file=def.json] +```json file=def.json { "classes": { "cfe_enterprise_enable_plain_http": [ "any" ] diff --git a/web-ui/hub_administration/extending-mission-portal.markdown b/web-ui/hub_administration/extending-mission-portal.markdown index d0d15a239..3c434f46d 100644 --- a/web-ui/hub_administration/extending-mission-portal.markdown +++ b/web-ui/hub_administration/extending-mission-portal.markdown @@ -42,8 +42,7 @@ File `test_documentation.html` was uploaded to the directory specified above. Use the following structure in your HTML to style the page the same as the rest of Mission Portal. -```html -[file=file_name.html] +```html file=file_name.html

PAGE TITLE

diff --git a/web-ui/hub_administration/policy-deployment.markdown b/web-ui/hub_administration/policy-deployment.markdown index 3b58c6547..6517a40f4 100644 --- a/web-ui/hub_administration/policy-deployment.markdown +++ b/web-ui/hub_administration/policy-deployment.markdown @@ -101,8 +101,7 @@ To configure automatic deployments simply ensure the Create `def.json` in the root of your masterfiles with the following content: -```json -[file=def.json] +```json file=def.json { "classes": { "cfengine_internal_masterfiles_update": [ "hub" ] @@ -114,8 +113,7 @@ Create `def.json` in the root of your masterfiles with the following content: Simply edit `bundle common update_def` in `controls/update_def.cf`. -```cf3 -[file=update_def.cf] +```cf3 file=update_def.cf bundle common update_def { # ... diff --git a/web-ui/hub_administration/public-key-distribution.markdown b/web-ui/hub_administration/public-key-distribution.markdown index a8ae2c7a3..e2fcabc31 100644 --- a/web-ui/hub_administration/public-key-distribution.markdown +++ b/web-ui/hub_administration/public-key-distribution.markdown @@ -27,8 +27,7 @@ This policy shows how public keys can be stored in a central location on the policy server and automatically installed on all hosts. -```cf3 -[file=trust_distkeys.cf] +```cf3 file=trust_distkeys.cf bundle agent trust_distkeys #@ brief Example public key distribution { diff --git a/web-ui/hub_administration/reset-admin-creds.markdown b/web-ui/hub_administration/reset-admin-creds.markdown index 232cb39e1..900337dc5 100644 --- a/web-ui/hub_administration/reset-admin-creds.markdown +++ b/web-ui/hub_administration/reset-admin-creds.markdown @@ -7,8 +7,7 @@ published: true The default `admin` user can be reset to defaults using the following SQL. -```sql -[file=cfsettings-setadminpassword.sql] +```sql file=cfsettings-setadminpassword.sql INSERT INTO "users" ("username", "password", "salt", "name", "email", "external", "active", "roles", "changetimestamp") SELECT 'admin', 'SHA=aa459b45ecf9816d472c2252af0b6c104f92a6faf2844547a03338e42e426f52', 'eWAbKQmxNP', 'admin', 'admin@organisation.com', false, '1', '{admin,cf_remoteagent}', now() ON CONFLICT (username, external) DO UPDATE @@ -38,8 +37,7 @@ If these credentials are not synchronized properly you can get "Authentication f To rotate these credentials execute the following shell script on the hub and then restart the system with `systemctl restart cfengine3` or similar. -```bash -[file=rotate_mp_credentials.sh] +```bash file=rotate_mp_credentials.sh #!/usr/bin/env bash pwgen() { dd if=/dev/urandom bs=1024 count=1 2>/dev/null | tr -dc 'a-zA-Z0-9' | fold -w $1 | head -n 1 @@ -65,8 +63,7 @@ If these credentials are out of sync or incorrect you will see errors like "500 Execute the following shell script to rotate and synchronize the CFE Robot credentials and then restart the system with `systemctl restart cfengine3` or similar. -```bash -[file=rotate_cfrobot_credentials.sh] +```bash file=rotate_cfrobot_credentials.sh #!/usr/bin/env bash pwgen() { dd if=/dev/urandom bs=1024 count=1 2>/dev/null | tr -dc 'a-zA-Z0-9' | fold -w $1 | head -n 1 From 99e1d8889896b802ef1a8cdecc8eec23c11c8809 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 23 Apr 2025 15:30:17 +0300 Subject: [PATCH 041/142] Aligned code block pre-processor to support braces Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 8bb78cc679d80344525de95943827b403eafb713) --- generator/_scripts/cfdoc_codeblock_resolver.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/generator/_scripts/cfdoc_codeblock_resolver.py b/generator/_scripts/cfdoc_codeblock_resolver.py index 1ce216bf5..3cf96ac6f 100644 --- a/generator/_scripts/cfdoc_codeblock_resolver.py +++ b/generator/_scripts/cfdoc_codeblock_resolver.py @@ -37,7 +37,7 @@ def transform_codeblocks(content): pattern = re.compile( r'^```([a-zA-Z0-9_-]+)' # language - r'((?:\s+(file=[^\s]+|noindent|noparse|noeval))+)\s*$', # flags + r'\s*\{([^}]*)\}\s*$', # flags re.MULTILINE ) @@ -46,10 +46,11 @@ def replacer(match): all_flags = match.group(2) # Extract the file=... part - file_flag_match = re.search(r'file=[^\s]+', all_flags) + file_flag_match = re.search(r'file=("([^"]*)"|([^\s}]+))', all_flags) if file_flag_match: - file_flag = file_flag_match.group() - return f"```{language}\n[{file_flag}]" + # file name without qoutes might be in group 2 or 3, depends on quotes presence + file_name = file_flag_match.group(2) or file_flag_match.group(3) + return f"```{language}\n[file={file_name}]" else: return f"```{language}" From f59666fa1a08adfbd145cfa919da4f1b515d5ff5 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Thu, 24 Apr 2025 10:10:15 +0300 Subject: [PATCH 042/142] Wrapped code block's files with curly braces Signed-off-by: Ihor Aleksandrychiev --- cheatsheet.markdown | 2 +- examples.markdown | 6 +++--- .../promise-patterns/example_ssh_keys.markdown | 2 +- examples/tutorials/custom_inventory.markdown | 2 +- .../distribute-files-from-a-central-location.markdown | 8 ++++---- examples/tutorials/files-tutorial.markdown | 8 ++++---- .../integrating-alerts-with-pager-duty.markdown | 2 +- .../tutorials/integrating-with-sumo-logic.markdown | 2 +- .../tutorials/json-yaml-support-in-cfengine.markdown | 2 +- examples/tutorials/manage-local-users.markdown | 2 +- examples/tutorials/manage-ntp.markdown | 10 +++++----- examples/tutorials/manage-packages.markdown | 6 +++--- .../tutorials/manage-processes-and-services.markdown | 2 +- .../render-files-with-mustache-templates.markdown | 2 +- ...rt_inventory_remediate_sec_vulnerabilities.markdown | 4 ++-- .../tutorials/reporting/command-line-reports.markdown | 2 +- examples/tutorials/write-cfengine-policy.markdown | 4 ++-- .../authoring-policy-tools-and-workflow.markdown | 4 ++-- .../bundles-best-practices.markdown | 2 +- getting-started/developing-modules.markdown | 2 +- .../installation/general-installation.markdown | 4 ++-- .../installation/local-virtual-machine.markdown | 2 +- getting-started/installation/secure-bootstrap.markdown | 6 +++--- getting-started/installation/version-control.markdown | 4 ++-- getting-started/writing-policy.markdown | 8 ++++---- web-ui/custom-actions-for-alerts.markdown | 2 +- .../client-initiated-reporting.markdown | 2 +- web-ui/enterprise-reporting/reporting_ui.markdown | 2 +- web-ui/hub_administration/enable-plain-http.markdown | 2 +- .../extending-mission-portal.markdown | 2 +- web-ui/hub_administration/policy-deployment.markdown | 4 ++-- .../public-key-distribution.markdown | 2 +- web-ui/hub_administration/reset-admin-creds.markdown | 6 +++--- 33 files changed, 60 insertions(+), 60 deletions(-) diff --git a/cheatsheet.markdown b/cheatsheet.markdown index e2adb9f23..79ad0d6d9 100644 --- a/cheatsheet.markdown +++ b/cheatsheet.markdown @@ -276,7 +276,7 @@ These two blocks will be joined into one element on the UI. You can specify file name of the code block by adding `[file=Name of the file]` in the first line. This line won't be shown in the resulting HTML (it will be converted to the heading / frame). -```cf3 file=policy.cf +```cf3 {file="policy.cf"} bundle agent hello_world { meta: diff --git a/examples.markdown b/examples.markdown index 1a19c9e6a..a9c7a4c4e 100644 --- a/examples.markdown +++ b/examples.markdown @@ -106,7 +106,7 @@ Go back into vi by typing "vi" at the prompt. Then type ```i``` to insert __body common control__ to `hello_world.cf`. Place it above __bundle agent hello_world__, as shown in the following example: -```cf3 file=hello_world.cf +```cf3 {file="hello_world.cf"} body common control { bundlesequence => { "hello_world" }; @@ -135,7 +135,7 @@ notice: R: Hello World! **Note:** It may be necessary to add a reference to the standard library within the body common control section, and remove the `bundlesequence` line. Example: -```cf3 file=hello_world.cf +```cf3 {file="hello_world.cf"} body common control { inputs => { @@ -155,7 +155,7 @@ Again type "vi" then "Enter" then ```i``` to insert the following: Add it before __body common control__, as shown below: -```cf3 file=hello_world.cf +```cf3 {file="hello_world.cf"} #!/var/cfengine/bin/cf-agent --no-lock body common control { diff --git a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown b/examples/example-snippets/promise-patterns/example_ssh_keys.markdown index af4b9fe0f..00389fe3a 100644 --- a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown +++ b/examples/example-snippets/promise-patterns/example_ssh_keys.markdown @@ -14,7 +14,7 @@ the [Masterfiles Policy Framework][Masterfiles Policy Framework]. The you do not have a `def.json` in the root of your masterfiles directory simply create it with the following content. -```json file=def.json +```json {file="def.json"} { "classes": { "services_autorun": [ "any" ] diff --git a/examples/tutorials/custom_inventory.markdown b/examples/tutorials/custom_inventory.markdown index 7827f7a1f..59ed6ea06 100644 --- a/examples/tutorials/custom_inventory.markdown +++ b/examples/tutorials/custom_inventory.markdown @@ -46,7 +46,7 @@ information we will write an inventory policy to report that information. Create `/var/cfengine/masterfiles/services/tutorials/inventory/owner.cf` with the following content: -```cf3 file=owner.cf +```cf3 {file="owner.cf"} bundle agent tutorials_inventory_owner # @brief Inventory Owner information # @description Inventory owner information from `/vagrant/inventory_owner.csv`. diff --git a/examples/tutorials/distribute-files-from-a-central-location.markdown b/examples/tutorials/distribute-files-from-a-central-location.markdown index a90580130..688516ec6 100644 --- a/examples/tutorials/distribute-files-from-a-central-location.markdown +++ b/examples/tutorials/distribute-files-from-a-central-location.markdown @@ -47,7 +47,7 @@ These variables provide path definitions for storing and deploying patches. Add the following variable information to the `masterfiles/def.cf` file: -```cf3 file=def.cf +```cf3 {file="def.cf"} "dir_patch_store" string => "/storage/patches", comment => "Define patch files source location", @@ -74,7 +74,7 @@ promise type in a `server` bundle. The default access rules defined by the MPF ( There is no need to modify the vendored policy, instead define your own server bundle. For our example, add the following to `services/main.cf`: -```cf3 file=main.cf +```cf3 {file="main.cf"} bundle server my_access_rules { access: @@ -93,7 +93,7 @@ use is a good idea. This information is stored in a custom library. Create a custom library called `lib/custom/files.cf`. Add the following content: -```cf3 file=files.cf +```cf3 {file="files.cf"} bundle agent sync_from_policyserver(source_path, dest_path) # @brief Sync files from the policy server to the agent # @@ -118,7 +118,7 @@ policy by services. Create `services/patching.cf` with the following content: -```cf3 file=patching.cf +```cf3 {file="patching.cf"} # Patching Policy bundle agent patching diff --git a/examples/tutorials/files-tutorial.markdown b/examples/tutorials/files-tutorial.markdown index 8499025cd..05526fc63 100644 --- a/examples/tutorials/files-tutorial.markdown +++ b/examples/tutorials/files-tutorial.markdown @@ -84,7 +84,7 @@ Note: The following workflow assumes the directory /home/user already exists. If ## Create a File -```cf3 file=file_create.cf +```cf3 {file="file_create.cf"} bundle agent testbundle { files: @@ -125,7 +125,7 @@ rm /home/user/test_plain.txt ## Delete a File -```cf3 file=file_delete.cf +```cf3 {file="file_delete.cf"} body common control { inputs => { @@ -191,7 +191,7 @@ ls /home/user/test_plain.txt /var/cfengine/bin/cf-agent --no-lock --file ./file_test.cf --bundlesequence list_file,list_file_2 ``` -```cf3 file=file_modify.cf +```cf3 {file="file_modify.cf"} body common control { inputs => { @@ -289,7 +289,7 @@ rm /home/user/test_plain.txt ## Copy a file and edit its text -```cf3 file=file_copy.cf +```cf3 {file="file_copy.cf"} body common control { inputs => { diff --git a/examples/tutorials/integrating-alerts-with-pager-duty.markdown b/examples/tutorials/integrating-alerts-with-pager-duty.markdown index 63b3e9f1b..607a455cb 100644 --- a/examples/tutorials/integrating-alerts-with-pager-duty.markdown +++ b/examples/tutorials/integrating-alerts-with-pager-duty.markdown @@ -28,7 +28,7 @@ touch /tmp/file-integrity Insert the following policy into `/tmp/file_example.cf` -```cf3 file=file_example.cf +```cf3 {file="file_example.cf"} bundle agent file_integrity { files: diff --git a/examples/tutorials/integrating-with-sumo-logic.markdown b/examples/tutorials/integrating-with-sumo-logic.markdown index 74fcf02bb..30b2b13cc 100644 --- a/examples/tutorials/integrating-with-sumo-logic.markdown +++ b/examples/tutorials/integrating-with-sumo-logic.markdown @@ -158,7 +158,7 @@ As we can see above CFEngine detected a change on `Thursday Oct 2 at 01:16:42` a The policy as found in `sumologic_policy_update.cf`. -```cf3 file=sumo_logic_policy_update.cf +```cf3 {file="sumo_logic_policy_update.cf"} bundle agent sumo_logic_policy_update { vars: diff --git a/examples/tutorials/json-yaml-support-in-cfengine.markdown b/examples/tutorials/json-yaml-support-in-cfengine.markdown index 62259ade0..007dde91b 100644 --- a/examples/tutorials/json-yaml-support-in-cfengine.markdown +++ b/examples/tutorials/json-yaml-support-in-cfengine.markdown @@ -76,7 +76,7 @@ expressions or class names. Easy, right? -```cf3 file=json_example.cf +```cf3 {file="json_example.cf"} body common control { bundlesequence => { "run" }; diff --git a/examples/tutorials/manage-local-users.markdown b/examples/tutorials/manage-local-users.markdown index a8bfbf85c..a9fc340d3 100644 --- a/examples/tutorials/manage-local-users.markdown +++ b/examples/tutorials/manage-local-users.markdown @@ -30,7 +30,7 @@ Create user group security and webadmin. Create a file `/tmp/users.cf` with the following content: -```cf3 file=users.cf +```cf3 {file="users.cf"} body common control { inputs => { "$(sys.libdir)/stdlib.cf" }; diff --git a/examples/tutorials/manage-ntp.markdown b/examples/tutorials/manage-ntp.markdown index 3635782b2..832c3283c 100644 --- a/examples/tutorials/manage-ntp.markdown +++ b/examples/tutorials/manage-ntp.markdown @@ -12,7 +12,7 @@ Note: For simplicity, in this tutorial we will work directly on top of the Maste ## Ensuring the NTP package is installed -```cf3 file=ntp.cf +```cf3 {file="ntp.cf"} bundle agent ntp { vars: @@ -98,7 +98,7 @@ classes => results("bundle", "ntp_package_"); On your hub create `services/ntp.cf` inside *masterfiles* with the following content: -```cf3 file=ntp.cf +```cf3 {file="ntp.cf"} bundle agent ntp { vars: @@ -179,7 +179,7 @@ Now we will extend the policy to ensure that the NTP service is running. Now that the NTP service has been installed on the system, we need to make sure that it is running. -```cf3 file=ntp.cf +```cf3 {file="ntp.cf"} bundle agent ntp { vars: @@ -517,7 +517,7 @@ Next we will augment file/template management with data sourced from a JSON data CFEngine offers out-of-the-box support for reading and writing JSON data structures. In this tutorial, we will default the NTP configuration properties in policy, but provide a path for the properties to be overridden from Augments. {% raw %} -```cf3 file=ntp.cf +```cf3 {file="ntp.cf"} bundle agent ntp { vars: @@ -659,7 +659,7 @@ We do not expect to see the ntp configuration file modified or the service to be Now, let's modify `def.json` (in the root of masterfiles) and define some different values for `driftfile` and `servers`. Modify `def.json` so that it looks like this: -```json file=def.json +```json {file="def.json"} { "inputs": [ "services/ntp.cf" ], "vars": { diff --git a/examples/tutorials/manage-packages.markdown b/examples/tutorials/manage-packages.markdown index c248e7585..532fcabf5 100644 --- a/examples/tutorials/manage-packages.markdown +++ b/examples/tutorials/manage-packages.markdown @@ -14,7 +14,7 @@ given the recent disclosure of the Heartbleed vulnerability. If we simply want to make sure the latest version of OpenSSL is installed in all our hosts, we can use the packages promise type, like this: -```cf3 file=manage_packages.cf +```cf3 {file="manage_packages.cf"} body common control { inputs => { "$(sys.libdir)/stdlib.cf" }; @@ -81,7 +81,7 @@ which telnet Making sure this package is removed from the system is easy. Let's add one more promise to our previous policy, this time using the absent policy: -```cf3 file=manage_packages.cf +```cf3 {file="manage_packages.cf"} body common control { inputs => { "$(sys.libdir)/stdlib.cf" }; @@ -136,7 +136,7 @@ Copy `manage_packages.cf` to `/var/cfengine/masterfiles/` on your policy hub. In `/var/cfengine/masterfiles/def.json`, add `manage_packages.cf` to the inputs declaration, and `manage_packages` to the bundlesequence declaration. -```json file=def.json +```json {file="def.json"} { "inputs": [ "manage_packages.cf" ], "vars": { diff --git a/examples/tutorials/manage-processes-and-services.markdown b/examples/tutorials/manage-processes-and-services.markdown index 8b53417b3..0588547d6 100644 --- a/examples/tutorials/manage-processes-and-services.markdown +++ b/examples/tutorials/manage-processes-and-services.markdown @@ -17,7 +17,7 @@ Using CFEngine to ensure certain processes are running is extremely easy. Create a new file called `ensure_process.cf`: -```cf3 file=ensure_process.cf +```cf3 {file="ensure_process.cf"} body file control { inputs => { "$(sys.libdir)/stdlib.cf" }; diff --git a/examples/tutorials/render-files-with-mustache-templates.markdown b/examples/tutorials/render-files-with-mustache-templates.markdown index c61a5fd41..3f53135fb 100644 --- a/examples/tutorials/render-files-with-mustache-templates.markdown +++ b/examples/tutorials/render-files-with-mustache-templates.markdown @@ -59,7 +59,7 @@ Allowed users {{#users}} Create a file called `/tmp/editconfig.cf` with the following content: -```cf3 file=editconfig.cf +```cf3 {file="editconfig.cf"} bundle agent myapp_confs { files: diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown b/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown index b962cfd6b..3e2f49545 100644 --- a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown +++ b/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown @@ -37,7 +37,7 @@ This bundle will check if the host is vulnerable to the CVE, define a class *CVE_2014_6217* if it is vulnerable and augment Mission Portals Inventory interface in CFEngine Enterprise. -```cf3 file=inventory_CVE_2014_6271.cf +```cf3 {file="inventory_CVE_2014_6271.cf"} bundle agent inventory_CVE_2014_6271 { meta: @@ -155,7 +155,7 @@ Now that we know the extent of exposure lets ensure bash gets updated on some of the affected systems. Save the following policy into `services/autorun/remediate_CVE_2014_6271.cf` -```cf3 file=remediate_CVE_2014_6271.cf +```cf3 {file="remediate_CVE_2014_6271.cf"} bundle agent remediate_CVE_2014_6271 { meta: diff --git a/examples/tutorials/reporting/command-line-reports.markdown b/examples/tutorials/reporting/command-line-reports.markdown index 946b3981a..c75cde96b 100644 --- a/examples/tutorials/reporting/command-line-reports.markdown +++ b/examples/tutorials/reporting/command-line-reports.markdown @@ -130,7 +130,7 @@ reports: The outcome of this promise is a file called /tmp/report.html which contains the following output: -```html file=report.html +```html {file="report.html"} Name of this host is: atlas
Type of this host is: linux
diff --git a/examples/tutorials/write-cfengine-policy.markdown b/examples/tutorials/write-cfengine-policy.markdown index 7479ce39c..0c988da28 100644 --- a/examples/tutorials/write-cfengine-policy.markdown +++ b/examples/tutorials/write-cfengine-policy.markdown @@ -76,7 +76,7 @@ Now let's put the bundle, promise type and class components together in a final policy. As for classes we will use linux to define that the file `/tmp/hello-world` must exists on all hosts of type *linux*: -```cf3 file=my_test.cf +```cf3 {file="my_test.cf"} bundle agent my_test { files: @@ -165,7 +165,7 @@ Now we need to tell CFEngine that there is a new policy in town: 1. Create `/var/cfengine/masterfiles/def.json` with the following content: -```json file=def.json +```json {file="def.json"} { "inputs": [ "my-policy.cf" ] } diff --git a/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown b/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown index 4f9a0626d..3d05a1e1c 100644 --- a/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown +++ b/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown @@ -107,7 +107,7 @@ git remote -v 1. Create a new file in `/var/cfengine/masterfiles` with a unique filename (e.g. `vcs_update.cf`) 2. Add the following text to the `vcs_update.cf` file: -```cf3 file=vcs_update.cf +```cf3 {file="vcs_update.cf"} bundle agent vcs_update { commands: @@ -125,7 +125,7 @@ body contain masterfiles_contain 3. Save the file. 4. Add bundle and file information to `/var/cfengine/masterfiles/promises.cf`. Example (where `...` represents existing text in the file, omitted for clarity): -```cf3 file=promises.cf +```cf3 {file="promises.cf"} body common control { diff --git a/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown b/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown index a665dd777..eecdd302d 100644 --- a/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown +++ b/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown @@ -60,7 +60,7 @@ will occur for a list of (multiple) names or promisers, then use a bundle to sim Write the promises (which may or may not be ordered) using a parameter for the different names, and then call the method passing the list of names as a parameter to reduce the amount of code. -```cf3 file=testbundle.cf +```cf3 {file="testbundle.cf"} bundle agent testbundle { vars: diff --git a/getting-started/developing-modules.markdown b/getting-started/developing-modules.markdown index 2ade90fbd..a8231cc02 100644 --- a/getting-started/developing-modules.markdown +++ b/getting-started/developing-modules.markdown @@ -33,7 +33,7 @@ cfbs add https://github.com/cfengine/promise-type-template From that repo, we have now added a new promise type, it is called `git_example` to avoid confusion with the "real" git promise type used earlier in the tutorial. Then, we should edit our policy example, `my_policy.cf` to use this module: -```cfengine3 file=my_policy.cf +```cfengine3 {file="my_policy.cf"} bundle agent hello_world { meta: diff --git a/getting-started/installation/general-installation.markdown b/getting-started/installation/general-installation.markdown index 7d91869c4..caae13e43 100644 --- a/getting-started/installation/general-installation.markdown +++ b/getting-started/installation/general-installation.markdown @@ -81,7 +81,7 @@ together. The preferred way of setting `def.mailfrom` is from the [augments file][Augments]. -```json file=def.json +```json {file="def.json"} { "vars": { @@ -106,7 +106,7 @@ ensure they have taken effect. The preferred way to disable the agent from sending emails is to define `cfengine_internal_disable_agent_email` from the [augments file][Augments]. -```json file=def.json +```json {file="def.json"} { "classes": { "cfengine_internal_disable_agent_email": [ "any" ] diff --git a/getting-started/installation/local-virtual-machine.markdown b/getting-started/installation/local-virtual-machine.markdown index 8e9621122..64f44fcc8 100644 --- a/getting-started/installation/local-virtual-machine.markdown +++ b/getting-started/installation/local-virtual-machine.markdown @@ -67,7 +67,7 @@ touch Vagrantfile && code Vagrantfile Put this in your `Vagrantfile`: -```ruby file=Vagrantfile +```ruby {file="Vagrantfile"} # -*- mode: ruby -*- # vi: set ft=ruby : diff --git a/getting-started/installation/secure-bootstrap.markdown b/getting-started/installation/secure-bootstrap.markdown index ec7c8d81a..af4f60674 100644 --- a/getting-started/installation/secure-bootstrap.markdown +++ b/getting-started/installation/secure-bootstrap.markdown @@ -40,7 +40,7 @@ In the end, you will not be running these commands manually, but rather putting In order to specify and limit which hosts (IP addresses) are considered trusted and allowed to connect and fetch policy files, you can put the trusted IP addresses and subnets into the ```acl``` variable: -```json file=/var/cfengine/masterfiles/def.json +```json {file="/var/cfengine/masterfiles/def.json"} { "variables": { "default:def.acl": ["192.0.2.42", "198.51.100.7"] @@ -76,7 +76,7 @@ In all cases, it is recommended to disable automatic trust when you are not usin Either immediately after installation (if distributing keys through another channel, see below) or after you are done bootstrapping clients. You can edit the augments file to achieve this: -```json file=/var/cfengine/masterfiles/def.json +```json {file="/var/cfengine/masterfiles/def.json"} { "variables": { "default:def.trustkeysfrom": [] @@ -88,7 +88,7 @@ If you are using CFEngine Build, you can achieve this by adding [this module](ht When combined with the variable above, you can create a very restricted setup: -```json file=/var/cfengine/masterfiles/def.json +```json {file="/var/cfengine/masterfiles/def.json"} { "variables": { "default:def.acl": ["192.0.2.42", "198.51.100.7"], diff --git a/getting-started/installation/version-control.markdown b/getting-started/installation/version-control.markdown index eadd468e8..30bd315d2 100644 --- a/getting-started/installation/version-control.markdown +++ b/getting-started/installation/version-control.markdown @@ -35,7 +35,7 @@ We can use a Git update hook to prevent a change from being made unless it passes syntax checking. The idea is to check out the revision in a temporary directory and run `cf-promises` on it. Here is an example hook. -```shell file=update +```shell {file="update"} #!/bin/sh # --- Command line @@ -81,7 +81,7 @@ For subversion, the principle is essentially the same. Note that for a post-commit hook the check is run after update, so the repository may be left with a syntax error, but the committer is notified. -```shell file=post-commit +```shell {file="post-commit"} #!/bin/sh REPOS="$1" diff --git a/getting-started/writing-policy.markdown b/getting-started/writing-policy.markdown index 890783487..60dc5fa8f 100644 --- a/getting-started/writing-policy.markdown +++ b/getting-started/writing-policy.markdown @@ -26,7 +26,7 @@ code . Let's take a look at the traditional "Hello, world!" example: -```cfengine3 file=my_policy.cf +```cfengine3 {file="my_policy.cf"} bundle agent hello_world { files: @@ -100,7 +100,7 @@ cf-remote sudo -H hub "rm /tmp/hello && cf-agent -KI" Earlier in this tutorial series, we added the `promise-type-git` module to our project. This means that we can just start using the new promise type in policy: -```cfengine3 file=my_policy.cf +```cfengine3 {file="my_policy.cf"} bundle agent hello_world { git: @@ -131,7 +131,7 @@ This has several benefits: Here is a simple example: -```cfengine3 file=my_policy.cf +```cfengine3 {file="my_policy.cf"} bundle agent hello_world { vars: @@ -165,7 +165,7 @@ git log -1 --format="%H" We want to put this in a variable and include it in our reports we can see in Mission Portal. To take the output of a command and put it in a variable, we will use the `execresult()` function: -```cfengine3 file=my_policy.cf +```cfengine3 {file="my_policy.cf"} bundle agent hello_world { vars: diff --git a/web-ui/custom-actions-for-alerts.markdown b/web-ui/custom-actions-for-alerts.markdown index 5ac8ca00f..6776e21eb 100644 --- a/web-ui/custom-actions-for-alerts.markdown +++ b/web-ui/custom-actions-for-alerts.markdown @@ -105,7 +105,7 @@ When you get this to work as expected on the commmand line, you are ready to upl The following Custom action script will log the status and definition of a policy alert to syslog. -```bash file=cfengine_custom_notification_policy_syslog.sh +```bash {file="cfengine_custom_notification_policy_syslog.sh"} #!/bin/bash source $1 diff --git a/web-ui/enterprise-reporting/client-initiated-reporting.markdown b/web-ui/enterprise-reporting/client-initiated-reporting.markdown index 8c7341643..ea48cd164 100644 --- a/web-ui/enterprise-reporting/client-initiated-reporting.markdown +++ b/web-ui/enterprise-reporting/client-initiated-reporting.markdown @@ -19,7 +19,7 @@ Call collect and Client Initiated Reporting are the same, they both refer to the The easiest way to enable call collect is via augments files, modify `/var/cfengine/masterfiles/def.json` on the hub: -```json file=def.json +```json {file="def.json"} { "classes": { "client_initiated_reporting_enabled": [ "any" ] diff --git a/web-ui/enterprise-reporting/reporting_ui.markdown b/web-ui/enterprise-reporting/reporting_ui.markdown index d25a651a0..2aa533741 100644 --- a/web-ui/enterprise-reporting/reporting_ui.markdown +++ b/web-ui/enterprise-reporting/reporting_ui.markdown @@ -59,7 +59,7 @@ the following defines the attribute `Role` which is set to `database_server`. You need to add it to the top-level `bundlesequence` in `promises.cf` or in a bundle that it calls. -```cf3 file=promises.cf +```cf3 {file="promises.cf"} bundle agent myreport { vars: diff --git a/web-ui/hub_administration/enable-plain-http.markdown b/web-ui/hub_administration/enable-plain-http.markdown index 2aea383c4..fdfbaffc6 100644 --- a/web-ui/hub_administration/enable-plain-http.markdown +++ b/web-ui/hub_administration/enable-plain-http.markdown @@ -12,7 +12,7 @@ If you would like to enable plain HTTP you can do so by defining For example, simply place the following inside `def.json` in the root of your masterfiles. -```json file=def.json +```json {file="def.json"} { "classes": { "cfe_enterprise_enable_plain_http": [ "any" ] diff --git a/web-ui/hub_administration/extending-mission-portal.markdown b/web-ui/hub_administration/extending-mission-portal.markdown index 3c434f46d..9b72c01ee 100644 --- a/web-ui/hub_administration/extending-mission-portal.markdown +++ b/web-ui/hub_administration/extending-mission-portal.markdown @@ -42,7 +42,7 @@ File `test_documentation.html` was uploaded to the directory specified above. Use the following structure in your HTML to style the page the same as the rest of Mission Portal. -```html file=file_name.html +```html {file="file_name.html"}

PAGE TITLE

diff --git a/web-ui/hub_administration/policy-deployment.markdown b/web-ui/hub_administration/policy-deployment.markdown index 6517a40f4..8039704bf 100644 --- a/web-ui/hub_administration/policy-deployment.markdown +++ b/web-ui/hub_administration/policy-deployment.markdown @@ -101,7 +101,7 @@ To configure automatic deployments simply ensure the Create `def.json` in the root of your masterfiles with the following content: -```json file=def.json +```json {file="def.json"} { "classes": { "cfengine_internal_masterfiles_update": [ "hub" ] @@ -113,7 +113,7 @@ Create `def.json` in the root of your masterfiles with the following content: Simply edit `bundle common update_def` in `controls/update_def.cf`. -```cf3 file=update_def.cf +```cf3 {file="update_def.cf"} bundle common update_def { # ... diff --git a/web-ui/hub_administration/public-key-distribution.markdown b/web-ui/hub_administration/public-key-distribution.markdown index e2fcabc31..09c4c4cc1 100644 --- a/web-ui/hub_administration/public-key-distribution.markdown +++ b/web-ui/hub_administration/public-key-distribution.markdown @@ -27,7 +27,7 @@ This policy shows how public keys can be stored in a central location on the policy server and automatically installed on all hosts. -```cf3 file=trust_distkeys.cf +```cf3 {file="trust_distkeys.cf"} bundle agent trust_distkeys #@ brief Example public key distribution { diff --git a/web-ui/hub_administration/reset-admin-creds.markdown b/web-ui/hub_administration/reset-admin-creds.markdown index 900337dc5..fd87675cb 100644 --- a/web-ui/hub_administration/reset-admin-creds.markdown +++ b/web-ui/hub_administration/reset-admin-creds.markdown @@ -7,7 +7,7 @@ published: true The default `admin` user can be reset to defaults using the following SQL. -```sql file=cfsettings-setadminpassword.sql +```sql {file="cfsettings-setadminpassword.sql"} INSERT INTO "users" ("username", "password", "salt", "name", "email", "external", "active", "roles", "changetimestamp") SELECT 'admin', 'SHA=aa459b45ecf9816d472c2252af0b6c104f92a6faf2844547a03338e42e426f52', 'eWAbKQmxNP', 'admin', 'admin@organisation.com', false, '1', '{admin,cf_remoteagent}', now() ON CONFLICT (username, external) DO UPDATE @@ -37,7 +37,7 @@ If these credentials are not synchronized properly you can get "Authentication f To rotate these credentials execute the following shell script on the hub and then restart the system with `systemctl restart cfengine3` or similar. -```bash file=rotate_mp_credentials.sh +```bash {file="rotate_mp_credentials.sh"} #!/usr/bin/env bash pwgen() { dd if=/dev/urandom bs=1024 count=1 2>/dev/null | tr -dc 'a-zA-Z0-9' | fold -w $1 | head -n 1 @@ -63,7 +63,7 @@ If these credentials are out of sync or incorrect you will see errors like "500 Execute the following shell script to rotate and synchronize the CFE Robot credentials and then restart the system with `systemctl restart cfengine3` or similar. -```bash file=rotate_cfrobot_credentials.sh +```bash {file="rotate_cfrobot_credentials.sh"} #!/usr/bin/env bash pwgen() { dd if=/dev/urandom bs=1024 count=1 2>/dev/null | tr -dc 'a-zA-Z0-9' | fold -w $1 | head -n 1 From e145f852cbbc1d0107962df7837331b3523663be Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 13:54:38 -0300 Subject: [PATCH 043/142] README.md: Autoformatted with Prettier Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 93b438a9f9ea45b950b33888597027ab5452fb5e) --- README.md | 119 +++++++++++++++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 3e839a043..abb6cab30 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ like to invite you to collaborate here! If you would like to notify us about incorrect documentation, but don't have the time or the knowledge to make a correction directly here, then you can report the issue in the regular [CFEngine bug -tracker](https://cfengine.com/dev/projects/core). Use the "Documentation" +tracker](https://cfengine.com/dev/projects/core). Use the "Documentation" category when you create bugs. And of course you can search the bug tracker for known issues with the documentation, and help the community of CFEngine users by correcting some of them. @@ -27,9 +27,9 @@ keep the line length in paragraphs below 78 characters. If you don't know Git, then you can still contribute to the documentation using the GitHub interface as long as you have a GitHub account. Fork this -repository (called the *upstream*) using the GitHub web interface, make +repository (called the _upstream_) using the GitHub web interface, make changes in your fork and create pull requests so that your changes can be -merged into the *upstream* repository. +merged into the _upstream_ repository. It is in general advisable to make small commits that are submitted through pull requests frequently. Otherwise any structural changes to documentation @@ -41,29 +41,29 @@ Avoid capitalizing things unnecessarily (features, concepts, titles). Titles and headings use sentence case (so don't capitalize each word). Some names should always be capitalized in a specific way: -* CFEngine -* CFEngine Build -* CFEngine Docs -* CFEngine Enterprise -* Linux, macOS, Windows, Unix (and other names of operating systems) -* Mission Portal -* UI, CVE, TCP, TLS, API, HTTP, JSON (and other abbreviations) +- CFEngine +- CFEngine Build +- CFEngine Docs +- CFEngine Enterprise +- Linux, macOS, Windows, Unix (and other names of operating systems) +- Mission Portal +- UI, CVE, TCP, TLS, API, HTTP, JSON (and other abbreviations) ### Titles and verb tenses Avoid imperative tense in titles. Use `-ing` or nouns instead, some examples: -* What not to do: - * "Write policy" - * "Manage packages" - * "Install CFEngine" - * "Get started" -* Titles you can use instead: - * "Policy writing" (or "Writing policy") - * "Package management" (or "Managing packages") - * "CFEngine installation" (or "Installing CFEngine") - * "Getting started" +- What not to do: + - "Write policy" + - "Manage packages" + - "Install CFEngine" + - "Get started" +- Titles you can use instead: + - "Policy writing" (or "Writing policy") + - "Package management" (or "Managing packages") + - "CFEngine installation" (or "Installing CFEngine") + - "Getting started" Since anything can be managed, "managing" tends to be used a lot. Try to use other words: "editing", "updating", "changing", "creating", "setting". @@ -134,7 +134,7 @@ Give files unique names to avoid overwrites in the generated website. See [Style Guide - Charts and graphs](#charts-and-graphs) for style requirements for images. -*Warning:* It is important for images and other binary files to be marked as a +_Warning:_ It is important for images and other binary files to be marked as a binary file in `.gitattributes`. Binary file patterns not specifically marked may be mangled and corrupted within Git. @@ -167,7 +167,7 @@ markers if that word exists as a page or section title. **See also:** `attribute_name`, `function()` This will automatically link to the section or page with title -*attribute_name*. To make explicit links from code words, use +_attribute_name_. To make explicit links from code words, use `code` markers in the link text. **See also:** [`attribute_name`][page#attributename] @@ -187,7 +187,7 @@ from that automatic linking, use the form which is otherwise equivalent for the markdown renderer. -To use keywords in inline code *without* creating an automatic link, use +To use keywords in inline code _without_ creating an automatic link, use triple backticks: The ```meta``` parameter to this function... @@ -221,11 +221,11 @@ are skipped. The generator searches for `filename` in the `core/examples` subdirectory of WKRDIR. -* `[%CFEngine_include_example(filename)%]` +- `[%CFEngine_include_example(filename)%]` Injects the code from `filename`. -* `[%CFEngine_include_snippet(filename, begin_rx, end_rx [optional])%]` +- `[%CFEngine_include_snippet(filename, begin_rx, end_rx [optional])%]` Searches `filename` for the first line that matches the regular expression `begin_rx`, and injects all lines as a code block from @@ -235,7 +235,7 @@ omitted, all lines until the end of the file will be injected. If the line that matches the regular expression is a comment, then it is excluded from the quote, otherwise it is included. -* `[%CFEngine_include_markdown(filename, begin_rx, end_rx [optional])%]` +- `[%CFEngine_include_markdown(filename, begin_rx, end_rx [optional])%]` Searches `filename` for the first line that matches the regular expression `begin_rx`, and injects all lines **verbatim** from there @@ -244,7 +244,7 @@ all lines until the end of the file will be injected. #### Documenting policy libraries -* `[%CFEngine_library_include(filename)%]` +- `[%CFEngine_library_include(filename)%]` Parses the JSON version of the CFEngine policy in `filename` and generates documentation from it. @@ -286,7 +286,7 @@ The following macros require the syntax map to be generated via `cf-promises -s` into a file `syntax_map.json` within the `_generated` subdirectory of the documentation generator. -* `[%CFEngine_function_prototype(arg1, arg2, ...)%]` +- `[%CFEngine_function_prototype(arg1, arg2, ...)%]` Renders the prototype of the function that has the same name as the title of the current page. Parameters `arg1` etc are used for the names @@ -301,7 +301,7 @@ of the parameters: Use this before a `**Description:**` section in which the behavior of the function as well as the individual parameters are then explained. -* `[%CFEngine_function_attributes(arg1, arg2, ...)%]` +- `[%CFEngine_function_attributes(arg1, arg2, ...)%]` Renders a list of attributes for the function that has the same name as the title of the current page. `arg1` etc are used for the parameter names: @@ -321,7 +321,7 @@ Document the individual parameters either directly in the `**Description:**` section, or as a block after using this macro. You cannot use the macro if individual options of option-type parameters need detailed explanation. -* `[%CFEngine_promise_attribute(default)%]` +- `[%CFEngine_promise_attribute(default)%]` Renders the syntax description of the current promise attribute. The current markdown needs to comply with the following: @@ -369,17 +369,17 @@ The generated markdown is: If a `default` parameter is provided, then a `**Default value:**` statement is created. -* `[%CFEngine_function_table()%]` +- `[%CFEngine_function_table()%]` Renders a table of built-in functions, grouped by function category. -* `[%CFEngine_syntax_map(subtree)%]` +- `[%CFEngine_syntax_map(subtree)%]` Renders a nested tree of CFEngine words, starting at `subtree`. #### Other macros -* `[%CFEngine_redirect(target)]` +- `[%CFEngine_redirect(target)]` Injects javascript that redirects the current page to the HTML page for `target`, which needs to be a title or title#section combination as in regular `[text][title#section]` @@ -392,9 +392,9 @@ documentation a consistent and pleasant experience. ### Writing for the web -* use subheadings to structure content -* keep paragraphs short -* support scanning of pages +- use subheadings to structure content +- keep paragraphs short +- support scanning of pages ### Spelling @@ -408,7 +408,7 @@ In punctuation, a serial comma (also called Oxford comma) needs to be placed immediately before the conjunction (often "and" or "or") in a series of three or more terms. -*Example:* +_Example:_ I would like crackers, cheese, and garlic. @@ -419,10 +419,10 @@ these seven coordinating conjunctions: and, but, for, or, nor, so, yet. However, the comma can be dropped in the following cases: -* if both independent clauses are quite short, especially if the two clauses +- if both independent clauses are quite short, especially if the two clauses are very closely related, and even more so if the subject of both clauses is the same, or -* if only the first clause is quite short, especially if the two clauses are +- if only the first clause is quite short, especially if the two clauses are very closely related, and even more so if the subject of both clauses is the same. @@ -446,32 +446,32 @@ As a general note, avoiding abbreviations provides better readability. **Latin expressions commonly used in English** -* i.e. (that is) -* e.g. (for example) -* cf. (compare) -* etc. (and so forth) -* vs.(versus) -* et al. (and others) +- i.e. (that is) +- e.g. (for example) +- cf. (compare) +- etc. (and so forth) +- vs.(versus) +- et al. (and others) ### Charts and graphs -* use clear shapes -* avoid shadows -* stick to black, white, and grey -* avoid background fill colors on large items +- use clear shapes +- avoid shadows +- stick to black, white, and grey +- avoid background fill colors on large items ## Technical reference documentation -* follow the [Policy style guide](guide/writing-and-serving-policy/policy-style.markdown) +- follow the [Policy style guide](guide/writing-and-serving-policy/policy-style.markdown) in examples and code snippets -* use the appropriate lexer for syntax highlighting via Pygments +- use the appropriate lexer for syntax highlighting via Pygments Most important are the `cf3` lexer, as well as `bash`, `console`, `diff`, `shell-session` and `sql`. But Jekyll supports [many more lexers](https://pygments.org/docs/lexers/) -* avoid custom color schemes and hand-coded HTML -* document the example after the example code +- avoid custom color schemes and hand-coded HTML +- document the example after the example code The structure of the technical documentation about CFEngine attributes, functions etc is as follows: @@ -587,7 +587,6 @@ title is the name of the function. **See also:** `related_function()`, `related_attribute` - **Note:** The `function_attributes` macro will generate a simple enumeration of all attributes, with the types and allowed in put range coming from the syntax map, and the names as provided. If you want to explain each attribute directly after it being listed, don't @@ -603,7 +602,6 @@ use the macro, and list the attributes explicitly: This argument does that. - ### Special variables Special variables are documented within the page of their context. @@ -618,7 +616,7 @@ Special variables are documented within the page of their context. Jekyll is used to generate the HTML pages. The toolchain is available at https://github.com/cfengine/documentation/tree/master/generator. After you compile pages, -Jekyll will place all files into the _site folder, without subdirectories. +Jekyll will place all files into the \_site folder, without subdirectories. Commits in this repository trigger the documentation generator to run, which then updates the contents of https://docs.cfengine.com/docs/ @@ -631,10 +629,11 @@ https://docs.cfengine.com/docs/master/cfdoc_log.html We have a Python script and GitHub Action to automatically fix some common markdown mistakes. This is designed to not be super strict on purpose, it only fixes very specific things, such as: -* Trims trailing whitespace at the end of lines -* Replace some utf-8 symbols which have an ascii lookalike -* Ensures exactly 1 newline before the end of the file -* De-indents code blocks where everything inside the code block is indented + +- Trims trailing whitespace at the end of lines +- Replace some utf-8 symbols which have an ascii lookalike +- Ensures exactly 1 newline before the end of the file +- De-indents code blocks where everything inside the code block is indented When someone makes one of these "mistakes" it is highlighted in the Pull Request by the GitHub Action. If you want to run this script locally and have it fix these things for you, you can: From cb2436d57b99c59fa2255db886aed4513ba4159f Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 15:01:49 -0300 Subject: [PATCH 044/142] README.md: Merged writing guidelines from cfengine.com website repo I don't want these to be out of sync, contradictory, or maintained in 2 different places. So making the website repo link to the docs repo guidelines. Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 14c25e614f547965a8b8394c9324b512084aa735) --- README.md | 235 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 135 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index abb6cab30..777b10990 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,13 @@ category when you create bugs. And of course you can search the bug tracker for known issues with the documentation, and help the community of CFEngine users by correcting some of them. -## Writing documentation +## Contributing to the documentation The CFEngine documentation is written in regular [markdown](https://daringfireball.net/projects/markdown/syntax), with some extensions as documented below. Check out the [cheatsheet](https://docs.cfengine.com/docs/master/markdown-cheatsheet.html)! -To keep the source readable in Git and workable with a broad range of tools, -keep the line length in paragraphs below 78 characters. - If you don't know Git, then you can still contribute to the documentation using the GitHub interface as long as you have a GitHub account. Fork this repository (called the _upstream_) using the GitHub web interface, make @@ -35,6 +32,83 @@ It is in general advisable to make small commits that are submitted through pull requests frequently. Otherwise any structural changes to documentation content can cause merge conflicts that are hard to resolve. +## Writing guidelines + +In order to make our documentation, blog posts, and website as consistent and easy to understand as possible, for both readers and writers, please follow the guidelines below. + +### Spelling + +CFEngine documentation follows American spelling, use the [Merriam Webster online dictionary](https://www.merriam-webster.com/) if you are unsure about the spelling of some words. + +### Punctuation + +**Oxford comma** + +In punctuation, a serial comma (also called Oxford comma) needs to be placed +immediately before the conjunction (often "and" or "or") in a series of three +or more terms. + +_Example:_ + +I would like crackers, cheese, and garlic. + +**The comma as a separator between compound sentences** + +Use comma to separate independent clauses when they are joined by any of +these seven coordinating conjunctions: and, but, for, or, nor, so, yet. + +However, the comma can be dropped in the following cases: + +- if both independent clauses are quite short, especially if the two clauses + are very closely related, and even more so if the subject of both clauses is + the same, or +- if only the first clause is quite short, especially if the two clauses are + very closely related, and even more so if the subject of both clauses is the + same. + +### Headings + +The title you put in the frontmatter will be `

` heading at the top of the post. +A line like `# Some title` in markdown becomes `

Some title

` in HTML, `## Some title` becomes `

Some title

`, etc. +There should only be one `

`, so don't use `# Some title` inside your post. + +Some other things to remember and avoid: + +- Don't use "Title Case"; in headings and titles, only capitalize the first word and proper nouns. +- Don't start a post or article with a heading, like a `## Introduction`, just write your introduction without a separate heading. +- Don't skip a heading level (Don't go directly from `

` to `

`). +- Don't make headings bold or italic or put additional styling inside them. +- Don't put explicit anchor handles in headings, like this: + ```markdown + ## Video {#video} + ``` + It is unnecessary, as this works the same: + ```markdown + ## Video + ``` + +(You can link to the specific headings by appending to the end of the URL, `#video` in this case). + +### Varied content + +Try to include a couple of visually interesting things in every post / article, such as: + +- Images / diagrams / screenshots +- Source code blocks with syntax highlighting (add `cf3`, `json` or similar after the triple backticks) +- Bulleted / numbered lists +- Video (Usually nice towards the end) + +### Bold, emphasis, and monospace + +- Use backticks to print something in a monospace font. + - Whenever you are writing something from the terminal, code, JSON files, policy snippets, or similar. + - For example: `bundle agent main`, `{}`, `my_bundle.my_variable`, `apt`, `cf-agent`, `/tmp`, `promises.cf`. +- Use two asterisks to make something bold. + - For highlighting an important paragraph / section: **Hint:**, **Tip:**, **Note:**, **Disclaimer:**. + - When referring to graphical UI / web page elements: Click the **Save** button. +- Use underscores to emphasize a word. + - For example a word which is extra important or has a special meaning. + ### Capitalization Avoid capitalizing things unnecessarily (features, concepts, titles). @@ -68,6 +142,61 @@ Use `-ing` or nouns instead, some examples: Since anything can be managed, "managing" tends to be used a lot. Try to use other words: "editing", "updating", "changing", "creating", "setting". +### Code blocks and indentation + +Use triple backticks + a language name to enable syntax highlighting. +Use 2 spaces for indentation, and avoid extra / unnecessary indentation. +On smaller devices, code blocks can be as narrow as 46 characters. +When possible, try to break up long lines, to make reading easier, without the user having to scroll horizontally. +(But don't go to extremes to always fit things within 46 characters). + +### File, command, and output blocks + +We have components for specifying commands to run, their output, and files to create, with their filename. + +Use these whenever possible. +See examples in the cheatsheet: [`./cheatsheet.markdown`](./cheatsheet.markdown) + +### Commands run as root + +Use `sudo` to communicate that something should be run as root. +Don't rely on users understanding your shell prompt to know which commands should be run as root. + +### Sentences and wrapping + +It's recommended to wrap after every sentence, with no line length limit - it makes reviews and diffs nicer. +To the markdown parser, it doesn't matter how you wrap your sentences, a completely empty line (i.e. two consecutive newline characters) is required for a line break in markdown. + +### Tools and automatic formatting + +**prettier** + +It is recommended, but not required, to use [`prettier`](https://prettier.io/) to automatically format markdown files. +This replaces some cases where two characters would produce the same output, and prefers the less ambiguous one, i.e. `-` instead of `*` for bulleted lists, `_` instead of `*` for italics. +It also eliminates some common inconsistencies, such as trailing whitespace, too many / too few consecutive newline characters, etc. +It doesn't help you with everything, for example, the one sentence per line style mentioned above is not something `prettier` +does automatically, so you'd still have to do that manually. +Formatting with `prettier` is currently not enforced, but recommended, especially if you are creating new files. + +**markdowner.py** + +We have a Python script and GitHub Action to automatically fix some common markdown mistakes. +This is intentionally not very strict, it only fixes very specific things, such as: + +- Trims trailing whitespace at the end of lines +- Replace some utf-8 symbols which have an ascii lookalike +- Ensures exactly 1 newline before the end of the file +- De-indents code blocks where everything inside the code block is indented + +When someone makes one of these "mistakes" it is highlighted in the Pull Request by the GitHub Action. +If you want to run this script locally and have it fix these things for you, you can: + +```bash +find . -name '*.markdown' -type f -exec python3 .github/workflows/markdowner.py {} all \; +``` + +In many cases, you can also configure your editor to help you with these things. + ## Documentation structure ### Structure @@ -194,7 +323,7 @@ triple backticks: With single backticks, this would link to the documentation of the `meta` attribute or promise type. -### Macros +### Custom macros The documentation generator will pre-process the markdown content before passing it to Jekyll for the rendering. The pre-processor @@ -385,82 +514,7 @@ Injects javascript that redirects the current page to the HTML page for `target` which needs to be a title or title#section combination as in regular `[text][title#section]` links. -## Content style guide - -Make sure you follow this style guide to make using CFEngine and the -documentation a consistent and pleasant experience. - -### Writing for the web - -- use subheadings to structure content -- keep paragraphs short -- support scanning of pages - -### Spelling - -CFEngine documentation follows the American spelling. - -### Punctuation - -**Oxford comma** - -In punctuation, a serial comma (also called Oxford comma) needs to be placed -immediately before the conjunction (often "and" or "or") in a series of three -or more terms. - -_Example:_ - -I would like crackers, cheese, and garlic. - -**The comma as a separator between compound sentences** - -Use comma to separate independent clauses when they are joined by any of -these seven coordinating conjunctions: and, but, for, or, nor, so, yet. - -However, the comma can be dropped in the following cases: - -- if both independent clauses are quite short, especially if the two clauses - are very closely related, and even more so if the subject of both clauses is - the same, or -- if only the first clause is quite short, especially if the two clauses are - very closely related, and even more so if the subject of both clauses is the - same. - -**Periods and spaces** - -The period ending a sentence should be followed by 1 space. - -### Emphasizing - -When referring to technical words, such as CFEngine keywords, filenames or commands, -use backticks to format that word as code (ie monospaced font). If the word is a -known word, a link will automatically generated (see above). - -When referring to UI elements or interactive functionality, use `*italic*`. - -To highlight sections of texts without starting a new header, use `**bold**`. - -### Abbreviations - -As a general note, avoiding abbreviations provides better readability. - -**Latin expressions commonly used in English** - -- i.e. (that is) -- e.g. (for example) -- cf. (compare) -- etc. (and so forth) -- vs.(versus) -- et al. (and others) - -### Charts and graphs - -- use clear shapes -- avoid shadows -- stick to black, white, and grey -- avoid background fill colors on large items - -## Technical reference documentation +## Documenting CFEngine specific concepts - follow the [Policy style guide](guide/writing-and-serving-policy/policy-style.markdown) in examples and code snippets @@ -625,25 +679,6 @@ The documentation generation creates a log file that lists undocumented syntax elements, ambiguous link targets and other stuff that can be improved at https://docs.cfengine.com/docs/master/cfdoc_log.html -## Semi-automatic formatting - -We have a Python script and GitHub Action to automatically fix some common markdown mistakes. -This is designed to not be super strict on purpose, it only fixes very specific things, such as: - -- Trims trailing whitespace at the end of lines -- Replace some utf-8 symbols which have an ascii lookalike -- Ensures exactly 1 newline before the end of the file -- De-indents code blocks where everything inside the code block is indented - -When someone makes one of these "mistakes" it is highlighted in the Pull Request by the GitHub Action. -If you want to run this script locally and have it fix these things for you, you can: - -``` -find . -name '*.markdown' -type f -exec python3 .github/workflows/markdowner.py {} all \; -``` - -In many cases, you can also configure your editor to help you with these things. - ## License See the LICENSE file. From a9f15d081321db7cfef2b65c2db8a9e6d0634ca0 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 15:36:57 -0300 Subject: [PATCH 045/142] cheatsheet.markdown: Better aligned with our writing guidelines Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 0e08d4fb4e6410716e7f8fd07837a17e2e3bbdac) --- cheatsheet.markdown | 344 +++++++++++++++++++------------------------- 1 file changed, 148 insertions(+), 196 deletions(-) diff --git a/cheatsheet.markdown b/cheatsheet.markdown index 79ad0d6d9..7eab1cae7 100644 --- a/cheatsheet.markdown +++ b/cheatsheet.markdown @@ -9,10 +9,7 @@ alias: markdown-cheatsheet.html Markdown formatting is simple, and the CFEngine generator adds a few things to make it even simpler. Here's a list of the most commonly used formats. -# Basic formatting -## Remember - -* **"Always pull never push"** +**Remember:** _Always pull never push_ ## Basic formatting @@ -30,19 +27,35 @@ Paragraph Two Paragraphs - `**Bold**` **Bold** -`*Italic*` *Italic* +`_Italic_` _Italic_ + +### Heading levels + +The number of `#` characters at the beginning of a line signifies the heading level (outside of a code block): + +```markdown +# Level 1 (

) +## Level 2 (

) + +### Level 3 (

) + +#### Level 4 (

) + +##### Level 5 (

) + +###### Level 6 (
) +``` -## Links +### Links -### Link within documentation and to known pages +#### Link within documentation and to known pages You can link to any documentation page using `[linktext][PageTitle]`. -#### Link to a specific section of a known page +##### Link to a specific section of a known page You can link to any documentation page section using `[linktext][PageTitle#section]`. @@ -50,21 +63,21 @@ When linking to a section, you should use the section name as it is rendered on For example, On the [functions][Functions] page we can link to the [collecting functions][Functions#collecting functions] section using `[collecting functions][Functions#collecting functions]`. -Sometimes (because `¯\_(ツ)_/¯`, maybe the page linked to hasn't been parsed yet) a page may not be automatically known. In this case an entry in [_references.md](https://github.com/cfengine/documentation/blob/master/generator/_references.md). +Sometimes (because `¯\_(ツ)_/¯`, maybe the page linked to hasn't been parsed yet) a page may not be automatically known. In this case an entry in [\_references.md](https://github.com/cfengine/documentation/blob/master/generator/_references.md). -##### Special characters in link targets +###### Special characters in link targets -See generator/_scripts/cfdoc_linkresolver.py for how various characters are changed to dashes (--, ,:,.,(,)) and erased ("). +See generator/\_scripts/cfdoc_linkresolver.py for how various characters are changed to dashes (--, ,:,.,(,)) and erased ("). Dashes are removed from the beginning and end of links as well. _Most_ (`¯\_(ツ)_/¯`) special characters are _okay_. For example: -* Link targets with `/` (forward slashes) work - * ```[Export/import][Settings#Export/import]``` == [Export/import][Settings#Export/import] +- Link targets with `/` (forward slashes) work + - `[Export/import][Settings#Export/import]` == [Export/import][Settings#Export/import] -Anchors with _underscores_ are problematic, *may* need to be escaped. +Anchors with _underscores_ are problematic, _may_ need to be escaped. -For example ```services_autorun``` in the MPF documentation the underscore needs to be escaped with a ```\```. +For example `services_autorun` in the MPF documentation the underscore needs to be escaped with a `\`. ``` **See also:** [`services_autorun` in the Masterfiles Policy Framework][Masterfiles Policy Framework#services\_autorun] @@ -82,7 +95,7 @@ But not always! For example Backticks are problematic. It seems impossible to link to anchors that contain backticks. -### Link to CFEngine keyword +#### Link to CFEngine keyword The documentation pre-processor will create those automatically. @@ -91,105 +104,97 @@ The documentation pre-processor will create those automatically. ``` + [`classes`][classes] and `readfile()` However, the preprocess will not create links if the code word is in triple backticks: - No links: ```classes``` and ```readfile()``` -No links: ```classes``` and ```readfile()``` +No links: `classes` and `readfile()` -### Link to external URL +#### Link to external URL `[Markdown Documentation](http://daringfireball.net/projects/markdown/)` [Markdown Documentation](http://daringfireball.net/projects/markdown/syntax) +### Lists -## Lists +#### Unordered lists - Use dashes -### Unordered lists - Markdown supports other markers than the asterisk, but in -CFEngine we use only `*`. +We use dashes: +```markdown +- Item 1 +- Item 2 + - Item 2a +- Multi paragraph item + Indented with spaces to same level ``` -* Item 1 -* Item 2 - * Item 2a -* Multi paragraph item - - Four spaces indented -``` - -* Item 1 -* Item 2 - * Item 2a -* Multi paragraph item - Four spaces indented +- Item 1 +- Item 2 + - Item 2a +- Multi paragraph item + Indented with spaces to same level -### Ordered lists - the numbers you use don't matter. +#### Ordered lists - the numbers you use don't matter. ``` 1. first 1. second -9. Third +1. third ``` 1. first 1. second -9. Third +1. third -### Nested lists +(Either use all 1's, or the correct numbers, 1., 2., 3.,). -``` -* Item 1 - 1. First - 2. First - 1. 1.2.1 -* Item 2 - * Item 2a (2 spaces) - - I am indented 4 spaces +#### Nested lists -* Multi paragraph item - - I am indented four spaces +```markdown +- Item 1 + 1. First + 1. Second + 1. ABC +- Item 2 + - Item 2a (2 spaces) + I am indented to the same level as 2a +- Multi paragraph item + I am indented 2 spaces ``` -* Item 1 +- Item 1 1. First - 2. First - 1. 1.2.1 -* Item 2 - * Item 2a (2 spaces) + 2. Second + 3. ABC +- Item 2 + - Item 2a (2 spaces) + I am indented to the same level as 2a +- Multi paragraph item + I am indented 2 spaces - I am indented 4 spaces - -* Multi paragraph item - - I am indented four spaces - - -## Tables +### Tables Wiki-syntax for tables is supported, and you can be a bit sloppy about it, although it's better to align the `|` properly. -``` +```markdown | Header | Left aligned | Centered | Right aligned | -|--------|:-------------|:--------:|--------------:| -|text | text | X | 234 | +| ------ | :----------- | :------: | ------------: | +| text | text | X | 234 | ``` | Header | Left aligned | Centered | Right aligned | -|--------|:-------------|:--------:|--------------:| -|text | text | X | 234 | +| ------ | :----------- | :------: | ------------: | +| text | text | X | 234 | +### Code -## Code - -### Inline code +#### Inline code This renders as `inline code`. @@ -197,11 +202,11 @@ This renders as `inline code`. This also renders as ```inline code```. -This also renders as ```inline code```. +This also renders as `inline code`. See the note above on implicit linking - single backticks will link, triple backticks won't. -### Code Blocks +#### Code blocks Start a code block using triple backticks: @@ -221,7 +226,7 @@ however this does not support syntax highlighting and triple backticks are prefe To turn on syntax highlighting, specify the language ("brush") directly after the opening three backticks. Syntax highlighting is provided by pygments. Find all available lexers [here](http://pygments.org/docs/lexers/). -#### Command code blocks +##### Command code blocks ```command python3 -v @@ -229,13 +234,14 @@ python3 -v This code block will have `command` in the header and corresponding icon. -#### Command code block with output +##### Command code block with output To have a component that shows command, and it's output you need to place output code block following command one. ```command uname ``` + ```output Linux ``` @@ -248,8 +254,7 @@ This line won't be shown in the resulted HTML. curl --user admin:admin https://test.cfengine.com/api/user ``` -```json -[output] +```json {output} { "meta": { "page": 1, @@ -271,9 +276,9 @@ curl --user admin:admin https://test.cfengine.com/api/user These two blocks will be joined into one element on the UI. -#### File code block +##### File code block -You can specify file name of the code block by adding `[file=Name of the file]` in the first line. +You can specify file name of the code block by adding `[file=Name of the file]` in the first line. This line won't be shown in the resulting HTML (it will be converted to the heading / frame). ```cf3 {file="policy.cf"} @@ -290,7 +295,7 @@ bundle agent hello_world The resulting code block will show `policy.cf` as the filename. -#### CFEngine code blocks +##### CFEngine code blocks If you want CFEngine syntax highlighting, use @@ -310,10 +315,9 @@ bundle agent example() } ``` - Other frequently used syntax highlighters shown below. -#### Bash script code blocks +##### Bash script code blocks ```bash #!/bin/bash @@ -333,17 +337,7 @@ do done ``` -#### Console blocks - - ```console - root@policy_server # /etc/init.d/cfengine3 stop - ``` - -```console -root@policy_server # /etc/init.d/cfengine3 stop -``` - -#### SQL code blocks +##### SQL code blocks ```sql SELECT @@ -375,7 +369,7 @@ SELECT ChangeCount DESC ``` -#### Diff code blocks +##### Diff code blocks ```diff diff --git a/README.md b/README.md @@ -419,105 +413,85 @@ index 92555a2..b49c0bb 100644 * document the example after the example code ``` - -#### JSON code blocks +##### JSON code blocks {% raw %} + ```json { - "classes":{ - "services_autorun": [ "any" ] + "classes": { + "services_autorun": ["any"] } } ``` -{% endraw %} +{% endraw %} ```json { - "classes":{ - "services_autorun": [ "any" ] + "classes": { + "services_autorun": ["any"] } } ``` -#### YAML Code Blocks +##### YAML code blocks {% raw %} + ```yaml --- - classes: - services_autorun: - - "any" +classes: + services_autorun: + - "any" ``` -{% endraw %} +{% endraw %} ```yaml --- - classes: - services_autorun: - - "any" -``` - -### Code blocks and lists - -If you want to include a code block within a list, put two tabs (8 spaces) in front of the entire block (4 to make the paragraph part of the list item, and 4 for it a code block): - -``` -* List item with code - - +classes: + services_autorun: + - "any" ``` -* List item with code - - - +#### Code blocks and lists -You can also use backticks (and get syntax highlighting) - just make sure the backticks are indented once: +If you want to include a code block within a list, align it just as you would with a sentence, and use triple backticks: 1. First - ```cf3 - # CFEngine block + ```cf3 + # CFEngine block - bundle agent example() - { - } - ``` + bundle agent example() {} + ``` 2. Second 3. Third 1. First - ```cf3 - # CFEngine block + ```cf3 + # CFEngine block - bundle agent example() - { - } - ``` + bundle agent example() {} + ``` 2. Second 3. Third +### Headers -***** - -## Headers - -### Horizontal bar +#### Horizontal bar -`***` +`---` -*** +--- -`# Level 1` +## CFEngine extensions - custom macros -# CFEngine extensions -## Example policy from core +### Include example policy from core Examples from cfengine/core can be rendered using the `CFEngine_include_example` macro. @@ -531,40 +505,17 @@ Examples from cfengine/core can be rendered using the `CFEngine_include_example` [%CFEngine_include_example(class-automatic-canonificiation.cf)%] {% endraw %} -## Include snippet of text from a file +### Include snippet of text from a file Sometimes it's nice to include a snippet from another file. For example, we dynamically generate the `--help` output for each component on each doc build and that output is included on each component page. - `[%CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$)%]` - - [%CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$)%] - - -# Level 1 - -`## Level 2` - -## Level 2 - -`### Level 3` - -### Level 3 - -`#### Level 4` - -#### Level 4 +`[%CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$)%]` -`##### Level 5` +[%CFEngine_include_snippet(cf-promises.help, [\s]\*--[a-z], ^$)%] -##### Level 5 - -`###### Level 6` - -###### Level 6 - -***** +--- -## Including external files +### Including external files Sometimes it's nice to include an external file @@ -572,7 +523,7 @@ Sometimes it's nice to include an external file [%CFEngine_include_markdown(masterfiles/CHANGELOG.md)%] -### Including chunks of policy from the MPF +#### Including chunks of policy from the MPF Here I am including a bundle named `cfe_autorun_inventory_listening_ports`. It may be a common or an agent bundle (in case the bundle ever changes types). @@ -582,7 +533,7 @@ Here I am including a bundle named `cfe_autorun_inventory_listening_ports`. It m [%CFEngine_include_snippet(inventory/any.cf, bundle\s+(agent|common)\s+cfe_autorun_inventory_listening_ports, \})%] -## Comments inside documentation +### Comments inside documentation Sometimes it's nice to be able to put an internal comment into the documentation that will not be rendered. @@ -603,51 +554,51 @@ Would render like this: {% comment %} TODO: We should try to improve this at some point.{% endcomment %} ``` -# FAQ -## When should I use `verbatim` vs **bold** or *italic*? +## FAQ -If it's code or something you would see on the command line (policy language, file names, command line options, binaries / CLI programs) use monospace (single backticks for inline, triple backticks for block, or when you have inline word that could also be an automatic link target that is undesirable, e.g. `files` ({% raw %}`files`{% endraw %}) vs ```files``` ({% raw %}```files```{% endraw %}) ). +### When should I use `verbatim` vs **bold** or _italic_? -If you are referring to something within UI / screenshots / buttons etc use bold and capitalize it as it is within the UI/Button/whatever. +If it's code or something you would see on the command line (policy language, file names, command line options, binaries / CLI programs) use monospace (single backticks for inline, triple backticks for block, or when you have inline word that could also be an automatic link target that is undesirable, e.g. `files` ({% raw %}`files`{% endraw %}) vs `files` ({% raw %}`files`{% endraw %}) ). +If you are referring to something within UI / screenshots / buttons etc use bold and capitalize it as it is within the UI/Button/whatever. **References:** -* https://www.patternfly.org/v4/ux-writing/punctuation/ -* https://docs.microsoft.com/en-us/style-guide/procedures-instructions/formatting-text-in-instructions +- https://www.patternfly.org/v4/ux-writing/punctuation/ +- https://docs.microsoft.com/en-us/style-guide/procedures-instructions/formatting-text-in-instructions -# Sandbox +## Sandbox -## symlink example +### symlink example [%CFEngine_include_snippet(masterfiles/lib/files.cf, ^body\slink_from\sln_s.*, ^##)%] +### Self documenting policy - -## Self documenting policy -### For the stdlib: +#### For the stdlib: [%CFEngine_library_include(lib/commands)%] -### For update.cf? +#### For update.cf? [%CFEngine_library_include(update)%] -### for Promises.cf? +#### for promises.cf? [%CFEngine_library_include(promises)%] -# Variables +## Variables + Referencing a version of CFEngine? Consider if that appearance should be updated with each new version. Variables that are defined in the front matter (thats the content between the three dashes at the top) or in -[_config.yaml](https://github.com/cfengine/documentation/blob/master/generator/_config.yml) +[\_config.yaml](https://github.com/cfengine/documentation/blob/master/generator/_config.yml) can be used directly within markdown. For example this is the '{{site.CFE_manuals_version}}' version of the -documentation. That variable comes from _config.yaml. +documentation. That variable comes from \_config.yaml. Since liquid variables look a lot like mustache variables any time you want to show the actual variables will need to be inside of raw tags. @@ -656,8 +607,9 @@ show the actual variables will need to be inside of raw tags. site.CFE_manuals_version {{ site.CFE_manuals_version }} {% endraw %} -# Testing -## Indention with included markdown +## Testing + +### Indention with included markdown 1. Verify that the selected hosts are upgrading successfully. From c96fe577a208ec1e55874dcea926435442a7dc9f Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 15:09:18 -0300 Subject: [PATCH 046/142] README.md: Updated links to cheatsheet The cheatsheet on our website is not really working well, so the better option is to just use GitHub. Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 4d437e9145d5c52a41dc0f91b85c4c060fc1b355) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 777b10990..496fc4c5b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ CFEngine users by correcting some of them. The CFEngine documentation is written in regular [markdown](https://daringfireball.net/projects/markdown/syntax), with some extensions as documented below. Check out the -[cheatsheet](https://docs.cfengine.com/docs/master/markdown-cheatsheet.html)! +[cheatsheet](https://github.com/cfengine/documentation/blob/master/cheatsheet.markdown?plain=1)! If you don't know Git, then you can still contribute to the documentation using the GitHub interface as long as you have a GitHub account. Fork this @@ -155,7 +155,7 @@ When possible, try to break up long lines, to make reading easier, without the u We have components for specifying commands to run, their output, and files to create, with their filename. Use these whenever possible. -See examples in the cheatsheet: [`./cheatsheet.markdown`](./cheatsheet.markdown) +See examples in [the cheatsheet](https://github.com/cfengine/documentation/blob/master/cheatsheet.markdown?plain=1#L229). ### Commands run as root From f976e5f9549599c25243779e08cec39ec3754767 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 15:52:48 -0300 Subject: [PATCH 047/142] Added redirect for markdown cheatsheet Rendered cheatsheet is not working well, so let's use GitHub at least for now. Maybe it's enough or better even? Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit c1bba42386d1b67cba329fc6510dad6e10f383f3) --- redirects.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/redirects.conf b/redirects.conf index 217fc2371..eab3f5ceb 100644 --- a/redirects.conf +++ b/redirects.conf @@ -32,6 +32,9 @@ RewriteRule ^/docs/master/guide-getting-started-with-cfengine-build.html$ /docs/ RewriteRule ^/docs/master/resources-additional-topics-glossary.html$ /docs/master/overview-glossary.html [R] RewriteRule ^/docs/3.21/resources-additional-topics-glossary.html$ /docs/3.21/overview-glossary.html [R] +# Redirect moved cheatsheet: +RewriteRule "^/docs/master/markdown-cheatsheet.html$" "https://github.com/cfengine/documentation/blob/master/cheatsheet.markdown?plain=1" [R] + # Redirect for easy access to 3rd party license information: # The /licenses shortcut is mentioned in legal agreements, website, etc. RewriteRule ^/licenses/?$ /docs/master/release-notes-legal-and-licenses.html [R] From 22e113f6a203ce39b0f957a535e33417b2a37884 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 16:08:49 -0300 Subject: [PATCH 048/142] markdowner.py: Removed file= handling which is no longer relevant Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 47f7dc93a9cd7cb99e3287bee772e411a812f4a6) --- .github/workflows/markdowner.py | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/.github/workflows/markdowner.py b/.github/workflows/markdowner.py index 3d274e14f..641a6bf78 100644 --- a/.github/workflows/markdowner.py +++ b/.github/workflows/markdowner.py @@ -51,19 +51,6 @@ def process_codeblock(lines, filename, lineno_start): prefix = begin[0 : begin.index("```")] lang = begin[len(prefix) + 3 :].strip() - # If the first line is a `[file=` label line, re-indent it to the same - # level as the code block: - file_line = None - if lines[0].strip().startswith("[file="): - file_line = lines[0] - should_be = prefix + file_line.strip() - if file_line != should_be: - lines[0] = should_be - file_line = should_be - print( - f"{filename}:{lineno_start}: Re-indented file line inside code block: {file_line.strip()}" - ) - # Checks for warnings which make us leave the code block alone: if not end == (prefix + "```"): @@ -73,11 +60,6 @@ def process_codeblock(lines, filename, lineno_start): lineno = lineno_start for i, line in enumerate(lines): - # If the first line is a [file=] label line, skip it, - # we've already indented it correctly above: - if i == 0 and file_line: - lineno += 1 - continue # Empty lines are already correct, skip them: if line == "": lineno += 1 @@ -95,11 +77,6 @@ def process_codeblock(lines, filename, lineno_start): common_indent = None lineno = lineno_start for i, line in enumerate(lines): - # Don't consider [file= label line for common indent, - # we indented it to same level as opening backticks above: - if i == 0 and file_line: - lineno += 1 - continue # Don't consider empty lines for common indentation: if line == "": lineno += 1 @@ -126,9 +103,7 @@ def process_codeblock(lines, filename, lineno_start): # Remove common indent if found: if common_indent is not None and common_indent > 0: spaces = common_indent - if file_line: - lines = lines[1:] - lines = ([file_line] if file_line else []) + [ + lines = [ x if x == "" else x[0 : len(prefix)] + x[len(prefix) + spaces :] for x in lines ] From 68aa2ed91368d2b5441192055aee421592edc189 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Mon, 12 May 2025 16:23:50 -0300 Subject: [PATCH 049/142] markdowner.py: Adjusted to align with prettier Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 1dd1cadb2ee326c237c712cd13f0f20e6d5d7926) --- .github/workflows/markdowner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/markdowner.py b/.github/workflows/markdowner.py index 641a6bf78..c5d80e49e 100644 --- a/.github/workflows/markdowner.py +++ b/.github/workflows/markdowner.py @@ -208,8 +208,8 @@ def perform_edits(content, flags, filename): replacements = { # Empty line (double newline) before command: r"(? Date: Mon, 12 May 2025 19:50:47 -0300 Subject: [PATCH 050/142] Ran new version of markdowner.py to create newlines where appropriate Signed-off-by: Ole Herman Schumacher Elgesem --- examples.markdown | 3 +++ .../example_aborting_execution.markdown | 2 ++ .../example_change_detection.markdown | 1 + .../example_create_filedir.markdown | 1 + .../promise-patterns/example_diskfree.markdown | 2 ++ .../promise-patterns/example_edit_motd.markdown | 1 + .../example_enable_service.markdown | 14 ++++++++++++++ .../example_find_mac_addr.markdown | 1 + .../example_install_package.markdown | 2 ++ .../promise-patterns/example_mount_nfs.markdown | 3 +++ .../promise-patterns/example_process_kill.markdown | 5 +++++ .../example_process_restart.markdown | 1 + .../promise-patterns/example_ssh_keys.markdown | 1 + .../promise-patterns/example_sudoers.markdown | 1 + examples/tutorials/custom_inventory.markdown | 3 +++ examples/tutorials/manage-ntp.markdown | 10 ++++++++++ examples/tutorials/manage-packages.markdown | 5 +++++ .../manage-processes-and-services.markdown | 2 ++ .../masterfiles_policy_framework_upgrade.markdown | 14 ++++++++++++++ .../render-files-with-mustache-templates.markdown | 1 + .../reporting/command-line-reports.markdown | 1 + getting-started/installation.markdown | 4 ++++ .../installation/general-installation.markdown | 1 - .../installation-community.markdown | 1 + .../installation-enterprise-vagrant.markdown | 5 +++++ .../verify-signatures.markdown | 3 +++ .../installation/secure-bootstrap.markdown | 3 +++ .../modules-from-cfengine-build.markdown | 1 + .../custom-https-certificate.markdown | 2 ++ .../lookup-license-info.markdown | 1 + .../hub_administration/policy-deployment.markdown | 3 +++ 31 files changed, 97 insertions(+), 1 deletion(-) diff --git a/examples.markdown b/examples.markdown index a9c7a4c4e..8044ea67f 100644 --- a/examples.markdown +++ b/examples.markdown @@ -78,6 +78,7 @@ the `hello_world.cf` policy, and activate the `hello_world` bundle. See the outp ```command /var/cfengine/bin/cf-agent --no-lock --file ./hello_world.cf --bundlesequence hello_world ``` + ```output 2013-08-20T14:03:43-0500 notice: R: Hello World! ``` @@ -128,6 +129,7 @@ Execute the following command: ```command /var/cfengine/bin/cf-agent --no-lock --file ./hello_world.cf ``` + ```output notice: R: Hello World! ``` @@ -184,6 +186,7 @@ And it can now be run directly: ```command ./hello_world.cf ``` + ```output 2013-08-20T14:39:34-0500 notice: R: Hello World! ``` diff --git a/examples/example-snippets/promise-patterns/example_aborting_execution.markdown b/examples/example-snippets/promise-patterns/example_aborting_execution.markdown index 315f2e2d0..ec693fe73 100644 --- a/examples/example-snippets/promise-patterns/example_aborting_execution.markdown +++ b/examples/example-snippets/promise-patterns/example_aborting_execution.markdown @@ -18,6 +18,7 @@ This is how the policy runs when the userlist is valid: ```command cf-agent -f unit_abort.cf ``` + ```output R: User name mark is valid at 4 letters R: User name john is valid at 4 letters @@ -27,6 +28,7 @@ This is how the policy runs when the userlist contains an invalid entry: ```command cf-agent -f unit_abort.cf ``` + ```output Bundle example aborted on defined class "invalid" ``` diff --git a/examples/example-snippets/promise-patterns/example_change_detection.markdown b/examples/example-snippets/promise-patterns/example_change_detection.markdown index 65e9e9efb..72855fbaf 100644 --- a/examples/example-snippets/promise-patterns/example_change_detection.markdown +++ b/examples/example-snippets/promise-patterns/example_change_detection.markdown @@ -25,6 +25,7 @@ CFEngine detects new files and adds them to the file integrity database: ```command cf-agent -f unit_change_detect.cf ``` + ```output 2013-06-06T20:53:26-0700 error: /example/files/'/etc/example': File '/etc/example/example.conf' was not in 'md5' database - new file found diff --git a/examples/example-snippets/promise-patterns/example_create_filedir.markdown b/examples/example-snippets/promise-patterns/example_create_filedir.markdown index da0c7ef10..250e83a79 100644 --- a/examples/example-snippets/promise-patterns/example_create_filedir.markdown +++ b/examples/example-snippets/promise-patterns/example_create_filedir.markdown @@ -15,6 +15,7 @@ Example output: ```command cf-agent -f unit_create_filedir.cf -I ``` + ```output 2013-06-08T14:56:26-0700 info: /example/files/'/home/mark/tmp/test_plain': Created file '/home/mark/tmp/test_plain', mode 0640 2013-06-08T14:56:26-0700 info: /example/files/'/home/mark/tmp/test_dir/.': Created directory '/home/mark/tmp/test_dir/.' diff --git a/examples/example-snippets/promise-patterns/example_diskfree.markdown b/examples/example-snippets/promise-patterns/example_diskfree.markdown index f4d8f72ec..5e3548e6b 100644 --- a/examples/example-snippets/promise-patterns/example_diskfree.markdown +++ b/examples/example-snippets/promise-patterns/example_diskfree.markdown @@ -15,6 +15,7 @@ Example output: ```command cf-agent -f unit_diskfree.cf ``` + ```output R: Freedisk 48694692 ``` @@ -22,6 +23,7 @@ R: Freedisk 48694692 ```command df -k /tmp ``` + ```output Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 149911836 93602068 48694692 66% / diff --git a/examples/example-snippets/promise-patterns/example_edit_motd.markdown b/examples/example-snippets/promise-patterns/example_edit_motd.markdown index 5bf68cd2a..1ad4f0bc2 100644 --- a/examples/example-snippets/promise-patterns/example_edit_motd.markdown +++ b/examples/example-snippets/promise-patterns/example_edit_motd.markdown @@ -33,6 +33,7 @@ The bundle is defined like this: ```command cf-agent -KIf ./mustache_template_motd.cf; cat /etc/motd ``` + ```output info: Updated rendering of '/etc/motd' from mustache template 'inline' info: files promise '/etc/motd' repaired diff --git a/examples/example-snippets/promise-patterns/example_enable_service.markdown b/examples/example-snippets/promise-patterns/example_enable_service.markdown index 083b92cba..4c97dc950 100644 --- a/examples/example-snippets/promise-patterns/example_enable_service.markdown +++ b/examples/example-snippets/promise-patterns/example_enable_service.markdown @@ -27,6 +27,7 @@ We can see that before the policy run `sysstat` is *inactive*, `apache2` is ```command systemctl is-active sysstat apache2 cups ssh cron ``` + ```output inactive active @@ -40,6 +41,7 @@ Now we run the policy to converge the system to the desired state. ```command cf-agent --no-lock --inform --file ./services.cf ``` + ```output info: Executing 'no timeout' ... '/bin/systemctl --no-ask-password --global --system -q stop apache2' info: Completed execution of '/bin/systemctl --no-ask-password --global --system -q stop apache2' @@ -55,6 +57,7 @@ After the policy run we can see that `systat`, `apache2`, and `cups` are ```command systemctl is-active sysstat apache2 cups ssh cron ``` + ```output inactive inactive @@ -72,6 +75,7 @@ correctly , `httpd` is *running*, `cups` is *running*, `sshd` is *running* and ```command service sysstat status; echo $? ``` + ```output 3 ``` @@ -79,6 +83,7 @@ service sysstat status; echo $? ```command service httpd status; echo $? ``` + ```output httpd (pid 3740) is running... 0 @@ -87,6 +92,7 @@ httpd (pid 3740) is running... ```command service cups status; echo $? ``` + ```output cupsd (pid 3762) is running... 0 @@ -95,6 +101,7 @@ cupsd (pid 3762) is running... ```command service sshd status; echo $? ``` + ```output openssh-daemon (pid 3794) is running... 0 @@ -103,6 +110,7 @@ openssh-daemon (pid 3794) is running... ```command service crond status; echo $? ``` + ```output crond is stopped 3 @@ -113,6 +121,7 @@ Now we run the policy to converge the system to the desired state. ```command cf-agent -KIf ./services.cf ``` + ```output info: Executing 'no timeout' ... '/etc/init.d/crond start' info: Completed execution of '/etc/init.d/crond start' @@ -129,6 +138,7 @@ After the policy run we can see that `systat` is still not reporting status corr ```command service sysstat status; echo $? ``` + ```output 3 ``` @@ -136,6 +146,7 @@ service sysstat status; echo $? ```command service httpd status; echo $? ``` + ```output httpd is stopped 3 @@ -144,6 +155,7 @@ httpd is stopped ```command service cups status; echo $? ``` + ```output cups is stopped 3 @@ -152,6 +164,7 @@ cups is stopped ```command service sshd status; echo $? ``` + ```output openssh-daemon (pid 3794) is running... 0 @@ -160,6 +173,7 @@ openssh-daemon (pid 3794) is running... ```command service crond status; echo $? ``` + ```output crond (pid 3929) is running... 0 diff --git a/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown b/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown index e5d494ab9..e1c6f2c6e 100644 --- a/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown +++ b/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown @@ -78,6 +78,7 @@ Example run: ```command cf-agent -f example_find_mac_addr.cf ``` + ```output 2013-06-08T16:59:19-0700 notice: R: MAC address is a4:ba:db:d7:59:32 ``` diff --git a/examples/example-snippets/promise-patterns/example_install_package.markdown b/examples/example-snippets/promise-patterns/example_install_package.markdown index 251e88be7..5678dc326 100644 --- a/examples/example-snippets/promise-patterns/example_install_package.markdown +++ b/examples/example-snippets/promise-patterns/example_install_package.markdown @@ -53,6 +53,7 @@ Example run: ```command dpkg -r lynx ntp # remove packages so CFEngine has something to repair ``` + ```output (Reading database ... 234887 files and directories currently installed.) Removing lynx ... @@ -69,6 +70,7 @@ cf-agent -f install_packages.cf # install packages ```command dpkg -l lynx ntp # show installed packages ``` + ```output Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend diff --git a/examples/example-snippets/promise-patterns/example_mount_nfs.markdown b/examples/example-snippets/promise-patterns/example_mount_nfs.markdown index 2420fb28d..3f9655948 100644 --- a/examples/example-snippets/promise-patterns/example_mount_nfs.markdown +++ b/examples/example-snippets/promise-patterns/example_mount_nfs.markdown @@ -49,6 +49,7 @@ Now we run CFEngine to mount the filesystem and add it to /etc/fstab: ```command cf-agent -f example_mount_nfs.cf ``` + ```output 2013-06-08T17:48:42-0700 error: Attempting abort because mount went into a retry loop. ``` @@ -56,6 +57,7 @@ cf-agent -f example_mount_nfs.cf ```command grep mnt /etc/fstab ``` + ```output fileserver:/home /mnt nfs rw ``` @@ -63,6 +65,7 @@ fileserver:/home /mnt nfs rw ```command df |grep mnt ``` + ```output fileserver:/home 149912064 94414848 47882240 67% /mnt ``` diff --git a/examples/example-snippets/promise-patterns/example_process_kill.markdown b/examples/example-snippets/promise-patterns/example_process_kill.markdown index b1856d794..072cf1ff1 100644 --- a/examples/example-snippets/promise-patterns/example_process_kill.markdown +++ b/examples/example-snippets/promise-patterns/example_process_kill.markdown @@ -34,6 +34,7 @@ Example run: ```command /bin/sleep 1000 & ``` + ```output [1] 5370 ``` @@ -41,6 +42,7 @@ Example run: ```command cf-agent -f unit_process_kill.cf ``` + ```output [1]+ Terminated /bin/sleep 1000 ``` @@ -50,6 +52,7 @@ Now let's do it again with inform mode turned on, and CFEngine will show the pro ```command /bin/sleep 1000 & ``` + ```output [1] 5377 ``` @@ -57,6 +60,7 @@ Now let's do it again with inform mode turned on, and CFEngine will show the pro ```command cf-agent -f unit_process_kill.cf -IK ``` + ```output 2013-06-08T16:30:06-0700 info: This agent is bootstrapped to '192.168.183.208' 2013-06-08T16:30:06-0700 info: Running full policy integrity checks @@ -69,6 +73,7 @@ If we add the -v switch to turn on verbose mode, we see the /bin/ps command CFEn ```command cf-agent -f unit_process_kill.cf -Kv ``` + ```output ... 2013-06-08T16:38:20-0700 verbose: Observe process table with /bin/ps -eo user,pid,ppid,pgid,pcpu,pmem,vsz,ni,rss,nlwp,stime,time,args diff --git a/examples/example-snippets/promise-patterns/example_process_restart.markdown b/examples/example-snippets/promise-patterns/example_process_restart.markdown index 99ab45ab8..011781983 100644 --- a/examples/example-snippets/promise-patterns/example_process_restart.markdown +++ b/examples/example-snippets/promise-patterns/example_process_restart.markdown @@ -71,6 +71,7 @@ kill 8008 ```command cf-agent -f unit_process_restart.cf -I ``` + ```output 2013-06-08T18:19:51-0700 info: This agent is bootstrapped to '192.168.183.208' 2013-06-08T18:19:51-0700 info: Running full policy integrity checks diff --git a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown b/examples/example-snippets/promise-patterns/example_ssh_keys.markdown index 00389fe3a..e0082ef9e 100644 --- a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown +++ b/examples/example-snippets/promise-patterns/example_ssh_keys.markdown @@ -60,6 +60,7 @@ Then update the policy and run it: ```command cf-agent -Kf update.cf; cf-agent -KI ``` + ```output info: Installing cfe_internal_non_existing_package... info: Created directory '/home/bob/.ssh/.' diff --git a/examples/example-snippets/promise-patterns/example_sudoers.markdown b/examples/example-snippets/promise-patterns/example_sudoers.markdown index 7d300ee6b..b50f40026 100644 --- a/examples/example-snippets/promise-patterns/example_sudoers.markdown +++ b/examples/example-snippets/promise-patterns/example_sudoers.markdown @@ -44,6 +44,7 @@ Example run: ```command cf-agent -f temp.cf -KI ``` + ```output 2013-06-08T19:13:21-0700 info: This agent is bootstrapped to '192.168.183.208' 2013-06-08T19:13:22-0700 info: Running full policy integrity checks diff --git a/examples/tutorials/custom_inventory.markdown b/examples/tutorials/custom_inventory.markdown index 59ed6ea06..1ec5c27cd 100644 --- a/examples/tutorials/custom_inventory.markdown +++ b/examples/tutorials/custom_inventory.markdown @@ -143,6 +143,7 @@ You can also perform a manual policy run and check that the correct owner is dis ```command cf-agent -KIf /var/cfengine/masterfiles/promises.cf -b tutorials_inventory_owner ``` + ```output info: Using command line specified bundlesequence R: tutorials_inventory_owner: Discovered Owner='Operations Team ' @@ -182,6 +183,7 @@ Now that we have jq in place, let's query the Inventory API to see what inventor ```command curl -s -k --user admin:admin -X GET https://localhost/api/inventory/attributes-dictionary | jq '.[].attribute_name' ``` + ```output "Architecture" "BIOS vendor" @@ -229,6 +231,7 @@ Now, let's query the Inventory API to see what Owners are reported. ```command curl -s -k --user admin:admin -X POST -H 'content-type: application/json' -d '{ "select": [ "Host name", "Owner" ]}' https://localhost/api/inventory | jq '.data[].rows[]' ``` + ```output [ "host001.example.com", diff --git a/examples/tutorials/manage-ntp.markdown b/examples/tutorials/manage-ntp.markdown index 832c3283c..d6d040e8a 100644 --- a/examples/tutorials/manage-ntp.markdown +++ b/examples/tutorials/manage-ntp.markdown @@ -137,6 +137,7 @@ Validate it. ```command python -m json.tool < def.json ``` + ```output { "inputs": [ @@ -167,6 +168,7 @@ Now force a policy run. ```command cf-agent -KI ``` + ```output info: Successfully installed package 'ntp' ``` @@ -271,6 +273,7 @@ Perform a manual policy run and review the output to ensure that the policy exec ```command cf-agent -KIf update.cf ; cf-agent -KI ``` + ```output info: Copied file '/var/cfengine/masterfiles/services/ntp.cf' to '/var/cfengine/inputs/services/ntp.cf.cfnew' (mode '600') info: Executing 'no timeout' ... '/sbin/chkconfig ntpd on' @@ -483,6 +486,7 @@ Now that we have dissected the policy, let's go ahead and give it a whirl. ```command cf-agent -KIf update.cf; ``` + ```output info: Copied file '/var/cfengine/masterfiles/services/ntp.cf' to '/var/cfengine/inputs/services/ntp.cf.cfnew' (mode '600') ``` @@ -490,6 +494,7 @@ info: Copied file '/var/cfengine/masterfiles/services/ntp.cf' to '/var/cfengine/ ```command cf-agent -KI ``` + ```output info: Updated rendering of '/etc/ntp.conf' from mustache template 'inline' info: files promise '/etc/ntp.conf' repaired @@ -503,6 +508,7 @@ More interestingly, if you examine the configuration file `/etc/ntp.conf`, you w ```command grep -P "^(driftfile|server)" /etc/ntp.conf ``` + ```output driftfile /var/lib/ntp/drift server time.nist.gov iburst @@ -645,6 +651,7 @@ First modify `services/ntp.cf` as shown previously (don't forget to check syntax ```command cf-agent -KIf update.cf ``` + ```output info: Copied file '/var/cfengine/masterfiles/services/ntp.cf' to '/var/cfengine/inputs/services/ntp.cf.cfnew' (mode '600') info: Copied file '/var/cfengine/masterfiles/def.json' to '/var/cfengine/inputs/def.json.cfnew' (mode '600') @@ -681,6 +688,7 @@ Now, let's validate the JSON and force a policy run and inspect the result. ```command python -m json.tool < def.json ``` + ```output { "inputs": [ @@ -708,6 +716,7 @@ python -m json.tool < def.json ```command cf-agent -KI ``` + ```output info: Updated rendering of '/etc/ntp.conf' from mustache template 'inline' info: files promise '/etc/ntp.conf' repaired @@ -721,6 +730,7 @@ R: NTP service restarted after configuration change ```command grep -P "^(driftfile|server)" /etc/ntp.conf ``` + ```output driftfile /tmp/drift server 0.north-america.pool.ntp.org iburst diff --git a/examples/tutorials/manage-packages.markdown b/examples/tutorials/manage-packages.markdown index 532fcabf5..e1581e4a3 100644 --- a/examples/tutorials/manage-packages.markdown +++ b/examples/tutorials/manage-packages.markdown @@ -43,6 +43,7 @@ version before and after running the policy, and we get the following output: ```command yum list installed | grep openssl ``` + ```output openssl.x86_64 1.0.0-27.el6 @anaconda-CentOS-201303020151.x86_64/6.4 openssl-devel.x86_64 1.0.0-27.el6 @anaconda-CentOS-201303020151.x86_64/6.4 @@ -55,6 +56,7 @@ cf-agent -K ./manage_packages.cf ```command yum list installed | grep openssl ``` + ```output openssl.x86_64 1.0.1e-42.el6 @base openssl-devel.x86_64 1.0.1e-42.el6 @base @@ -67,6 +69,7 @@ installed. ```command yum list installed | grep telnet ``` + ```output telnet.x86_64 1:0.17-48.el6 @base ``` @@ -74,6 +77,7 @@ telnet.x86_64 1:0.17-48.el6 @base ```command which telnet ``` + ```output /usr/bin/telnet ``` @@ -116,6 +120,7 @@ can now see the policy in action: # yum list installed | grep telnet # which telnet ``` + ```output /usr/bin/which: no telnet in (/sbin:/bin:/usr/sbin:/usr/bin:/var/cfengine/bin) ``` diff --git a/examples/tutorials/manage-processes-and-services.markdown b/examples/tutorials/manage-processes-and-services.markdown index 0588547d6..324187246 100644 --- a/examples/tutorials/manage-processes-and-services.markdown +++ b/examples/tutorials/manage-processes-and-services.markdown @@ -67,6 +67,7 @@ Then we run our CFEngine policy: ```command cf-agent -f ./ensure_process.cf ``` + ```output 2014-03-20T06:33:56+0000 notice: /default/main/commands/'/etc/init.d/ntp start'[0]: Q: "...init.d/ntp star": * Starting NTP server ntpd Q: "...init.d/ntp star": ...done. @@ -77,6 +78,7 @@ Finally, we verify that ntpd is now running on the system: ```command ps axuww | grep ntp ``` + ```output ntp 5756 0.3 0.1 37696 2172 ? Ss 06:33 0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 104:110 ``` diff --git a/examples/tutorials/masterfiles_policy_framework_upgrade.markdown b/examples/tutorials/masterfiles_policy_framework_upgrade.markdown index 4abce6561..c5bd02451 100644 --- a/examples/tutorials/masterfiles_policy_framework_upgrade.markdown +++ b/examples/tutorials/masterfiles_policy_framework_upgrade.markdown @@ -34,6 +34,7 @@ else echo "promises.cf is missing, $INTEGRATION_ROOT/masterfiles does not seem like the root of a policy set" fi ``` + ```output promise.cf exists, it's likely the root of a policy set ``` @@ -44,6 +45,7 @@ Let's see what version of the MPF we are starting from by looking at `version` i grep -P "\s+version\s+=>" $INTEGRATION_ROOT/masterfiles/promises.cf 2>&1 \ || echo "promises.cf is missing, $INTEGRATION_ROOT/masterfiles does not seem to be the root of a policy set" ``` + ```output version => "CFEngine Promises.cf 3.18.0"; ``` @@ -55,6 +57,7 @@ git status \ || echo "$INTEGRATION_ROOT/masterfiles does not appear to be a git repository!" \ && git log -1 ``` + ```output On branch master nothing to commit, working tree clean @@ -86,6 +89,7 @@ Check `git status` to see that all the files have been deleted and are not stage ```command git status ``` + ```output On branch master Changes not staged for commit: @@ -238,6 +242,7 @@ First, clone the desired version of the MPF source. export MPF_VERSION="3.21.2" git clone -b $MPF_VERSION https://github.com/cfengine/masterfiles $INTEGRATION_ROOT/masterfiles-source-$MPF_VERSION ``` + ```output Cloning into '/tmp/MPF-upgrade/integration/masterfiles-source-3.21.2'... Note: switching to 'f495603285f9bd90d5d36df4fec4870aeee751e8'. @@ -268,6 +273,7 @@ export EXPLICIT_VERSION=$MPF_VERSION make make install prefix=$INTEGRATION_ROOT/ ``` + ```output ./autogen.sh: Running determine-version.sh ... ./autogen.sh: Running determine-release.sh ... @@ -418,6 +424,7 @@ Now we can use `git status` to see an overview of the changes to the repository cd $INTEGRATION_ROOT/masterfiles git status ``` + ```output On branch master Changes not staged for commit: @@ -514,6 +521,7 @@ We can run git status again to see the current overview: ```command git status ``` + ```output On branch master Changes to be committed: @@ -596,6 +604,7 @@ Next we want to bring back any of our custom files. Look through the **deleted** ```command git ls-files --deleted ``` + ```output custom-2.cf def.json @@ -612,6 +621,7 @@ git checkout def.json git checkout services/autorun/custom-1.cf git checkout services/custom-3.cf ``` + ```output Updated 1 path from the index Updated 1 path from the index @@ -626,6 +636,7 @@ Other deleted files from the upstream framework like `lib/deprecated-upstream.cf ```command git rm lib/deprecated-upstream.cf ``` + ```output rm 'lib/deprecated-upstream.cf' ``` @@ -635,6 +646,7 @@ The files marked as **modified** in the `git status` output are files that have ```command git status ``` + ```output On branch master Changes to be committed: @@ -957,6 +969,7 @@ Review `git status` one more time to make sure the changes are as expected. ```command git status ``` + ```output On branch master Changes to be committed: @@ -1032,6 +1045,7 @@ Make sure the policy validates and commit your changes. ```command git commit -m "Upgraded MPF from 3.18.0 to 3.21.2" ``` + ```output [master a5d512c] Upgraded MPF from 3.18.0 to 3.21.2 64 files changed, 2599 insertions(+), 728 deletions(-) diff --git a/examples/tutorials/render-files-with-mustache-templates.markdown b/examples/tutorials/render-files-with-mustache-templates.markdown index 3f53135fb..85ac96127 100644 --- a/examples/tutorials/render-files-with-mustache-templates.markdown +++ b/examples/tutorials/render-files-with-mustache-templates.markdown @@ -104,6 +104,7 @@ Verify the result: ```command cat /tmp/myapp.conf ``` + ```output Port 3508 Protocol 2 diff --git a/examples/tutorials/reporting/command-line-reports.markdown b/examples/tutorials/reporting/command-line-reports.markdown index c75cde96b..d960be38d 100644 --- a/examples/tutorials/reporting/command-line-reports.markdown +++ b/examples/tutorials/reporting/command-line-reports.markdown @@ -368,6 +368,7 @@ This generates three different logs with the following output: ```command more /tmp/private_keptlog.log ``` + ```output Sun Dec 6 11:58:16 2009 /tmp/xyz promise status Sun Dec 6 11:58:43 2009 /tmp/xyz promise status diff --git a/getting-started/installation.markdown b/getting-started/installation.markdown index 4569b9d1c..e4f09b769 100644 --- a/getting-started/installation.markdown +++ b/getting-started/installation.markdown @@ -81,6 +81,7 @@ To continue, you will need to be able to use `python3` and `pip3`: ```command python3 --version ``` + ```output Python 3.10.8 ``` @@ -90,6 +91,7 @@ And similar for `pip`: ```command pip3 --version ``` + ```output pip 22.3 from /usr/local/lib/python3.10/site-packages/pip (python 3.10) ``` @@ -133,6 +135,7 @@ And similarly for `cf-remote`: ```command cf-remote --version ``` + ```output cf-remote version 0.4.5 Available CFEngine versions: @@ -189,6 +192,7 @@ The host is now in a `cf-remote` group called `hub`, so we don't have to type th ```command cf-remote info -H hub ``` + ```output root@192.168.56.2 OS : Ubuntu 20 diff --git a/getting-started/installation/general-installation.markdown b/getting-started/installation/general-installation.markdown index caae13e43..95374abed 100644 --- a/getting-started/installation/general-installation.markdown +++ b/getting-started/installation/general-installation.markdown @@ -82,7 +82,6 @@ The preferred way of setting `def.mailfrom` is from the [augments file][Augments]. ```json {file="def.json"} - { "vars": { "mailfrom": "sender@your.domain.here", diff --git a/getting-started/installation/general-installation/installation-community.markdown b/getting-started/installation/general-installation/installation-community.markdown index 4b6460419..da7d96162 100644 --- a/getting-started/installation/general-installation/installation-community.markdown +++ b/getting-started/installation/general-installation/installation-community.markdown @@ -39,6 +39,7 @@ For example, this command downloads CFEngine 3.24.1 packages for ubuntu24 into t ```command cf-remote --version 3.24.1 download ubuntu24 --edition community --output-dir . ``` + ```output Available releases: master, 3.25.0, 3.24.x, 3.24.1, 3.24.0, 3.21.x, 3.21.6, 3.21.5, 3.21.4, 3.21.3, 3.21.2, 3.21.1, 3.21.0 Using 3.24.1 LTS: diff --git a/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown b/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown index 50f6ff344..5b7e8ac89 100644 --- a/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown +++ b/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown @@ -115,6 +115,7 @@ status` output. Both the 'root' and 'vagrant' users passwords are set to ```command vagrant ssh hub ``` + ```output Last login: Fri Jun 13 18:58:10 2014 from 10.0.2.2 ``` @@ -135,6 +136,7 @@ output like this. ```command vagrant status ``` + ```output Current machine states: @@ -163,6 +165,7 @@ changes made inside. ```command vagrant suspend ``` + ```output ==> hub: Saving VM state and suspending execution... ==> host001: Saving VM state and suspending execution... @@ -174,6 +177,7 @@ and allows for latter resuming of the environment. ```command vagrant halt ``` + ```output ==> host001: Attempting graceful shutdown of VM... ==> hub: Attempting graceful shutdown of VM... @@ -185,6 +189,7 @@ delete the vms and any modifications made to the environment will be lost. ```command vagrant destroy ``` + ```output host001: Are you sure you want to destroy the 'host001' VM? [y/N] y ==> host001: Forcing shutdown of VM... diff --git a/getting-started/installation/pre-installation-checklist/verify-signatures.markdown b/getting-started/installation/pre-installation-checklist/verify-signatures.markdown index f143cc360..89a552a42 100644 --- a/getting-started/installation/pre-installation-checklist/verify-signatures.markdown +++ b/getting-started/installation/pre-installation-checklist/verify-signatures.markdown @@ -28,6 +28,7 @@ rpm --import https://cfengine-package-repos.s3.amazonaws.com/pub/gpg.key ```command rpm -K ./cfengine-nova-hub-3.12.2-2.x86_64.rpm ``` + ```output ./cfengine-nova-hub-3.12.2-2.x86_64.rpm: rsa sha1 (md5) pgp md5 OK ``` @@ -37,6 +38,7 @@ NOTE: If you don't import the public key first, you will get an error about the ```command rpm -K ./cfengine-nova-hub-3.12.2-2.x86_64.rpm ``` + ```output ./cfengine-nova-hub-3.12.2-2.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#a86e7afa) ``` @@ -75,6 +77,7 @@ rpm -K ./cfengine-nova-hub-3.12.2-2.x86_64.rpm ```command debsig-verify cfengine-nova-hub_3.12.2-2_amd64.deb ``` + ```output debsig: Verified package from 'CFEngine 3' (cfengine3) ``` diff --git a/getting-started/installation/secure-bootstrap.markdown b/getting-started/installation/secure-bootstrap.markdown index af4f60674..086af1ac5 100644 --- a/getting-started/installation/secure-bootstrap.markdown +++ b/getting-started/installation/secure-bootstrap.markdown @@ -112,6 +112,7 @@ If you are installing CFEngine using one of our official packages, keys are auto ```command sudo ls /var/cfengine/ppkeys ``` + ```output localhost.priv localhost.pub @@ -160,6 +161,7 @@ Inspect the key: ```command ssh "$CLIENT_SSH" "sudo cat /var/cfengine/ppkeys/localhost.pub" ``` + ```output -----BEGIN RSA PUBLIC KEY----- MIIBCgKCAQEAt93D8fb+M7HGZxsVo+FnOhnLM9E0QCr046N369jOeePY65lPOhAD @@ -201,6 +203,7 @@ Inspect the key: ```command ssh "$HUB_SSH" "sudo cat /var/cfengine/ppkeys/localhost.pub" ``` + ```output -----BEGIN RSA PUBLIC KEY----- MIIBCgKCAQEAt8Wti90sRjLiEhLbC5096nEhzV3fU0N4TrxiGPCb26KufavBrXGw diff --git a/getting-started/modules-from-cfengine-build.markdown b/getting-started/modules-from-cfengine-build.markdown index 1b1a0788d..81766b72d 100644 --- a/getting-started/modules-from-cfengine-build.markdown +++ b/getting-started/modules-from-cfengine-build.markdown @@ -73,6 +73,7 @@ Once we are done adding modules, it is time to build them, combining it all into ```command cfbs build ``` + ```output Modules: 001 masterfiles @ a87b7fea6f7a88808b327730a4ba784a3dc664eb (Downloaded) diff --git a/web-ui/hub_administration/custom-https-certificate.markdown b/web-ui/hub_administration/custom-https-certificate.markdown index 9deaf7ef2..d9617f5cb 100644 --- a/web-ui/hub_administration/custom-https-certificate.markdown +++ b/web-ui/hub_administration/custom-https-certificate.markdown @@ -22,6 +22,7 @@ commands. ```command cf-promises --show-vars=default:sys\.fqhost ``` + ```output default:sys.fqhost hub inventory,source=agent,attribute_name=Host name ``` @@ -29,6 +30,7 @@ default:sys.fqhost hub ```command hostname -f ``` + ```output hub ``` diff --git a/web-ui/hub_administration/lookup-license-info.markdown b/web-ui/hub_administration/lookup-license-info.markdown index 466cb515b..273a4d801 100644 --- a/web-ui/hub_administration/lookup-license-info.markdown +++ b/web-ui/hub_administration/lookup-license-info.markdown @@ -28,6 +28,7 @@ Run as `root` from the hub itself. ```command cf-hub --show-license ``` + ```output License file: /var/cfengine/licenses/hub-SHA=d13c14c3dc46ef1c5824eb70ffae3a1d1c67c7ce70a1e8e8634b1324d0041131.dat License status: Valid diff --git a/web-ui/hub_administration/policy-deployment.markdown b/web-ui/hub_administration/policy-deployment.markdown index 8039704bf..4946251ce 100644 --- a/web-ui/hub_administration/policy-deployment.markdown +++ b/web-ui/hub_administration/policy-deployment.markdown @@ -84,6 +84,7 @@ For example: ```command cf-agent -KIf update.cf --define cfengine_internal_masterfiles_update ``` + ```output info: Executing 'no timeout' ... '/var/cfengine/httpd/htdocs/api/dc-scripts/masterfiles-stage.sh' info: Command related to promiser '/var/cfengine/httpd/htdocs/api/dc-scripts/masterfiles-stage.sh' returned code defined as promise kept 0 @@ -136,6 +137,7 @@ For example: ```command cf-agent -KIf update.cf --define cfengine_internal_masterfiles_update ``` + ```output info: Executing 'no timeout' ... '/var/cfengine/httpd/htdocs/api/dc-scripts/masterfiles-stage.sh' error: Command related to promiser '/var/cfengine/httpd/htdocs/api/dc-scripts/masterfiles-stage.sh' returned code defined as promise failed 1 @@ -153,6 +155,7 @@ can see that there is a syntax error in `promises.cf` near line 14. ```command tail -n 5 /var/cfengine/outputs/dc-scripts.log ``` + ```output /opt/cfengine/masterfiles_staging_tmp/promises.cf:14:46: error: Expected ',', wrong input '@(inventory.bundles)' @(inventory.bundles), From d17cb61828be96cd3af6fdfb208375ceaf3971ef Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Fri, 16 May 2025 13:58:06 -0500 Subject: [PATCH 051/142] Updated latest patch release for 3.24.2 release --- generator/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/_config.yml b/generator/_config.yml index 7a079ba3b..fc5a8afa0 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -21,7 +21,7 @@ CFE_manuals_version: "3.24" cfengine: branch: "3.24" core_branch: "3.24.x" - latest_patch_release: 1 + latest_patch_release: 2 latest_package_build: 1 vagrant_package_build: 1 masterfiles_branch: "3.24.x" From 936fa4733275508d22e62738065bdb0ca3671052 Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Fri, 16 May 2025 13:58:20 -0500 Subject: [PATCH 052/142] Bumped vagrant from 2.4.3 to 2.4.5 and virtualbox from 7.0.16 to 7.1.8 --- generator/_config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generator/_config.yml b/generator/_config.yml index fc5a8afa0..58b54296d 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -31,10 +31,10 @@ Template: line_numbers: true vagrant: - version: "2.4.3" + version: "2.4.5" virtualbox: - version: "7.0.16" + version: "7.1.8" paginate: 500 From 794245069e49218b0b32c33954fd09850d290267 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Wed, 25 Jun 2025 18:18:23 +0200 Subject: [PATCH 053/142] Added some more logging to debug build failures Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 302fef1f8541a2c4dbd2c94fcfb8ff62f1544dee) --- generator/_regenerate_json.sh | 1 + generator/_scripts/cfdoc_macros.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/generator/_regenerate_json.sh b/generator/_regenerate_json.sh index df4724ae6..bc4ba4201 100755 --- a/generator/_regenerate_json.sh +++ b/generator/_regenerate_json.sh @@ -97,6 +97,7 @@ done ) | while read agent do dumpHelp ${agent} > ${OUTDIR}/${agent}.help + echo "Dumped help output for ${agent} to ${OUTDIR}/${agent}.help" done # Here we execute and store some command output so that examples can always be up to date. diff --git a/generator/_scripts/cfdoc_macros.py b/generator/_scripts/cfdoc_macros.py index 432690b5a..57914307c 100644 --- a/generator/_scripts/cfdoc_macros.py +++ b/generator/_scripts/cfdoc_macros.py @@ -757,6 +757,10 @@ def include_snippet(parameters, config): markdown_lines.append(line) if not len(markdown_lines): + print("Did not find expected content in %s" % filename) + print("Full content of file:") + for line in lines: + print(line, end="") raise Exception("Snippet not found: %s" % begin.pattern) return list() From fd2a39c9041361207bbcc28f8d58fbfc2a5de9f3 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Wed, 25 Jun 2025 19:24:24 +0200 Subject: [PATCH 054/142] Fixed mistake in include_snippet macro This error was introduced by me a month ago when I ran Prettier on our markdowns. Prettier doesn't recognize our custom macros and so tries to parse them as just markdown and makes small improvements to them. A few things we should do: - Stop rendering markdown cheatsheet, it's not needed. - Switch to using Hugo macros instead of our custom system. Signed-off-by: Ole Herman Schumacher Elgesem (cherry picked from commit 7eda86e2260b38c68aa49a286136447d003cc96a) --- cheatsheet.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cheatsheet.markdown b/cheatsheet.markdown index 7eab1cae7..f212883cd 100644 --- a/cheatsheet.markdown +++ b/cheatsheet.markdown @@ -511,7 +511,7 @@ Sometimes it's nice to include a snippet from another file. For example, we dyna `[%CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$)%]` -[%CFEngine_include_snippet(cf-promises.help, [\s]\*--[a-z], ^$)%] +[%CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$)%] --- From 485379b0cba82977b01a47122eaa83fb7327431b Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Thu, 19 Jun 2025 11:43:43 +0300 Subject: [PATCH 055/142] Fixed codeblock resolver processed JSON code blocks as flags Ticket: ENT-13062 Replaced \s* which targeted spaces and new lines with [ \t]+ that only takes spaces and tabs but not new lines Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit b2ff9d8bcad61ce62629665e2c011e4412219f47) --- generator/_scripts/cfdoc_codeblock_resolver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/_scripts/cfdoc_codeblock_resolver.py b/generator/_scripts/cfdoc_codeblock_resolver.py index 3cf96ac6f..2a7eed6ac 100644 --- a/generator/_scripts/cfdoc_codeblock_resolver.py +++ b/generator/_scripts/cfdoc_codeblock_resolver.py @@ -37,7 +37,7 @@ def transform_codeblocks(content): pattern = re.compile( r'^```([a-zA-Z0-9_-]+)' # language - r'\s*\{([^}]*)\}\s*$', # flags + r'[ \t]+\{([^}]*)\}\s*$', # flags re.MULTILINE ) From 17dac6412eab6e8bc8318a5d4eb70ed68a23a06e Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Thu, 28 Aug 2025 12:23:11 -0500 Subject: [PATCH 056/142] Enhanced default bodies documentation and examples Clarified the explanation of default bodies, added CFEngine code examples for their definition and application, and included historical context. Ticket: CFE-4583 Changelog: None (cherry picked from commit 380cc455428dd9e7d9a0737d80494c4cc419ca17) --- reference/language-concepts/bodies.markdown | 67 ++++++++++++++++++--- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/reference/language-concepts/bodies.markdown b/reference/language-concepts/bodies.markdown index d992c1b06..35fa93dcb 100644 --- a/reference/language-concepts/bodies.markdown +++ b/reference/language-concepts/bodies.markdown @@ -171,21 +171,57 @@ Agents][Components] #### Default bodies -CFEngine 3.9 introduced a way to create default bodies. It allows defining, for given -promise and body types, a body that will be used each time no body is defined. -To use a body as default, name it `_` and put it -in the `bodydefault` namespace. For example, a default `action` body for `files` -promises will be named `files_action`, and in each `files` promise, if no -`action` attribute is set, the `files_action` action will be used. +Default bodies are automatically attached to promises not already using that +body in the default namespace. To use a body as default, name it +`_` and put it in the `bodydefault` namespace. + +```cf3 +body file control +{ + # Default bodies /must/ be defined in the /default/ namespace + namespace => "bodydefault"; +} + +body _ +{ + # Attributes set for body will be applied to all + # promises that do not already have a body of attached. +} +``` + +For example, a default `action` body for `files` promises will be named +`files_action`, and in each `files` promise, if no `action` attribute is set, +the `files_action` action will be used. **Note:** The default bodies **only** apply to promises in the `default` namespace. In the following example, we define a default `action` body for `files` -promises, that specifies an `action_policy => "warn"` to prevent actually modifying files -and to only warn about considered modifications. We define it once, -and don't have to explicitly put this body in all our `files` promises. +promises, that specifies an `action_policy => "warn"` to prevent actually +modifying files and to only warn about considered modifications. We define it +once, and don't have to explicitly put this body in all our `files` promises. +The example also illustrates how promises in a non-`default` namespace are +unaffected. ```cf3 +bundle agent example +{ + files: + + # Since the 'files_action' action body is defined in the 'bodydefault' namespce, + # and since this promise is in the 'default' namespace (no alternate namespace is + # declared previously) this promise will not actually modify the file content if + # it is not as promised. Instead it will warn that a change wants to be made. + + "/etc/motd" + content => "There are, in fact, rules. You have been notified."; + + # Since this promise has an action body attached, the default action body for + # files will not be applied and this file would be fixed. + + "/etc/issue.net" + content => "WARNING: You are being monitored. We are all being monitored. This is a cry for help.", + action => if_elapsed_day; +} body file control { namespace => "bodydefault"; @@ -198,6 +234,17 @@ body action files_action body file control { - namespace => "default"; + namespace => "not_affected"; +} + +bundle agent not_affected +{ + files: + "/etc/not-affected-by-bodydefault-files-action-body" + content => "Hello world!"; } ``` + +**History:** + +- Added in CFEngine 3.9.0 From 81cf40c040382b05b1e5f3019579b2112000414f Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Thu, 28 Aug 2025 13:30:38 -0500 Subject: [PATCH 057/142] Update content/reference/language-concepts/bodies.markdown Co-authored-by: Craig Comstock (cherry picked from commit 691ae210380306c87ccde3fa43554a7dccac54cb) --- reference/language-concepts/bodies.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/language-concepts/bodies.markdown b/reference/language-concepts/bodies.markdown index 35fa93dcb..12f7f724b 100644 --- a/reference/language-concepts/bodies.markdown +++ b/reference/language-concepts/bodies.markdown @@ -178,7 +178,7 @@ body in the default namespace. To use a body as default, name it ```cf3 body file control { - # Default bodies /must/ be defined in the /default/ namespace + # Default bodies /must/ be defined in the /bodydefault/ namespace namespace => "bodydefault"; } From ef27b0e6dfa3f0d08a3dac251f6947a66e16b62a Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Wed, 3 Sep 2025 15:20:22 -0500 Subject: [PATCH 058/142] Backport Jenkinsfile and associated changes to generator/build scripts Some diffs are present between master (hugo) and 3.21/3.24 (jekyll still). Ticket: ENT-12581 Changelog: none (cherry picked from commit 4c80ca14c729fb4dbdf468784f75c640cdbc65cd) --- Jenkinsfile | 148 +++++++++++++++++++++++++++++++++++++ generator/build/Dockerfile | 2 +- generator/build/main.sh | 62 +++++++++++----- generator/build/run.sh | 21 ++++-- 4 files changed, 209 insertions(+), 24 deletions(-) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..551dad4e1 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,148 @@ +pipeline { + agent { label 'CONTAINERS' } + environment { + REPOS = "core enterprise nova masterfiles northerntechhq/nt-docs" + PR_BASE = getPR_BASE() + DOCS_BRANCH = getDOCS_BRANCH() + PACKAGE_JOB = "cf-remote" + PACKAGE_UPLOAD_DIRECTORY = "n/a" + PACKAGE_BUILD = "n/a" + } + parameters { + string(name: "CORE_REV", defaultValue: '', description: 'used for changelog, examples. Use NUMBER or "pull/NUMBER/merge" for pull request (it\'s merged version, THIS DOESN\'T MERGE THE PR) or "pull/NUMBER/head" to build the docs with the non-merged code. Special syntax \'tag:SOME_TAG\' can be used to use a tag as a revision.') + string(name: "NOVA_REV", defaultValue: '', description: 'used for changelog. Use NUMBER or "pull/NUMBER/merge" for pull request (it\'s merged version, THIS DOESN\'T MERGE THE PR) or "pull/NUMBER/head" to build the docs with the non-merged code. Special syntax \'tag:SOME_TAG\' can be used to use a tag as a revision.') + string(name: "ENTERPRISE_REV", defaultValue: '', description: 'used for changelog. Use NUMBER or "pull/NUMBER/merge" for pull request (it\'s merged version, THIS DOESN\'T MERGE THE PR) or "pull/NUMBER/head" to build the docs with the non-merged code. Special syntax \'tag:SOME_TAG\' can be used to use a tag as a revision.') + string(name: "MASTERFILES_REV", defaultValue: '', description: 'used to document masterfiles. Use NUMBER or "pull/NUMBER/merge" for pull request (it\'s merged version, THIS DOESN\'T MERGE THE PR) or "pull/NUMBER/head" to build the docs with the non-merged code. Special syntax \'tag:SOME_TAG\' can be used to use a tag as a revision.') + string(name: "DOCS_REV", defaultValue: '', description: 'Use NUMBER or "pull/NUMBER/merge" for pull request (it\'s merged version, THIS DOESN\'T MERGE THE PR) or "pull/NUMBER/head" to build the docs with the non-merged code. Special syntax \'tag:SOME_TAG\' can be used to use a tag as a revision.') + string(name: "NT_DOCS_REV", defaultValue: '', description: 'Use NUMBER or "pull/NUMBER/merge" for pull request (it\'s merged version, THIS DOESN\'T MERGE THE PR) or "pull/NUMBER/head" to build the docs with the non-merged code. Special syntax \'tag:SOME_TAG\' can be used to use a tag as a revision.') + string(name: "DOCS_BRANCH", defaultValue: '', description: 'Where to upload artifacts - to http://buildcache.cloud.cfengine.com/packages/build-documentation-$DOCS_BRANCH/ and https://docs.cfengine.com/docs/$DOCS_BRANCH/') + string(name: "PACKAGE_JOB", defaultValue: 'cf-remote', description: 'where to get CFEngine HUB package from, either a dir at http://buildcache.cloud.cfengine.com/packages like testing-pr or a keyword cf-remote to use cf-remote download') + string(name: "USE_NIGHTLIES_FOR", defaultValue: '', description: 'branch whose nightlies to use (master, 3.18.x, etc) - will be one of http://buildcache.cloud.cfengine.com/packages/testing-pr/jenkins-$USE_NIGHTLIES_FOR-nightly-pipeline-$NUMBER/') + } + options { + checkoutToSubdirectory('documentation') + } + stages { + stage('Environment check') { + steps { + sh 'env' + sh 'whoami; pwd; ls' + sh 'uname -a; cat /etc/os-release' + } + } + // we clean FIRST and NOT at the end of the job so that we can replay various stages and have the build result from previous runs + stage('Clean workspace') { + steps { + sh 'for r in $REPOS; do rm -rf "$(basename "$r")"; done' + } + } + stage('Checkout repositories'){ + steps { + script { + if (env.CHANGE_ID) { + sh "echo \"${pullRequest.title}\" > pull-request-title" + sh "echo \"${pullRequest.body}\" > pull-request-body" + } + } + sh "curl -O https://raw.githubusercontent.com/cfengine/buildscripts/refs/heads/master/ci/create-revisions-file.sh" + sh "chmod u+x ./create-revisions-file.sh" + sh "./create-revisions-file.sh" + sh "cat revisions" + sh "curl -O https://gitlab.com/Northern.tech/OpenSource/GODS/-/raw/master/parallel_git_rev_fetch.sh" + sh "chmod u+x ./parallel_git_rev_fetch.sh" + + withCredentials([sshUserPrivateKey(credentialsId:"autobuild", keyFileVariable: "key")]) { + sh 'export GIT_SSH_COMMAND="ssh -i $key"; ./parallel_git_rev_fetch.sh revisions' + } + } + } + stage('Build documentation') { + steps { + sh 'bash -x documentation/generator/build/run.sh' + } + } + stage('Publish to buildcache') { + steps { + sshPublisher( + // we must use alwaysPublishFromMaster: true because our CONTAINERS build hosts are not in the private network which has access to buildcache.cloud.cfengine.com + alwaysPublishFromMaster: true, + publishers: [ + sshPublisherDesc( + configName: 'buildcache.cloud.cfengine.com', + transfers: [ + sshTransfer( + cleanRemote: false, + excludes: '', + execCommand: ''' +#!/usr/bin/env bash +set -x +WRKDIR="$(pwd)" +export WRKDIR + +mkdir -p upload +mkdir -p output + +# find two tarballs +archive="$(find upload -name "cfengine-documentation-*.tar.gz")" +tarball=$(findfind upload -name packed-for-shipping.tar.gz) +echo "TARBALL: $tarball" +echo "ARCHIVE: $archive" + +# unpack $tarball +( # shubshell to change directories + cd "$(dirname "$tarball")" || exit + tar zxvf packed-for-shipping.tar.gz + rm packed-for-shipping.tar.gz + + # move $archive to the _site + mv "$WRKDIR/$archive" _site + + ls -la +) + +ls -la upload + +# note: this triggers systemd job to AV-scan new files +# and move them to proper places +mv upload/* output +''', + execTimeout: 120000, + flatten: false, + makeEmptyDirs: false, + noDefaultExcludes: false, + patternSeparator: '[, ]+', + remoteDirectory: getRemoteDirectory(), + remoteDirectorySDF: false, + removePrefix: '', + sourceFiles: 'output/' + ) // sshTransfer + ], // transfers + usePromotionTimestamp: false, + useWorkspaceInPromotion: false, + verbose: false + ) // sshPublisherDesc + ] // publishers + ) // sshPublisher + } // steps + } // stage('Publish to buildcache') + } // stages +} +def getDOCS_BRANCH() { + if (env.DOCS_BRANCH) { + return env.DOCS_BRANCH + } else if (env.CHANGE_ID) { + return "${env.CHANGE_TARGET}" + } else { + return "${env.BRANCH_NAME}" + } +} +def getPR_BASE() { + if (env.CHANGE_ID) { + return "${pullRequest.base}" + } else { + return "" + } +} +def getRemoteDirectory() { + return "upload/${env.BUILD_TAG}/build-documentation-${env.DOCS_BRANCH}/${env.BUILD_TAG}/" +} diff --git a/generator/build/Dockerfile b/generator/build/Dockerfile index 3b83b9691..530fe5b5d 100644 --- a/generator/build/Dockerfile +++ b/generator/build/Dockerfile @@ -14,7 +14,7 @@ RUN chown -R jenkins:jenkins /home/jenkins COPY install.sh / USER jenkins WORKDIR /home/jenkins -RUN bash -x /install.sh +RUN bash -x /install.sh 2>&1 | tee /install.sh.log # This is where our repos will be WORKDIR /nt diff --git a/generator/build/main.sh b/generator/build/main.sh index 08ddd8770..16513dbe9 100644 --- a/generator/build/main.sh +++ b/generator/build/main.sh @@ -9,13 +9,22 @@ if [ "$#" != 4 ]; then exit 1 fi +echo "$(basename "$0"): Diagnostic facts about execution environment:" +echo "======" +whoami +cat /etc/os-release +free -h +df -h +uname -a +echo "======" + + export BRANCH=$1 export PACKAGE_JOB=$2 export PACKAGE_UPLOAD_DIRECTORY=$3 export PACKAGE_BUILD=$4 export JOB_TO_UPLOAD=$PACKAGE_JOB -export FLAG_FILE_URL="http://buildcache.cfengine.com/packages/$PACKAGE_JOB/$PACKAGE_UPLOAD_DIRECTORY/PACKAGES_HUB_x86_64_linux_ubuntu_22/core-commitID" export NO_OUTPUT_DIR=1 env @@ -64,30 +73,47 @@ test ! -z "$PACKAGE_UPLOAD_DIRECTORY" test ! -z "$PACKAGE_BUILD" -echo "Waiting for flag file to appear" -for i in $(seq 30); do - if wget -O- "$FLAG_FILE_URL"; then - break - fi - echo "Waiting 10 sec" - sleep 10 -done -# check if flag file is there - if not, script will fail here -wget -O- "$FLAG_FILE_URL" - -echo "Detecting version" -HUB_DIR_NAME=PACKAGES_HUB_x86_64_linux_ubuntu_22 -HUB_DIR_URL="http://buildcache.cfengine.com/packages/$PACKAGE_JOB/$PACKAGE_UPLOAD_DIRECTORY/$HUB_DIR_NAME/" -HUB_PACKAGE_NAME="$(wget "$HUB_DIR_URL" -O- | sed '/\.deb/!d;s/.*"\([^"]*\.deb\)".*/\1/')" -fetch_file "$HUB_DIR_URL$HUB_PACKAGE_NAME" "cfengine-nova-hub.deb" 12 +echo "Install hub package" +if [ "$PACKAGE_JOB" = "cf-remote" ]; then + echo "Install using cf-remote" + sudo apt update -y + sudo apt install -y python3-venv pipx + pipx install cf-remote + export PATH="$HOME/.local/bin:$PATH" + # shellcheck source=/dev/null + source /etc/os-release + rm -rf ~/.cfengine/cf-remote/packages # to ensure we only get one + # in case of LTS branches like 3.21 (without .x since we are in documentation repo) need to add on .x + if [ "$(expr "$BRANCH" : ".*.x")" = 0 ]; then + if [ "$BRANCH" = "master" ]; then + _VERSION=master + else + _VERSION="$BRANCH".x + fi + else + _VERSION="$BRANCH" # in case someone copy/pastes this to a repo besides documentation + fi + cf-remote --version "$_VERSION" download "${ID}$(echo "${VERSION_ID}" | cut -d. -f1)" hub "$(uname -m)" + find "$HOME/.cfengine" # debug + find "$HOME/.cfengine" -name '*.deb' -print0 | xargs -0 -I{} cp {} cfengine-nova-hub.deb +else + echo "Installing with old-style fetch_file function" + HUB_DIR_NAME=PACKAGES_HUB_x86_64_linux_ubuntu_22 + HUB_DIR_URL="http://buildcache.cfengine.com/packages/$PACKAGE_JOB/$PACKAGE_UPLOAD_DIRECTORY/$HUB_DIR_NAME/" + HUB_PACKAGE_NAME="$(wget "$HUB_DIR_URL" -O- | sed '/\.deb/!d;s/.*"\([^"]*\.deb\)".*/\1/')" + + fetch_file "$HUB_DIR_URL$HUB_PACKAGE_NAME" "cfengine-nova-hub.deb" 12 +fi sudo apt-get -y purge cfengine-nova-hub || true sudo rm -rf /*/cfengine -# unpack +# we unpack the hub package instead of installing to get around trouble with the package trying to start up services in a container which doesn't work all that well (yet, 2025) sudo dpkg --unpack cfengine-nova-hub.deb rm cfengine-nova-hub.deb + +# TODO: why copy the masterfiles from the package over the top of one we checked out which could have changes from a PR? sudo cp -a /var/cfengine/share/NovaBase/masterfiles "$WRKDIR" sudo chmod -R a+rX "$WRKDIR"/masterfiles diff --git a/generator/build/run.sh b/generator/build/run.sh index 0e1384ba0..cb2a9afa5 100644 --- a/generator/build/run.sh +++ b/generator/build/run.sh @@ -3,8 +3,9 @@ set -ex trap "echo FAILURE" ERR -if ! buildah inspect docs-revamp-22 >/dev/null 2>&1; then - buildah build-using-dockerfile -t docs-revamp-22 documentation/generator/build +image_name=docs-revamp-22 +if ! buildah inspect "$image_name" >/dev/null 2>&1; then + buildah build-using-dockerfile -t "$image_name" documentation/generator/build fi # Current path must have the following repos cloned: @@ -14,13 +15,23 @@ fi # * masterfiles (used to document masterfies) # * documentation (this repo) -# These env vars must be defined: -true "${BRANCH?undefined}" +# The PACKAGE* vars are not needed for fast-build jobs as they use cf-remote --version $BRANCH install +# We still require them to have a value but by current convention (until cf-remote --version testing-pr-build-number works) we set them to cf-remote in documentation/Jenkinsfile true "${PACKAGE_JOB?undefined}" true "${PACKAGE_UPLOAD_DIRECTORY?undefined}" true "${PACKAGE_BUILD?undefined}" -c=$(buildah from -v "$PWD":/nt docs-revamp-22) +# figure out BRANCH from jenkins environment variables +if [ -n "$PR_BASE" ]; then + # PR_BASE comes from documentation/Jenkinsfile and ${pullRequest.base} + BRANCH="$PR_BASE" +elif [ -n "$BRANCH_NAME" ]; then + # jenkins, for pull requests this will be e.g. PR- so not used + # for non-pull reqeusts this will be master, 3.24.x, etc + BRANCH="$BRANCH_NAME" +fi + +c=$(buildah from -v "$PWD":/nt "$image_name") trap 'buildah run "$c" bash -c "sudo chown -R root:root /nt; sudo chmod -R a+rwX /nt"; buildah rm "$c" >/dev/null' EXIT buildah run "$c" bash -x documentation/generator/build/main.sh "$BRANCH" "$PACKAGE_JOB" "$PACKAGE_UPLOAD_DIRECTORY" "$PACKAGE_BUILD" buildah run "$c" bash -x documentation/generator/_scripts/_publish.sh "$BRANCH" From eb9f0b9791d274a0ef81433d71843c7f021be888 Mon Sep 17 00:00:00 2001 From: Bastian Triller Date: Fri, 12 Sep 2025 08:22:46 +0200 Subject: [PATCH 059/142] methods: Fix inherit example Also fix a typo (cherry picked from commit 88d702e29e2b2ec365e0b23a3bd6f2bb0d5c47eb) --- reference/promise-types/methods.markdown | 12 +++++++----- reference/promise-types/roles.markdown | 2 +- reference/promise-types/services.markdown | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/reference/promise-types/methods.markdown b/reference/promise-types/methods.markdown index 1db1a1c05..698a33ab4 100644 --- a/reference/promise-types/methods.markdown +++ b/reference/promise-types/methods.markdown @@ -135,16 +135,18 @@ example: `$(bundle.variable)`. ```cf3 bundle agent name { -methods: +classes: + "name_class"; +methods: "group name" usebundle => my_method, inherit => "true"; } - -body edit_defaults example +bundle agent my_method { -inherit => "true"; +reports: + "$(this.bundle) inherited class 'name_class'" if => "name_class"; } ``` @@ -163,7 +165,7 @@ Return values are limited to scalars. **Type:** `string` -**Allowed input range:** `[a-zA-Z0-9_$(){}\[\].:]+ +**Allowed input range:** `[a-zA-Z0-9_$(){}\[\].:]+` **Example:** diff --git a/reference/promise-types/roles.markdown b/reference/promise-types/roles.markdown index cb15b489d..90818592c 100644 --- a/reference/promise-types/roles.markdown +++ b/reference/promise-types/roles.markdown @@ -31,7 +31,7 @@ bundle server my_access_rules() ``` In this example user `mark` is granted permission to remotely activate -classes matching the regular expression `Myclass_.*` hen using the +classes matching the regular expression `Myclass_.*` when using the `cf-runagent` to activate CFEngine. **** diff --git a/reference/promise-types/services.markdown b/reference/promise-types/services.markdown index 44510e7a1..fdd48df4c 100644 --- a/reference/promise-types/services.markdown +++ b/reference/promise-types/services.markdown @@ -105,7 +105,7 @@ services: service_method => service_test; "$(mail)" service_policy => "stop", - service_method => service_test; + service_method => service_test; } body service_method service_test From 63e5287c1c6cce2e4a3b6b2c70886339af7e8f5a Mon Sep 17 00:00:00 2001 From: Bastian Triller Date: Fri, 12 Sep 2025 10:39:39 +0200 Subject: [PATCH 060/142] promise-types/classes: Include common attributes (cherry picked from commit 8da07a9c3e4dee5b65ff32a45b8781c2202bacc2) --- reference/promise-types/classes.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reference/promise-types/classes.markdown b/reference/promise-types/classes.markdown index 57b1233d9..4e161d68b 100644 --- a/reference/promise-types/classes.markdown +++ b/reference/promise-types/classes.markdown @@ -75,6 +75,8 @@ bundle agent example ## Attributes +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} + ### and **Description:** Combine class sources with AND From ecd244f152b612c182f65c6594c07cddd336971d Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Fri, 26 Sep 2025 09:15:15 -0500 Subject: [PATCH 061/142] Added more missing common attributes (cherry picked from commit bcf14a058016d3d7a6271e17ffdf4f6ce1726bf2) --- reference/common-attributes-include.markdown | 2 + reference/promise-types/access.markdown | 1 + reference/promise-types/defaults.markdown | 2 + reference/promise-types/measurements.markdown | 2 + reference/promise-types/meta.markdown | 87 +++++++++++++++++++ reference/promise-types/roles.markdown | 2 + reference/promise-types/vars.markdown | 2 + 7 files changed, 98 insertions(+) diff --git a/reference/common-attributes-include.markdown b/reference/common-attributes-include.markdown index 712a72f79..309623820 100644 --- a/reference/common-attributes-include.markdown +++ b/reference/common-attributes-include.markdown @@ -16,6 +16,8 @@ the [Promise types] page. The common attributes are as follows: #### [if][Promise types#if] +#### [unless][Promise types#unless] + #### [meta][Promise types#meta] #### [with][Promise types#with] diff --git a/reference/promise-types/access.markdown b/reference/promise-types/access.markdown index 72b97f2e9..8da7615bc 100644 --- a/reference/promise-types/access.markdown +++ b/reference/promise-types/access.markdown @@ -115,6 +115,7 @@ promises will override less specific ones. ## Attributes +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### admit_hostnames diff --git a/reference/promise-types/defaults.markdown b/reference/promise-types/defaults.markdown index 17a2916de..402863f21 100644 --- a/reference/promise-types/defaults.markdown +++ b/reference/promise-types/defaults.markdown @@ -89,6 +89,8 @@ reports: ## Attributes +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} + ### if_match_regex **Description:** If this [anchored][anchored] regular expression matches the diff --git a/reference/promise-types/measurements.markdown b/reference/promise-types/measurements.markdown index 8a6d2cbb6..9a103d477 100644 --- a/reference/promise-types/measurements.markdown +++ b/reference/promise-types/measurements.markdown @@ -153,6 +153,8 @@ may be used in other promises in the form `$(mon.handle)`. ## Attributes +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} + ### stream_type **Description:** The datatype being collected. diff --git a/reference/promise-types/meta.markdown b/reference/promise-types/meta.markdown index 09e639164..48dabae08 100644 --- a/reference/promise-types/meta.markdown +++ b/reference/promise-types/meta.markdown @@ -27,3 +27,90 @@ reports: ``` The value of meta data can be of the types `string` or `slist` or `data`. + +## Attributes + +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} + +### data + +**Description:** A data container structure + +**Type:** `data` + +**Allowed input range:** (arbitrary string) + +**Example:** + +```cf3 +vars: + + "loaded1" data => readjson("/tmp/myfile.json", 40000); + "loaded2" data => parsejson('{"key":"value"}'); + "loaded3" data => readyaml("/tmp/myfile.yaml", 40000); + "loaded4" data => parseyaml('- key2: value2'); + "merged1" data => mergedata(loaded1, loaded2, loaded3, loaded4); + + # JSON or YAML can be inlined since CFEngine 3.7 + "inline1" data => '{"key":"value"}'; # JSON + "inline2" data => '---$(const.n)- key2: value2'; # YAML requires "---$(const.n)" header +``` + +### slist + +**Description:** A list of scalar strings + +**Type:** `slist` + +**Allowed input range:** (arbitrary string) + +**Example:** + +```cf3 +vars: + + "xxx" slist => { "literal1", "literal2" }; + "xxx1" slist => { "1", @(xxx) }; # interpolated in order + "yyy" slist => { + readstringlist( + "/home/mark/tmp/testlist", + "#[a-zA-Z0-9 ]*", + "[^a-zA-Z0-9]", + 15, + 4000 + ) + }; + + "zzz" slist => { readstringlist( + "/home/mark/tmp/testlist2", + "#[^\n]*", + ",", + 5, + 4000) + }; +``` + +**Notes:** + +Some [functions][Functions] return `slist`s, and an `slist` +may contain the values copied from another `slist`, `rlist`, or `ilist`. See +[`policy`](#policy). + + +### string + +**Description:** A scalar string + +**Type:** `string` + +**Allowed input range:** (arbitrary string) + +**Example:** + +```cf3 +vars: + + "xxx" string => "Some literal string..."; + "yyy" string => readfile( "/home/mark/tmp/testfile" , "33" ); +``` + diff --git a/reference/promise-types/roles.markdown b/reference/promise-types/roles.markdown index cb15b489d..3f1f190cc 100644 --- a/reference/promise-types/roles.markdown +++ b/reference/promise-types/roles.markdown @@ -38,6 +38,8 @@ classes matching the regular expression `Myclass_.*` hen using the ## Attributes +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} + ### authorize **Description:** List of public-key user names that are allowed to activate diff --git a/reference/promise-types/vars.markdown b/reference/promise-types/vars.markdown index 312813ee8..e08411ed1 100644 --- a/reference/promise-types/vars.markdown +++ b/reference/promise-types/vars.markdown @@ -303,6 +303,8 @@ vars: ## Attributes +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} + ### policy **Description:** The policy for (dis)allowing (re)definition of variables From 6151f9d6a88e050d8b5e5650643564dc37fe648c Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Mon, 27 Oct 2025 15:22:17 -0500 Subject: [PATCH 062/142] Updated documentation about policy_server.dat This documentation was referenced on the help list as to why policy_server.dat could only contain IP addresses but hostnames and even ports are valid here since CFEngine 3.10.0. (cherry picked from commit 68bf724d467f2cbfc803c319230dff275f5083f7) --- overview/directory-structure.markdown | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/overview/directory-structure.markdown b/overview/directory-structure.markdown index 27df85c8b..604c38151 100644 --- a/overview/directory-structure.markdown +++ b/overview/directory-structure.markdown @@ -188,7 +188,14 @@ _pid files_ in the work directory. ### `policy_server.dat` -IP address of the policy server +Specifies the host's primary policy server in the format `(|)[:]`. This file's contents are used to define the `default:sys.policy_hub` and `default:sys.policy_hub_port` variables. + +**See also:** [`default:sys.policy_hub`][sys#sys.policy_hub], [`default:sys.policy_hub_port`][sys#sys.policy_hub_port] + +**History:** + +- Added in CFEngine 3.2.0 +- Support hostname and port added in CFEngine 3.10.0 ### `ignore_interfaces.rx` From fcda4ca51ff6b4020028a9e7acf879b106f07bf6 Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Fri, 21 Nov 2025 10:36:48 -0600 Subject: [PATCH 063/142] Added Redhat 10 and Debian 13 platforms to supported No deletions at this time. Also note RedHat 10 arm64 is added Ticket: ENT-13016 ENT-13164 ENT-13426 Changelog: none (cherry picked from commit 038343abe9dc1fa6ec923f298c76b37e96a12fc0) Conflicts: release-notes/supported-platforms.markdown Centos-6 is still supported so added manually after resolving conflicts. --- release-notes/supported-platforms.markdown | 41 +++++++++++----------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/release-notes/supported-platforms.markdown b/release-notes/supported-platforms.markdown index 0dbf9322e..f6699b2b3 100644 --- a/release-notes/supported-platforms.markdown +++ b/release-notes/supported-platforms.markdown @@ -12,31 +12,32 @@ for all supported platforms and [binary packages for popular Linux distributions ## Hub -| Platform | Versions | Architecture | -|:-----------:|:-------------------:|:------------:| -| CentOS/RHEL | 7, 8.1+, 9 | x86-64 | -| Debian | 11, 12 | x86-64 | -| Debian | 11, 12 | arm64 | -| Ubuntu | 20.04, 22.04, 24.04 | x86-64 | -| Ubuntu | 22.04, 24.04 | arm64 | +| Platform | Versions | Architecture | +| :---------: | :-----------------: | :----------: | +| CentOS/RHEL | 7, 8.1+, 9, 10 | x86-64 | +| CentOS/RHEL | 10 | arm64 | +| Debian | 11, 12, 13 | x86-64 | +| Debian | 11, 12, 13 | arm64 | +| Ubuntu | 20.04, 22.04, 24.04 | x86-64 | +| Ubuntu | 22.04, 24.04 | arm64 | Any supported host can be a policy server in Community installations of CFEngine. ## Clients -| Platform | Versions | Architectures | -|:-----------:|:-------------------:|:-------------:| -| AIX | 7.1, 7.2 | PowerPC | -| CentOS/RHEL | 6, 7, 8.1+, 9 | x86-64 | -| Debian | 11, 12 | x86-64 | -| Debian | 11, 12 | arm64 | -| HP-UX | 11.31+ | Itanium | -| SLES | 12, 15 | x86-64 | -| Solaris | 11 | UltraSparc | -| Ubuntu | 20.04, 22.04, 24.04 | x86-64 | -| Ubuntu | 22.04, 24.04 | arm64 | -| Windows | 2012, 2016, 2019 | x86-64 | - +| Platform | Versions | Architectures | +| :---------: | :-----------------: | :-----------: | +| AIX | 7.1, 7.2 | PowerPC | +| CentOS/RHEL | 6, 7, 8.1+, 9, 10 | x86-64 | +| CentOS/RHEL | 10 | arm64 | +| Debian | 11, 12, 13 | x86-64 | +| Debian | 11, 12, 13 | arm64 | +| HP-UX | 11.31+ | Itanium | +| SLES | 12, 15 | x86-64 | +| Solaris | 11 | UltraSparc | +| Ubuntu | 20.04, 22.04, 24.04 | x86-64 | +| Ubuntu | 22.04, 24.04 | arm64 | +| Windows | 2012, 2016, 2019 | x86-64 | [Known issues][] also includes platform-specific notes. From 326206b298c87c1f01895efa8d6e909f995f136e Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 16 Dec 2025 14:49:20 +0200 Subject: [PATCH 064/142] Updated generator latest patch version Ticket: ENT-13403 Signed-off-by: Ihor Aleksandrychiev --- generator/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/_config.yml b/generator/_config.yml index 58b54296d..1d1041b75 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -21,7 +21,7 @@ CFE_manuals_version: "3.24" cfengine: branch: "3.24" core_branch: "3.24.x" - latest_patch_release: 2 + latest_patch_release: 3 latest_package_build: 1 vagrant_package_build: 1 masterfiles_branch: "3.24.x" From 61443ea31a3bd4c8328f56e5230a6266cc8c1340 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Tue, 20 Jan 2026 15:27:31 -0600 Subject: [PATCH 065/142] Corrected HTTP method to use for api/hosts/delete-permanently The example was correct but the text was not. Ticket: ENT-13691 Changelog: None (cherry picked from commit 2de5cdbaee0760142577283d385220fba9ad242d) --- api/enterprise-api-ref/host.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/enterprise-api-ref/host.markdown b/api/enterprise-api-ref/host.markdown index 8b693a95d..53f245170 100644 --- a/api/enterprise-api-ref/host.markdown +++ b/api/enterprise-api-ref/host.markdown @@ -327,7 +327,7 @@ HTTP 200 Ok **URI:** https://hub.cfengine.com/api/hosts/delete-permanently/:host-id -**Method:** POST +**Method:** DELETE Permanently deletes host entry from the reporting database. From 483d54eba1249353ac0b8183d8d9d3e005c90c75 Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Tue, 20 Jan 2026 15:38:35 -0600 Subject: [PATCH 066/142] Clarified that permanent deletion requires normal deletion first Ticket: ENT-13695 Changelog: None (cherry picked from commit 14723fa437d1c6d543f8172e91028882beaa0067) --- api/enterprise-api-ref/host.markdown | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/api/enterprise-api-ref/host.markdown b/api/enterprise-api-ref/host.markdown index 8b693a95d..a3fee259e 100644 --- a/api/enterprise-api-ref/host.markdown +++ b/api/enterprise-api-ref/host.markdown @@ -329,9 +329,12 @@ HTTP 200 Ok **Method:** POST -Permanently deletes host entry from the reporting database. +Permanently deletes deleted host entry from the reporting database. -Note: to be able to perform this action related RBAC rule (alias `hosts-delete-permanently.delete`) should be enabled. +Notes: + +- To be able to perform this action related RBAC rule (alias `hosts-delete-permanently.delete`) should be enabled. +- Permanent deletion requires that a host is first normally deleted and found in the response from `/api/hosts/deleted`. **Responses:** From 9e773fd1bcef747903e505f17b049d9e52eb876f Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Tue, 3 Feb 2026 10:43:50 -0600 Subject: [PATCH 067/142] Added documentation for dnf package module (cherry picked from commit 57e692b77efa7ca8635d05f7d433a9966782a43c) --- reference/promise-types/packages.markdown | 75 ++++++++++++++++++++++- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/reference/promise-types/packages.markdown b/reference/promise-types/packages.markdown index 1514d7fc3..3ebe88e1c 100644 --- a/reference/promise-types/packages.markdown +++ b/reference/promise-types/packages.markdown @@ -374,7 +374,7 @@ packages: Enable a specific repository for a specific promise. -```cf3 +```cf3 {skip TODO} bundle agent example { packages: @@ -394,7 +394,7 @@ bundle agent example "httpd" policy => "present", version => "latest", - options => { "disablerepo=* enablerepo=UPDATES" }; + options => { "disablerepo=*", "enablerepo=UPDATES" }; } ``` @@ -446,6 +446,77 @@ bundle agent example * Added in CFEngine 3.7.0 * `enablerepo` and `disablerepo` option support added in 3.7.8, 3.10.4, 3.12.0 +### dnf + +Manage packages using `dnf`. This is the [default package module][lib/packages.cf#package_module_knowledge] for modern Red Hat, CentOS, Fedora, and Amazon Linux systems. + +**Examples:** + +File based package source. + +```cf3 {skip TODO} +packages: + redhat|centos|amazon_linux:: + "/mnt/nfs/packages/httpd-2.4.37-65.module+el8.10.0+40053+5a18018e.7.x86_64.rpm" + policy => "present"; +``` + +Repository based package source with a specific version of the package. + +```cf3 {skip TODO} +packages: + (redhat|centos|amazon_linux).workstation:: + "emacs" + policy => "present", + version => "26.1-13"; +``` + +Enable a specific repository for a specific promise. + +```cf3 +bundle agent example +{ + packages: + + rocky_8:: + # Enable the EPEL repo when making sure etc-keeper is installed + # and up to date. + + "etckeeper-dnf" + policy => "present", + version => "latest", + options => { "enablerepo=powertools" }; + + # Only consider updates from the main repositories for + # httpd and disable all other repositories + + "httpd" + policy => "present", + version => "latest", + options => { "disablerepo=*", "enablerepo=UPDATES" }; +} +``` + +**Notes:** + +- Supports file path and repository sourced packages. + +- Requires Python 3 to be installed on the host (leverages cfengine-selected-python). + +- Package downgrades default to the system configuration (typically disabled). To explicitly allow the module to downgrade a package for a specific promise, set `options => { "allow_downgrade=true" }`. + + ```cf3 {skip TODO} + packages: + "httpd" + policy => "present", + version => "2.4.37-64", # Older version + options => { "allow_downgrade=true" }; + ``` + +**History:** + +- Added in CFEngine 3.27.1, 3.24.4 + ### apt_get Manage packages using ```apt-get```. From d3f8310db85daa6f9cf521e40030009e26a9ec2e Mon Sep 17 00:00:00 2001 From: Nick Anderson Date: Thu, 5 Feb 2026 01:35:16 -0600 Subject: [PATCH 068/142] Added missing introduction version in dnf module history (cherry picked from commit 60fd2e7f06a3373996b61cd291de0a236e04163a) --- reference/promise-types/packages.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/promise-types/packages.markdown b/reference/promise-types/packages.markdown index 3ebe88e1c..f3a52d63e 100644 --- a/reference/promise-types/packages.markdown +++ b/reference/promise-types/packages.markdown @@ -515,7 +515,7 @@ bundle agent example **History:** -- Added in CFEngine 3.27.1, 3.24.4 +- Added in CFEngine 3.28.0, 3.27.1, 3.24.4 ### apt_get From 3f1667bfd3859083ff808e5011e007a2fb0d49c3 Mon Sep 17 00:00:00 2001 From: Craig Comstock Date: Thu, 9 Apr 2026 10:21:28 -0500 Subject: [PATCH 069/142] fix: removed use of install.sh.log as it was breaking the build of the container image Due to permissions problems this /install.sh.log would fail the build and cause ruby to not be installed but the image still would be built and used, thus breaking docs-pr jobs. This change came with some other changes in ef27b0e6dfa3f0d08a3dac251f6947a66e16b62a but is really not needed so just remove the use of a log file. Ticket: ENT-13085 Changelog: none --- generator/build/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generator/build/Dockerfile b/generator/build/Dockerfile index 530fe5b5d..6ff0ee3d9 100644 --- a/generator/build/Dockerfile +++ b/generator/build/Dockerfile @@ -10,11 +10,11 @@ RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL">> /etc/sudoers RUN mkdir -p /home/jenkins RUN chown -R jenkins:jenkins /home/jenkins -# Run rest of setup as jenkins user COPY install.sh / +# Run rest of setup as jenkins user USER jenkins WORKDIR /home/jenkins -RUN bash -x /install.sh 2>&1 | tee /install.sh.log +RUN bash -x /install.sh # This is where our repos will be WORKDIR /nt From e9b28a9a321a8e4d3fb168854d40c052e39871df Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 21 May 2025 15:26:36 +0300 Subject: [PATCH 070/142] Added script to process references in the markdown files (cherry picked from commit bb49d7caba730c8c11bdf3b9b8923597a9f9c365) --- generator/_scripts/cfdoc_preprocess.py | 10 +++ .../_scripts/cfdoc_references_resolver.py | 81 +++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 generator/_scripts/cfdoc_references_resolver.py diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index 7d6d2cb9f..3166d17a4 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -31,8 +31,10 @@ import cfdoc_git as git import cfdoc_qa as qa import cfdoc_patch_header_nav as patch_header_nav +import cfdoc_references_resolver as references_resolver import sys import os +import traceback config = environment.validate(sys.argv[1]) qa.initialize(config) @@ -94,5 +96,13 @@ print("cfdoc_patch_header_nav: Error patching header navigation") sys.stdout.write(" Exception: ") print(sys.exc_info()) + +try: + references_resolver.run(config) +except: + print("cfdoc_references_resolver: Fatal error resolving references") + sys.stdout.write(" Exception: ") + traceback.print_exc() + exit(3) exit(0) diff --git a/generator/_scripts/cfdoc_references_resolver.py b/generator/_scripts/cfdoc_references_resolver.py new file mode 100644 index 000000000..7bd55f763 --- /dev/null +++ b/generator/_scripts/cfdoc_references_resolver.py @@ -0,0 +1,81 @@ +import re +import os +import sys + +def load_references(references_file): + """Parse the _references.md file and return a dictionary of references.""" + references = {} + content = "" + + refs_path = os.path.join(os.environ.get("WRKDIR"), references_file) + try: + if os.path.exists(refs_path): + with open(refs_path, 'r', encoding='utf-8') as file: + content = file.read() + else: + sys.stderr.write(f"Warning: References file {refs_path} not found. No references will be added.") + return "" + except Exception as e: + sys.stderr.write(f"Error reading references file {refs_path}: {str(e)}") + return "" + + # Pattern to match reference definitions: [ref]: url "title" + pattern = r'\[(.*?)\]:\s+(.*?)(?:\s+"(.*?)")?\s*$' + + for match in re.finditer(pattern, content, re.MULTILINE): + ref, url, title = match.groups() + if title is None: + title = "" + references[ref] = (url, title) + + return references + +def process(file_path, references): + """Process a markdown file and replace reference links with direct links.""" + + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + # Pattern to match reference links: [`text`][reference] + pattern = r'\[(.*?)\]\[(.*?)\]' + def replace_link(match): + text, ref = match.groups() + ref = ref or text # if ref is empty use text as ref to support cases like [ref][] + + if ref in references: + url, title = references[ref] + if title: + return f'[{text}]({url} "{title}")' + else: + return f'[{text}]({url})' + else: + sys.stderr.write(f"References {ref} is not found in the _references.md. File: {file_path}") + return match.group(0) + + new_content = re.sub(pattern, replace_link, content) + + functions_pattern = r'\`(.*?)\(\)\`' + def replace_function_link(match): + ref = match.group(1) + text = f'{ref}()' + if ref in references: + url, title = references[ref] + if title: + return f'[{text}]({url} "{title}")' + else: + return f'[{text}]({url})' + else: + sys.stderr.write(f"References {ref} is not found in the _references.md. File: {file_path}") + return match.group(0) + new_content = re.sub(functions_pattern, replace_function_link, new_content) + + with open(file_path, 'w', encoding='utf-8') as f: + f.write(new_content) + +def run(config): + """Replaces [text][reference] with markdown links retrieved from _references.md""" + markdown_files = config["markdown_files"] + references = load_references("documentation/generator/_references.md") + + for file in markdown_files: + process(file, references) From f7912fb2459395e12738baf80063ec86593ec6fb Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 21 May 2025 18:38:38 +0300 Subject: [PATCH 071/142] Added pre-processor script to fix issues when Hugo uses CFEngine mustache as shortcodes Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 25842d91b61fe434c3e3abe322581387f437c393) --- generator/_scripts/cfdoc_preprocess.py | 9 ++++++++ .../_scripts/cfdoc_shortcodes_resolver.py | 23 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 generator/_scripts/cfdoc_shortcodes_resolver.py diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index 3166d17a4..d7bfb96ca 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -32,6 +32,7 @@ import cfdoc_qa as qa import cfdoc_patch_header_nav as patch_header_nav import cfdoc_references_resolver as references_resolver +import cfdoc_shortcodes_resolver as shortcodes_resolver import sys import os import traceback @@ -105,4 +106,12 @@ traceback.print_exc() exit(3) +try: + shortcodes_resolver.run(config) +except: + print("cfdoc_shortcodes_resolver: Fatal error resolving shortcodes replacement") + sys.stdout.write(" Exception: ") + print(sys.exc_info()) + exit(3) + exit(0) diff --git a/generator/_scripts/cfdoc_shortcodes_resolver.py b/generator/_scripts/cfdoc_shortcodes_resolver.py new file mode 100644 index 000000000..ca7fd7860 --- /dev/null +++ b/generator/_scripts/cfdoc_shortcodes_resolver.py @@ -0,0 +1,23 @@ +import re + +def process(file): + try: + # Read the file content + with open(file, 'r', encoding='utf-8') as f: + content = f.read() + + # Replace the pattern {{%anything}} with {{% print `{{%$1}}` %}} + # The .*? ensures a non-greedy match for the content between the braces + updated_content = re.sub(r'\{\{%(.*?)\}\}', r'{{% print `{{%\1}}` %}}', content) + + # Write the updated content back to the file + with open(file, 'w', encoding='utf-8') as f: + f.write(updated_content) + + except Exception as e: + print(f"Error processing {file}: {e}") + +def run(config): + markdown_files = config["markdown_files"] + for file in markdown_files: + process(file) From 8aba91c9ede27ea5e717acd102c623053d91eb53 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 21 May 2025 18:39:22 +0300 Subject: [PATCH 072/142] Removed printable processor we do not use Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit dacf49a6a3e2d9f2866f39ba3e1395a2e6c8b0bd) --- generator/_scripts/cfdoc_preprocess.py | 10 -- generator/_scripts/cfdoc_printsource.py | 199 ------------------------ 2 files changed, 209 deletions(-) delete mode 100644 generator/_scripts/cfdoc_printsource.py diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index d7bfb96ca..4a2ebcd55 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -27,7 +27,6 @@ import cfdoc_linkresolver as linkresolver import cfdoc_codeblock_resolver as codeblock_resolver import cfdoc_macros as macros -import cfdoc_printsource as printsource import cfdoc_git as git import cfdoc_qa as qa import cfdoc_patch_header_nav as patch_header_nav @@ -82,15 +81,6 @@ # generate links to known targets linkresolver.apply(config) -# create printable sources from completely pre-processed markdown - -try: - printsource.run(config) -except: - print("cfdoc_printsource: Error generating print-pages") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - try: patch_header_nav.patch(sys.argv[1]) except: diff --git a/generator/_scripts/cfdoc_printsource.py b/generator/_scripts/cfdoc_printsource.py deleted file mode 100644 index 0c3d7d590..000000000 --- a/generator/_scripts/cfdoc_printsource.py +++ /dev/null @@ -1,199 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2013 CFEngine AS -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import os -import cfdoc_linkresolver as linkresolver - - -class Page: - def __init__(self): - self.title = str() - self.parent = None - self.childtrees = dict() - self.childlist = list() - self.sorting = None - self.source_filename = None - - -def run(config): - markdown_files = config["markdown_files"] - pagetree = Page() - for markdown_file in markdown_files: - in_file = open(markdown_file, "r") - lines = in_file.readlines() - in_file.close() - - in_header = False - publish = False - sorting = -1 - title = str() - alias = str() - categories = list() - for line in lines: - if line[:3] == "---": - if in_header: - break - in_header = True - if in_header: - line = line.lstrip().rstrip() - if line.find("categories: [") == 0: - categories = line[line.find("[") + 1 : line.find("]")].split(",") - elif line.find("title: ") == 0: - title = line[line.find(":") + 1 :].lstrip().rstrip() - elif line.find("alias: ") == 0: - alias = line[line.find(":") + 1 :].lstrip().rstrip() - elif line.find("published: true") == 0: - publish = True - elif line.find("sorting: ") == 0: - sortstring = line[9:] - if sortstring.isdigit(): - sorting = int(sortstring) - - if publish and len(categories) > 0: - child = pagetree - count = len(categories) - for category in categories: - category = category.lstrip().rstrip() - parent = child - child = parent.childtrees.get(category) - if child == None: # new branch - child = Page() - child.parent = parent - parent.childtrees[category] = child - parent.childlist.append(child) - if count == 1: # node - child.title = title - child.alias = alias - child.source_filename = markdown_file - child.sorting = sorting - count -= 1 - - new_pages = dict() - print_pages(pagetree, 1, None, new_pages) - for new_page in list(new_pages.keys()): - headers = new_pages[new_page] - in_file = open(new_page, "r") - lines = in_file.readlines() - in_file.close() - - out_file = open(new_page, "w") - for line in lines: - if line.find("alias:") == 0: - alias = line[line.find(":") + 1 :].lstrip().rstrip() - out_file.write(line) - elif line.find("[%CFEngine_TOC%]") == 0: - out_file.write("# Table of Content\n") - out_file.write("\n") - first = True - for header in headers: - level = header.find(" ") - 1 - if level > 3 or level < 1: - continue - header = header[level + 2 :] - - # make sure we start with a proper list - if first and level > 1: - level = 1 - if alias != None: - entry = " " * ((level - 1) * 4) + "* [" + header + "]" - entry += ( - "(" - + alias - + "#" - + linkresolver.headerToAnchor(header) - + ")" - ) - else: - entry = header - out_file.write(entry + "\n") - first = False - else: - out_file.write(line) - out_file.close() - - -def print_pages(pages, level, out_file, new_pages): - sorted_pages = sorted(pages.childlist, key=lambda page: page.sorting) - for page in sorted_pages: - if page == None: - continue - if level == 1: - out_filename = page.source_filename - out_filename = out_filename.replace(".markdown", "-printable.markdown") - new_pages[out_filename] = list() - out_file = open(out_filename, "w") - out_file.write("---\n") - out_file.write("layout: printable\n") - out_file.write('title: "The Complete ' + page.title + '"\n') - out_file.write("published: true\n") - out_file.write( - "alias: %s-printable.html\n" % page.alias[: page.alias.rfind(".")] - ) - out_file.write("---\n") - out_file.write("\n") - out_file.write("[%CFEngine_TOC%]\n") - out_file.write("\n") - else: - title = "#" * level - title += " " + page.title - out_file.write(title + "\n\n") - new_pages[out_file.name].append(title) - - new_pages[out_file.name] += print_page(page.source_filename, out_file, level) - - print_pages(page, level + 1, out_file, new_pages) - - -def print_page(page_file, out_file, level): - in_file = open(page_file, "r") - lines = in_file.readlines() - - out_file.write("\n") - - headers = list() - in_body = True - in_code = False - for line in lines: - if line[:3] == "---": - in_body = not in_body - continue - if line[:3] == "```": - in_code = not in_code - out_file.write(line) - continue - if in_body: - if not in_code: - if ( - line[0] == "#" - ): # increase indent level for header in page, up to level 6 - line = "#" * max(level - 1, 4) + line - if line.find(" ") > 6: - line = line[line.find(" ") - 6 :] - if line.find("exclude-from-toc") == -1 and line.rstrip()[-1] != "#": - headers.append(line.lstrip().rstrip()) - out_file.write(line) - - out_file.write("\n") - out_file.write("\n") - out_file.write("\n--------\n\n") - out_file.write("\n") - return headers From 2021948e0cb1c40654b848b71e2570b8e919fa03 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Thu, 22 May 2025 12:16:04 +0300 Subject: [PATCH 073/142] Adjusted metadata alias to follow directory structure (cherry picked from commit 74aef1f6829d2b06635afbcd749af15267220b64) --- generator/_scripts/cfdoc_metadata.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/generator/_scripts/cfdoc_metadata.py b/generator/_scripts/cfdoc_metadata.py index b0f7ee12a..c4b8c27b0 100644 --- a/generator/_scripts/cfdoc_metadata.py +++ b/generator/_scripts/cfdoc_metadata.py @@ -127,11 +127,11 @@ def processMetaData(file_path, config): category = ", ".join(categories) if len(rel_file_path): - alias = "%s-%s" % (rel_file_path, file_name) + alias = "%s/%s" % (rel_file_path, file_name) else: alias = file_name - alias = alias.replace("/", "-").lower() + alias = alias.lower() out_file = open(file_path, "w") in_header = False @@ -144,7 +144,7 @@ def processMetaData(file_path, config): in_header = not in_header if not in_header: # write new tags before header is terminated out_file.write("categories: [%s]\n" % category) - out_file.write("alias: %s.html\n" % alias) + out_file.write("alias: %s\n" % alias) did_header = True if in_header: # skip hard-coded duplicates if line.find("categories:") == 0: From 8c45cdefa971d6a81d44373822c9e76c946f6770 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Thu, 22 May 2025 13:22:09 +0300 Subject: [PATCH 074/142] Removed category metadata (cherry picked from commit 01ccceec9a0c9af6e34fce8d79e920dd6070b2d8) --- generator/_scripts/cfdoc_metadata.py | 53 ---------------------------- 1 file changed, 53 deletions(-) diff --git a/generator/_scripts/cfdoc_metadata.py b/generator/_scripts/cfdoc_metadata.py index c4b8c27b0..1f3f44b86 100644 --- a/generator/_scripts/cfdoc_metadata.py +++ b/generator/_scripts/cfdoc_metadata.py @@ -21,13 +21,7 @@ # THE SOFTWARE. import os -import sys import json -import cfdoc_qa as qa -from os import listdir -from os.path import isfile, join -from string import ascii_letters, digits - def run(config): config["syntax_path"] = config["project_directory"] + "/_generated/syntax_map.json" @@ -37,25 +31,6 @@ def run(config): for file in markdown_files: processMetaData(file, config) - # validate that the category tree is consistent, ie that there is an - # index page for every subdirectory. Otherwise, Jekyll bails out - category_tree = config["category_tree"] - for node in category_tree: - branch = category_tree.get(node) - if branch == None: # orphan - print( - "Orphan in the category tree! Check path to '%s / %s'" % (branch, node) - ) - exit(1) - last_branch = branch.split("/")[-1] - if last_branch == "": - continue - parent_branch = category_tree.get(last_branch) - if parent_branch == None: # gaps - print("ERROR: Missing index file '%s.markdown'" % (branch)) - exit(2) - - # parse meta data lines, remove existing header for later reconstruction def parseHeader(lines): header = {} @@ -83,10 +58,6 @@ def parseHeader(lines): def processMetaData(file_path, config): - category_tree = config.get("category_tree") - if category_tree == None: - category_tree = {} - in_file = open(file_path, "r") lines = in_file.readlines() in_file.close() @@ -98,10 +69,6 @@ def processMetaData(file_path, config): file_name = file_name[: file_name.rfind(".")] header = parseHeader(lines) - if (not "published" in header) or ( - header["published"] == "false" - ): # ignore unpublished content - return if header.get("layout") != "default": # ignore special pages return if ( @@ -110,22 +77,6 @@ def processMetaData(file_path, config): print("ERROR! Page without title: %s" % file_name) return - categories = [] - if len(rel_file_path): - categories = rel_file_path.split("/") - categories.append(file_name) - if len(categories) > 1: - category_tree[categories[-1]] = rel_file_path # store each leaf with its path - else: - category_tree[file_name] = "" - categories = [ - '"%s"' % c for c in categories - ] # quote all entires to avoid ruby keywords - if len(categories) == 1: - category = categories[0] - else: - category = ", ".join(categories) - if len(rel_file_path): alias = "%s/%s" % (rel_file_path, file_name) else: @@ -143,16 +94,12 @@ def processMetaData(file_path, config): if line.find("---") == 0: in_header = not in_header if not in_header: # write new tags before header is terminated - out_file.write("categories: [%s]\n" % category) out_file.write("alias: %s\n" % alias) did_header = True if in_header: # skip hard-coded duplicates - if line.find("categories:") == 0: - continue if line.find("alias:") == 0: continue out_file.write(line) out_file.close() - config["category_tree"] = category_tree From 8748f6dcb720ae3a6458e639d451e306121939b1 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Fri, 23 May 2025 13:56:54 +0300 Subject: [PATCH 075/142] Moved section files into directories and renamed to _index.markdown Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit b4fb72efe3022caab99d28d49ef65ac2c8db4f5d) --- index.markdown => _index.markdown | 0 api.markdown => api/_index.markdown | 0 .../_index.markdown} | 0 .../_index.markdown} | 0 .../{sql-schema.markdown => sql-schema/_index.markdown} | 0 .../_index.markdown | 0 examples.markdown => examples/_index.markdown | 0 .../_index.markdown} | 0 .../_index.markdown} | 0 examples/{tutorials.markdown => tutorials/_index.markdown} | 0 .../_index.markdown} | 0 .../tutorials/{reporting.markdown => reporting/_index.markdown} | 0 .../_index.markdown} | 0 getting-started.markdown => getting-started/_index.markdown | 0 .../{installation.markdown => installation/_index.markdown} | 0 .../_index.markdown} | 0 .../_index.markdown} | 0 guide.markdown => guide/_index.markdown | 0 overview.markdown => overview/_index.markdown | 0 reference.markdown => reference/_index.markdown | 0 reference/{components.markdown => components/_index.markdown} | 0 reference/{functions.markdown => functions/_index.markdown} | 0 .../_index.markdown} | 0 .../{modules.markdown => modules/_index.markdown} | 0 .../_index.markdown} | 0 .../{promise-types.markdown => promise-types/_index.markdown} | 0 reference/promise-types/{files.markdown => files/_index.markdown} | 0 .../files/{edit_line.markdown => edit_line/_index.markdown} | 0 .../files/{edit_xml.markdown => edit_xml/_index.markdown} | 0 .../_index.markdown} | 0 release-notes.markdown => release-notes/_index.markdown | 0 release-notes/{whatsnew.markdown => whatsnew/_index.markdown} | 0 resources.markdown => resources/_index.markdown | 0 .../_index.markdown} | 0 resources/{faq.markdown => faq/_index.markdown} | 0 web-ui.markdown => web-ui/_index.markdown | 0 .../_index.markdown} | 0 .../_index.markdown} | 0 38 files changed, 0 insertions(+), 0 deletions(-) rename index.markdown => _index.markdown (100%) rename api.markdown => api/_index.markdown (100%) rename api/{enterprise-api-examples.markdown => enterprise-api-examples/_index.markdown} (100%) rename api/{enterprise-api-ref.markdown => enterprise-api-ref/_index.markdown} (100%) rename api/enterprise-api-ref/{sql-schema.markdown => sql-schema/_index.markdown} (100%) rename enterprise-cfengine-guide.markdown => enterprise-cfengine-guide/_index.markdown (100%) rename examples.markdown => examples/_index.markdown (100%) rename examples/{example-snippets.markdown => example-snippets/_index.markdown} (100%) rename examples/example-snippets/{promise-patterns.markdown => promise-patterns/_index.markdown} (100%) rename examples/{tutorials.markdown => tutorials/_index.markdown} (100%) rename examples/tutorials/{high-availability.markdown => high-availability/_index.markdown} (100%) rename examples/tutorials/{reporting.markdown => reporting/_index.markdown} (100%) rename examples/tutorials/{writing-and-serving-policy.markdown => writing-and-serving-policy/_index.markdown} (100%) rename getting-started.markdown => getting-started/_index.markdown (100%) rename getting-started/{installation.markdown => installation/_index.markdown} (100%) rename getting-started/installation/{general-installation.markdown => general-installation/_index.markdown} (100%) rename getting-started/installation/{pre-installation-checklist.markdown => pre-installation-checklist/_index.markdown} (100%) rename guide.markdown => guide/_index.markdown (100%) rename overview.markdown => overview/_index.markdown (100%) rename reference.markdown => reference/_index.markdown (100%) rename reference/{components.markdown => components/_index.markdown} (100%) rename reference/{functions.markdown => functions/_index.markdown} (100%) rename reference/{language-concepts.markdown => language-concepts/_index.markdown} (100%) rename reference/language-concepts/{modules.markdown => modules/_index.markdown} (100%) rename reference/{masterfiles-policy-framework.markdown => masterfiles-policy-framework/_index.markdown} (100%) rename reference/{promise-types.markdown => promise-types/_index.markdown} (100%) rename reference/promise-types/{files.markdown => files/_index.markdown} (100%) rename reference/promise-types/files/{edit_line.markdown => edit_line/_index.markdown} (100%) rename reference/promise-types/files/{edit_xml.markdown => edit_xml/_index.markdown} (100%) rename reference/{special-variables.markdown => special-variables/_index.markdown} (100%) rename release-notes.markdown => release-notes/_index.markdown (100%) rename release-notes/{whatsnew.markdown => whatsnew/_index.markdown} (100%) rename resources.markdown => resources/_index.markdown (100%) rename resources/{additional-topics.markdown => additional-topics/_index.markdown} (100%) rename resources/{faq.markdown => faq/_index.markdown} (100%) rename web-ui.markdown => web-ui/_index.markdown (100%) rename web-ui/{enterprise-reporting.markdown => enterprise-reporting/_index.markdown} (100%) rename web-ui/{hub_administration.markdown => hub_administration/_index.markdown} (100%) diff --git a/index.markdown b/_index.markdown similarity index 100% rename from index.markdown rename to _index.markdown diff --git a/api.markdown b/api/_index.markdown similarity index 100% rename from api.markdown rename to api/_index.markdown diff --git a/api/enterprise-api-examples.markdown b/api/enterprise-api-examples/_index.markdown similarity index 100% rename from api/enterprise-api-examples.markdown rename to api/enterprise-api-examples/_index.markdown diff --git a/api/enterprise-api-ref.markdown b/api/enterprise-api-ref/_index.markdown similarity index 100% rename from api/enterprise-api-ref.markdown rename to api/enterprise-api-ref/_index.markdown diff --git a/api/enterprise-api-ref/sql-schema.markdown b/api/enterprise-api-ref/sql-schema/_index.markdown similarity index 100% rename from api/enterprise-api-ref/sql-schema.markdown rename to api/enterprise-api-ref/sql-schema/_index.markdown diff --git a/enterprise-cfengine-guide.markdown b/enterprise-cfengine-guide/_index.markdown similarity index 100% rename from enterprise-cfengine-guide.markdown rename to enterprise-cfengine-guide/_index.markdown diff --git a/examples.markdown b/examples/_index.markdown similarity index 100% rename from examples.markdown rename to examples/_index.markdown diff --git a/examples/example-snippets.markdown b/examples/example-snippets/_index.markdown similarity index 100% rename from examples/example-snippets.markdown rename to examples/example-snippets/_index.markdown diff --git a/examples/example-snippets/promise-patterns.markdown b/examples/example-snippets/promise-patterns/_index.markdown similarity index 100% rename from examples/example-snippets/promise-patterns.markdown rename to examples/example-snippets/promise-patterns/_index.markdown diff --git a/examples/tutorials.markdown b/examples/tutorials/_index.markdown similarity index 100% rename from examples/tutorials.markdown rename to examples/tutorials/_index.markdown diff --git a/examples/tutorials/high-availability.markdown b/examples/tutorials/high-availability/_index.markdown similarity index 100% rename from examples/tutorials/high-availability.markdown rename to examples/tutorials/high-availability/_index.markdown diff --git a/examples/tutorials/reporting.markdown b/examples/tutorials/reporting/_index.markdown similarity index 100% rename from examples/tutorials/reporting.markdown rename to examples/tutorials/reporting/_index.markdown diff --git a/examples/tutorials/writing-and-serving-policy.markdown b/examples/tutorials/writing-and-serving-policy/_index.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy.markdown rename to examples/tutorials/writing-and-serving-policy/_index.markdown diff --git a/getting-started.markdown b/getting-started/_index.markdown similarity index 100% rename from getting-started.markdown rename to getting-started/_index.markdown diff --git a/getting-started/installation.markdown b/getting-started/installation/_index.markdown similarity index 100% rename from getting-started/installation.markdown rename to getting-started/installation/_index.markdown diff --git a/getting-started/installation/general-installation.markdown b/getting-started/installation/general-installation/_index.markdown similarity index 100% rename from getting-started/installation/general-installation.markdown rename to getting-started/installation/general-installation/_index.markdown diff --git a/getting-started/installation/pre-installation-checklist.markdown b/getting-started/installation/pre-installation-checklist/_index.markdown similarity index 100% rename from getting-started/installation/pre-installation-checklist.markdown rename to getting-started/installation/pre-installation-checklist/_index.markdown diff --git a/guide.markdown b/guide/_index.markdown similarity index 100% rename from guide.markdown rename to guide/_index.markdown diff --git a/overview.markdown b/overview/_index.markdown similarity index 100% rename from overview.markdown rename to overview/_index.markdown diff --git a/reference.markdown b/reference/_index.markdown similarity index 100% rename from reference.markdown rename to reference/_index.markdown diff --git a/reference/components.markdown b/reference/components/_index.markdown similarity index 100% rename from reference/components.markdown rename to reference/components/_index.markdown diff --git a/reference/functions.markdown b/reference/functions/_index.markdown similarity index 100% rename from reference/functions.markdown rename to reference/functions/_index.markdown diff --git a/reference/language-concepts.markdown b/reference/language-concepts/_index.markdown similarity index 100% rename from reference/language-concepts.markdown rename to reference/language-concepts/_index.markdown diff --git a/reference/language-concepts/modules.markdown b/reference/language-concepts/modules/_index.markdown similarity index 100% rename from reference/language-concepts/modules.markdown rename to reference/language-concepts/modules/_index.markdown diff --git a/reference/masterfiles-policy-framework.markdown b/reference/masterfiles-policy-framework/_index.markdown similarity index 100% rename from reference/masterfiles-policy-framework.markdown rename to reference/masterfiles-policy-framework/_index.markdown diff --git a/reference/promise-types.markdown b/reference/promise-types/_index.markdown similarity index 100% rename from reference/promise-types.markdown rename to reference/promise-types/_index.markdown diff --git a/reference/promise-types/files.markdown b/reference/promise-types/files/_index.markdown similarity index 100% rename from reference/promise-types/files.markdown rename to reference/promise-types/files/_index.markdown diff --git a/reference/promise-types/files/edit_line.markdown b/reference/promise-types/files/edit_line/_index.markdown similarity index 100% rename from reference/promise-types/files/edit_line.markdown rename to reference/promise-types/files/edit_line/_index.markdown diff --git a/reference/promise-types/files/edit_xml.markdown b/reference/promise-types/files/edit_xml/_index.markdown similarity index 100% rename from reference/promise-types/files/edit_xml.markdown rename to reference/promise-types/files/edit_xml/_index.markdown diff --git a/reference/special-variables.markdown b/reference/special-variables/_index.markdown similarity index 100% rename from reference/special-variables.markdown rename to reference/special-variables/_index.markdown diff --git a/release-notes.markdown b/release-notes/_index.markdown similarity index 100% rename from release-notes.markdown rename to release-notes/_index.markdown diff --git a/release-notes/whatsnew.markdown b/release-notes/whatsnew/_index.markdown similarity index 100% rename from release-notes/whatsnew.markdown rename to release-notes/whatsnew/_index.markdown diff --git a/resources.markdown b/resources/_index.markdown similarity index 100% rename from resources.markdown rename to resources/_index.markdown diff --git a/resources/additional-topics.markdown b/resources/additional-topics/_index.markdown similarity index 100% rename from resources/additional-topics.markdown rename to resources/additional-topics/_index.markdown diff --git a/resources/faq.markdown b/resources/faq/_index.markdown similarity index 100% rename from resources/faq.markdown rename to resources/faq/_index.markdown diff --git a/web-ui.markdown b/web-ui/_index.markdown similarity index 100% rename from web-ui.markdown rename to web-ui/_index.markdown diff --git a/web-ui/enterprise-reporting.markdown b/web-ui/enterprise-reporting/_index.markdown similarity index 100% rename from web-ui/enterprise-reporting.markdown rename to web-ui/enterprise-reporting/_index.markdown diff --git a/web-ui/hub_administration.markdown b/web-ui/hub_administration/_index.markdown similarity index 100% rename from web-ui/hub_administration.markdown rename to web-ui/hub_administration/_index.markdown From 62c2b595b8d753a0460257435970861710b29b67 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 21 Apr 2026 10:32:10 +0300 Subject: [PATCH 076/142] Moved documentation conent into conent directory Signed-off-by: Ihor Aleksandrychiev --- _index.markdown => content/_index.markdown | 0 {api => content/api}/_index.markdown | 0 .../api}/enterprise-api-architecture-overview.png | Bin .../api}/enterprise-api-examples/_index.markdown | 0 .../browsing-host-information.markdown | 0 .../changes-api-usage.markdown | 0 .../checking-status.markdown | 0 .../managing-settings.markdown | 0 .../managing-users-and-roles.markdown | 0 .../enterprise-api-examples/sql-queries.markdown | 0 .../api}/enterprise-api-ref/_index.markdown | 0 .../api}/enterprise-api-ref/actions-api.markdown | 0 .../api}/enterprise-api-ref/build-api.markdown | 0 .../api}/enterprise-api-ref/changes.markdown | 0 .../api}/enterprise-api-ref/cmdb-api.markdown | 0 .../enterprise-api-ref/export-import-api.markdown | 0 .../export-import-compliance-report-api.markdown | 0 .../federated-reporting-api.markdown | 0 .../api}/enterprise-api-ref/file-changes.markdown | 0 .../enterprise-api-ref/health-diagnostic.markdown | 0 .../api}/enterprise-api-ref/host.markdown | 0 .../api}/enterprise-api-ref/inventory.markdown | 0 .../api}/enterprise-api-ref/ldap-api.markdown | 0 .../enterprise-api-ref/personal-groups.markdown | 0 .../api}/enterprise-api-ref/query.markdown | 0 .../api}/enterprise-api-ref/shared-groups.markdown | 0 .../enterprise-api-ref/sql-schema/_index.markdown | 0 .../enterprise-api-ref/sql-schema/cfdb.markdown | 0 .../enterprise-api-ref/sql-schema/cfmp.markdown | 0 .../sql-schema/cfsettings.markdown | 0 .../api}/enterprise-api-ref/ssh-keys-api.markdown | 0 .../enterprise-api-ref/status-settings.markdown | 0 .../two-factor-authentication.markdown | 0 .../api}/enterprise-api-ref/users-rbac.markdown | 0 .../api}/enterprise-api-ref/vcs-settings.markdown | 0 .../api}/enterprise-api-ref/web-rbac.markdown | 0 .../enterprise-cfengine-guide}/_index.markdown | 0 .../install-get-started.markdown | 0 {examples => content/examples}/_index.markdown | 0 .../examples}/example-snippets/_index.markdown | 0 .../example-snippets/aborting_execution.cf | 0 .../examples}/example-snippets/acl_file_example.cf | 0 .../example-snippets/acl_generic_example.cf | 0 .../example-snippets/acl_secret_example.cf | 0 .../example-snippets/active_directory.markdown | 0 .../example-snippets/active_directory_example.cf | 0 .../active_directory_show_users_example.cf | 0 .../active_list_users_directory_example.cf | 0 .../example-snippets/add_lines_to_a_file.cf | 0 .../example-snippets/add_lines_to_a_file_1.cf | 0 .../add_software_packages_to_the_system.cf | 0 .../examples}/example-snippets/add_users.cf | 0 .../examples}/example-snippets/add_users_1.cf | 0 .../add_users_to_passwd_and_group.cf | 0 .../add_variable_definitions_to_a_file.cf | 0 .../add_variable_definitions_to_a_file_1.cf | 0 .../example-snippets/all_hosts_the_same.cf | 0 .../example-snippets/application_baseline.cf | 0 .../examples}/example-snippets/array_example.cf | 0 .../back_references_in_filenames.cf | 0 .../example-snippets/basic-file-directory.markdown | 0 .../examples}/example-snippets/basic_example.cf | 0 .../examples}/example-snippets/bsd_flags.cf | 0 .../cfengine-administration.markdown | 0 .../examples}/example-snippets/change_detection.cf | 0 .../change_directory_for_command.cf | 0 .../check_file_or_directory_permissions.cf | 0 .../example-snippets/check_filesystem_space.cf | 0 .../example-snippets/class_match_example.cf | 0 .../example-snippets/client-server_example.cf | 0 .../example-snippets/command_or_script_execution.cf | 0 .../commands-scripts-execution.markdown | 0 .../examples}/example-snippets/commands_example.cf | 0 .../example-snippets/commenting_lines_in_a_file.cf | 0 .../example-snippets/copy_and_flatten_directory.cf | 0 .../example-snippets/copy_directory_trees.cf | 0 .../examples}/example-snippets/copy_files.cf | 0 .../examples}/example-snippets/copy_single_files.cf | 0 .../copy_then_edit_a_file_convergently.cf | 0 .../create_files_and_directories.cf | 0 .../examples}/example-snippets/custom_editing.cf | 0 .../examples}/example-snippets/custom_editing_1.cf | 0 .../examples}/example-snippets/database.markdown | 0 .../examples}/example-snippets/database_creation.cf | 0 .../example-snippets/deleting_lines_exception.cf | 0 .../example-snippets/deleting_lines_from_a_file.cf | 0 .../disabling_and_rotating_files.cf | 0 .../example-snippets/distribute_root_passwords.cf | 0 .../example-snippets/distribute_ssh_keys.cf | 0 .../examples}/example-snippets/editing_files.cf | 0 .../editing_password_or_group_files.cf | 0 .../editing_password_or_group_files_custom.cf | 0 .../example-snippets/editing_tabular_files.cf | 0 .../example-snippets/ensure_not_running.cf | 0 .../examples}/example-snippets/ensure_running.cf | 0 .../examples}/example-snippets/ensure_running_1.cf | 0 .../example-snippets/environment_variables.cf | 0 .../example-snippets/environments_(virtual).cf | 0 .../example-snippets/execresult_example.cf | 0 .../example-snippets/file-template.markdown | 0 .../example-snippets/file_permissions.markdown | 0 .../examples}/example-snippets/find_mac_address.cf | 0 .../example-snippets/garbage_collection.cf | 0 .../examples}/example-snippets/general.markdown | 0 .../example-snippets/get_a_list_of_users.cf | 0 .../examples}/example-snippets/global_classes.cf | 0 .../hashing_for_change_detection_(tripwire).cf | 0 .../examples}/example-snippets/hello_world.cf | 0 .../example-snippets/inserting_lines_in_a_file.cf | 0 ...integrating_the_example_into_your_main_policy.cf | 0 .../examples}/example-snippets/kill_process.cf | 0 .../laptop_support_configuration.cf | 0 .../examples}/example-snippets/ldap_interactions.cf | 0 .../examples}/example-snippets/linking_files.cf | 0 .../listing_files-pattern_in_a_directory.cf | 0 .../example-snippets/locate_and_transform_files.cf | 0 .../examples}/example-snippets/log_rotation.cf | 0 .../examples}/example-snippets/logging.cf | 0 .../examples}/example-snippets/macro_template.cf | 0 .../examples}/example-snippets/macro_template_1.cf | 0 .../examples}/example-snippets/measurements.cf | 0 .../examples}/example-snippets/method_validation.cf | 0 .../examples}/example-snippets/methods.cf | 0 .../example-snippets/mount_a_filesystem.cf | 0 .../example-snippets/mount_nfs_filesystem.cf | 0 .../examples}/example-snippets/network.markdown | 0 .../examples}/example-snippets/ordering_promises.cf | 0 .../example-snippets/packages_examples_solaris.cf | 0 .../example-snippets/postfix_mail_configuration.cf | 0 .../example-snippets/process_management.cf | 0 .../promise-patterns/_index.markdown | 0 .../example_aborting_execution.markdown | 0 .../example_change_detection.markdown | 0 .../example_copy_single_files.markdown | 0 .../example_create_filedir.markdown | 0 .../promise-patterns/example_diskfree.markdown | 0 .../promise-patterns/example_edit_motd.markdown | 0 .../example_edit_name_resolution.markdown | 0 .../example_enable_service.markdown | 0 .../promise-patterns/example_find_mac_addr.markdown | 0 .../example_install_package.markdown | 0 .../promise-patterns/example_mount_nfs.markdown | 0 .../promise-patterns/example_ntp.markdown | 0 .../promise-patterns/example_process_kill.markdown | 0 .../example_process_restart.markdown | 0 .../promise-patterns/example_ssh_keys.markdown | 0 .../promise-patterns/example_sudoers.markdown | 0 .../example_updating_from_central_hub.markdown | 0 .../examples}/example-snippets/prune_processes.cf | 0 .../example-snippets/read_from_a_tcp_socket.cf | 0 .../example-snippets/resolver_management.cf | 0 .../examples}/example-snippets/restart_process.cf | 0 .../examples}/example-snippets/restart_process_1.cf | 0 .../example-snippets/search_and_replace_text.cf | 0 .../selecting_a_region_in_a_file.cf | 0 .../service_management_(windows).cf | 0 .../example-snippets/set_up_a_pxe_boot_server.cf | 0 .../example-snippets/set_up_a_web_server.cf | 0 .../example-snippets/set_up_hpc_clusters.cf | 0 .../example-snippets/set_up_name_resolution.cf | 0 .../example-snippets/set_up_name_resolution_1.cf | 0 .../examples}/example-snippets/set_up_sudo.cf | 0 .../examples}/example-snippets/simple_template.cf | 0 .../example-snippets/simple_versioned_template.cf | 0 .../software-adminstration.markdown | 0 .../software_and_patch_installation.cf | 0 .../software_and_patch_installation_1.cf | 0 .../software_and_patch_installation_1_2.cf | 0 .../software_and_patch_installation_1_2_3.cf | 0 .../example-snippets/software_distribution.cf | 0 .../example-snippets/system-administration.markdown | 0 .../examples}/example-snippets/system-file.markdown | 0 .../example-snippets/system-information.markdown | 0 .../example-snippets/system-security.markdown | 0 .../examples}/example-snippets/templating.cf | 0 .../examples}/example-snippets/templating_1.cf | 0 .../example-snippets/tidying_garbage_files.cf | 0 .../timing-counting-measuring.markdown | 0 .../examples}/example-snippets/trigger_classes.cf | 0 .../examples}/example-snippets/unit_registry.cf.cf | 0 .../example-snippets/unit_registry_cache.cf.cf | 0 .../example-snippets/unmount_nfs_filesystem.cf | 0 .../example-snippets/updating_from_a_central_hub.cf | 0 .../example-snippets/user-management.markdown | 0 .../example-snippets/variation_in_hosts.cf | 0 .../warn_if_matching_line_in_file.cf | 0 .../example-snippets/web_server_modules.cf | 0 .../example-snippets/windows-registry.markdown | 0 .../examples}/example-snippets/windows_registry.cf | 0 .../examples}/tutorials/Activated-sketch.png | Bin .../examples}/tutorials/Report-builder-results.png | Bin .../examples}/tutorials/Report-builder.png | Bin {examples => content/examples}/tutorials/Report.png | Bin {examples => content/examples}/tutorials/Sketch.png | Bin .../examples}/tutorials/_index.markdown | 0 .../examples}/tutorials/add-new-tracker.png | Bin .../examples}/tutorials/create_dashboard_alert1.png | Bin .../examples}/tutorials/create_dashboard_alert2.png | Bin .../examples}/tutorials/create_dashboard_alert3.png | Bin .../examples}/tutorials/create_dashboard_alert4.png | Bin .../examples}/tutorials/create_dashboard_alert5.png | Bin .../examples}/tutorials/custom_inventory.markdown | 0 .../examples}/tutorials/dashboard-alerts.markdown | 0 ...istribute-files-from-a-central-location.markdown | 0 .../examples}/tutorials/file_compare_test.cf | 0 .../examples}/tutorials/file_comparison.markdown | 0 .../examples}/tutorials/files-tutorial.markdown | 0 .../tutorials/high-availability/_index.markdown | 0 .../tutorials/high-availability/ha_3.6.png | Bin .../high-availability/ha_degraded_indicator.png | Bin .../tutorials/high-availability/ha_health_OK.png | Bin .../tutorials/high-availability/ha_inventory.png | Bin .../high-availability/ha_network_setup.png | Bin .../high-availability/installation-guide.markdown | 0 .../examples}/tutorials/hosts-add-new-tracker.png | Bin .../installing-cfengine-enterprise-agent.markdown | 0 .../integrating-alerts-with-pager-duty.markdown | 0 ...ith-pagerduty_CFEngine-Service-Setup-800x512.png | Bin ...g-alerts-with-pagerduty_Services_-_PagerDuty.png | Bin ...alerts-with-pagerduty_bundlesequence-800x357.png | Bin ...grating-alerts-with-pagerduty_inputs-800x179.png | Bin ...integrating-alerts-with-pagerduty_new_alert1.png | Bin ...lerts-with-pagerduty_new_alert_bundle_repair.png | Bin ...ting-alerts-with-pagerduty_new_alert_details.png | Bin ...tegrating-alerts-with-pagerduty_notification.png | Bin ...ng-alerts-with-pagerduty_pagerduty_new_alert.png | Bin ...ntegrating-alerts-with-pagerduty_type_policy.png | Bin ...tegrating-alerts-with-ticketing-systems.markdown | 0 ...with-ticketing-systems_alert_parameters_test.zip | Bin ...eting-systems_cfengine_custom_action_jira.py.zip | Bin ...systems_custom-action-alert-association-jira.png | Bin ...ing-systems_custom-action-script-upload-jira.png | Bin ...icketing-systems_policy-compliance-add-alert.png | Bin ...with-ticketing-systems_web-service-condition.png | Bin .../tutorials/integrating-with-sumo-logic.markdown | 0 .../tutorials/integrating-with-sumo-logic_sumo.png | Bin .../json-yaml-support-in-cfengine.markdown | 0 .../examples}/tutorials/manage-local-users.markdown | 0 .../examples}/tutorials/manage-ntp.markdown | 0 .../examples}/tutorials/manage-packages.markdown | 0 .../manage-processes-and-services.markdown | 0 .../masterfiles_policy_framework_upgrade.markdown | 0 .../render-files-with-mustache-templates.markdown | 0 ...inventory_remediate_sec_vulnerabilities.markdown | 0 ...sec_vulnerabilities_2014-09-29-Selection_001.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_002.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_003.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_004.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_005.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_006.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_007.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_008.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_009.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_010.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_011.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_012.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_013.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_014.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_015.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_016.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_017.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_018.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_019.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_020.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_021.jpg | Bin ...sec_vulnerabilities_2014-09-29-Selection_022.jpg | Bin .../examples}/tutorials/reporting/_index.markdown | 0 .../reporting/command-line-reports.markdown | 0 .../reporting/monitoring-reporting.markdown | 0 .../examples}/tutorials/tags.markdown | 0 .../tutorials_custom_inventory_attribute.png | Bin .../tutorials/tutorials_custom_inventory_report.png | Bin .../tutorials/write-cfengine-policy.markdown | 0 .../writing-and-serving-policy/_index.markdown | 0 .../authoring-policy-tools-and-workflow.markdown | 0 .../bundles-best-practices.markdown | 0 .../controlling-frequency.markdown | 0 .../writing-and-serving-policy/editors.markdown | 0 .../external_data.markdown | 0 ...uide-writing-and-serving-policy-editors-atom.png | Bin ...writing-and-serving-policy-editors-eclipse-0.png | Bin ...writing-and-serving-policy-editors-eclipse-1.png | Bin ...writing-and-serving-policy-editors-eclipse-2.png | Bin ...writing-and-serving-policy-editors-eclipse-3.png | Bin ...ide-writing-and-serving-policy-editors-emacs.png | Bin ...uide-writing-and-serving-policy-editors-kate.jpg | Bin ...writing-and-serving-policy-editors-spacemacs.png | Bin ...ting-and-serving-policy-editors-sublime-text.jpg | Bin ...guide-writing-and-serving-policy-editors-vim.png | Bin ...nd-serving-policy-editors-visual-studio-code.png | Bin ...guide-writing-and-serving-policy-editors-zed.png | Bin .../policy-layers-abstraction.markdown | 0 .../policy-style.markdown | 0 .../promises-available-in-cfengine.markdown | 0 .../testing-policies.markdown | 0 .../getting-started}/_index.markdown | 0 .../getting-started}/action-buttons.png | Bin .../getting-started}/compliance-report.png | Bin .../getting-started}/developing-modules.markdown | 0 .../getting-started}/digital-ocean.png | Bin .../getting-started}/host-info.png | Bin .../host-specific-data-with-suggestion.png | Bin .../getting-started}/hugo-commit.png | Bin .../getting-started}/installation/_index.markdown | 0 .../general-installation/_index.markdown | 0 .../general-installation/common_next_steps.markdown | 0 .../installation-community.markdown | 0 .../installation-coreos.markdown | 0 .../installation-enterprise-free-aws-rhel.markdown | 0 .../installation-enterprise-free.markdown | 0 ...installation-enterprise-generic-tarball.markdown | 0 .../installation-enterprise-vagrant.markdown | 0 .../installation-enterprise.markdown | 0 .../installation/img/Installing-CFE-on-AWS-1.png | Bin .../installation/img/Installing-CFE-on-AWS-10.png | Bin .../installation/img/Installing-CFE-on-AWS-11.png | Bin .../installation/img/Installing-CFE-on-AWS-2.png | Bin .../installation/img/Installing-CFE-on-AWS-3.png | Bin .../installation/img/Installing-CFE-on-AWS-4.png | Bin .../installation/img/Installing-CFE-on-AWS-5.png | Bin .../installation/img/Installing-CFE-on-AWS-6.png | Bin .../installation/img/Installing-CFE-on-AWS-7.png | Bin .../installation/img/Installing-CFE-on-AWS-8.png | Bin .../installation/img/Installing-CFE-on-AWS-9.png | Bin .../installation/installation-overview.markdown | 0 .../installation/local-virtual-machine.markdown | 0 .../pre-installation-checklist/_index.markdown | 0 .../putty-key-generator-window.png | Bin .../putty-quick-start-guide.markdown | 0 .../puttygen-interface.png | Bin .../puttygen-load-private-key-window.png | Bin .../verify-signatures.markdown | 0 .../vi-quick-start-guide.markdown | 0 .../installation/secure-bootstrap.markdown | 0 .../installation/upgrading.markdown | 0 .../installation/version-control.markdown | 0 .../getting-started}/inventory-reports.gif | Bin .../getting-started}/inventory-section.png | Bin .../getting-started}/inventory-sudoers.gif | Bin .../getting-started}/machines.png | Bin .../modules-from-cfengine-build.markdown | 0 .../getting-started}/mp-login.png | Bin .../getting-started}/os-is-vendor-supported.gif | Bin .../getting-started}/policy-analyzer.png | Bin .../getting-started}/reporting-and-web-ui.markdown | 0 .../getting-started}/workflow.png | Bin .../getting-started}/writing-policy.markdown | 0 .../guide}/CFEngine-workflow-agents-and-users.png | Bin {guide => content/guide}/DCsketchworkflow.png | Bin {guide => content/guide}/_index.markdown | 0 .../guide}/components-overview.graffle | 0 {guide => content/guide}/components-overview.png | Bin .../guide}/design-center/Activated-sketch-copy.png | Bin .../guide}/design-center/add-new-tracker-copy.png | Bin ...CFEngine-process-in-1-2-3_blocks_with_arrows.png | Bin {guide => content/guide}/policy-decision-flow.png | Bin {overview => content/overview}/_index.markdown | 0 .../overview}/client-server-communication.markdown | 0 .../overview}/directory-structure.markdown | 0 {overview => content/overview}/glossary.markdown | 0 .../overview}/how-cfengine-works.markdown | 0 .../overview}/what-is-cfengine-and-why.markdown | 0 {reference => content/reference}/_index.markdown | 0 {reference => content/reference}/all-types.markdown | 0 .../reference}/common-attributes-include.markdown | 0 .../common-body-attributes-include.markdown | 0 .../reference}/components/_index.markdown | 0 .../reference}/components/cf-agent.markdown | 0 .../reference}/components/cf-check.markdown | 0 .../reference}/components/cf-execd.markdown | 0 .../reference}/components/cf-hub.markdown | 0 .../reference}/components/cf-key.markdown | 0 .../reference}/components/cf-monitord.markdown | 0 .../reference}/components/cf-net.markdown | 0 .../reference}/components/cf-promises.markdown | 0 .../reference}/components/cf-reactor.markdown | 0 .../reference}/components/cf-runagent.markdown | 0 .../reference}/components/cf-secret.markdown | 0 .../reference}/components/cf-serverd.markdown | 0 .../reference}/components/cf-support.markdown | 0 .../components/file_control_promises.markdown | 0 {reference => content/reference}/functions/TEMPLATE | 0 .../reference}/functions/_index.markdown | 0 .../reference}/functions/accessedbefore.markdown | 0 .../reference}/functions/accumulated.markdown | 0 .../reference}/functions/ago.markdown | 0 .../reference}/functions/and.markdown | 0 .../reference}/functions/basename.markdown | 0 .../reference}/functions/bundlesmatching.markdown | 0 .../reference}/functions/bundlestate.markdown | 0 .../reference}/functions/callstack_callers.markdown | 0 .../functions/callstack_promisers.markdown | 0 .../reference}/functions/canonify.markdown | 0 .../reference}/functions/canonifyuniquely.markdown | 0 .../reference}/functions/cf_version_after.markdown | 0 .../reference}/functions/cf_version_at.markdown | 0 .../reference}/functions/cf_version_before.markdown | 0 .../functions/cf_version_between.markdown | 0 .../functions/cf_version_maximum.markdown | 0 .../functions/cf_version_minimum.markdown | 0 .../reference}/functions/changedbefore.markdown | 0 .../reference}/functions/classesmatching.markdown | 0 .../reference}/functions/classfiltercsv.markdown | 0 .../reference}/functions/classify.markdown | 0 .../reference}/functions/classmatch.markdown | 0 .../reference}/functions/concat.markdown | 0 .../functions/countclassesmatching.markdown | 0 .../functions/countlinesmatching.markdown | 0 .../reference}/functions/data_expand.markdown | 0 .../functions/data_readstringarray.markdown | 0 .../functions/data_readstringarrayidx.markdown | 0 .../reference}/functions/data_regextract.markdown | 0 .../reference}/functions/data_sysctlvalues.markdown | 0 .../reference}/functions/datastate.markdown | 0 .../reference}/functions/difference.markdown | 0 .../reference}/functions/dirname.markdown | 0 .../reference}/functions/diskfree.markdown | 0 .../reference}/functions/escape.markdown | 0 .../reference}/functions/eval.markdown | 0 .../reference}/functions/every.markdown | 0 .../reference}/functions/execresult.markdown | 0 .../functions/execresult_as_data.markdown | 0 .../reference}/functions/expandrange.markdown | 0 .../reference}/functions/file_hash.markdown | 0 .../reference}/functions/fileexists.markdown | 0 .../reference}/functions/filesexist.markdown | 0 .../reference}/functions/filesize.markdown | 0 .../reference}/functions/filestat.markdown | 0 .../reference}/functions/filter.markdown | 0 .../reference}/functions/findfiles.markdown | 0 .../reference}/functions/findfiles_up.markdown | 0 .../reference}/functions/findprocesses.markdown | 0 .../reference}/functions/format.markdown | 0 .../reference}/functions/getclassmetatags.markdown | 0 .../reference}/functions/getenv.markdown | 0 .../reference}/functions/getfields.markdown | 0 .../reference}/functions/getgid.markdown | 0 .../reference}/functions/getindices.markdown | 0 .../reference}/functions/getuid.markdown | 0 .../reference}/functions/getuserinfo.markdown | 0 .../reference}/functions/getusers.markdown | 0 .../reference}/functions/getvalues.markdown | 0 .../functions/getvariablemetatags.markdown | 0 .../reference}/functions/grep.markdown | 0 .../reference}/functions/groupexists.markdown | 0 .../reference}/functions/hash.markdown | 0 .../reference}/functions/hash_to_int.markdown | 0 .../reference}/functions/hashmatch.markdown | 0 .../reference}/functions/host2ip.markdown | 0 .../reference}/functions/hostinnetgroup.markdown | 0 .../reference}/functions/hostrange.markdown | 0 .../reference}/functions/hostsseen.markdown | 0 .../reference}/functions/hostswithclass.markdown | 0 .../reference}/functions/hubknowledge.markdown | 0 .../reference}/functions/ifelse.markdown | 0 .../reference}/functions/int.markdown | 0 .../reference}/functions/intersection.markdown | 0 .../reference}/functions/ip2host.markdown | 0 .../reference}/functions/iprange.markdown | 0 .../reference}/functions/irange.markdown | 0 .../reference}/functions/isdir.markdown | 0 .../reference}/functions/isexecutable.markdown | 0 .../reference}/functions/isgreaterthan.markdown | 0 .../reference}/functions/isipinsubnet.markdown | 0 .../reference}/functions/islessthan.markdown | 0 .../reference}/functions/islink.markdown | 0 .../reference}/functions/isnewerthan.markdown | 0 .../reference}/functions/isplain.markdown | 0 .../reference}/functions/isreadable.markdown | 0 .../reference}/functions/isvariable.markdown | 0 .../reference}/functions/join.markdown | 0 .../reference}/functions/lastnode.markdown | 0 .../reference}/functions/laterthan.markdown | 0 .../reference}/functions/ldaparray.markdown | 0 .../reference}/functions/ldaplist.markdown | 0 .../reference}/functions/ldapvalue.markdown | 0 .../reference}/functions/length.markdown | 0 .../reference}/functions/lsdir.markdown | 0 .../reference}/functions/makerule.markdown | 0 .../reference}/functions/maparray.markdown | 0 .../reference}/functions/mapdata.markdown | 0 .../reference}/functions/maplist.markdown | 0 .../reference}/functions/max.markdown | 0 .../reference}/functions/mean.markdown | 0 .../reference}/functions/mergedata.markdown | 0 .../reference}/functions/min.markdown | 0 .../functions/network_connections.markdown | 0 .../reference}/functions/none.markdown | 0 .../reference}/functions/not.markdown | 0 .../reference}/functions/now.markdown | 0 .../reference}/functions/nth.markdown | 0 .../reference}/functions/on.markdown | 0 .../reference}/functions/or.markdown | 0 .../reference}/functions/packagesmatching.markdown | 0 .../functions/packageupdatesmatching.markdown | 0 .../reference}/functions/parseintarray.markdown | 0 .../reference}/functions/parsejson.markdown | 0 .../reference}/functions/parserealarray.markdown | 0 .../reference}/functions/parsestringarray.markdown | 0 .../functions/parsestringarrayidx.markdown | 0 .../reference}/functions/parseyaml.markdown | 0 .../reference}/functions/peerleader.markdown | 0 .../reference}/functions/peerleaders.markdown | 0 .../reference}/functions/peers.markdown | 0 .../reference}/functions/processexists.markdown | 0 .../reference}/functions/product.markdown | 0 .../reference}/functions/randomint.markdown | 0 .../functions/read_module_protocol.markdown | 0 .../reference}/functions/readcsv.markdown | 0 .../reference}/functions/readdata.markdown | 0 .../reference}/functions/readenvfile.markdown | 0 .../reference}/functions/readfile.markdown | 0 .../reference}/functions/readintarray.markdown | 0 .../reference}/functions/readintlist.markdown | 0 .../reference}/functions/readjson.markdown | 0 .../reference}/functions/readrealarray.markdown | 0 .../reference}/functions/readreallist.markdown | 0 .../reference}/functions/readstringarray.markdown | 0 .../functions/readstringarrayidx.markdown | 0 .../reference}/functions/readstringlist.markdown | 0 .../reference}/functions/readtcp.markdown | 0 .../reference}/functions/readyaml.markdown | 0 .../reference}/functions/regarray.markdown | 0 .../reference}/functions/regcmp.markdown | 0 .../reference}/functions/regex_replace.markdown | 0 .../reference}/functions/regextract.markdown | 0 .../reference}/functions/registryvalue.markdown | 0 .../reference}/functions/regldap.markdown | 0 .../reference}/functions/regline.markdown | 0 .../reference}/functions/reglist.markdown | 0 .../functions/remoteclassesmatching.markdown | 0 .../reference}/functions/remotescalar.markdown | 0 .../reference}/functions/returnszero.markdown | 0 .../reference}/functions/reverse.markdown | 0 .../reference}/functions/rrange.markdown | 0 .../reference}/functions/selectservers.markdown | 0 .../reference}/functions/shuffle.markdown | 0 .../reference}/functions/some.markdown | 0 .../reference}/functions/sort.markdown | 0 .../reference}/functions/splayclass.markdown | 0 .../reference}/functions/splitstring.markdown | 0 .../reference}/functions/storejson.markdown | 0 .../reference}/functions/strcmp.markdown | 0 .../reference}/functions/strftime.markdown | 0 .../reference}/functions/string.markdown | 0 .../reference}/functions/string_downcase.markdown | 0 .../reference}/functions/string_head.markdown | 0 .../reference}/functions/string_length.markdown | 0 .../reference}/functions/string_mustache.markdown | 0 .../reference}/functions/string_replace.markdown | 0 .../reference}/functions/string_reverse.markdown | 0 .../reference}/functions/string_split.markdown | 0 .../reference}/functions/string_tail.markdown | 0 .../reference}/functions/string_trim.markdown | 0 .../reference}/functions/string_upcase.markdown | 0 .../reference}/functions/sublist.markdown | 0 .../reference}/functions/sum.markdown | 0 .../reference}/functions/sysctlvalue.markdown | 0 .../reference}/functions/translatepath.markdown | 0 .../reference}/functions/type.markdown | 0 .../reference}/functions/unique.markdown | 0 .../reference}/functions/url_get.markdown | 0 .../reference}/functions/usemodule.markdown | 0 .../reference}/functions/userexists.markdown | 0 .../reference}/functions/validdata.markdown | 0 .../reference}/functions/validjson.markdown | 0 .../reference}/functions/variablesmatching.markdown | 0 .../functions/variablesmatching_as_data.markdown | 0 .../reference}/functions/variance.markdown | 0 .../reference}/functions/version_compare.markdown | 0 .../reference}/language-concepts/_index.markdown | 0 .../reference}/language-concepts/augments.markdown | 0 .../reference}/language-concepts/bodies.markdown | 0 .../reference}/language-concepts/bundles.markdown | 0 .../reference}/language-concepts/classes.markdown | 0 .../reference}/language-concepts/loops.markdown | 0 .../language-concepts/modules/_index.markdown | 0 .../modules/package-module-api.markdown | 0 .../language-concepts/namespaces.markdown | 0 .../language-concepts/normal-ordering.markdown | 0 .../pattern-matching-and-referencing.markdown | 0 .../reference}/language-concepts/promises.markdown | 0 .../reference}/language-concepts/variables.markdown | 0 {reference => content/reference}/macros.markdown | 0 .../masterfiles-policy-framework/_index.markdown | 0 .../cfe_internal-CFE_cfengine.markdown | 0 .../cfe_internal-core-watchdog-watchdog.markdown | 0 .../cfe_internal-core-watchdog.markdown | 0 .../cfe_internal-core.markdown | 0 ...ternal-enterprise-federation-federation.markdown | 0 .../cfe_internal-enterprise-federation.markdown | 0 .../cfe_internal-enterprise.markdown | 0 .../cfe_internal-recommendations.markdown | 0 ...nternal-update-cfe_internal_dc_workflow.markdown | 0 ...ate-cfe_internal_update_from_repository.markdown | 0 .../cfe_internal-update-lib.markdown | 0 .../cfe_internal-update-systemd_units.markdown | 0 .../cfe_internal-update-update_bins.markdown | 0 .../cfe_internal-update-update_policy.markdown | 0 .../cfe_internal-update-update_processes.markdown | 0 .../cfe_internal-update.markdown | 0 .../cfe_internal.markdown | 0 .../controls-cf-hub.markdown | 0 .../controls-cf_agent.markdown | 0 .../controls-cf_execd.markdown | 0 .../controls-cf_monitord.markdown | 0 .../controls-cf_runagent.markdown | 0 .../controls-cf_serverd.markdown | 0 .../controls-def.markdown | 0 .../controls-def_inputs.markdown | 0 .../controls-reports.markdown | 0 .../controls-update_def.markdown | 0 .../controls-update_def_inputs.markdown | 0 .../masterfiles-policy-framework/controls.markdown | 0 .../inventory-any.markdown | 0 .../inventory-debian.markdown | 0 .../inventory-freebsd.markdown | 0 .../inventory-generic.markdown | 0 .../inventory-linux.markdown | 0 .../inventory-lsb.markdown | 0 .../inventory-macos.markdown | 0 .../inventory-os.markdown | 0 .../inventory-redhat.markdown | 0 .../inventory-suse.markdown | 0 .../inventory-windows.markdown | 0 .../masterfiles-policy-framework/inventory.markdown | 0 .../lib-autorun.markdown | 0 .../lib-bundles.markdown | 0 .../lib-cfe_internal.markdown | 0 .../lib-cfe_internal_hub.markdown | 0 .../lib-cfengine_enterprise_hub_ha.markdown | 0 .../lib-commands.markdown | 0 .../lib-common.markdown | 0 .../lib-databases.markdown | 0 .../lib-edit_xml.markdown | 0 .../masterfiles-policy-framework/lib-event.markdown | 0 .../lib-examples.markdown | 0 .../lib-feature.markdown | 0 .../masterfiles-policy-framework/lib-files.markdown | 0 .../lib-guest_environments.markdown | 0 .../lib-monitor.markdown | 0 .../lib-packages.markdown | 0 .../masterfiles-policy-framework/lib-paths.markdown | 0 .../lib-processes.markdown | 0 .../lib-reports.markdown | 0 .../lib-services.markdown | 0 .../lib-stdlib.markdown | 0 .../lib-storage.markdown | 0 .../lib-testing.markdown | 0 .../masterfiles-policy-framework/lib-users.markdown | 0 .../masterfiles-policy-framework/lib-vcs.markdown | 0 .../masterfiles-policy-framework/lib.markdown | 0 .../modules-mustache.markdown | 0 .../modules-packages-vendored.markdown | 0 .../modules-packages.markdown | 0 .../modules-promises-cfengine.py.markdown | 0 .../modules-promises-cfengine.sh.markdown | 0 .../modules-promises.markdown | 0 .../masterfiles-policy-framework/modules.markdown | 0 .../no-distrib.markdown | 0 .../masterfiles-policy-framework/promises.markdown | 0 .../services-autorun.markdown | 0 .../services-main.markdown | 0 .../masterfiles-policy-framework/services.markdown | 0 .../standalone_self_upgrade.markdown | 0 .../masterfiles-policy-framework/update.markdown | 0 .../reference}/promise-types/_index.markdown | 0 .../reference}/promise-types/access.markdown | 0 .../reference}/promise-types/classes.markdown | 0 .../reference}/promise-types/commands.markdown | 0 .../reference}/promise-types/custom.markdown | 0 .../reference}/promise-types/databases.markdown | 0 .../reference}/promise-types/defaults.markdown | 0 .../reference}/promise-types/filelogic.png | Bin .../reference}/promise-types/files/_index.markdown | 0 .../promise-types/files/edit_line/_index.markdown | 0 .../files/edit_line/delete_lines.markdown | 0 .../files/edit_line/field_edits.markdown | 0 .../files/edit_line/insert_lines.markdown | 0 .../files/edit_line/replace_patterns.markdown | 0 .../promise-types/files/edit_xml/_index.markdown | 0 .../files/edit_xml/build_xpath.markdown | 0 .../files/edit_xml/delete_attribute.markdown | 0 .../files/edit_xml/delete_text.markdown | 0 .../files/edit_xml/delete_tree.markdown | 0 .../files/edit_xml/insert_text.markdown | 0 .../files/edit_xml/insert_tree.markdown | 0 .../files/edit_xml/set_attribute.markdown | 0 .../promise-types/files/edit_xml/set_text.markdown | 0 .../promise-types/guest_environments.markdown | 0 .../reference}/promise-types/measurements.markdown | 0 .../reference}/promise-types/meta.markdown | 0 .../reference}/promise-types/methods.markdown | 0 .../promise-types/packages-deprecated.markdown | 0 .../reference}/promise-types/packages.markdown | 0 .../reference}/promise-types/processes.markdown | 0 ...se-types-services-winservice-properties_name.png | Bin .../reference}/promise-types/reports.markdown | 0 .../reference}/promise-types/roles.markdown | 0 .../reference}/promise-types/services.markdown | 0 .../reference}/promise-types/storage.markdown | 0 .../reference}/promise-types/users.markdown | 0 .../reference}/promise-types/vars.markdown | 0 .../reference}/special-variables/_index.markdown | 0 .../special-variables/connection.markdown | 0 .../reference}/special-variables/const.markdown | 0 .../reference}/special-variables/def.markdown | 0 .../reference}/special-variables/edit.markdown | 0 .../reference}/special-variables/match.markdown | 0 .../reference}/special-variables/mon.markdown | 0 .../reference}/special-variables/sys.markdown | 0 .../reference}/special-variables/this.markdown | 0 .../release-notes}/_index.markdown | 0 .../release-notes}/known-issues.markdown | 0 .../release-notes}/legal-and-licenses.markdown | 0 .../release-notes}/supported-platforms.markdown | 0 .../release-notes}/whatsnew/_index.markdown | 0 .../release-notes}/whatsnew/changelog-core.markdown | 0 .../whatsnew/changelog-enterprise.markdown | 0 .../changelog-masterfiles-policy-framework.markdown | 0 {resources => content/resources}/_index.markdown | 0 .../resources}/additional-topics/BDMA-model.png | Bin .../resources}/additional-topics/STIGs.cf | 0 .../resources}/additional-topics/STIGs_readme.txt | 0 .../resources}/additional-topics/_index.markdown | 0 .../adopting-cfengine-mission-plan.png | Bin .../resources}/additional-topics/agility.markdown | 0 .../resources}/additional-topics/agility.png | Bin .../application-management.markdown | 0 .../additional-topics/authority-paradox.png | Bin .../additional-topics/bow-tie-delegation.png | Bin .../build-deploy-manage-audit.markdown | 0 .../cfengine-relationship-to-infrastructure.png | Bin .../additional-topics/change-management.markdown | 0 .../additional-topics/cloud-computing.markdown | 0 .../content-driven-policy.markdown | 0 .../resources}/additional-topics/convergence.png | Bin .../resources}/additional-topics/coordination.png | Bin .../resources}/additional-topics/demolish.png | Bin .../resources}/additional-topics/devops.markdown | 0 .../distributed-scheduling.markdown | 0 .../resources}/additional-topics/fed2.png | Bin .../resources}/additional-topics/fed3.png | Bin .../additional-topics/file-content.markdown | 0 .../file-integrity-monitoring.markdown.breaks_build | 0 .../additional-topics/hierarchies.markdown | 0 .../additional-topics/hierarchy-vs-team.png | Bin .../resources}/additional-topics/inherit.png | Bin .../resources}/additional-topics/iteration.markdown | 0 .../resources}/additional-topics/itil-cfengine.png | Bin .../resources}/additional-topics/itil.markdown | 0 .../resources}/additional-topics/km1.png | Bin .../resources}/additional-topics/km2.png | Bin .../resources}/additional-topics/km3.png | Bin .../resources}/additional-topics/km4.png | Bin .../resources}/additional-topics/km5.png | Bin .../resources}/additional-topics/km6.png | Bin .../resources}/additional-topics/km7.png | Bin .../resources}/additional-topics/km8.png | Bin .../resources}/additional-topics/km9.png | Bin .../knowledge-management.markdown.breaks_build | 0 .../menu-driven-configuration.markdown.breaks_build | 0 ...ission-critical-operations.markdown.breaks_build | 0 .../additional-topics/modularity.markdown | 0 .../monitoring.markdown.breaks_build | 0 .../network-organizational-structures.png | Bin .../additional-topics/open-nebula-architecture.png | Bin .../additional-topics/open-nebula.markdown | 0 .../additional-topics/orchestration.markdown | 0 .../additional-topics/overlapping-sets.png | Bin .../resources}/additional-topics/package-flow.png | Bin .../package-management.markdown.breaks_build | 0 .../policy-distribution-fanout.png | Bin .../reporting.markdown.breaks_build | 0 .../role-based-access-control.markdown.breaks_build | 0 .../rollback.markdown.breaks_build | 0 .../scale-and-scalability.markdown.breaks_build | 0 .../scheduleing-jobs.markdown.breaks_build | 0 .../additional-topics/scheduleing-patterns.png | Bin .../resources}/additional-topics/security.markdown | 0 .../additional-topics/single-points-of-failure.png | Bin .../resources}/additional-topics/stigs.markdown | 0 .../resources}/additional-topics/teamwork.markdown | 0 .../resources}/additional-topics/understanding.png | Bin .../virtualization.markdown.breaks_build | 0 .../windows-management.markdown.breaks_build | 0 .../resources}/best-practices.markdown | 0 .../resources}/external-resources.markdown | 0 .../resources}/faq/_index.markdown | 0 .../resources}/faq/agents-not-running.png | Bin .../resources}/faq/bootstrap-failed.markdown | 0 .../resources}/faq/debugging-slow-queries.markdown | 0 .../resources}/faq/enterprise-changes-ui.png | Bin .../resources}/faq/enterprise-license.markdown | 0 .../faq/enterprise-report-collection.markdown | 0 .../faq/enterprise-report-filtering.markdown | 0 .../resources}/faq/enterprise.markdown | 0 {resources => content/resources}/faq/fhs.markdown | 0 .../faq/filter-inventoried-list-items.png | Bin .../faq/find-public-key-for-host-sha.markdown | 0 .../faq/fix-trust-after-ip-change.markdown | 0 .../faq/fix-undefined-body-error.markdown | 0 .../resources}/faq/hosts-not-reporting.png | Bin .../faq/how-does-cfengine-work-agent-workflow.png | Bin .../faq/how-does-cfengine-work-process.png | Bin .../resources}/faq/integrate-custom-policy.markdown | 0 .../resources}/faq/inventoried-list-items.png | Bin .../resources}/faq/manual-execution.markdown | 0 .../resources}/faq/mustache-templating.markdown | 0 .../resources}/faq/output-email.markdown | 0 .../resources}/faq/show-classes-and-vars.markdown | 0 .../resources}/faq/tuning-postgresql.markdown | 0 .../faq/unable-to-log-in-mission-portal.markdown | 0 .../resources}/faq/uninstall-reinstall.markdown | 0 {resources => content/resources}/faq/users.markdown | 0 .../resources}/faq/variables.markdown | 0 .../faq/what-did-cfengine-change.markdown | 0 .../resources}/faq/what-is-promise-locking.markdown | 0 .../why-are-files-not-being-distributed.markdown | 0 .../faq/why-are-remote-agents-not-updating.markdown | 0 .../faq/why-knowledge-management.markdown | 0 .../web-ui}/Alerts.bottom.condition.type.png | Bin {web-ui => content/web-ui}/Alerts.bottom.hosts.png | Bin .../web-ui}/Alerts.bottom.notifications.png | Bin {web-ui => content/web-ui}/Alerts.new.png | Bin {web-ui => content/web-ui}/Alerts.top.condition.png | Bin {web-ui => content/web-ui}/Alerts.top.name.png | Bin {web-ui => content/web-ui}/Alerts.top.severity.png | Bin .../web-ui}/Authentication-settings.png | Bin {web-ui => content/web-ui}/Host-info-page.png | Bin .../Hosts-app-custom-tree-geographic-region.png | Bin {web-ui => content/web-ui}/Hosts-app-overview.png | Bin .../web-ui}/Mission-Portal-Monitoring-1.png | Bin .../Mission-portal-health-dignostics-header.png | Bin {web-ui => content/web-ui}/Settings-1.png | Bin {web-ui => content/web-ui}/Settings-2.png | Bin {web-ui => content/web-ui}/Settings-3.png | Bin {web-ui => content/web-ui}/Settings-4.png | Bin {web-ui => content/web-ui}/Settings-6.png | Bin {web-ui => content/web-ui}/Settings-7.png | Bin {web-ui => content/web-ui}/Settings-role.png | Bin {web-ui => content/web-ui}/Time-zone-modal.png | Bin {web-ui => content/web-ui}/User-profile.png | Bin {web-ui => content/web-ui}/_index.markdown | 0 {web-ui => content/web-ui}/add-new-user.png | Bin {web-ui => content/web-ui}/add_columns.png | Bin .../web-ui}/alerts-and-notifications.markdown | 0 {web-ui => content/web-ui}/clone-dashboard.png | Bin .../web-ui}/create-alert-custom-action-syslog.png | Bin .../web-ui}/custom-actions-for-alerts.markdown | 0 {web-ui => content/web-ui}/dashboard-event-log.png | Bin .../web-ui}/dashboard-widget-changes.png | Bin .../web-ui}/dashboard-widget-newly-bootstrapped.png | Bin .../web-ui}/debugging-mission-portal.markdown | 0 .../enterprise-reporting/Report-Builder-3.18.0.png | Bin .../enterprise-reporting/Reports-Inventory-1.png | Bin .../enterprise-reporting/Reports-Inventory-2.png | Bin .../enterprise-reporting/Reports-Inventory-3.png | Bin .../enterprise-reporting/Reports-Inventory-4.png | Bin .../enterprise-reporting/Reports-Inventory-5.png | Bin .../enterprise-reporting/Reports-Inventory-6.png | Bin .../web-ui}/enterprise-reporting/_index.markdown | 0 .../client-initiated-reporting.markdown | 0 .../reporting-architecture.markdown | 0 .../enterprise-reporting/reporting_ui.markdown | 0 .../sql-queries-enterprise-api.markdown | 0 .../web-ui}/federated-reporting.markdown | 0 {web-ui => content/web-ui}/fr-connect-a-hub.png | Bin {web-ui => content/web-ui}/fr-disabled-feeder.png | Bin {web-ui => content/web-ui}/fr-edit-hub-disable.png | Bin {web-ui => content/web-ui}/fr-feeder-added.png | Bin .../web-ui}/fr-hub-management-default.png | Bin .../web-ui}/fr-hub-management-enabled.png | Bin .../web-ui}/fr-superhub-enabled-no-feeders.png | Bin {web-ui => content/web-ui}/health.markdown | 0 {web-ui => content/web-ui}/host-action-buttons.png | Bin .../web-ui}/host-info-collect-reports.png | Bin .../web-ui}/host-info-delete-host.png | Bin {web-ui => content/web-ui}/host-info-get-url.png | Bin {web-ui => content/web-ui}/host-info-run-agent.png | Bin .../web-ui}/host-specific-data-classes.png | Bin .../web-ui}/host-specific-data-variables.png | Bin {web-ui => content/web-ui}/hosts.markdown | 0 .../Mission-portal-remove-host.png | Bin .../web-ui}/hub_administration/_index.markdown | 0 .../hub_administration/adjusting-schedules.markdown | 0 .../hub_administration/backup-and-restore.markdown | 0 .../custom-https-certificate.markdown | 0 .../custom-ldap-port-settings.png | Bin .../hub_administration/custom-ldap-port.markdown | 0 .../custom-ldaps-certificate.markdown | 0 .../decommissioning-hosts.markdown | 0 .../hub_administration/enable-plain-http.markdown | 0 .../web-ui}/hub_administration/extended-menu.png | Bin .../extended-query-builder-report.png | Bin .../hub_administration/extended-query-builder.png | Bin .../extending-mission-portal.markdown | 0 .../extending-query-builder.markdown | 0 .../hub_administration/lookup-license-info.markdown | 0 .../hub_administration/policy-deployment.markdown | 0 .../public-key-distribution.markdown | 0 .../regenerate-self-signed-cert.markdown | 0 .../web-ui}/hub_administration/reinstall.markdown | 0 .../hub_administration/reset-admin-creds.markdown | 0 .../web-ui}/hub_administration/settings-menu.png | Bin .../web-ui}/hub_administration/settings-vcs.png | Bin {web-ui => content/web-ui}/inventory_filter.gif | Bin {web-ui => content/web-ui}/license-info.png | Bin .../web-ui}/license-status-report.png | Bin {web-ui => content/web-ui}/license.markdown | 0 {web-ui => content/web-ui}/mail-settings.png | Bin {web-ui => content/web-ui}/measurements.markdown | 0 .../web-ui}/mp-settings-custom-notification-add.png | Bin .../web-ui}/mp-settings-custom-notification.png | Bin {web-ui => content/web-ui}/pause_alerts.gif | Bin .../web-ui}/role_based_access_control_settings.png | Bin {web-ui => content/web-ui}/roles-list.png | Bin .../web-ui}/settings-export-import-3.18.0.png | Bin {web-ui => content/web-ui}/settings.markdown | 0 {web-ui => content/web-ui}/web-ui-event-log.png | Bin ...events-api-rbac-get-event-list-event-checked.png | Bin ...ion-portal-api-view-whole-system-events-rbac.png | Bin {web-ui => content/web-ui}/welcome_2nd_screen.png | Bin {web-ui => content/web-ui}/widget_1.gif | Bin 924 files changed, 0 insertions(+), 0 deletions(-) rename _index.markdown => content/_index.markdown (100%) rename {api => content/api}/_index.markdown (100%) rename {api => content/api}/enterprise-api-architecture-overview.png (100%) rename {api => content/api}/enterprise-api-examples/_index.markdown (100%) rename {api => content/api}/enterprise-api-examples/browsing-host-information.markdown (100%) rename {api => content/api}/enterprise-api-examples/changes-api-usage.markdown (100%) rename {api => content/api}/enterprise-api-examples/checking-status.markdown (100%) rename {api => content/api}/enterprise-api-examples/managing-settings.markdown (100%) rename {api => content/api}/enterprise-api-examples/managing-users-and-roles.markdown (100%) rename {api => content/api}/enterprise-api-examples/sql-queries.markdown (100%) rename {api => content/api}/enterprise-api-ref/_index.markdown (100%) rename {api => content/api}/enterprise-api-ref/actions-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/build-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/changes.markdown (100%) rename {api => content/api}/enterprise-api-ref/cmdb-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/export-import-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/export-import-compliance-report-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/federated-reporting-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/file-changes.markdown (100%) rename {api => content/api}/enterprise-api-ref/health-diagnostic.markdown (100%) rename {api => content/api}/enterprise-api-ref/host.markdown (100%) rename {api => content/api}/enterprise-api-ref/inventory.markdown (100%) rename {api => content/api}/enterprise-api-ref/ldap-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/personal-groups.markdown (100%) rename {api => content/api}/enterprise-api-ref/query.markdown (100%) rename {api => content/api}/enterprise-api-ref/shared-groups.markdown (100%) rename {api => content/api}/enterprise-api-ref/sql-schema/_index.markdown (100%) rename {api => content/api}/enterprise-api-ref/sql-schema/cfdb.markdown (100%) rename {api => content/api}/enterprise-api-ref/sql-schema/cfmp.markdown (100%) rename {api => content/api}/enterprise-api-ref/sql-schema/cfsettings.markdown (100%) rename {api => content/api}/enterprise-api-ref/ssh-keys-api.markdown (100%) rename {api => content/api}/enterprise-api-ref/status-settings.markdown (100%) rename {api => content/api}/enterprise-api-ref/two-factor-authentication.markdown (100%) rename {api => content/api}/enterprise-api-ref/users-rbac.markdown (100%) rename {api => content/api}/enterprise-api-ref/vcs-settings.markdown (100%) rename {api => content/api}/enterprise-api-ref/web-rbac.markdown (100%) rename {enterprise-cfengine-guide => content/enterprise-cfengine-guide}/_index.markdown (100%) rename {enterprise-cfengine-guide => content/enterprise-cfengine-guide}/install-get-started.markdown (100%) rename {examples => content/examples}/_index.markdown (100%) rename {examples => content/examples}/example-snippets/_index.markdown (100%) rename {examples => content/examples}/example-snippets/aborting_execution.cf (100%) rename {examples => content/examples}/example-snippets/acl_file_example.cf (100%) rename {examples => content/examples}/example-snippets/acl_generic_example.cf (100%) rename {examples => content/examples}/example-snippets/acl_secret_example.cf (100%) rename {examples => content/examples}/example-snippets/active_directory.markdown (100%) rename {examples => content/examples}/example-snippets/active_directory_example.cf (100%) rename {examples => content/examples}/example-snippets/active_directory_show_users_example.cf (100%) rename {examples => content/examples}/example-snippets/active_list_users_directory_example.cf (100%) rename {examples => content/examples}/example-snippets/add_lines_to_a_file.cf (100%) rename {examples => content/examples}/example-snippets/add_lines_to_a_file_1.cf (100%) rename {examples => content/examples}/example-snippets/add_software_packages_to_the_system.cf (100%) rename {examples => content/examples}/example-snippets/add_users.cf (100%) rename {examples => content/examples}/example-snippets/add_users_1.cf (100%) rename {examples => content/examples}/example-snippets/add_users_to_passwd_and_group.cf (100%) rename {examples => content/examples}/example-snippets/add_variable_definitions_to_a_file.cf (100%) rename {examples => content/examples}/example-snippets/add_variable_definitions_to_a_file_1.cf (100%) rename {examples => content/examples}/example-snippets/all_hosts_the_same.cf (100%) rename {examples => content/examples}/example-snippets/application_baseline.cf (100%) rename {examples => content/examples}/example-snippets/array_example.cf (100%) rename {examples => content/examples}/example-snippets/back_references_in_filenames.cf (100%) rename {examples => content/examples}/example-snippets/basic-file-directory.markdown (100%) rename {examples => content/examples}/example-snippets/basic_example.cf (100%) rename {examples => content/examples}/example-snippets/bsd_flags.cf (100%) rename {examples => content/examples}/example-snippets/cfengine-administration.markdown (100%) rename {examples => content/examples}/example-snippets/change_detection.cf (100%) rename {examples => content/examples}/example-snippets/change_directory_for_command.cf (100%) rename {examples => content/examples}/example-snippets/check_file_or_directory_permissions.cf (100%) rename {examples => content/examples}/example-snippets/check_filesystem_space.cf (100%) rename {examples => content/examples}/example-snippets/class_match_example.cf (100%) rename {examples => content/examples}/example-snippets/client-server_example.cf (100%) rename {examples => content/examples}/example-snippets/command_or_script_execution.cf (100%) rename {examples => content/examples}/example-snippets/commands-scripts-execution.markdown (100%) rename {examples => content/examples}/example-snippets/commands_example.cf (100%) rename {examples => content/examples}/example-snippets/commenting_lines_in_a_file.cf (100%) rename {examples => content/examples}/example-snippets/copy_and_flatten_directory.cf (100%) rename {examples => content/examples}/example-snippets/copy_directory_trees.cf (100%) rename {examples => content/examples}/example-snippets/copy_files.cf (100%) rename {examples => content/examples}/example-snippets/copy_single_files.cf (100%) rename {examples => content/examples}/example-snippets/copy_then_edit_a_file_convergently.cf (100%) rename {examples => content/examples}/example-snippets/create_files_and_directories.cf (100%) rename {examples => content/examples}/example-snippets/custom_editing.cf (100%) rename {examples => content/examples}/example-snippets/custom_editing_1.cf (100%) rename {examples => content/examples}/example-snippets/database.markdown (100%) rename {examples => content/examples}/example-snippets/database_creation.cf (100%) rename {examples => content/examples}/example-snippets/deleting_lines_exception.cf (100%) rename {examples => content/examples}/example-snippets/deleting_lines_from_a_file.cf (100%) rename {examples => content/examples}/example-snippets/disabling_and_rotating_files.cf (100%) rename {examples => content/examples}/example-snippets/distribute_root_passwords.cf (100%) rename {examples => content/examples}/example-snippets/distribute_ssh_keys.cf (100%) rename {examples => content/examples}/example-snippets/editing_files.cf (100%) rename {examples => content/examples}/example-snippets/editing_password_or_group_files.cf (100%) rename {examples => content/examples}/example-snippets/editing_password_or_group_files_custom.cf (100%) rename {examples => content/examples}/example-snippets/editing_tabular_files.cf (100%) rename {examples => content/examples}/example-snippets/ensure_not_running.cf (100%) rename {examples => content/examples}/example-snippets/ensure_running.cf (100%) rename {examples => content/examples}/example-snippets/ensure_running_1.cf (100%) rename {examples => content/examples}/example-snippets/environment_variables.cf (100%) rename {examples => content/examples}/example-snippets/environments_(virtual).cf (100%) rename {examples => content/examples}/example-snippets/execresult_example.cf (100%) rename {examples => content/examples}/example-snippets/file-template.markdown (100%) rename {examples => content/examples}/example-snippets/file_permissions.markdown (100%) rename {examples => content/examples}/example-snippets/find_mac_address.cf (100%) rename {examples => content/examples}/example-snippets/garbage_collection.cf (100%) rename {examples => content/examples}/example-snippets/general.markdown (100%) rename {examples => content/examples}/example-snippets/get_a_list_of_users.cf (100%) rename {examples => content/examples}/example-snippets/global_classes.cf (100%) rename {examples => content/examples}/example-snippets/hashing_for_change_detection_(tripwire).cf (100%) rename {examples => content/examples}/example-snippets/hello_world.cf (100%) rename {examples => content/examples}/example-snippets/inserting_lines_in_a_file.cf (100%) rename {examples => content/examples}/example-snippets/integrating_the_example_into_your_main_policy.cf (100%) rename {examples => content/examples}/example-snippets/kill_process.cf (100%) rename {examples => content/examples}/example-snippets/laptop_support_configuration.cf (100%) rename {examples => content/examples}/example-snippets/ldap_interactions.cf (100%) rename {examples => content/examples}/example-snippets/linking_files.cf (100%) rename {examples => content/examples}/example-snippets/listing_files-pattern_in_a_directory.cf (100%) rename {examples => content/examples}/example-snippets/locate_and_transform_files.cf (100%) rename {examples => content/examples}/example-snippets/log_rotation.cf (100%) rename {examples => content/examples}/example-snippets/logging.cf (100%) rename {examples => content/examples}/example-snippets/macro_template.cf (100%) rename {examples => content/examples}/example-snippets/macro_template_1.cf (100%) rename {examples => content/examples}/example-snippets/measurements.cf (100%) rename {examples => content/examples}/example-snippets/method_validation.cf (100%) rename {examples => content/examples}/example-snippets/methods.cf (100%) rename {examples => content/examples}/example-snippets/mount_a_filesystem.cf (100%) rename {examples => content/examples}/example-snippets/mount_nfs_filesystem.cf (100%) rename {examples => content/examples}/example-snippets/network.markdown (100%) rename {examples => content/examples}/example-snippets/ordering_promises.cf (100%) rename {examples => content/examples}/example-snippets/packages_examples_solaris.cf (100%) rename {examples => content/examples}/example-snippets/postfix_mail_configuration.cf (100%) rename {examples => content/examples}/example-snippets/process_management.cf (100%) rename {examples => content/examples}/example-snippets/promise-patterns/_index.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_aborting_execution.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_change_detection.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_copy_single_files.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_create_filedir.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_diskfree.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_edit_motd.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_edit_name_resolution.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_enable_service.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_find_mac_addr.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_install_package.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_mount_nfs.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_ntp.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_process_kill.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_process_restart.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_ssh_keys.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_sudoers.markdown (100%) rename {examples => content/examples}/example-snippets/promise-patterns/example_updating_from_central_hub.markdown (100%) rename {examples => content/examples}/example-snippets/prune_processes.cf (100%) rename {examples => content/examples}/example-snippets/read_from_a_tcp_socket.cf (100%) rename {examples => content/examples}/example-snippets/resolver_management.cf (100%) rename {examples => content/examples}/example-snippets/restart_process.cf (100%) rename {examples => content/examples}/example-snippets/restart_process_1.cf (100%) rename {examples => content/examples}/example-snippets/search_and_replace_text.cf (100%) rename {examples => content/examples}/example-snippets/selecting_a_region_in_a_file.cf (100%) rename {examples => content/examples}/example-snippets/service_management_(windows).cf (100%) rename {examples => content/examples}/example-snippets/set_up_a_pxe_boot_server.cf (100%) rename {examples => content/examples}/example-snippets/set_up_a_web_server.cf (100%) rename {examples => content/examples}/example-snippets/set_up_hpc_clusters.cf (100%) rename {examples => content/examples}/example-snippets/set_up_name_resolution.cf (100%) rename {examples => content/examples}/example-snippets/set_up_name_resolution_1.cf (100%) rename {examples => content/examples}/example-snippets/set_up_sudo.cf (100%) rename {examples => content/examples}/example-snippets/simple_template.cf (100%) rename {examples => content/examples}/example-snippets/simple_versioned_template.cf (100%) rename {examples => content/examples}/example-snippets/software-adminstration.markdown (100%) rename {examples => content/examples}/example-snippets/software_and_patch_installation.cf (100%) rename {examples => content/examples}/example-snippets/software_and_patch_installation_1.cf (100%) rename {examples => content/examples}/example-snippets/software_and_patch_installation_1_2.cf (100%) rename {examples => content/examples}/example-snippets/software_and_patch_installation_1_2_3.cf (100%) rename {examples => content/examples}/example-snippets/software_distribution.cf (100%) rename {examples => content/examples}/example-snippets/system-administration.markdown (100%) rename {examples => content/examples}/example-snippets/system-file.markdown (100%) rename {examples => content/examples}/example-snippets/system-information.markdown (100%) rename {examples => content/examples}/example-snippets/system-security.markdown (100%) rename {examples => content/examples}/example-snippets/templating.cf (100%) rename {examples => content/examples}/example-snippets/templating_1.cf (100%) rename {examples => content/examples}/example-snippets/tidying_garbage_files.cf (100%) rename {examples => content/examples}/example-snippets/timing-counting-measuring.markdown (100%) rename {examples => content/examples}/example-snippets/trigger_classes.cf (100%) rename {examples => content/examples}/example-snippets/unit_registry.cf.cf (100%) rename {examples => content/examples}/example-snippets/unit_registry_cache.cf.cf (100%) rename {examples => content/examples}/example-snippets/unmount_nfs_filesystem.cf (100%) rename {examples => content/examples}/example-snippets/updating_from_a_central_hub.cf (100%) rename {examples => content/examples}/example-snippets/user-management.markdown (100%) rename {examples => content/examples}/example-snippets/variation_in_hosts.cf (100%) rename {examples => content/examples}/example-snippets/warn_if_matching_line_in_file.cf (100%) rename {examples => content/examples}/example-snippets/web_server_modules.cf (100%) rename {examples => content/examples}/example-snippets/windows-registry.markdown (100%) rename {examples => content/examples}/example-snippets/windows_registry.cf (100%) rename {examples => content/examples}/tutorials/Activated-sketch.png (100%) rename {examples => content/examples}/tutorials/Report-builder-results.png (100%) rename {examples => content/examples}/tutorials/Report-builder.png (100%) rename {examples => content/examples}/tutorials/Report.png (100%) rename {examples => content/examples}/tutorials/Sketch.png (100%) rename {examples => content/examples}/tutorials/_index.markdown (100%) rename {examples => content/examples}/tutorials/add-new-tracker.png (100%) rename {examples => content/examples}/tutorials/create_dashboard_alert1.png (100%) rename {examples => content/examples}/tutorials/create_dashboard_alert2.png (100%) rename {examples => content/examples}/tutorials/create_dashboard_alert3.png (100%) rename {examples => content/examples}/tutorials/create_dashboard_alert4.png (100%) rename {examples => content/examples}/tutorials/create_dashboard_alert5.png (100%) rename {examples => content/examples}/tutorials/custom_inventory.markdown (100%) rename {examples => content/examples}/tutorials/dashboard-alerts.markdown (100%) rename {examples => content/examples}/tutorials/distribute-files-from-a-central-location.markdown (100%) rename {examples => content/examples}/tutorials/file_compare_test.cf (100%) rename {examples => content/examples}/tutorials/file_comparison.markdown (100%) rename {examples => content/examples}/tutorials/files-tutorial.markdown (100%) rename {examples => content/examples}/tutorials/high-availability/_index.markdown (100%) rename {examples => content/examples}/tutorials/high-availability/ha_3.6.png (100%) rename {examples => content/examples}/tutorials/high-availability/ha_degraded_indicator.png (100%) rename {examples => content/examples}/tutorials/high-availability/ha_health_OK.png (100%) rename {examples => content/examples}/tutorials/high-availability/ha_inventory.png (100%) rename {examples => content/examples}/tutorials/high-availability/ha_network_setup.png (100%) rename {examples => content/examples}/tutorials/high-availability/installation-guide.markdown (100%) rename {examples => content/examples}/tutorials/hosts-add-new-tracker.png (100%) rename {examples => content/examples}/tutorials/installing-cfengine-enterprise-agent.markdown (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pager-duty.markdown (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_CFEngine-Service-Setup-800x512.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_Services_-_PagerDuty.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_bundlesequence-800x357.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_inputs-800x179.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_new_alert1.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_new_alert_bundle_repair.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_new_alert_details.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_notification.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_pagerduty_new_alert.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-pagerduty_type_policy.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems.markdown (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems_alert_parameters_test.zip (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems_cfengine_custom_action_jira.py.zip (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems_custom-action-alert-association-jira.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems_custom-action-script-upload-jira.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems_policy-compliance-add-alert.png (100%) rename {examples => content/examples}/tutorials/integrating-alerts-with-ticketing-systems_web-service-condition.png (100%) rename {examples => content/examples}/tutorials/integrating-with-sumo-logic.markdown (100%) rename {examples => content/examples}/tutorials/integrating-with-sumo-logic_sumo.png (100%) rename {examples => content/examples}/tutorials/json-yaml-support-in-cfengine.markdown (100%) rename {examples => content/examples}/tutorials/manage-local-users.markdown (100%) rename {examples => content/examples}/tutorials/manage-ntp.markdown (100%) rename {examples => content/examples}/tutorials/manage-packages.markdown (100%) rename {examples => content/examples}/tutorials/manage-processes-and-services.markdown (100%) rename {examples => content/examples}/tutorials/masterfiles_policy_framework_upgrade.markdown (100%) rename {examples => content/examples}/tutorials/render-files-with-mustache-templates.markdown (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_001.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_002.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_003.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_004.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_005.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_006.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_007.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_008.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_009.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_010.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_011.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_012.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_013.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_014.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_015.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_016.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_017.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_018.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_019.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_020.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_021.jpg (100%) rename {examples => content/examples}/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_022.jpg (100%) rename {examples => content/examples}/tutorials/reporting/_index.markdown (100%) rename {examples => content/examples}/tutorials/reporting/command-line-reports.markdown (100%) rename {examples => content/examples}/tutorials/reporting/monitoring-reporting.markdown (100%) rename {examples => content/examples}/tutorials/tags.markdown (100%) rename {examples => content/examples}/tutorials/tutorials_custom_inventory_attribute.png (100%) rename {examples => content/examples}/tutorials/tutorials_custom_inventory_report.png (100%) rename {examples => content/examples}/tutorials/write-cfengine-policy.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/_index.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/bundles-best-practices.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/controlling-frequency.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/editors.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/external_data.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-atom.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-0.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-1.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-2.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-3.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-emacs.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-kate.jpg (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-spacemacs.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-sublime-text.jpg (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-vim.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-visual-studio-code.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/policy-style.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown (100%) rename {examples => content/examples}/tutorials/writing-and-serving-policy/testing-policies.markdown (100%) rename {getting-started => content/getting-started}/_index.markdown (100%) rename {getting-started => content/getting-started}/action-buttons.png (100%) rename {getting-started => content/getting-started}/compliance-report.png (100%) rename {getting-started => content/getting-started}/developing-modules.markdown (100%) rename {getting-started => content/getting-started}/digital-ocean.png (100%) rename {getting-started => content/getting-started}/host-info.png (100%) rename {getting-started => content/getting-started}/host-specific-data-with-suggestion.png (100%) rename {getting-started => content/getting-started}/hugo-commit.png (100%) rename {getting-started => content/getting-started}/installation/_index.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/_index.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/common_next_steps.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-community.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-coreos.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-enterprise-free-aws-rhel.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-enterprise-free.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-enterprise-generic-tarball.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-enterprise-vagrant.markdown (100%) rename {getting-started => content/getting-started}/installation/general-installation/installation-enterprise.markdown (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-1.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-10.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-11.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-2.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-3.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-4.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-5.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-6.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-7.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-8.png (100%) rename {getting-started => content/getting-started}/installation/img/Installing-CFE-on-AWS-9.png (100%) rename {getting-started => content/getting-started}/installation/installation-overview.markdown (100%) rename {getting-started => content/getting-started}/installation/local-virtual-machine.markdown (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/_index.markdown (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/putty-key-generator-window.png (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/putty-quick-start-guide.markdown (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/puttygen-interface.png (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/puttygen-load-private-key-window.png (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/verify-signatures.markdown (100%) rename {getting-started => content/getting-started}/installation/pre-installation-checklist/vi-quick-start-guide.markdown (100%) rename {getting-started => content/getting-started}/installation/secure-bootstrap.markdown (100%) rename {getting-started => content/getting-started}/installation/upgrading.markdown (100%) rename {getting-started => content/getting-started}/installation/version-control.markdown (100%) rename {getting-started => content/getting-started}/inventory-reports.gif (100%) rename {getting-started => content/getting-started}/inventory-section.png (100%) rename {getting-started => content/getting-started}/inventory-sudoers.gif (100%) rename {getting-started => content/getting-started}/machines.png (100%) rename {getting-started => content/getting-started}/modules-from-cfengine-build.markdown (100%) rename {getting-started => content/getting-started}/mp-login.png (100%) rename {getting-started => content/getting-started}/os-is-vendor-supported.gif (100%) rename {getting-started => content/getting-started}/policy-analyzer.png (100%) rename {getting-started => content/getting-started}/reporting-and-web-ui.markdown (100%) rename {getting-started => content/getting-started}/workflow.png (100%) rename {getting-started => content/getting-started}/writing-policy.markdown (100%) rename {guide => content/guide}/CFEngine-workflow-agents-and-users.png (100%) rename {guide => content/guide}/DCsketchworkflow.png (100%) rename {guide => content/guide}/_index.markdown (100%) rename {guide => content/guide}/components-overview.graffle (100%) rename {guide => content/guide}/components-overview.png (100%) rename {guide => content/guide}/design-center/Activated-sketch-copy.png (100%) rename {guide => content/guide}/design-center/add-new-tracker-copy.png (100%) rename {guide => content/guide}/learn_CFEngine-process-in-1-2-3_blocks_with_arrows.png (100%) rename {guide => content/guide}/policy-decision-flow.png (100%) rename {overview => content/overview}/_index.markdown (100%) rename {overview => content/overview}/client-server-communication.markdown (100%) rename {overview => content/overview}/directory-structure.markdown (100%) rename {overview => content/overview}/glossary.markdown (100%) rename {overview => content/overview}/how-cfengine-works.markdown (100%) rename {overview => content/overview}/what-is-cfengine-and-why.markdown (100%) rename {reference => content/reference}/_index.markdown (100%) rename {reference => content/reference}/all-types.markdown (100%) rename {reference => content/reference}/common-attributes-include.markdown (100%) rename {reference => content/reference}/common-body-attributes-include.markdown (100%) rename {reference => content/reference}/components/_index.markdown (100%) rename {reference => content/reference}/components/cf-agent.markdown (100%) rename {reference => content/reference}/components/cf-check.markdown (100%) rename {reference => content/reference}/components/cf-execd.markdown (100%) rename {reference => content/reference}/components/cf-hub.markdown (100%) rename {reference => content/reference}/components/cf-key.markdown (100%) rename {reference => content/reference}/components/cf-monitord.markdown (100%) rename {reference => content/reference}/components/cf-net.markdown (100%) rename {reference => content/reference}/components/cf-promises.markdown (100%) rename {reference => content/reference}/components/cf-reactor.markdown (100%) rename {reference => content/reference}/components/cf-runagent.markdown (100%) rename {reference => content/reference}/components/cf-secret.markdown (100%) rename {reference => content/reference}/components/cf-serverd.markdown (100%) rename {reference => content/reference}/components/cf-support.markdown (100%) rename {reference => content/reference}/components/file_control_promises.markdown (100%) rename {reference => content/reference}/functions/TEMPLATE (100%) rename {reference => content/reference}/functions/_index.markdown (100%) rename {reference => content/reference}/functions/accessedbefore.markdown (100%) rename {reference => content/reference}/functions/accumulated.markdown (100%) rename {reference => content/reference}/functions/ago.markdown (100%) rename {reference => content/reference}/functions/and.markdown (100%) rename {reference => content/reference}/functions/basename.markdown (100%) rename {reference => content/reference}/functions/bundlesmatching.markdown (100%) rename {reference => content/reference}/functions/bundlestate.markdown (100%) rename {reference => content/reference}/functions/callstack_callers.markdown (100%) rename {reference => content/reference}/functions/callstack_promisers.markdown (100%) rename {reference => content/reference}/functions/canonify.markdown (100%) rename {reference => content/reference}/functions/canonifyuniquely.markdown (100%) rename {reference => content/reference}/functions/cf_version_after.markdown (100%) rename {reference => content/reference}/functions/cf_version_at.markdown (100%) rename {reference => content/reference}/functions/cf_version_before.markdown (100%) rename {reference => content/reference}/functions/cf_version_between.markdown (100%) rename {reference => content/reference}/functions/cf_version_maximum.markdown (100%) rename {reference => content/reference}/functions/cf_version_minimum.markdown (100%) rename {reference => content/reference}/functions/changedbefore.markdown (100%) rename {reference => content/reference}/functions/classesmatching.markdown (100%) rename {reference => content/reference}/functions/classfiltercsv.markdown (100%) rename {reference => content/reference}/functions/classify.markdown (100%) rename {reference => content/reference}/functions/classmatch.markdown (100%) rename {reference => content/reference}/functions/concat.markdown (100%) rename {reference => content/reference}/functions/countclassesmatching.markdown (100%) rename {reference => content/reference}/functions/countlinesmatching.markdown (100%) rename {reference => content/reference}/functions/data_expand.markdown (100%) rename {reference => content/reference}/functions/data_readstringarray.markdown (100%) rename {reference => content/reference}/functions/data_readstringarrayidx.markdown (100%) rename {reference => content/reference}/functions/data_regextract.markdown (100%) rename {reference => content/reference}/functions/data_sysctlvalues.markdown (100%) rename {reference => content/reference}/functions/datastate.markdown (100%) rename {reference => content/reference}/functions/difference.markdown (100%) rename {reference => content/reference}/functions/dirname.markdown (100%) rename {reference => content/reference}/functions/diskfree.markdown (100%) rename {reference => content/reference}/functions/escape.markdown (100%) rename {reference => content/reference}/functions/eval.markdown (100%) rename {reference => content/reference}/functions/every.markdown (100%) rename {reference => content/reference}/functions/execresult.markdown (100%) rename {reference => content/reference}/functions/execresult_as_data.markdown (100%) rename {reference => content/reference}/functions/expandrange.markdown (100%) rename {reference => content/reference}/functions/file_hash.markdown (100%) rename {reference => content/reference}/functions/fileexists.markdown (100%) rename {reference => content/reference}/functions/filesexist.markdown (100%) rename {reference => content/reference}/functions/filesize.markdown (100%) rename {reference => content/reference}/functions/filestat.markdown (100%) rename {reference => content/reference}/functions/filter.markdown (100%) rename {reference => content/reference}/functions/findfiles.markdown (100%) rename {reference => content/reference}/functions/findfiles_up.markdown (100%) rename {reference => content/reference}/functions/findprocesses.markdown (100%) rename {reference => content/reference}/functions/format.markdown (100%) rename {reference => content/reference}/functions/getclassmetatags.markdown (100%) rename {reference => content/reference}/functions/getenv.markdown (100%) rename {reference => content/reference}/functions/getfields.markdown (100%) rename {reference => content/reference}/functions/getgid.markdown (100%) rename {reference => content/reference}/functions/getindices.markdown (100%) rename {reference => content/reference}/functions/getuid.markdown (100%) rename {reference => content/reference}/functions/getuserinfo.markdown (100%) rename {reference => content/reference}/functions/getusers.markdown (100%) rename {reference => content/reference}/functions/getvalues.markdown (100%) rename {reference => content/reference}/functions/getvariablemetatags.markdown (100%) rename {reference => content/reference}/functions/grep.markdown (100%) rename {reference => content/reference}/functions/groupexists.markdown (100%) rename {reference => content/reference}/functions/hash.markdown (100%) rename {reference => content/reference}/functions/hash_to_int.markdown (100%) rename {reference => content/reference}/functions/hashmatch.markdown (100%) rename {reference => content/reference}/functions/host2ip.markdown (100%) rename {reference => content/reference}/functions/hostinnetgroup.markdown (100%) rename {reference => content/reference}/functions/hostrange.markdown (100%) rename {reference => content/reference}/functions/hostsseen.markdown (100%) rename {reference => content/reference}/functions/hostswithclass.markdown (100%) rename {reference => content/reference}/functions/hubknowledge.markdown (100%) rename {reference => content/reference}/functions/ifelse.markdown (100%) rename {reference => content/reference}/functions/int.markdown (100%) rename {reference => content/reference}/functions/intersection.markdown (100%) rename {reference => content/reference}/functions/ip2host.markdown (100%) rename {reference => content/reference}/functions/iprange.markdown (100%) rename {reference => content/reference}/functions/irange.markdown (100%) rename {reference => content/reference}/functions/isdir.markdown (100%) rename {reference => content/reference}/functions/isexecutable.markdown (100%) rename {reference => content/reference}/functions/isgreaterthan.markdown (100%) rename {reference => content/reference}/functions/isipinsubnet.markdown (100%) rename {reference => content/reference}/functions/islessthan.markdown (100%) rename {reference => content/reference}/functions/islink.markdown (100%) rename {reference => content/reference}/functions/isnewerthan.markdown (100%) rename {reference => content/reference}/functions/isplain.markdown (100%) rename {reference => content/reference}/functions/isreadable.markdown (100%) rename {reference => content/reference}/functions/isvariable.markdown (100%) rename {reference => content/reference}/functions/join.markdown (100%) rename {reference => content/reference}/functions/lastnode.markdown (100%) rename {reference => content/reference}/functions/laterthan.markdown (100%) rename {reference => content/reference}/functions/ldaparray.markdown (100%) rename {reference => content/reference}/functions/ldaplist.markdown (100%) rename {reference => content/reference}/functions/ldapvalue.markdown (100%) rename {reference => content/reference}/functions/length.markdown (100%) rename {reference => content/reference}/functions/lsdir.markdown (100%) rename {reference => content/reference}/functions/makerule.markdown (100%) rename {reference => content/reference}/functions/maparray.markdown (100%) rename {reference => content/reference}/functions/mapdata.markdown (100%) rename {reference => content/reference}/functions/maplist.markdown (100%) rename {reference => content/reference}/functions/max.markdown (100%) rename {reference => content/reference}/functions/mean.markdown (100%) rename {reference => content/reference}/functions/mergedata.markdown (100%) rename {reference => content/reference}/functions/min.markdown (100%) rename {reference => content/reference}/functions/network_connections.markdown (100%) rename {reference => content/reference}/functions/none.markdown (100%) rename {reference => content/reference}/functions/not.markdown (100%) rename {reference => content/reference}/functions/now.markdown (100%) rename {reference => content/reference}/functions/nth.markdown (100%) rename {reference => content/reference}/functions/on.markdown (100%) rename {reference => content/reference}/functions/or.markdown (100%) rename {reference => content/reference}/functions/packagesmatching.markdown (100%) rename {reference => content/reference}/functions/packageupdatesmatching.markdown (100%) rename {reference => content/reference}/functions/parseintarray.markdown (100%) rename {reference => content/reference}/functions/parsejson.markdown (100%) rename {reference => content/reference}/functions/parserealarray.markdown (100%) rename {reference => content/reference}/functions/parsestringarray.markdown (100%) rename {reference => content/reference}/functions/parsestringarrayidx.markdown (100%) rename {reference => content/reference}/functions/parseyaml.markdown (100%) rename {reference => content/reference}/functions/peerleader.markdown (100%) rename {reference => content/reference}/functions/peerleaders.markdown (100%) rename {reference => content/reference}/functions/peers.markdown (100%) rename {reference => content/reference}/functions/processexists.markdown (100%) rename {reference => content/reference}/functions/product.markdown (100%) rename {reference => content/reference}/functions/randomint.markdown (100%) rename {reference => content/reference}/functions/read_module_protocol.markdown (100%) rename {reference => content/reference}/functions/readcsv.markdown (100%) rename {reference => content/reference}/functions/readdata.markdown (100%) rename {reference => content/reference}/functions/readenvfile.markdown (100%) rename {reference => content/reference}/functions/readfile.markdown (100%) rename {reference => content/reference}/functions/readintarray.markdown (100%) rename {reference => content/reference}/functions/readintlist.markdown (100%) rename {reference => content/reference}/functions/readjson.markdown (100%) rename {reference => content/reference}/functions/readrealarray.markdown (100%) rename {reference => content/reference}/functions/readreallist.markdown (100%) rename {reference => content/reference}/functions/readstringarray.markdown (100%) rename {reference => content/reference}/functions/readstringarrayidx.markdown (100%) rename {reference => content/reference}/functions/readstringlist.markdown (100%) rename {reference => content/reference}/functions/readtcp.markdown (100%) rename {reference => content/reference}/functions/readyaml.markdown (100%) rename {reference => content/reference}/functions/regarray.markdown (100%) rename {reference => content/reference}/functions/regcmp.markdown (100%) rename {reference => content/reference}/functions/regex_replace.markdown (100%) rename {reference => content/reference}/functions/regextract.markdown (100%) rename {reference => content/reference}/functions/registryvalue.markdown (100%) rename {reference => content/reference}/functions/regldap.markdown (100%) rename {reference => content/reference}/functions/regline.markdown (100%) rename {reference => content/reference}/functions/reglist.markdown (100%) rename {reference => content/reference}/functions/remoteclassesmatching.markdown (100%) rename {reference => content/reference}/functions/remotescalar.markdown (100%) rename {reference => content/reference}/functions/returnszero.markdown (100%) rename {reference => content/reference}/functions/reverse.markdown (100%) rename {reference => content/reference}/functions/rrange.markdown (100%) rename {reference => content/reference}/functions/selectservers.markdown (100%) rename {reference => content/reference}/functions/shuffle.markdown (100%) rename {reference => content/reference}/functions/some.markdown (100%) rename {reference => content/reference}/functions/sort.markdown (100%) rename {reference => content/reference}/functions/splayclass.markdown (100%) rename {reference => content/reference}/functions/splitstring.markdown (100%) rename {reference => content/reference}/functions/storejson.markdown (100%) rename {reference => content/reference}/functions/strcmp.markdown (100%) rename {reference => content/reference}/functions/strftime.markdown (100%) rename {reference => content/reference}/functions/string.markdown (100%) rename {reference => content/reference}/functions/string_downcase.markdown (100%) rename {reference => content/reference}/functions/string_head.markdown (100%) rename {reference => content/reference}/functions/string_length.markdown (100%) rename {reference => content/reference}/functions/string_mustache.markdown (100%) rename {reference => content/reference}/functions/string_replace.markdown (100%) rename {reference => content/reference}/functions/string_reverse.markdown (100%) rename {reference => content/reference}/functions/string_split.markdown (100%) rename {reference => content/reference}/functions/string_tail.markdown (100%) rename {reference => content/reference}/functions/string_trim.markdown (100%) rename {reference => content/reference}/functions/string_upcase.markdown (100%) rename {reference => content/reference}/functions/sublist.markdown (100%) rename {reference => content/reference}/functions/sum.markdown (100%) rename {reference => content/reference}/functions/sysctlvalue.markdown (100%) rename {reference => content/reference}/functions/translatepath.markdown (100%) rename {reference => content/reference}/functions/type.markdown (100%) rename {reference => content/reference}/functions/unique.markdown (100%) rename {reference => content/reference}/functions/url_get.markdown (100%) rename {reference => content/reference}/functions/usemodule.markdown (100%) rename {reference => content/reference}/functions/userexists.markdown (100%) rename {reference => content/reference}/functions/validdata.markdown (100%) rename {reference => content/reference}/functions/validjson.markdown (100%) rename {reference => content/reference}/functions/variablesmatching.markdown (100%) rename {reference => content/reference}/functions/variablesmatching_as_data.markdown (100%) rename {reference => content/reference}/functions/variance.markdown (100%) rename {reference => content/reference}/functions/version_compare.markdown (100%) rename {reference => content/reference}/language-concepts/_index.markdown (100%) rename {reference => content/reference}/language-concepts/augments.markdown (100%) rename {reference => content/reference}/language-concepts/bodies.markdown (100%) rename {reference => content/reference}/language-concepts/bundles.markdown (100%) rename {reference => content/reference}/language-concepts/classes.markdown (100%) rename {reference => content/reference}/language-concepts/loops.markdown (100%) rename {reference => content/reference}/language-concepts/modules/_index.markdown (100%) rename {reference => content/reference}/language-concepts/modules/package-module-api.markdown (100%) rename {reference => content/reference}/language-concepts/namespaces.markdown (100%) rename {reference => content/reference}/language-concepts/normal-ordering.markdown (100%) rename {reference => content/reference}/language-concepts/pattern-matching-and-referencing.markdown (100%) rename {reference => content/reference}/language-concepts/promises.markdown (100%) rename {reference => content/reference}/language-concepts/variables.markdown (100%) rename {reference => content/reference}/macros.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/_index.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-core.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-enterprise.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-recommendations.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-lib.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal-update.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/cfe_internal.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-cf-hub.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-cf_agent.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-cf_execd.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-cf_monitord.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-cf_runagent.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-cf_serverd.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-def.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-def_inputs.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-reports.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-update_def.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls-update_def_inputs.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/controls.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-any.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-debian.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-freebsd.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-generic.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-linux.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-lsb.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-macos.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-os.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-redhat.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-suse.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory-windows.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/inventory.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-autorun.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-bundles.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-cfe_internal.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-cfe_internal_hub.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-commands.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-common.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-databases.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-edit_xml.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-event.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-examples.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-feature.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-files.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-guest_environments.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-monitor.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-packages.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-paths.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-processes.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-reports.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-services.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-stdlib.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-storage.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-testing.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-users.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib-vcs.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/lib.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules-mustache.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules-packages-vendored.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules-packages.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules-promises-cfengine.py.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules-promises.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/modules.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/no-distrib.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/promises.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/services-autorun.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/services-main.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/services.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/standalone_self_upgrade.markdown (100%) rename {reference => content/reference}/masterfiles-policy-framework/update.markdown (100%) rename {reference => content/reference}/promise-types/_index.markdown (100%) rename {reference => content/reference}/promise-types/access.markdown (100%) rename {reference => content/reference}/promise-types/classes.markdown (100%) rename {reference => content/reference}/promise-types/commands.markdown (100%) rename {reference => content/reference}/promise-types/custom.markdown (100%) rename {reference => content/reference}/promise-types/databases.markdown (100%) rename {reference => content/reference}/promise-types/defaults.markdown (100%) rename {reference => content/reference}/promise-types/filelogic.png (100%) rename {reference => content/reference}/promise-types/files/_index.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_line/_index.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_line/delete_lines.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_line/field_edits.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_line/insert_lines.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_line/replace_patterns.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/_index.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/build_xpath.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/delete_attribute.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/delete_text.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/delete_tree.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/insert_text.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/insert_tree.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/set_attribute.markdown (100%) rename {reference => content/reference}/promise-types/files/edit_xml/set_text.markdown (100%) rename {reference => content/reference}/promise-types/guest_environments.markdown (100%) rename {reference => content/reference}/promise-types/measurements.markdown (100%) rename {reference => content/reference}/promise-types/meta.markdown (100%) rename {reference => content/reference}/promise-types/methods.markdown (100%) rename {reference => content/reference}/promise-types/packages-deprecated.markdown (100%) rename {reference => content/reference}/promise-types/packages.markdown (100%) rename {reference => content/reference}/promise-types/processes.markdown (100%) rename {reference => content/reference}/promise-types/promise-types-services-winservice-properties_name.png (100%) rename {reference => content/reference}/promise-types/reports.markdown (100%) rename {reference => content/reference}/promise-types/roles.markdown (100%) rename {reference => content/reference}/promise-types/services.markdown (100%) rename {reference => content/reference}/promise-types/storage.markdown (100%) rename {reference => content/reference}/promise-types/users.markdown (100%) rename {reference => content/reference}/promise-types/vars.markdown (100%) rename {reference => content/reference}/special-variables/_index.markdown (100%) rename {reference => content/reference}/special-variables/connection.markdown (100%) rename {reference => content/reference}/special-variables/const.markdown (100%) rename {reference => content/reference}/special-variables/def.markdown (100%) rename {reference => content/reference}/special-variables/edit.markdown (100%) rename {reference => content/reference}/special-variables/match.markdown (100%) rename {reference => content/reference}/special-variables/mon.markdown (100%) rename {reference => content/reference}/special-variables/sys.markdown (100%) rename {reference => content/reference}/special-variables/this.markdown (100%) rename {release-notes => content/release-notes}/_index.markdown (100%) rename {release-notes => content/release-notes}/known-issues.markdown (100%) rename {release-notes => content/release-notes}/legal-and-licenses.markdown (100%) rename {release-notes => content/release-notes}/supported-platforms.markdown (100%) rename {release-notes => content/release-notes}/whatsnew/_index.markdown (100%) rename {release-notes => content/release-notes}/whatsnew/changelog-core.markdown (100%) rename {release-notes => content/release-notes}/whatsnew/changelog-enterprise.markdown (100%) rename {release-notes => content/release-notes}/whatsnew/changelog-masterfiles-policy-framework.markdown (100%) rename {resources => content/resources}/_index.markdown (100%) rename {resources => content/resources}/additional-topics/BDMA-model.png (100%) rename {resources => content/resources}/additional-topics/STIGs.cf (100%) rename {resources => content/resources}/additional-topics/STIGs_readme.txt (100%) rename {resources => content/resources}/additional-topics/_index.markdown (100%) rename {resources => content/resources}/additional-topics/adopting-cfengine-mission-plan.png (100%) rename {resources => content/resources}/additional-topics/agility.markdown (100%) rename {resources => content/resources}/additional-topics/agility.png (100%) rename {resources => content/resources}/additional-topics/application-management.markdown (100%) rename {resources => content/resources}/additional-topics/authority-paradox.png (100%) rename {resources => content/resources}/additional-topics/bow-tie-delegation.png (100%) rename {resources => content/resources}/additional-topics/build-deploy-manage-audit.markdown (100%) rename {resources => content/resources}/additional-topics/cfengine-relationship-to-infrastructure.png (100%) rename {resources => content/resources}/additional-topics/change-management.markdown (100%) rename {resources => content/resources}/additional-topics/cloud-computing.markdown (100%) rename {resources => content/resources}/additional-topics/content-driven-policy.markdown (100%) rename {resources => content/resources}/additional-topics/convergence.png (100%) rename {resources => content/resources}/additional-topics/coordination.png (100%) rename {resources => content/resources}/additional-topics/demolish.png (100%) rename {resources => content/resources}/additional-topics/devops.markdown (100%) rename {resources => content/resources}/additional-topics/distributed-scheduling.markdown (100%) rename {resources => content/resources}/additional-topics/fed2.png (100%) rename {resources => content/resources}/additional-topics/fed3.png (100%) rename {resources => content/resources}/additional-topics/file-content.markdown (100%) rename {resources => content/resources}/additional-topics/file-integrity-monitoring.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/hierarchies.markdown (100%) rename {resources => content/resources}/additional-topics/hierarchy-vs-team.png (100%) rename {resources => content/resources}/additional-topics/inherit.png (100%) rename {resources => content/resources}/additional-topics/iteration.markdown (100%) rename {resources => content/resources}/additional-topics/itil-cfengine.png (100%) rename {resources => content/resources}/additional-topics/itil.markdown (100%) rename {resources => content/resources}/additional-topics/km1.png (100%) rename {resources => content/resources}/additional-topics/km2.png (100%) rename {resources => content/resources}/additional-topics/km3.png (100%) rename {resources => content/resources}/additional-topics/km4.png (100%) rename {resources => content/resources}/additional-topics/km5.png (100%) rename {resources => content/resources}/additional-topics/km6.png (100%) rename {resources => content/resources}/additional-topics/km7.png (100%) rename {resources => content/resources}/additional-topics/km8.png (100%) rename {resources => content/resources}/additional-topics/km9.png (100%) rename {resources => content/resources}/additional-topics/knowledge-management.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/menu-driven-configuration.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/mission-critical-operations.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/modularity.markdown (100%) rename {resources => content/resources}/additional-topics/monitoring.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/network-organizational-structures.png (100%) rename {resources => content/resources}/additional-topics/open-nebula-architecture.png (100%) rename {resources => content/resources}/additional-topics/open-nebula.markdown (100%) rename {resources => content/resources}/additional-topics/orchestration.markdown (100%) rename {resources => content/resources}/additional-topics/overlapping-sets.png (100%) rename {resources => content/resources}/additional-topics/package-flow.png (100%) rename {resources => content/resources}/additional-topics/package-management.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/policy-distribution-fanout.png (100%) rename {resources => content/resources}/additional-topics/reporting.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/role-based-access-control.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/rollback.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/scale-and-scalability.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/scheduleing-jobs.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/scheduleing-patterns.png (100%) rename {resources => content/resources}/additional-topics/security.markdown (100%) rename {resources => content/resources}/additional-topics/single-points-of-failure.png (100%) rename {resources => content/resources}/additional-topics/stigs.markdown (100%) rename {resources => content/resources}/additional-topics/teamwork.markdown (100%) rename {resources => content/resources}/additional-topics/understanding.png (100%) rename {resources => content/resources}/additional-topics/virtualization.markdown.breaks_build (100%) rename {resources => content/resources}/additional-topics/windows-management.markdown.breaks_build (100%) rename {resources => content/resources}/best-practices.markdown (100%) rename {resources => content/resources}/external-resources.markdown (100%) rename {resources => content/resources}/faq/_index.markdown (100%) rename {resources => content/resources}/faq/agents-not-running.png (100%) rename {resources => content/resources}/faq/bootstrap-failed.markdown (100%) rename {resources => content/resources}/faq/debugging-slow-queries.markdown (100%) rename {resources => content/resources}/faq/enterprise-changes-ui.png (100%) rename {resources => content/resources}/faq/enterprise-license.markdown (100%) rename {resources => content/resources}/faq/enterprise-report-collection.markdown (100%) rename {resources => content/resources}/faq/enterprise-report-filtering.markdown (100%) rename {resources => content/resources}/faq/enterprise.markdown (100%) rename {resources => content/resources}/faq/fhs.markdown (100%) rename {resources => content/resources}/faq/filter-inventoried-list-items.png (100%) rename {resources => content/resources}/faq/find-public-key-for-host-sha.markdown (100%) rename {resources => content/resources}/faq/fix-trust-after-ip-change.markdown (100%) rename {resources => content/resources}/faq/fix-undefined-body-error.markdown (100%) rename {resources => content/resources}/faq/hosts-not-reporting.png (100%) rename {resources => content/resources}/faq/how-does-cfengine-work-agent-workflow.png (100%) rename {resources => content/resources}/faq/how-does-cfengine-work-process.png (100%) rename {resources => content/resources}/faq/integrate-custom-policy.markdown (100%) rename {resources => content/resources}/faq/inventoried-list-items.png (100%) rename {resources => content/resources}/faq/manual-execution.markdown (100%) rename {resources => content/resources}/faq/mustache-templating.markdown (100%) rename {resources => content/resources}/faq/output-email.markdown (100%) rename {resources => content/resources}/faq/show-classes-and-vars.markdown (100%) rename {resources => content/resources}/faq/tuning-postgresql.markdown (100%) rename {resources => content/resources}/faq/unable-to-log-in-mission-portal.markdown (100%) rename {resources => content/resources}/faq/uninstall-reinstall.markdown (100%) rename {resources => content/resources}/faq/users.markdown (100%) rename {resources => content/resources}/faq/variables.markdown (100%) rename {resources => content/resources}/faq/what-did-cfengine-change.markdown (100%) rename {resources => content/resources}/faq/what-is-promise-locking.markdown (100%) rename {resources => content/resources}/faq/why-are-files-not-being-distributed.markdown (100%) rename {resources => content/resources}/faq/why-are-remote-agents-not-updating.markdown (100%) rename {resources => content/resources}/faq/why-knowledge-management.markdown (100%) rename {web-ui => content/web-ui}/Alerts.bottom.condition.type.png (100%) rename {web-ui => content/web-ui}/Alerts.bottom.hosts.png (100%) rename {web-ui => content/web-ui}/Alerts.bottom.notifications.png (100%) rename {web-ui => content/web-ui}/Alerts.new.png (100%) rename {web-ui => content/web-ui}/Alerts.top.condition.png (100%) rename {web-ui => content/web-ui}/Alerts.top.name.png (100%) rename {web-ui => content/web-ui}/Alerts.top.severity.png (100%) rename {web-ui => content/web-ui}/Authentication-settings.png (100%) rename {web-ui => content/web-ui}/Host-info-page.png (100%) rename {web-ui => content/web-ui}/Hosts-app-custom-tree-geographic-region.png (100%) rename {web-ui => content/web-ui}/Hosts-app-overview.png (100%) rename {web-ui => content/web-ui}/Mission-Portal-Monitoring-1.png (100%) rename {web-ui => content/web-ui}/Mission-portal-health-dignostics-header.png (100%) rename {web-ui => content/web-ui}/Settings-1.png (100%) rename {web-ui => content/web-ui}/Settings-2.png (100%) rename {web-ui => content/web-ui}/Settings-3.png (100%) rename {web-ui => content/web-ui}/Settings-4.png (100%) rename {web-ui => content/web-ui}/Settings-6.png (100%) rename {web-ui => content/web-ui}/Settings-7.png (100%) rename {web-ui => content/web-ui}/Settings-role.png (100%) rename {web-ui => content/web-ui}/Time-zone-modal.png (100%) rename {web-ui => content/web-ui}/User-profile.png (100%) rename {web-ui => content/web-ui}/_index.markdown (100%) rename {web-ui => content/web-ui}/add-new-user.png (100%) rename {web-ui => content/web-ui}/add_columns.png (100%) rename {web-ui => content/web-ui}/alerts-and-notifications.markdown (100%) rename {web-ui => content/web-ui}/clone-dashboard.png (100%) rename {web-ui => content/web-ui}/create-alert-custom-action-syslog.png (100%) rename {web-ui => content/web-ui}/custom-actions-for-alerts.markdown (100%) rename {web-ui => content/web-ui}/dashboard-event-log.png (100%) rename {web-ui => content/web-ui}/dashboard-widget-changes.png (100%) rename {web-ui => content/web-ui}/dashboard-widget-newly-bootstrapped.png (100%) rename {web-ui => content/web-ui}/debugging-mission-portal.markdown (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Report-Builder-3.18.0.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Reports-Inventory-1.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Reports-Inventory-2.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Reports-Inventory-3.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Reports-Inventory-4.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Reports-Inventory-5.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/Reports-Inventory-6.png (100%) rename {web-ui => content/web-ui}/enterprise-reporting/_index.markdown (100%) rename {web-ui => content/web-ui}/enterprise-reporting/client-initiated-reporting.markdown (100%) rename {web-ui => content/web-ui}/enterprise-reporting/reporting-architecture.markdown (100%) rename {web-ui => content/web-ui}/enterprise-reporting/reporting_ui.markdown (100%) rename {web-ui => content/web-ui}/enterprise-reporting/sql-queries-enterprise-api.markdown (100%) rename {web-ui => content/web-ui}/federated-reporting.markdown (100%) rename {web-ui => content/web-ui}/fr-connect-a-hub.png (100%) rename {web-ui => content/web-ui}/fr-disabled-feeder.png (100%) rename {web-ui => content/web-ui}/fr-edit-hub-disable.png (100%) rename {web-ui => content/web-ui}/fr-feeder-added.png (100%) rename {web-ui => content/web-ui}/fr-hub-management-default.png (100%) rename {web-ui => content/web-ui}/fr-hub-management-enabled.png (100%) rename {web-ui => content/web-ui}/fr-superhub-enabled-no-feeders.png (100%) rename {web-ui => content/web-ui}/health.markdown (100%) rename {web-ui => content/web-ui}/host-action-buttons.png (100%) rename {web-ui => content/web-ui}/host-info-collect-reports.png (100%) rename {web-ui => content/web-ui}/host-info-delete-host.png (100%) rename {web-ui => content/web-ui}/host-info-get-url.png (100%) rename {web-ui => content/web-ui}/host-info-run-agent.png (100%) rename {web-ui => content/web-ui}/host-specific-data-classes.png (100%) rename {web-ui => content/web-ui}/host-specific-data-variables.png (100%) rename {web-ui => content/web-ui}/hosts.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/Mission-portal-remove-host.png (100%) rename {web-ui => content/web-ui}/hub_administration/_index.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/adjusting-schedules.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/backup-and-restore.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/custom-https-certificate.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/custom-ldap-port-settings.png (100%) rename {web-ui => content/web-ui}/hub_administration/custom-ldap-port.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/custom-ldaps-certificate.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/decommissioning-hosts.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/enable-plain-http.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/extended-menu.png (100%) rename {web-ui => content/web-ui}/hub_administration/extended-query-builder-report.png (100%) rename {web-ui => content/web-ui}/hub_administration/extended-query-builder.png (100%) rename {web-ui => content/web-ui}/hub_administration/extending-mission-portal.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/extending-query-builder.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/lookup-license-info.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/policy-deployment.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/public-key-distribution.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/regenerate-self-signed-cert.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/reinstall.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/reset-admin-creds.markdown (100%) rename {web-ui => content/web-ui}/hub_administration/settings-menu.png (100%) rename {web-ui => content/web-ui}/hub_administration/settings-vcs.png (100%) rename {web-ui => content/web-ui}/inventory_filter.gif (100%) rename {web-ui => content/web-ui}/license-info.png (100%) rename {web-ui => content/web-ui}/license-status-report.png (100%) rename {web-ui => content/web-ui}/license.markdown (100%) rename {web-ui => content/web-ui}/mail-settings.png (100%) rename {web-ui => content/web-ui}/measurements.markdown (100%) rename {web-ui => content/web-ui}/mp-settings-custom-notification-add.png (100%) rename {web-ui => content/web-ui}/mp-settings-custom-notification.png (100%) rename {web-ui => content/web-ui}/pause_alerts.gif (100%) rename {web-ui => content/web-ui}/role_based_access_control_settings.png (100%) rename {web-ui => content/web-ui}/roles-list.png (100%) rename {web-ui => content/web-ui}/settings-export-import-3.18.0.png (100%) rename {web-ui => content/web-ui}/settings.markdown (100%) rename {web-ui => content/web-ui}/web-ui-event-log.png (100%) rename {web-ui => content/web-ui}/web-ui-events-api-rbac-get-event-list-event-checked.png (100%) rename {web-ui => content/web-ui}/web-ui-mission-portal-api-view-whole-system-events-rbac.png (100%) rename {web-ui => content/web-ui}/welcome_2nd_screen.png (100%) rename {web-ui => content/web-ui}/widget_1.gif (100%) diff --git a/_index.markdown b/content/_index.markdown similarity index 100% rename from _index.markdown rename to content/_index.markdown diff --git a/api/_index.markdown b/content/api/_index.markdown similarity index 100% rename from api/_index.markdown rename to content/api/_index.markdown diff --git a/api/enterprise-api-architecture-overview.png b/content/api/enterprise-api-architecture-overview.png similarity index 100% rename from api/enterprise-api-architecture-overview.png rename to content/api/enterprise-api-architecture-overview.png diff --git a/api/enterprise-api-examples/_index.markdown b/content/api/enterprise-api-examples/_index.markdown similarity index 100% rename from api/enterprise-api-examples/_index.markdown rename to content/api/enterprise-api-examples/_index.markdown diff --git a/api/enterprise-api-examples/browsing-host-information.markdown b/content/api/enterprise-api-examples/browsing-host-information.markdown similarity index 100% rename from api/enterprise-api-examples/browsing-host-information.markdown rename to content/api/enterprise-api-examples/browsing-host-information.markdown diff --git a/api/enterprise-api-examples/changes-api-usage.markdown b/content/api/enterprise-api-examples/changes-api-usage.markdown similarity index 100% rename from api/enterprise-api-examples/changes-api-usage.markdown rename to content/api/enterprise-api-examples/changes-api-usage.markdown diff --git a/api/enterprise-api-examples/checking-status.markdown b/content/api/enterprise-api-examples/checking-status.markdown similarity index 100% rename from api/enterprise-api-examples/checking-status.markdown rename to content/api/enterprise-api-examples/checking-status.markdown diff --git a/api/enterprise-api-examples/managing-settings.markdown b/content/api/enterprise-api-examples/managing-settings.markdown similarity index 100% rename from api/enterprise-api-examples/managing-settings.markdown rename to content/api/enterprise-api-examples/managing-settings.markdown diff --git a/api/enterprise-api-examples/managing-users-and-roles.markdown b/content/api/enterprise-api-examples/managing-users-and-roles.markdown similarity index 100% rename from api/enterprise-api-examples/managing-users-and-roles.markdown rename to content/api/enterprise-api-examples/managing-users-and-roles.markdown diff --git a/api/enterprise-api-examples/sql-queries.markdown b/content/api/enterprise-api-examples/sql-queries.markdown similarity index 100% rename from api/enterprise-api-examples/sql-queries.markdown rename to content/api/enterprise-api-examples/sql-queries.markdown diff --git a/api/enterprise-api-ref/_index.markdown b/content/api/enterprise-api-ref/_index.markdown similarity index 100% rename from api/enterprise-api-ref/_index.markdown rename to content/api/enterprise-api-ref/_index.markdown diff --git a/api/enterprise-api-ref/actions-api.markdown b/content/api/enterprise-api-ref/actions-api.markdown similarity index 100% rename from api/enterprise-api-ref/actions-api.markdown rename to content/api/enterprise-api-ref/actions-api.markdown diff --git a/api/enterprise-api-ref/build-api.markdown b/content/api/enterprise-api-ref/build-api.markdown similarity index 100% rename from api/enterprise-api-ref/build-api.markdown rename to content/api/enterprise-api-ref/build-api.markdown diff --git a/api/enterprise-api-ref/changes.markdown b/content/api/enterprise-api-ref/changes.markdown similarity index 100% rename from api/enterprise-api-ref/changes.markdown rename to content/api/enterprise-api-ref/changes.markdown diff --git a/api/enterprise-api-ref/cmdb-api.markdown b/content/api/enterprise-api-ref/cmdb-api.markdown similarity index 100% rename from api/enterprise-api-ref/cmdb-api.markdown rename to content/api/enterprise-api-ref/cmdb-api.markdown diff --git a/api/enterprise-api-ref/export-import-api.markdown b/content/api/enterprise-api-ref/export-import-api.markdown similarity index 100% rename from api/enterprise-api-ref/export-import-api.markdown rename to content/api/enterprise-api-ref/export-import-api.markdown diff --git a/api/enterprise-api-ref/export-import-compliance-report-api.markdown b/content/api/enterprise-api-ref/export-import-compliance-report-api.markdown similarity index 100% rename from api/enterprise-api-ref/export-import-compliance-report-api.markdown rename to content/api/enterprise-api-ref/export-import-compliance-report-api.markdown diff --git a/api/enterprise-api-ref/federated-reporting-api.markdown b/content/api/enterprise-api-ref/federated-reporting-api.markdown similarity index 100% rename from api/enterprise-api-ref/federated-reporting-api.markdown rename to content/api/enterprise-api-ref/federated-reporting-api.markdown diff --git a/api/enterprise-api-ref/file-changes.markdown b/content/api/enterprise-api-ref/file-changes.markdown similarity index 100% rename from api/enterprise-api-ref/file-changes.markdown rename to content/api/enterprise-api-ref/file-changes.markdown diff --git a/api/enterprise-api-ref/health-diagnostic.markdown b/content/api/enterprise-api-ref/health-diagnostic.markdown similarity index 100% rename from api/enterprise-api-ref/health-diagnostic.markdown rename to content/api/enterprise-api-ref/health-diagnostic.markdown diff --git a/api/enterprise-api-ref/host.markdown b/content/api/enterprise-api-ref/host.markdown similarity index 100% rename from api/enterprise-api-ref/host.markdown rename to content/api/enterprise-api-ref/host.markdown diff --git a/api/enterprise-api-ref/inventory.markdown b/content/api/enterprise-api-ref/inventory.markdown similarity index 100% rename from api/enterprise-api-ref/inventory.markdown rename to content/api/enterprise-api-ref/inventory.markdown diff --git a/api/enterprise-api-ref/ldap-api.markdown b/content/api/enterprise-api-ref/ldap-api.markdown similarity index 100% rename from api/enterprise-api-ref/ldap-api.markdown rename to content/api/enterprise-api-ref/ldap-api.markdown diff --git a/api/enterprise-api-ref/personal-groups.markdown b/content/api/enterprise-api-ref/personal-groups.markdown similarity index 100% rename from api/enterprise-api-ref/personal-groups.markdown rename to content/api/enterprise-api-ref/personal-groups.markdown diff --git a/api/enterprise-api-ref/query.markdown b/content/api/enterprise-api-ref/query.markdown similarity index 100% rename from api/enterprise-api-ref/query.markdown rename to content/api/enterprise-api-ref/query.markdown diff --git a/api/enterprise-api-ref/shared-groups.markdown b/content/api/enterprise-api-ref/shared-groups.markdown similarity index 100% rename from api/enterprise-api-ref/shared-groups.markdown rename to content/api/enterprise-api-ref/shared-groups.markdown diff --git a/api/enterprise-api-ref/sql-schema/_index.markdown b/content/api/enterprise-api-ref/sql-schema/_index.markdown similarity index 100% rename from api/enterprise-api-ref/sql-schema/_index.markdown rename to content/api/enterprise-api-ref/sql-schema/_index.markdown diff --git a/api/enterprise-api-ref/sql-schema/cfdb.markdown b/content/api/enterprise-api-ref/sql-schema/cfdb.markdown similarity index 100% rename from api/enterprise-api-ref/sql-schema/cfdb.markdown rename to content/api/enterprise-api-ref/sql-schema/cfdb.markdown diff --git a/api/enterprise-api-ref/sql-schema/cfmp.markdown b/content/api/enterprise-api-ref/sql-schema/cfmp.markdown similarity index 100% rename from api/enterprise-api-ref/sql-schema/cfmp.markdown rename to content/api/enterprise-api-ref/sql-schema/cfmp.markdown diff --git a/api/enterprise-api-ref/sql-schema/cfsettings.markdown b/content/api/enterprise-api-ref/sql-schema/cfsettings.markdown similarity index 100% rename from api/enterprise-api-ref/sql-schema/cfsettings.markdown rename to content/api/enterprise-api-ref/sql-schema/cfsettings.markdown diff --git a/api/enterprise-api-ref/ssh-keys-api.markdown b/content/api/enterprise-api-ref/ssh-keys-api.markdown similarity index 100% rename from api/enterprise-api-ref/ssh-keys-api.markdown rename to content/api/enterprise-api-ref/ssh-keys-api.markdown diff --git a/api/enterprise-api-ref/status-settings.markdown b/content/api/enterprise-api-ref/status-settings.markdown similarity index 100% rename from api/enterprise-api-ref/status-settings.markdown rename to content/api/enterprise-api-ref/status-settings.markdown diff --git a/api/enterprise-api-ref/two-factor-authentication.markdown b/content/api/enterprise-api-ref/two-factor-authentication.markdown similarity index 100% rename from api/enterprise-api-ref/two-factor-authentication.markdown rename to content/api/enterprise-api-ref/two-factor-authentication.markdown diff --git a/api/enterprise-api-ref/users-rbac.markdown b/content/api/enterprise-api-ref/users-rbac.markdown similarity index 100% rename from api/enterprise-api-ref/users-rbac.markdown rename to content/api/enterprise-api-ref/users-rbac.markdown diff --git a/api/enterprise-api-ref/vcs-settings.markdown b/content/api/enterprise-api-ref/vcs-settings.markdown similarity index 100% rename from api/enterprise-api-ref/vcs-settings.markdown rename to content/api/enterprise-api-ref/vcs-settings.markdown diff --git a/api/enterprise-api-ref/web-rbac.markdown b/content/api/enterprise-api-ref/web-rbac.markdown similarity index 100% rename from api/enterprise-api-ref/web-rbac.markdown rename to content/api/enterprise-api-ref/web-rbac.markdown diff --git a/enterprise-cfengine-guide/_index.markdown b/content/enterprise-cfengine-guide/_index.markdown similarity index 100% rename from enterprise-cfengine-guide/_index.markdown rename to content/enterprise-cfengine-guide/_index.markdown diff --git a/enterprise-cfengine-guide/install-get-started.markdown b/content/enterprise-cfengine-guide/install-get-started.markdown similarity index 100% rename from enterprise-cfengine-guide/install-get-started.markdown rename to content/enterprise-cfengine-guide/install-get-started.markdown diff --git a/examples/_index.markdown b/content/examples/_index.markdown similarity index 100% rename from examples/_index.markdown rename to content/examples/_index.markdown diff --git a/examples/example-snippets/_index.markdown b/content/examples/example-snippets/_index.markdown similarity index 100% rename from examples/example-snippets/_index.markdown rename to content/examples/example-snippets/_index.markdown diff --git a/examples/example-snippets/aborting_execution.cf b/content/examples/example-snippets/aborting_execution.cf similarity index 100% rename from examples/example-snippets/aborting_execution.cf rename to content/examples/example-snippets/aborting_execution.cf diff --git a/examples/example-snippets/acl_file_example.cf b/content/examples/example-snippets/acl_file_example.cf similarity index 100% rename from examples/example-snippets/acl_file_example.cf rename to content/examples/example-snippets/acl_file_example.cf diff --git a/examples/example-snippets/acl_generic_example.cf b/content/examples/example-snippets/acl_generic_example.cf similarity index 100% rename from examples/example-snippets/acl_generic_example.cf rename to content/examples/example-snippets/acl_generic_example.cf diff --git a/examples/example-snippets/acl_secret_example.cf b/content/examples/example-snippets/acl_secret_example.cf similarity index 100% rename from examples/example-snippets/acl_secret_example.cf rename to content/examples/example-snippets/acl_secret_example.cf diff --git a/examples/example-snippets/active_directory.markdown b/content/examples/example-snippets/active_directory.markdown similarity index 100% rename from examples/example-snippets/active_directory.markdown rename to content/examples/example-snippets/active_directory.markdown diff --git a/examples/example-snippets/active_directory_example.cf b/content/examples/example-snippets/active_directory_example.cf similarity index 100% rename from examples/example-snippets/active_directory_example.cf rename to content/examples/example-snippets/active_directory_example.cf diff --git a/examples/example-snippets/active_directory_show_users_example.cf b/content/examples/example-snippets/active_directory_show_users_example.cf similarity index 100% rename from examples/example-snippets/active_directory_show_users_example.cf rename to content/examples/example-snippets/active_directory_show_users_example.cf diff --git a/examples/example-snippets/active_list_users_directory_example.cf b/content/examples/example-snippets/active_list_users_directory_example.cf similarity index 100% rename from examples/example-snippets/active_list_users_directory_example.cf rename to content/examples/example-snippets/active_list_users_directory_example.cf diff --git a/examples/example-snippets/add_lines_to_a_file.cf b/content/examples/example-snippets/add_lines_to_a_file.cf similarity index 100% rename from examples/example-snippets/add_lines_to_a_file.cf rename to content/examples/example-snippets/add_lines_to_a_file.cf diff --git a/examples/example-snippets/add_lines_to_a_file_1.cf b/content/examples/example-snippets/add_lines_to_a_file_1.cf similarity index 100% rename from examples/example-snippets/add_lines_to_a_file_1.cf rename to content/examples/example-snippets/add_lines_to_a_file_1.cf diff --git a/examples/example-snippets/add_software_packages_to_the_system.cf b/content/examples/example-snippets/add_software_packages_to_the_system.cf similarity index 100% rename from examples/example-snippets/add_software_packages_to_the_system.cf rename to content/examples/example-snippets/add_software_packages_to_the_system.cf diff --git a/examples/example-snippets/add_users.cf b/content/examples/example-snippets/add_users.cf similarity index 100% rename from examples/example-snippets/add_users.cf rename to content/examples/example-snippets/add_users.cf diff --git a/examples/example-snippets/add_users_1.cf b/content/examples/example-snippets/add_users_1.cf similarity index 100% rename from examples/example-snippets/add_users_1.cf rename to content/examples/example-snippets/add_users_1.cf diff --git a/examples/example-snippets/add_users_to_passwd_and_group.cf b/content/examples/example-snippets/add_users_to_passwd_and_group.cf similarity index 100% rename from examples/example-snippets/add_users_to_passwd_and_group.cf rename to content/examples/example-snippets/add_users_to_passwd_and_group.cf diff --git a/examples/example-snippets/add_variable_definitions_to_a_file.cf b/content/examples/example-snippets/add_variable_definitions_to_a_file.cf similarity index 100% rename from examples/example-snippets/add_variable_definitions_to_a_file.cf rename to content/examples/example-snippets/add_variable_definitions_to_a_file.cf diff --git a/examples/example-snippets/add_variable_definitions_to_a_file_1.cf b/content/examples/example-snippets/add_variable_definitions_to_a_file_1.cf similarity index 100% rename from examples/example-snippets/add_variable_definitions_to_a_file_1.cf rename to content/examples/example-snippets/add_variable_definitions_to_a_file_1.cf diff --git a/examples/example-snippets/all_hosts_the_same.cf b/content/examples/example-snippets/all_hosts_the_same.cf similarity index 100% rename from examples/example-snippets/all_hosts_the_same.cf rename to content/examples/example-snippets/all_hosts_the_same.cf diff --git a/examples/example-snippets/application_baseline.cf b/content/examples/example-snippets/application_baseline.cf similarity index 100% rename from examples/example-snippets/application_baseline.cf rename to content/examples/example-snippets/application_baseline.cf diff --git a/examples/example-snippets/array_example.cf b/content/examples/example-snippets/array_example.cf similarity index 100% rename from examples/example-snippets/array_example.cf rename to content/examples/example-snippets/array_example.cf diff --git a/examples/example-snippets/back_references_in_filenames.cf b/content/examples/example-snippets/back_references_in_filenames.cf similarity index 100% rename from examples/example-snippets/back_references_in_filenames.cf rename to content/examples/example-snippets/back_references_in_filenames.cf diff --git a/examples/example-snippets/basic-file-directory.markdown b/content/examples/example-snippets/basic-file-directory.markdown similarity index 100% rename from examples/example-snippets/basic-file-directory.markdown rename to content/examples/example-snippets/basic-file-directory.markdown diff --git a/examples/example-snippets/basic_example.cf b/content/examples/example-snippets/basic_example.cf similarity index 100% rename from examples/example-snippets/basic_example.cf rename to content/examples/example-snippets/basic_example.cf diff --git a/examples/example-snippets/bsd_flags.cf b/content/examples/example-snippets/bsd_flags.cf similarity index 100% rename from examples/example-snippets/bsd_flags.cf rename to content/examples/example-snippets/bsd_flags.cf diff --git a/examples/example-snippets/cfengine-administration.markdown b/content/examples/example-snippets/cfengine-administration.markdown similarity index 100% rename from examples/example-snippets/cfengine-administration.markdown rename to content/examples/example-snippets/cfengine-administration.markdown diff --git a/examples/example-snippets/change_detection.cf b/content/examples/example-snippets/change_detection.cf similarity index 100% rename from examples/example-snippets/change_detection.cf rename to content/examples/example-snippets/change_detection.cf diff --git a/examples/example-snippets/change_directory_for_command.cf b/content/examples/example-snippets/change_directory_for_command.cf similarity index 100% rename from examples/example-snippets/change_directory_for_command.cf rename to content/examples/example-snippets/change_directory_for_command.cf diff --git a/examples/example-snippets/check_file_or_directory_permissions.cf b/content/examples/example-snippets/check_file_or_directory_permissions.cf similarity index 100% rename from examples/example-snippets/check_file_or_directory_permissions.cf rename to content/examples/example-snippets/check_file_or_directory_permissions.cf diff --git a/examples/example-snippets/check_filesystem_space.cf b/content/examples/example-snippets/check_filesystem_space.cf similarity index 100% rename from examples/example-snippets/check_filesystem_space.cf rename to content/examples/example-snippets/check_filesystem_space.cf diff --git a/examples/example-snippets/class_match_example.cf b/content/examples/example-snippets/class_match_example.cf similarity index 100% rename from examples/example-snippets/class_match_example.cf rename to content/examples/example-snippets/class_match_example.cf diff --git a/examples/example-snippets/client-server_example.cf b/content/examples/example-snippets/client-server_example.cf similarity index 100% rename from examples/example-snippets/client-server_example.cf rename to content/examples/example-snippets/client-server_example.cf diff --git a/examples/example-snippets/command_or_script_execution.cf b/content/examples/example-snippets/command_or_script_execution.cf similarity index 100% rename from examples/example-snippets/command_or_script_execution.cf rename to content/examples/example-snippets/command_or_script_execution.cf diff --git a/examples/example-snippets/commands-scripts-execution.markdown b/content/examples/example-snippets/commands-scripts-execution.markdown similarity index 100% rename from examples/example-snippets/commands-scripts-execution.markdown rename to content/examples/example-snippets/commands-scripts-execution.markdown diff --git a/examples/example-snippets/commands_example.cf b/content/examples/example-snippets/commands_example.cf similarity index 100% rename from examples/example-snippets/commands_example.cf rename to content/examples/example-snippets/commands_example.cf diff --git a/examples/example-snippets/commenting_lines_in_a_file.cf b/content/examples/example-snippets/commenting_lines_in_a_file.cf similarity index 100% rename from examples/example-snippets/commenting_lines_in_a_file.cf rename to content/examples/example-snippets/commenting_lines_in_a_file.cf diff --git a/examples/example-snippets/copy_and_flatten_directory.cf b/content/examples/example-snippets/copy_and_flatten_directory.cf similarity index 100% rename from examples/example-snippets/copy_and_flatten_directory.cf rename to content/examples/example-snippets/copy_and_flatten_directory.cf diff --git a/examples/example-snippets/copy_directory_trees.cf b/content/examples/example-snippets/copy_directory_trees.cf similarity index 100% rename from examples/example-snippets/copy_directory_trees.cf rename to content/examples/example-snippets/copy_directory_trees.cf diff --git a/examples/example-snippets/copy_files.cf b/content/examples/example-snippets/copy_files.cf similarity index 100% rename from examples/example-snippets/copy_files.cf rename to content/examples/example-snippets/copy_files.cf diff --git a/examples/example-snippets/copy_single_files.cf b/content/examples/example-snippets/copy_single_files.cf similarity index 100% rename from examples/example-snippets/copy_single_files.cf rename to content/examples/example-snippets/copy_single_files.cf diff --git a/examples/example-snippets/copy_then_edit_a_file_convergently.cf b/content/examples/example-snippets/copy_then_edit_a_file_convergently.cf similarity index 100% rename from examples/example-snippets/copy_then_edit_a_file_convergently.cf rename to content/examples/example-snippets/copy_then_edit_a_file_convergently.cf diff --git a/examples/example-snippets/create_files_and_directories.cf b/content/examples/example-snippets/create_files_and_directories.cf similarity index 100% rename from examples/example-snippets/create_files_and_directories.cf rename to content/examples/example-snippets/create_files_and_directories.cf diff --git a/examples/example-snippets/custom_editing.cf b/content/examples/example-snippets/custom_editing.cf similarity index 100% rename from examples/example-snippets/custom_editing.cf rename to content/examples/example-snippets/custom_editing.cf diff --git a/examples/example-snippets/custom_editing_1.cf b/content/examples/example-snippets/custom_editing_1.cf similarity index 100% rename from examples/example-snippets/custom_editing_1.cf rename to content/examples/example-snippets/custom_editing_1.cf diff --git a/examples/example-snippets/database.markdown b/content/examples/example-snippets/database.markdown similarity index 100% rename from examples/example-snippets/database.markdown rename to content/examples/example-snippets/database.markdown diff --git a/examples/example-snippets/database_creation.cf b/content/examples/example-snippets/database_creation.cf similarity index 100% rename from examples/example-snippets/database_creation.cf rename to content/examples/example-snippets/database_creation.cf diff --git a/examples/example-snippets/deleting_lines_exception.cf b/content/examples/example-snippets/deleting_lines_exception.cf similarity index 100% rename from examples/example-snippets/deleting_lines_exception.cf rename to content/examples/example-snippets/deleting_lines_exception.cf diff --git a/examples/example-snippets/deleting_lines_from_a_file.cf b/content/examples/example-snippets/deleting_lines_from_a_file.cf similarity index 100% rename from examples/example-snippets/deleting_lines_from_a_file.cf rename to content/examples/example-snippets/deleting_lines_from_a_file.cf diff --git a/examples/example-snippets/disabling_and_rotating_files.cf b/content/examples/example-snippets/disabling_and_rotating_files.cf similarity index 100% rename from examples/example-snippets/disabling_and_rotating_files.cf rename to content/examples/example-snippets/disabling_and_rotating_files.cf diff --git a/examples/example-snippets/distribute_root_passwords.cf b/content/examples/example-snippets/distribute_root_passwords.cf similarity index 100% rename from examples/example-snippets/distribute_root_passwords.cf rename to content/examples/example-snippets/distribute_root_passwords.cf diff --git a/examples/example-snippets/distribute_ssh_keys.cf b/content/examples/example-snippets/distribute_ssh_keys.cf similarity index 100% rename from examples/example-snippets/distribute_ssh_keys.cf rename to content/examples/example-snippets/distribute_ssh_keys.cf diff --git a/examples/example-snippets/editing_files.cf b/content/examples/example-snippets/editing_files.cf similarity index 100% rename from examples/example-snippets/editing_files.cf rename to content/examples/example-snippets/editing_files.cf diff --git a/examples/example-snippets/editing_password_or_group_files.cf b/content/examples/example-snippets/editing_password_or_group_files.cf similarity index 100% rename from examples/example-snippets/editing_password_or_group_files.cf rename to content/examples/example-snippets/editing_password_or_group_files.cf diff --git a/examples/example-snippets/editing_password_or_group_files_custom.cf b/content/examples/example-snippets/editing_password_or_group_files_custom.cf similarity index 100% rename from examples/example-snippets/editing_password_or_group_files_custom.cf rename to content/examples/example-snippets/editing_password_or_group_files_custom.cf diff --git a/examples/example-snippets/editing_tabular_files.cf b/content/examples/example-snippets/editing_tabular_files.cf similarity index 100% rename from examples/example-snippets/editing_tabular_files.cf rename to content/examples/example-snippets/editing_tabular_files.cf diff --git a/examples/example-snippets/ensure_not_running.cf b/content/examples/example-snippets/ensure_not_running.cf similarity index 100% rename from examples/example-snippets/ensure_not_running.cf rename to content/examples/example-snippets/ensure_not_running.cf diff --git a/examples/example-snippets/ensure_running.cf b/content/examples/example-snippets/ensure_running.cf similarity index 100% rename from examples/example-snippets/ensure_running.cf rename to content/examples/example-snippets/ensure_running.cf diff --git a/examples/example-snippets/ensure_running_1.cf b/content/examples/example-snippets/ensure_running_1.cf similarity index 100% rename from examples/example-snippets/ensure_running_1.cf rename to content/examples/example-snippets/ensure_running_1.cf diff --git a/examples/example-snippets/environment_variables.cf b/content/examples/example-snippets/environment_variables.cf similarity index 100% rename from examples/example-snippets/environment_variables.cf rename to content/examples/example-snippets/environment_variables.cf diff --git a/examples/example-snippets/environments_(virtual).cf b/content/examples/example-snippets/environments_(virtual).cf similarity index 100% rename from examples/example-snippets/environments_(virtual).cf rename to content/examples/example-snippets/environments_(virtual).cf diff --git a/examples/example-snippets/execresult_example.cf b/content/examples/example-snippets/execresult_example.cf similarity index 100% rename from examples/example-snippets/execresult_example.cf rename to content/examples/example-snippets/execresult_example.cf diff --git a/examples/example-snippets/file-template.markdown b/content/examples/example-snippets/file-template.markdown similarity index 100% rename from examples/example-snippets/file-template.markdown rename to content/examples/example-snippets/file-template.markdown diff --git a/examples/example-snippets/file_permissions.markdown b/content/examples/example-snippets/file_permissions.markdown similarity index 100% rename from examples/example-snippets/file_permissions.markdown rename to content/examples/example-snippets/file_permissions.markdown diff --git a/examples/example-snippets/find_mac_address.cf b/content/examples/example-snippets/find_mac_address.cf similarity index 100% rename from examples/example-snippets/find_mac_address.cf rename to content/examples/example-snippets/find_mac_address.cf diff --git a/examples/example-snippets/garbage_collection.cf b/content/examples/example-snippets/garbage_collection.cf similarity index 100% rename from examples/example-snippets/garbage_collection.cf rename to content/examples/example-snippets/garbage_collection.cf diff --git a/examples/example-snippets/general.markdown b/content/examples/example-snippets/general.markdown similarity index 100% rename from examples/example-snippets/general.markdown rename to content/examples/example-snippets/general.markdown diff --git a/examples/example-snippets/get_a_list_of_users.cf b/content/examples/example-snippets/get_a_list_of_users.cf similarity index 100% rename from examples/example-snippets/get_a_list_of_users.cf rename to content/examples/example-snippets/get_a_list_of_users.cf diff --git a/examples/example-snippets/global_classes.cf b/content/examples/example-snippets/global_classes.cf similarity index 100% rename from examples/example-snippets/global_classes.cf rename to content/examples/example-snippets/global_classes.cf diff --git a/examples/example-snippets/hashing_for_change_detection_(tripwire).cf b/content/examples/example-snippets/hashing_for_change_detection_(tripwire).cf similarity index 100% rename from examples/example-snippets/hashing_for_change_detection_(tripwire).cf rename to content/examples/example-snippets/hashing_for_change_detection_(tripwire).cf diff --git a/examples/example-snippets/hello_world.cf b/content/examples/example-snippets/hello_world.cf similarity index 100% rename from examples/example-snippets/hello_world.cf rename to content/examples/example-snippets/hello_world.cf diff --git a/examples/example-snippets/inserting_lines_in_a_file.cf b/content/examples/example-snippets/inserting_lines_in_a_file.cf similarity index 100% rename from examples/example-snippets/inserting_lines_in_a_file.cf rename to content/examples/example-snippets/inserting_lines_in_a_file.cf diff --git a/examples/example-snippets/integrating_the_example_into_your_main_policy.cf b/content/examples/example-snippets/integrating_the_example_into_your_main_policy.cf similarity index 100% rename from examples/example-snippets/integrating_the_example_into_your_main_policy.cf rename to content/examples/example-snippets/integrating_the_example_into_your_main_policy.cf diff --git a/examples/example-snippets/kill_process.cf b/content/examples/example-snippets/kill_process.cf similarity index 100% rename from examples/example-snippets/kill_process.cf rename to content/examples/example-snippets/kill_process.cf diff --git a/examples/example-snippets/laptop_support_configuration.cf b/content/examples/example-snippets/laptop_support_configuration.cf similarity index 100% rename from examples/example-snippets/laptop_support_configuration.cf rename to content/examples/example-snippets/laptop_support_configuration.cf diff --git a/examples/example-snippets/ldap_interactions.cf b/content/examples/example-snippets/ldap_interactions.cf similarity index 100% rename from examples/example-snippets/ldap_interactions.cf rename to content/examples/example-snippets/ldap_interactions.cf diff --git a/examples/example-snippets/linking_files.cf b/content/examples/example-snippets/linking_files.cf similarity index 100% rename from examples/example-snippets/linking_files.cf rename to content/examples/example-snippets/linking_files.cf diff --git a/examples/example-snippets/listing_files-pattern_in_a_directory.cf b/content/examples/example-snippets/listing_files-pattern_in_a_directory.cf similarity index 100% rename from examples/example-snippets/listing_files-pattern_in_a_directory.cf rename to content/examples/example-snippets/listing_files-pattern_in_a_directory.cf diff --git a/examples/example-snippets/locate_and_transform_files.cf b/content/examples/example-snippets/locate_and_transform_files.cf similarity index 100% rename from examples/example-snippets/locate_and_transform_files.cf rename to content/examples/example-snippets/locate_and_transform_files.cf diff --git a/examples/example-snippets/log_rotation.cf b/content/examples/example-snippets/log_rotation.cf similarity index 100% rename from examples/example-snippets/log_rotation.cf rename to content/examples/example-snippets/log_rotation.cf diff --git a/examples/example-snippets/logging.cf b/content/examples/example-snippets/logging.cf similarity index 100% rename from examples/example-snippets/logging.cf rename to content/examples/example-snippets/logging.cf diff --git a/examples/example-snippets/macro_template.cf b/content/examples/example-snippets/macro_template.cf similarity index 100% rename from examples/example-snippets/macro_template.cf rename to content/examples/example-snippets/macro_template.cf diff --git a/examples/example-snippets/macro_template_1.cf b/content/examples/example-snippets/macro_template_1.cf similarity index 100% rename from examples/example-snippets/macro_template_1.cf rename to content/examples/example-snippets/macro_template_1.cf diff --git a/examples/example-snippets/measurements.cf b/content/examples/example-snippets/measurements.cf similarity index 100% rename from examples/example-snippets/measurements.cf rename to content/examples/example-snippets/measurements.cf diff --git a/examples/example-snippets/method_validation.cf b/content/examples/example-snippets/method_validation.cf similarity index 100% rename from examples/example-snippets/method_validation.cf rename to content/examples/example-snippets/method_validation.cf diff --git a/examples/example-snippets/methods.cf b/content/examples/example-snippets/methods.cf similarity index 100% rename from examples/example-snippets/methods.cf rename to content/examples/example-snippets/methods.cf diff --git a/examples/example-snippets/mount_a_filesystem.cf b/content/examples/example-snippets/mount_a_filesystem.cf similarity index 100% rename from examples/example-snippets/mount_a_filesystem.cf rename to content/examples/example-snippets/mount_a_filesystem.cf diff --git a/examples/example-snippets/mount_nfs_filesystem.cf b/content/examples/example-snippets/mount_nfs_filesystem.cf similarity index 100% rename from examples/example-snippets/mount_nfs_filesystem.cf rename to content/examples/example-snippets/mount_nfs_filesystem.cf diff --git a/examples/example-snippets/network.markdown b/content/examples/example-snippets/network.markdown similarity index 100% rename from examples/example-snippets/network.markdown rename to content/examples/example-snippets/network.markdown diff --git a/examples/example-snippets/ordering_promises.cf b/content/examples/example-snippets/ordering_promises.cf similarity index 100% rename from examples/example-snippets/ordering_promises.cf rename to content/examples/example-snippets/ordering_promises.cf diff --git a/examples/example-snippets/packages_examples_solaris.cf b/content/examples/example-snippets/packages_examples_solaris.cf similarity index 100% rename from examples/example-snippets/packages_examples_solaris.cf rename to content/examples/example-snippets/packages_examples_solaris.cf diff --git a/examples/example-snippets/postfix_mail_configuration.cf b/content/examples/example-snippets/postfix_mail_configuration.cf similarity index 100% rename from examples/example-snippets/postfix_mail_configuration.cf rename to content/examples/example-snippets/postfix_mail_configuration.cf diff --git a/examples/example-snippets/process_management.cf b/content/examples/example-snippets/process_management.cf similarity index 100% rename from examples/example-snippets/process_management.cf rename to content/examples/example-snippets/process_management.cf diff --git a/examples/example-snippets/promise-patterns/_index.markdown b/content/examples/example-snippets/promise-patterns/_index.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/_index.markdown rename to content/examples/example-snippets/promise-patterns/_index.markdown diff --git a/examples/example-snippets/promise-patterns/example_aborting_execution.markdown b/content/examples/example-snippets/promise-patterns/example_aborting_execution.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_aborting_execution.markdown rename to content/examples/example-snippets/promise-patterns/example_aborting_execution.markdown diff --git a/examples/example-snippets/promise-patterns/example_change_detection.markdown b/content/examples/example-snippets/promise-patterns/example_change_detection.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_change_detection.markdown rename to content/examples/example-snippets/promise-patterns/example_change_detection.markdown diff --git a/examples/example-snippets/promise-patterns/example_copy_single_files.markdown b/content/examples/example-snippets/promise-patterns/example_copy_single_files.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_copy_single_files.markdown rename to content/examples/example-snippets/promise-patterns/example_copy_single_files.markdown diff --git a/examples/example-snippets/promise-patterns/example_create_filedir.markdown b/content/examples/example-snippets/promise-patterns/example_create_filedir.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_create_filedir.markdown rename to content/examples/example-snippets/promise-patterns/example_create_filedir.markdown diff --git a/examples/example-snippets/promise-patterns/example_diskfree.markdown b/content/examples/example-snippets/promise-patterns/example_diskfree.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_diskfree.markdown rename to content/examples/example-snippets/promise-patterns/example_diskfree.markdown diff --git a/examples/example-snippets/promise-patterns/example_edit_motd.markdown b/content/examples/example-snippets/promise-patterns/example_edit_motd.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_edit_motd.markdown rename to content/examples/example-snippets/promise-patterns/example_edit_motd.markdown diff --git a/examples/example-snippets/promise-patterns/example_edit_name_resolution.markdown b/content/examples/example-snippets/promise-patterns/example_edit_name_resolution.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_edit_name_resolution.markdown rename to content/examples/example-snippets/promise-patterns/example_edit_name_resolution.markdown diff --git a/examples/example-snippets/promise-patterns/example_enable_service.markdown b/content/examples/example-snippets/promise-patterns/example_enable_service.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_enable_service.markdown rename to content/examples/example-snippets/promise-patterns/example_enable_service.markdown diff --git a/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown b/content/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_find_mac_addr.markdown rename to content/examples/example-snippets/promise-patterns/example_find_mac_addr.markdown diff --git a/examples/example-snippets/promise-patterns/example_install_package.markdown b/content/examples/example-snippets/promise-patterns/example_install_package.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_install_package.markdown rename to content/examples/example-snippets/promise-patterns/example_install_package.markdown diff --git a/examples/example-snippets/promise-patterns/example_mount_nfs.markdown b/content/examples/example-snippets/promise-patterns/example_mount_nfs.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_mount_nfs.markdown rename to content/examples/example-snippets/promise-patterns/example_mount_nfs.markdown diff --git a/examples/example-snippets/promise-patterns/example_ntp.markdown b/content/examples/example-snippets/promise-patterns/example_ntp.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_ntp.markdown rename to content/examples/example-snippets/promise-patterns/example_ntp.markdown diff --git a/examples/example-snippets/promise-patterns/example_process_kill.markdown b/content/examples/example-snippets/promise-patterns/example_process_kill.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_process_kill.markdown rename to content/examples/example-snippets/promise-patterns/example_process_kill.markdown diff --git a/examples/example-snippets/promise-patterns/example_process_restart.markdown b/content/examples/example-snippets/promise-patterns/example_process_restart.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_process_restart.markdown rename to content/examples/example-snippets/promise-patterns/example_process_restart.markdown diff --git a/examples/example-snippets/promise-patterns/example_ssh_keys.markdown b/content/examples/example-snippets/promise-patterns/example_ssh_keys.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_ssh_keys.markdown rename to content/examples/example-snippets/promise-patterns/example_ssh_keys.markdown diff --git a/examples/example-snippets/promise-patterns/example_sudoers.markdown b/content/examples/example-snippets/promise-patterns/example_sudoers.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_sudoers.markdown rename to content/examples/example-snippets/promise-patterns/example_sudoers.markdown diff --git a/examples/example-snippets/promise-patterns/example_updating_from_central_hub.markdown b/content/examples/example-snippets/promise-patterns/example_updating_from_central_hub.markdown similarity index 100% rename from examples/example-snippets/promise-patterns/example_updating_from_central_hub.markdown rename to content/examples/example-snippets/promise-patterns/example_updating_from_central_hub.markdown diff --git a/examples/example-snippets/prune_processes.cf b/content/examples/example-snippets/prune_processes.cf similarity index 100% rename from examples/example-snippets/prune_processes.cf rename to content/examples/example-snippets/prune_processes.cf diff --git a/examples/example-snippets/read_from_a_tcp_socket.cf b/content/examples/example-snippets/read_from_a_tcp_socket.cf similarity index 100% rename from examples/example-snippets/read_from_a_tcp_socket.cf rename to content/examples/example-snippets/read_from_a_tcp_socket.cf diff --git a/examples/example-snippets/resolver_management.cf b/content/examples/example-snippets/resolver_management.cf similarity index 100% rename from examples/example-snippets/resolver_management.cf rename to content/examples/example-snippets/resolver_management.cf diff --git a/examples/example-snippets/restart_process.cf b/content/examples/example-snippets/restart_process.cf similarity index 100% rename from examples/example-snippets/restart_process.cf rename to content/examples/example-snippets/restart_process.cf diff --git a/examples/example-snippets/restart_process_1.cf b/content/examples/example-snippets/restart_process_1.cf similarity index 100% rename from examples/example-snippets/restart_process_1.cf rename to content/examples/example-snippets/restart_process_1.cf diff --git a/examples/example-snippets/search_and_replace_text.cf b/content/examples/example-snippets/search_and_replace_text.cf similarity index 100% rename from examples/example-snippets/search_and_replace_text.cf rename to content/examples/example-snippets/search_and_replace_text.cf diff --git a/examples/example-snippets/selecting_a_region_in_a_file.cf b/content/examples/example-snippets/selecting_a_region_in_a_file.cf similarity index 100% rename from examples/example-snippets/selecting_a_region_in_a_file.cf rename to content/examples/example-snippets/selecting_a_region_in_a_file.cf diff --git a/examples/example-snippets/service_management_(windows).cf b/content/examples/example-snippets/service_management_(windows).cf similarity index 100% rename from examples/example-snippets/service_management_(windows).cf rename to content/examples/example-snippets/service_management_(windows).cf diff --git a/examples/example-snippets/set_up_a_pxe_boot_server.cf b/content/examples/example-snippets/set_up_a_pxe_boot_server.cf similarity index 100% rename from examples/example-snippets/set_up_a_pxe_boot_server.cf rename to content/examples/example-snippets/set_up_a_pxe_boot_server.cf diff --git a/examples/example-snippets/set_up_a_web_server.cf b/content/examples/example-snippets/set_up_a_web_server.cf similarity index 100% rename from examples/example-snippets/set_up_a_web_server.cf rename to content/examples/example-snippets/set_up_a_web_server.cf diff --git a/examples/example-snippets/set_up_hpc_clusters.cf b/content/examples/example-snippets/set_up_hpc_clusters.cf similarity index 100% rename from examples/example-snippets/set_up_hpc_clusters.cf rename to content/examples/example-snippets/set_up_hpc_clusters.cf diff --git a/examples/example-snippets/set_up_name_resolution.cf b/content/examples/example-snippets/set_up_name_resolution.cf similarity index 100% rename from examples/example-snippets/set_up_name_resolution.cf rename to content/examples/example-snippets/set_up_name_resolution.cf diff --git a/examples/example-snippets/set_up_name_resolution_1.cf b/content/examples/example-snippets/set_up_name_resolution_1.cf similarity index 100% rename from examples/example-snippets/set_up_name_resolution_1.cf rename to content/examples/example-snippets/set_up_name_resolution_1.cf diff --git a/examples/example-snippets/set_up_sudo.cf b/content/examples/example-snippets/set_up_sudo.cf similarity index 100% rename from examples/example-snippets/set_up_sudo.cf rename to content/examples/example-snippets/set_up_sudo.cf diff --git a/examples/example-snippets/simple_template.cf b/content/examples/example-snippets/simple_template.cf similarity index 100% rename from examples/example-snippets/simple_template.cf rename to content/examples/example-snippets/simple_template.cf diff --git a/examples/example-snippets/simple_versioned_template.cf b/content/examples/example-snippets/simple_versioned_template.cf similarity index 100% rename from examples/example-snippets/simple_versioned_template.cf rename to content/examples/example-snippets/simple_versioned_template.cf diff --git a/examples/example-snippets/software-adminstration.markdown b/content/examples/example-snippets/software-adminstration.markdown similarity index 100% rename from examples/example-snippets/software-adminstration.markdown rename to content/examples/example-snippets/software-adminstration.markdown diff --git a/examples/example-snippets/software_and_patch_installation.cf b/content/examples/example-snippets/software_and_patch_installation.cf similarity index 100% rename from examples/example-snippets/software_and_patch_installation.cf rename to content/examples/example-snippets/software_and_patch_installation.cf diff --git a/examples/example-snippets/software_and_patch_installation_1.cf b/content/examples/example-snippets/software_and_patch_installation_1.cf similarity index 100% rename from examples/example-snippets/software_and_patch_installation_1.cf rename to content/examples/example-snippets/software_and_patch_installation_1.cf diff --git a/examples/example-snippets/software_and_patch_installation_1_2.cf b/content/examples/example-snippets/software_and_patch_installation_1_2.cf similarity index 100% rename from examples/example-snippets/software_and_patch_installation_1_2.cf rename to content/examples/example-snippets/software_and_patch_installation_1_2.cf diff --git a/examples/example-snippets/software_and_patch_installation_1_2_3.cf b/content/examples/example-snippets/software_and_patch_installation_1_2_3.cf similarity index 100% rename from examples/example-snippets/software_and_patch_installation_1_2_3.cf rename to content/examples/example-snippets/software_and_patch_installation_1_2_3.cf diff --git a/examples/example-snippets/software_distribution.cf b/content/examples/example-snippets/software_distribution.cf similarity index 100% rename from examples/example-snippets/software_distribution.cf rename to content/examples/example-snippets/software_distribution.cf diff --git a/examples/example-snippets/system-administration.markdown b/content/examples/example-snippets/system-administration.markdown similarity index 100% rename from examples/example-snippets/system-administration.markdown rename to content/examples/example-snippets/system-administration.markdown diff --git a/examples/example-snippets/system-file.markdown b/content/examples/example-snippets/system-file.markdown similarity index 100% rename from examples/example-snippets/system-file.markdown rename to content/examples/example-snippets/system-file.markdown diff --git a/examples/example-snippets/system-information.markdown b/content/examples/example-snippets/system-information.markdown similarity index 100% rename from examples/example-snippets/system-information.markdown rename to content/examples/example-snippets/system-information.markdown diff --git a/examples/example-snippets/system-security.markdown b/content/examples/example-snippets/system-security.markdown similarity index 100% rename from examples/example-snippets/system-security.markdown rename to content/examples/example-snippets/system-security.markdown diff --git a/examples/example-snippets/templating.cf b/content/examples/example-snippets/templating.cf similarity index 100% rename from examples/example-snippets/templating.cf rename to content/examples/example-snippets/templating.cf diff --git a/examples/example-snippets/templating_1.cf b/content/examples/example-snippets/templating_1.cf similarity index 100% rename from examples/example-snippets/templating_1.cf rename to content/examples/example-snippets/templating_1.cf diff --git a/examples/example-snippets/tidying_garbage_files.cf b/content/examples/example-snippets/tidying_garbage_files.cf similarity index 100% rename from examples/example-snippets/tidying_garbage_files.cf rename to content/examples/example-snippets/tidying_garbage_files.cf diff --git a/examples/example-snippets/timing-counting-measuring.markdown b/content/examples/example-snippets/timing-counting-measuring.markdown similarity index 100% rename from examples/example-snippets/timing-counting-measuring.markdown rename to content/examples/example-snippets/timing-counting-measuring.markdown diff --git a/examples/example-snippets/trigger_classes.cf b/content/examples/example-snippets/trigger_classes.cf similarity index 100% rename from examples/example-snippets/trigger_classes.cf rename to content/examples/example-snippets/trigger_classes.cf diff --git a/examples/example-snippets/unit_registry.cf.cf b/content/examples/example-snippets/unit_registry.cf.cf similarity index 100% rename from examples/example-snippets/unit_registry.cf.cf rename to content/examples/example-snippets/unit_registry.cf.cf diff --git a/examples/example-snippets/unit_registry_cache.cf.cf b/content/examples/example-snippets/unit_registry_cache.cf.cf similarity index 100% rename from examples/example-snippets/unit_registry_cache.cf.cf rename to content/examples/example-snippets/unit_registry_cache.cf.cf diff --git a/examples/example-snippets/unmount_nfs_filesystem.cf b/content/examples/example-snippets/unmount_nfs_filesystem.cf similarity index 100% rename from examples/example-snippets/unmount_nfs_filesystem.cf rename to content/examples/example-snippets/unmount_nfs_filesystem.cf diff --git a/examples/example-snippets/updating_from_a_central_hub.cf b/content/examples/example-snippets/updating_from_a_central_hub.cf similarity index 100% rename from examples/example-snippets/updating_from_a_central_hub.cf rename to content/examples/example-snippets/updating_from_a_central_hub.cf diff --git a/examples/example-snippets/user-management.markdown b/content/examples/example-snippets/user-management.markdown similarity index 100% rename from examples/example-snippets/user-management.markdown rename to content/examples/example-snippets/user-management.markdown diff --git a/examples/example-snippets/variation_in_hosts.cf b/content/examples/example-snippets/variation_in_hosts.cf similarity index 100% rename from examples/example-snippets/variation_in_hosts.cf rename to content/examples/example-snippets/variation_in_hosts.cf diff --git a/examples/example-snippets/warn_if_matching_line_in_file.cf b/content/examples/example-snippets/warn_if_matching_line_in_file.cf similarity index 100% rename from examples/example-snippets/warn_if_matching_line_in_file.cf rename to content/examples/example-snippets/warn_if_matching_line_in_file.cf diff --git a/examples/example-snippets/web_server_modules.cf b/content/examples/example-snippets/web_server_modules.cf similarity index 100% rename from examples/example-snippets/web_server_modules.cf rename to content/examples/example-snippets/web_server_modules.cf diff --git a/examples/example-snippets/windows-registry.markdown b/content/examples/example-snippets/windows-registry.markdown similarity index 100% rename from examples/example-snippets/windows-registry.markdown rename to content/examples/example-snippets/windows-registry.markdown diff --git a/examples/example-snippets/windows_registry.cf b/content/examples/example-snippets/windows_registry.cf similarity index 100% rename from examples/example-snippets/windows_registry.cf rename to content/examples/example-snippets/windows_registry.cf diff --git a/examples/tutorials/Activated-sketch.png b/content/examples/tutorials/Activated-sketch.png similarity index 100% rename from examples/tutorials/Activated-sketch.png rename to content/examples/tutorials/Activated-sketch.png diff --git a/examples/tutorials/Report-builder-results.png b/content/examples/tutorials/Report-builder-results.png similarity index 100% rename from examples/tutorials/Report-builder-results.png rename to content/examples/tutorials/Report-builder-results.png diff --git a/examples/tutorials/Report-builder.png b/content/examples/tutorials/Report-builder.png similarity index 100% rename from examples/tutorials/Report-builder.png rename to content/examples/tutorials/Report-builder.png diff --git a/examples/tutorials/Report.png b/content/examples/tutorials/Report.png similarity index 100% rename from examples/tutorials/Report.png rename to content/examples/tutorials/Report.png diff --git a/examples/tutorials/Sketch.png b/content/examples/tutorials/Sketch.png similarity index 100% rename from examples/tutorials/Sketch.png rename to content/examples/tutorials/Sketch.png diff --git a/examples/tutorials/_index.markdown b/content/examples/tutorials/_index.markdown similarity index 100% rename from examples/tutorials/_index.markdown rename to content/examples/tutorials/_index.markdown diff --git a/examples/tutorials/add-new-tracker.png b/content/examples/tutorials/add-new-tracker.png similarity index 100% rename from examples/tutorials/add-new-tracker.png rename to content/examples/tutorials/add-new-tracker.png diff --git a/examples/tutorials/create_dashboard_alert1.png b/content/examples/tutorials/create_dashboard_alert1.png similarity index 100% rename from examples/tutorials/create_dashboard_alert1.png rename to content/examples/tutorials/create_dashboard_alert1.png diff --git a/examples/tutorials/create_dashboard_alert2.png b/content/examples/tutorials/create_dashboard_alert2.png similarity index 100% rename from examples/tutorials/create_dashboard_alert2.png rename to content/examples/tutorials/create_dashboard_alert2.png diff --git a/examples/tutorials/create_dashboard_alert3.png b/content/examples/tutorials/create_dashboard_alert3.png similarity index 100% rename from examples/tutorials/create_dashboard_alert3.png rename to content/examples/tutorials/create_dashboard_alert3.png diff --git a/examples/tutorials/create_dashboard_alert4.png b/content/examples/tutorials/create_dashboard_alert4.png similarity index 100% rename from examples/tutorials/create_dashboard_alert4.png rename to content/examples/tutorials/create_dashboard_alert4.png diff --git a/examples/tutorials/create_dashboard_alert5.png b/content/examples/tutorials/create_dashboard_alert5.png similarity index 100% rename from examples/tutorials/create_dashboard_alert5.png rename to content/examples/tutorials/create_dashboard_alert5.png diff --git a/examples/tutorials/custom_inventory.markdown b/content/examples/tutorials/custom_inventory.markdown similarity index 100% rename from examples/tutorials/custom_inventory.markdown rename to content/examples/tutorials/custom_inventory.markdown diff --git a/examples/tutorials/dashboard-alerts.markdown b/content/examples/tutorials/dashboard-alerts.markdown similarity index 100% rename from examples/tutorials/dashboard-alerts.markdown rename to content/examples/tutorials/dashboard-alerts.markdown diff --git a/examples/tutorials/distribute-files-from-a-central-location.markdown b/content/examples/tutorials/distribute-files-from-a-central-location.markdown similarity index 100% rename from examples/tutorials/distribute-files-from-a-central-location.markdown rename to content/examples/tutorials/distribute-files-from-a-central-location.markdown diff --git a/examples/tutorials/file_compare_test.cf b/content/examples/tutorials/file_compare_test.cf similarity index 100% rename from examples/tutorials/file_compare_test.cf rename to content/examples/tutorials/file_compare_test.cf diff --git a/examples/tutorials/file_comparison.markdown b/content/examples/tutorials/file_comparison.markdown similarity index 100% rename from examples/tutorials/file_comparison.markdown rename to content/examples/tutorials/file_comparison.markdown diff --git a/examples/tutorials/files-tutorial.markdown b/content/examples/tutorials/files-tutorial.markdown similarity index 100% rename from examples/tutorials/files-tutorial.markdown rename to content/examples/tutorials/files-tutorial.markdown diff --git a/examples/tutorials/high-availability/_index.markdown b/content/examples/tutorials/high-availability/_index.markdown similarity index 100% rename from examples/tutorials/high-availability/_index.markdown rename to content/examples/tutorials/high-availability/_index.markdown diff --git a/examples/tutorials/high-availability/ha_3.6.png b/content/examples/tutorials/high-availability/ha_3.6.png similarity index 100% rename from examples/tutorials/high-availability/ha_3.6.png rename to content/examples/tutorials/high-availability/ha_3.6.png diff --git a/examples/tutorials/high-availability/ha_degraded_indicator.png b/content/examples/tutorials/high-availability/ha_degraded_indicator.png similarity index 100% rename from examples/tutorials/high-availability/ha_degraded_indicator.png rename to content/examples/tutorials/high-availability/ha_degraded_indicator.png diff --git a/examples/tutorials/high-availability/ha_health_OK.png b/content/examples/tutorials/high-availability/ha_health_OK.png similarity index 100% rename from examples/tutorials/high-availability/ha_health_OK.png rename to content/examples/tutorials/high-availability/ha_health_OK.png diff --git a/examples/tutorials/high-availability/ha_inventory.png b/content/examples/tutorials/high-availability/ha_inventory.png similarity index 100% rename from examples/tutorials/high-availability/ha_inventory.png rename to content/examples/tutorials/high-availability/ha_inventory.png diff --git a/examples/tutorials/high-availability/ha_network_setup.png b/content/examples/tutorials/high-availability/ha_network_setup.png similarity index 100% rename from examples/tutorials/high-availability/ha_network_setup.png rename to content/examples/tutorials/high-availability/ha_network_setup.png diff --git a/examples/tutorials/high-availability/installation-guide.markdown b/content/examples/tutorials/high-availability/installation-guide.markdown similarity index 100% rename from examples/tutorials/high-availability/installation-guide.markdown rename to content/examples/tutorials/high-availability/installation-guide.markdown diff --git a/examples/tutorials/hosts-add-new-tracker.png b/content/examples/tutorials/hosts-add-new-tracker.png similarity index 100% rename from examples/tutorials/hosts-add-new-tracker.png rename to content/examples/tutorials/hosts-add-new-tracker.png diff --git a/examples/tutorials/installing-cfengine-enterprise-agent.markdown b/content/examples/tutorials/installing-cfengine-enterprise-agent.markdown similarity index 100% rename from examples/tutorials/installing-cfengine-enterprise-agent.markdown rename to content/examples/tutorials/installing-cfengine-enterprise-agent.markdown diff --git a/examples/tutorials/integrating-alerts-with-pager-duty.markdown b/content/examples/tutorials/integrating-alerts-with-pager-duty.markdown similarity index 100% rename from examples/tutorials/integrating-alerts-with-pager-duty.markdown rename to content/examples/tutorials/integrating-alerts-with-pager-duty.markdown diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_CFEngine-Service-Setup-800x512.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_CFEngine-Service-Setup-800x512.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_CFEngine-Service-Setup-800x512.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_CFEngine-Service-Setup-800x512.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_Services_-_PagerDuty.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_Services_-_PagerDuty.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_Services_-_PagerDuty.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_Services_-_PagerDuty.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_bundlesequence-800x357.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_bundlesequence-800x357.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_bundlesequence-800x357.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_bundlesequence-800x357.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_inputs-800x179.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_inputs-800x179.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_inputs-800x179.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_inputs-800x179.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_new_alert1.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_new_alert1.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_new_alert1.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_new_alert1.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_new_alert_bundle_repair.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_new_alert_bundle_repair.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_new_alert_bundle_repair.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_new_alert_bundle_repair.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_new_alert_details.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_new_alert_details.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_new_alert_details.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_new_alert_details.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_notification.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_notification.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_notification.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_notification.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_pagerduty_new_alert.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_pagerduty_new_alert.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_pagerduty_new_alert.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_pagerduty_new_alert.png diff --git a/examples/tutorials/integrating-alerts-with-pagerduty_type_policy.png b/content/examples/tutorials/integrating-alerts-with-pagerduty_type_policy.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-pagerduty_type_policy.png rename to content/examples/tutorials/integrating-alerts-with-pagerduty_type_policy.png diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems.markdown b/content/examples/tutorials/integrating-alerts-with-ticketing-systems.markdown similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems.markdown rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems.markdown diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems_alert_parameters_test.zip b/content/examples/tutorials/integrating-alerts-with-ticketing-systems_alert_parameters_test.zip similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems_alert_parameters_test.zip rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems_alert_parameters_test.zip diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems_cfengine_custom_action_jira.py.zip b/content/examples/tutorials/integrating-alerts-with-ticketing-systems_cfengine_custom_action_jira.py.zip similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems_cfengine_custom_action_jira.py.zip rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems_cfengine_custom_action_jira.py.zip diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-alert-association-jira.png b/content/examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-alert-association-jira.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-alert-association-jira.png rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-alert-association-jira.png diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-script-upload-jira.png b/content/examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-script-upload-jira.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-script-upload-jira.png rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems_custom-action-script-upload-jira.png diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems_policy-compliance-add-alert.png b/content/examples/tutorials/integrating-alerts-with-ticketing-systems_policy-compliance-add-alert.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems_policy-compliance-add-alert.png rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems_policy-compliance-add-alert.png diff --git a/examples/tutorials/integrating-alerts-with-ticketing-systems_web-service-condition.png b/content/examples/tutorials/integrating-alerts-with-ticketing-systems_web-service-condition.png similarity index 100% rename from examples/tutorials/integrating-alerts-with-ticketing-systems_web-service-condition.png rename to content/examples/tutorials/integrating-alerts-with-ticketing-systems_web-service-condition.png diff --git a/examples/tutorials/integrating-with-sumo-logic.markdown b/content/examples/tutorials/integrating-with-sumo-logic.markdown similarity index 100% rename from examples/tutorials/integrating-with-sumo-logic.markdown rename to content/examples/tutorials/integrating-with-sumo-logic.markdown diff --git a/examples/tutorials/integrating-with-sumo-logic_sumo.png b/content/examples/tutorials/integrating-with-sumo-logic_sumo.png similarity index 100% rename from examples/tutorials/integrating-with-sumo-logic_sumo.png rename to content/examples/tutorials/integrating-with-sumo-logic_sumo.png diff --git a/examples/tutorials/json-yaml-support-in-cfengine.markdown b/content/examples/tutorials/json-yaml-support-in-cfengine.markdown similarity index 100% rename from examples/tutorials/json-yaml-support-in-cfengine.markdown rename to content/examples/tutorials/json-yaml-support-in-cfengine.markdown diff --git a/examples/tutorials/manage-local-users.markdown b/content/examples/tutorials/manage-local-users.markdown similarity index 100% rename from examples/tutorials/manage-local-users.markdown rename to content/examples/tutorials/manage-local-users.markdown diff --git a/examples/tutorials/manage-ntp.markdown b/content/examples/tutorials/manage-ntp.markdown similarity index 100% rename from examples/tutorials/manage-ntp.markdown rename to content/examples/tutorials/manage-ntp.markdown diff --git a/examples/tutorials/manage-packages.markdown b/content/examples/tutorials/manage-packages.markdown similarity index 100% rename from examples/tutorials/manage-packages.markdown rename to content/examples/tutorials/manage-packages.markdown diff --git a/examples/tutorials/manage-processes-and-services.markdown b/content/examples/tutorials/manage-processes-and-services.markdown similarity index 100% rename from examples/tutorials/manage-processes-and-services.markdown rename to content/examples/tutorials/manage-processes-and-services.markdown diff --git a/examples/tutorials/masterfiles_policy_framework_upgrade.markdown b/content/examples/tutorials/masterfiles_policy_framework_upgrade.markdown similarity index 100% rename from examples/tutorials/masterfiles_policy_framework_upgrade.markdown rename to content/examples/tutorials/masterfiles_policy_framework_upgrade.markdown diff --git a/examples/tutorials/render-files-with-mustache-templates.markdown b/content/examples/tutorials/render-files-with-mustache-templates.markdown similarity index 100% rename from examples/tutorials/render-files-with-mustache-templates.markdown rename to content/examples/tutorials/render-files-with-mustache-templates.markdown diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_001.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_001.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_001.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_001.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_002.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_002.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_002.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_002.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_003.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_003.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_003.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_003.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_004.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_004.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_004.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_004.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_005.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_005.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_005.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_005.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_006.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_006.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_006.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_006.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_007.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_007.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_007.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_007.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_008.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_008.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_008.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_008.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_009.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_009.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_009.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_009.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_010.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_010.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_010.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_010.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_011.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_011.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_011.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_011.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_012.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_012.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_012.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_012.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_013.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_013.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_013.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_013.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_014.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_014.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_014.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_014.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_015.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_015.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_015.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_015.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_016.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_016.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_016.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_016.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_017.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_017.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_017.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_017.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_018.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_018.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_018.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_018.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_019.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_019.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_019.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_019.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_020.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_020.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_020.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_020.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_021.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_021.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_021.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_021.jpg diff --git a/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_022.jpg b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_022.jpg similarity index 100% rename from examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_022.jpg rename to content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities_2014-09-29-Selection_022.jpg diff --git a/examples/tutorials/reporting/_index.markdown b/content/examples/tutorials/reporting/_index.markdown similarity index 100% rename from examples/tutorials/reporting/_index.markdown rename to content/examples/tutorials/reporting/_index.markdown diff --git a/examples/tutorials/reporting/command-line-reports.markdown b/content/examples/tutorials/reporting/command-line-reports.markdown similarity index 100% rename from examples/tutorials/reporting/command-line-reports.markdown rename to content/examples/tutorials/reporting/command-line-reports.markdown diff --git a/examples/tutorials/reporting/monitoring-reporting.markdown b/content/examples/tutorials/reporting/monitoring-reporting.markdown similarity index 100% rename from examples/tutorials/reporting/monitoring-reporting.markdown rename to content/examples/tutorials/reporting/monitoring-reporting.markdown diff --git a/examples/tutorials/tags.markdown b/content/examples/tutorials/tags.markdown similarity index 100% rename from examples/tutorials/tags.markdown rename to content/examples/tutorials/tags.markdown diff --git a/examples/tutorials/tutorials_custom_inventory_attribute.png b/content/examples/tutorials/tutorials_custom_inventory_attribute.png similarity index 100% rename from examples/tutorials/tutorials_custom_inventory_attribute.png rename to content/examples/tutorials/tutorials_custom_inventory_attribute.png diff --git a/examples/tutorials/tutorials_custom_inventory_report.png b/content/examples/tutorials/tutorials_custom_inventory_report.png similarity index 100% rename from examples/tutorials/tutorials_custom_inventory_report.png rename to content/examples/tutorials/tutorials_custom_inventory_report.png diff --git a/examples/tutorials/write-cfengine-policy.markdown b/content/examples/tutorials/write-cfengine-policy.markdown similarity index 100% rename from examples/tutorials/write-cfengine-policy.markdown rename to content/examples/tutorials/write-cfengine-policy.markdown diff --git a/examples/tutorials/writing-and-serving-policy/_index.markdown b/content/examples/tutorials/writing-and-serving-policy/_index.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/_index.markdown rename to content/examples/tutorials/writing-and-serving-policy/_index.markdown diff --git a/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown b/content/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown rename to content/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown diff --git a/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown b/content/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown rename to content/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown diff --git a/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown b/content/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown rename to content/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown diff --git a/examples/tutorials/writing-and-serving-policy/editors.markdown b/content/examples/tutorials/writing-and-serving-policy/editors.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/editors.markdown rename to content/examples/tutorials/writing-and-serving-policy/editors.markdown diff --git a/examples/tutorials/writing-and-serving-policy/external_data.markdown b/content/examples/tutorials/writing-and-serving-policy/external_data.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/external_data.markdown rename to content/examples/tutorials/writing-and-serving-policy/external_data.markdown diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-atom.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-atom.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-atom.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-atom.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-0.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-0.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-0.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-0.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-1.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-1.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-1.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-1.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-2.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-2.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-2.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-2.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-3.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-3.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-3.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-eclipse-3.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-emacs.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-emacs.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-emacs.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-emacs.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-kate.jpg b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-kate.jpg similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-kate.jpg rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-kate.jpg diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-spacemacs.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-spacemacs.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-spacemacs.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-spacemacs.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-sublime-text.jpg b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-sublime-text.jpg similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-sublime-text.jpg rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-sublime-text.jpg diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-vim.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-vim.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-vim.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-vim.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-visual-studio-code.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-visual-studio-code.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-visual-studio-code.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-visual-studio-code.png diff --git a/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png b/content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png similarity index 100% rename from examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png rename to content/examples/tutorials/writing-and-serving-policy/guide-writing-and-serving-policy-editors-zed.png diff --git a/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown b/content/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown rename to content/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown diff --git a/examples/tutorials/writing-and-serving-policy/policy-style.markdown b/content/examples/tutorials/writing-and-serving-policy/policy-style.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/policy-style.markdown rename to content/examples/tutorials/writing-and-serving-policy/policy-style.markdown diff --git a/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown b/content/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown rename to content/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown diff --git a/examples/tutorials/writing-and-serving-policy/testing-policies.markdown b/content/examples/tutorials/writing-and-serving-policy/testing-policies.markdown similarity index 100% rename from examples/tutorials/writing-and-serving-policy/testing-policies.markdown rename to content/examples/tutorials/writing-and-serving-policy/testing-policies.markdown diff --git a/getting-started/_index.markdown b/content/getting-started/_index.markdown similarity index 100% rename from getting-started/_index.markdown rename to content/getting-started/_index.markdown diff --git a/getting-started/action-buttons.png b/content/getting-started/action-buttons.png similarity index 100% rename from getting-started/action-buttons.png rename to content/getting-started/action-buttons.png diff --git a/getting-started/compliance-report.png b/content/getting-started/compliance-report.png similarity index 100% rename from getting-started/compliance-report.png rename to content/getting-started/compliance-report.png diff --git a/getting-started/developing-modules.markdown b/content/getting-started/developing-modules.markdown similarity index 100% rename from getting-started/developing-modules.markdown rename to content/getting-started/developing-modules.markdown diff --git a/getting-started/digital-ocean.png b/content/getting-started/digital-ocean.png similarity index 100% rename from getting-started/digital-ocean.png rename to content/getting-started/digital-ocean.png diff --git a/getting-started/host-info.png b/content/getting-started/host-info.png similarity index 100% rename from getting-started/host-info.png rename to content/getting-started/host-info.png diff --git a/getting-started/host-specific-data-with-suggestion.png b/content/getting-started/host-specific-data-with-suggestion.png similarity index 100% rename from getting-started/host-specific-data-with-suggestion.png rename to content/getting-started/host-specific-data-with-suggestion.png diff --git a/getting-started/hugo-commit.png b/content/getting-started/hugo-commit.png similarity index 100% rename from getting-started/hugo-commit.png rename to content/getting-started/hugo-commit.png diff --git a/getting-started/installation/_index.markdown b/content/getting-started/installation/_index.markdown similarity index 100% rename from getting-started/installation/_index.markdown rename to content/getting-started/installation/_index.markdown diff --git a/getting-started/installation/general-installation/_index.markdown b/content/getting-started/installation/general-installation/_index.markdown similarity index 100% rename from getting-started/installation/general-installation/_index.markdown rename to content/getting-started/installation/general-installation/_index.markdown diff --git a/getting-started/installation/general-installation/common_next_steps.markdown b/content/getting-started/installation/general-installation/common_next_steps.markdown similarity index 100% rename from getting-started/installation/general-installation/common_next_steps.markdown rename to content/getting-started/installation/general-installation/common_next_steps.markdown diff --git a/getting-started/installation/general-installation/installation-community.markdown b/content/getting-started/installation/general-installation/installation-community.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-community.markdown rename to content/getting-started/installation/general-installation/installation-community.markdown diff --git a/getting-started/installation/general-installation/installation-coreos.markdown b/content/getting-started/installation/general-installation/installation-coreos.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-coreos.markdown rename to content/getting-started/installation/general-installation/installation-coreos.markdown diff --git a/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown b/content/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown rename to content/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown diff --git a/getting-started/installation/general-installation/installation-enterprise-free.markdown b/content/getting-started/installation/general-installation/installation-enterprise-free.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-enterprise-free.markdown rename to content/getting-started/installation/general-installation/installation-enterprise-free.markdown diff --git a/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown b/content/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown rename to content/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown diff --git a/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown b/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-enterprise-vagrant.markdown rename to content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown diff --git a/getting-started/installation/general-installation/installation-enterprise.markdown b/content/getting-started/installation/general-installation/installation-enterprise.markdown similarity index 100% rename from getting-started/installation/general-installation/installation-enterprise.markdown rename to content/getting-started/installation/general-installation/installation-enterprise.markdown diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-1.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-1.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-1.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-1.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-10.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-10.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-10.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-10.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-11.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-11.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-11.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-11.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-2.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-2.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-2.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-2.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-3.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-3.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-3.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-3.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-4.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-4.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-4.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-4.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-5.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-5.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-5.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-5.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-6.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-6.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-6.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-6.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-7.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-7.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-7.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-7.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-8.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-8.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-8.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-8.png diff --git a/getting-started/installation/img/Installing-CFE-on-AWS-9.png b/content/getting-started/installation/img/Installing-CFE-on-AWS-9.png similarity index 100% rename from getting-started/installation/img/Installing-CFE-on-AWS-9.png rename to content/getting-started/installation/img/Installing-CFE-on-AWS-9.png diff --git a/getting-started/installation/installation-overview.markdown b/content/getting-started/installation/installation-overview.markdown similarity index 100% rename from getting-started/installation/installation-overview.markdown rename to content/getting-started/installation/installation-overview.markdown diff --git a/getting-started/installation/local-virtual-machine.markdown b/content/getting-started/installation/local-virtual-machine.markdown similarity index 100% rename from getting-started/installation/local-virtual-machine.markdown rename to content/getting-started/installation/local-virtual-machine.markdown diff --git a/getting-started/installation/pre-installation-checklist/_index.markdown b/content/getting-started/installation/pre-installation-checklist/_index.markdown similarity index 100% rename from getting-started/installation/pre-installation-checklist/_index.markdown rename to content/getting-started/installation/pre-installation-checklist/_index.markdown diff --git a/getting-started/installation/pre-installation-checklist/putty-key-generator-window.png b/content/getting-started/installation/pre-installation-checklist/putty-key-generator-window.png similarity index 100% rename from getting-started/installation/pre-installation-checklist/putty-key-generator-window.png rename to content/getting-started/installation/pre-installation-checklist/putty-key-generator-window.png diff --git a/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown b/content/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown similarity index 100% rename from getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown rename to content/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown diff --git a/getting-started/installation/pre-installation-checklist/puttygen-interface.png b/content/getting-started/installation/pre-installation-checklist/puttygen-interface.png similarity index 100% rename from getting-started/installation/pre-installation-checklist/puttygen-interface.png rename to content/getting-started/installation/pre-installation-checklist/puttygen-interface.png diff --git a/getting-started/installation/pre-installation-checklist/puttygen-load-private-key-window.png b/content/getting-started/installation/pre-installation-checklist/puttygen-load-private-key-window.png similarity index 100% rename from getting-started/installation/pre-installation-checklist/puttygen-load-private-key-window.png rename to content/getting-started/installation/pre-installation-checklist/puttygen-load-private-key-window.png diff --git a/getting-started/installation/pre-installation-checklist/verify-signatures.markdown b/content/getting-started/installation/pre-installation-checklist/verify-signatures.markdown similarity index 100% rename from getting-started/installation/pre-installation-checklist/verify-signatures.markdown rename to content/getting-started/installation/pre-installation-checklist/verify-signatures.markdown diff --git a/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown b/content/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown similarity index 100% rename from getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown rename to content/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown diff --git a/getting-started/installation/secure-bootstrap.markdown b/content/getting-started/installation/secure-bootstrap.markdown similarity index 100% rename from getting-started/installation/secure-bootstrap.markdown rename to content/getting-started/installation/secure-bootstrap.markdown diff --git a/getting-started/installation/upgrading.markdown b/content/getting-started/installation/upgrading.markdown similarity index 100% rename from getting-started/installation/upgrading.markdown rename to content/getting-started/installation/upgrading.markdown diff --git a/getting-started/installation/version-control.markdown b/content/getting-started/installation/version-control.markdown similarity index 100% rename from getting-started/installation/version-control.markdown rename to content/getting-started/installation/version-control.markdown diff --git a/getting-started/inventory-reports.gif b/content/getting-started/inventory-reports.gif similarity index 100% rename from getting-started/inventory-reports.gif rename to content/getting-started/inventory-reports.gif diff --git a/getting-started/inventory-section.png b/content/getting-started/inventory-section.png similarity index 100% rename from getting-started/inventory-section.png rename to content/getting-started/inventory-section.png diff --git a/getting-started/inventory-sudoers.gif b/content/getting-started/inventory-sudoers.gif similarity index 100% rename from getting-started/inventory-sudoers.gif rename to content/getting-started/inventory-sudoers.gif diff --git a/getting-started/machines.png b/content/getting-started/machines.png similarity index 100% rename from getting-started/machines.png rename to content/getting-started/machines.png diff --git a/getting-started/modules-from-cfengine-build.markdown b/content/getting-started/modules-from-cfengine-build.markdown similarity index 100% rename from getting-started/modules-from-cfengine-build.markdown rename to content/getting-started/modules-from-cfengine-build.markdown diff --git a/getting-started/mp-login.png b/content/getting-started/mp-login.png similarity index 100% rename from getting-started/mp-login.png rename to content/getting-started/mp-login.png diff --git a/getting-started/os-is-vendor-supported.gif b/content/getting-started/os-is-vendor-supported.gif similarity index 100% rename from getting-started/os-is-vendor-supported.gif rename to content/getting-started/os-is-vendor-supported.gif diff --git a/getting-started/policy-analyzer.png b/content/getting-started/policy-analyzer.png similarity index 100% rename from getting-started/policy-analyzer.png rename to content/getting-started/policy-analyzer.png diff --git a/getting-started/reporting-and-web-ui.markdown b/content/getting-started/reporting-and-web-ui.markdown similarity index 100% rename from getting-started/reporting-and-web-ui.markdown rename to content/getting-started/reporting-and-web-ui.markdown diff --git a/getting-started/workflow.png b/content/getting-started/workflow.png similarity index 100% rename from getting-started/workflow.png rename to content/getting-started/workflow.png diff --git a/getting-started/writing-policy.markdown b/content/getting-started/writing-policy.markdown similarity index 100% rename from getting-started/writing-policy.markdown rename to content/getting-started/writing-policy.markdown diff --git a/guide/CFEngine-workflow-agents-and-users.png b/content/guide/CFEngine-workflow-agents-and-users.png similarity index 100% rename from guide/CFEngine-workflow-agents-and-users.png rename to content/guide/CFEngine-workflow-agents-and-users.png diff --git a/guide/DCsketchworkflow.png b/content/guide/DCsketchworkflow.png similarity index 100% rename from guide/DCsketchworkflow.png rename to content/guide/DCsketchworkflow.png diff --git a/guide/_index.markdown b/content/guide/_index.markdown similarity index 100% rename from guide/_index.markdown rename to content/guide/_index.markdown diff --git a/guide/components-overview.graffle b/content/guide/components-overview.graffle similarity index 100% rename from guide/components-overview.graffle rename to content/guide/components-overview.graffle diff --git a/guide/components-overview.png b/content/guide/components-overview.png similarity index 100% rename from guide/components-overview.png rename to content/guide/components-overview.png diff --git a/guide/design-center/Activated-sketch-copy.png b/content/guide/design-center/Activated-sketch-copy.png similarity index 100% rename from guide/design-center/Activated-sketch-copy.png rename to content/guide/design-center/Activated-sketch-copy.png diff --git a/guide/design-center/add-new-tracker-copy.png b/content/guide/design-center/add-new-tracker-copy.png similarity index 100% rename from guide/design-center/add-new-tracker-copy.png rename to content/guide/design-center/add-new-tracker-copy.png diff --git a/guide/learn_CFEngine-process-in-1-2-3_blocks_with_arrows.png b/content/guide/learn_CFEngine-process-in-1-2-3_blocks_with_arrows.png similarity index 100% rename from guide/learn_CFEngine-process-in-1-2-3_blocks_with_arrows.png rename to content/guide/learn_CFEngine-process-in-1-2-3_blocks_with_arrows.png diff --git a/guide/policy-decision-flow.png b/content/guide/policy-decision-flow.png similarity index 100% rename from guide/policy-decision-flow.png rename to content/guide/policy-decision-flow.png diff --git a/overview/_index.markdown b/content/overview/_index.markdown similarity index 100% rename from overview/_index.markdown rename to content/overview/_index.markdown diff --git a/overview/client-server-communication.markdown b/content/overview/client-server-communication.markdown similarity index 100% rename from overview/client-server-communication.markdown rename to content/overview/client-server-communication.markdown diff --git a/overview/directory-structure.markdown b/content/overview/directory-structure.markdown similarity index 100% rename from overview/directory-structure.markdown rename to content/overview/directory-structure.markdown diff --git a/overview/glossary.markdown b/content/overview/glossary.markdown similarity index 100% rename from overview/glossary.markdown rename to content/overview/glossary.markdown diff --git a/overview/how-cfengine-works.markdown b/content/overview/how-cfengine-works.markdown similarity index 100% rename from overview/how-cfengine-works.markdown rename to content/overview/how-cfengine-works.markdown diff --git a/overview/what-is-cfengine-and-why.markdown b/content/overview/what-is-cfengine-and-why.markdown similarity index 100% rename from overview/what-is-cfengine-and-why.markdown rename to content/overview/what-is-cfengine-and-why.markdown diff --git a/reference/_index.markdown b/content/reference/_index.markdown similarity index 100% rename from reference/_index.markdown rename to content/reference/_index.markdown diff --git a/reference/all-types.markdown b/content/reference/all-types.markdown similarity index 100% rename from reference/all-types.markdown rename to content/reference/all-types.markdown diff --git a/reference/common-attributes-include.markdown b/content/reference/common-attributes-include.markdown similarity index 100% rename from reference/common-attributes-include.markdown rename to content/reference/common-attributes-include.markdown diff --git a/reference/common-body-attributes-include.markdown b/content/reference/common-body-attributes-include.markdown similarity index 100% rename from reference/common-body-attributes-include.markdown rename to content/reference/common-body-attributes-include.markdown diff --git a/reference/components/_index.markdown b/content/reference/components/_index.markdown similarity index 100% rename from reference/components/_index.markdown rename to content/reference/components/_index.markdown diff --git a/reference/components/cf-agent.markdown b/content/reference/components/cf-agent.markdown similarity index 100% rename from reference/components/cf-agent.markdown rename to content/reference/components/cf-agent.markdown diff --git a/reference/components/cf-check.markdown b/content/reference/components/cf-check.markdown similarity index 100% rename from reference/components/cf-check.markdown rename to content/reference/components/cf-check.markdown diff --git a/reference/components/cf-execd.markdown b/content/reference/components/cf-execd.markdown similarity index 100% rename from reference/components/cf-execd.markdown rename to content/reference/components/cf-execd.markdown diff --git a/reference/components/cf-hub.markdown b/content/reference/components/cf-hub.markdown similarity index 100% rename from reference/components/cf-hub.markdown rename to content/reference/components/cf-hub.markdown diff --git a/reference/components/cf-key.markdown b/content/reference/components/cf-key.markdown similarity index 100% rename from reference/components/cf-key.markdown rename to content/reference/components/cf-key.markdown diff --git a/reference/components/cf-monitord.markdown b/content/reference/components/cf-monitord.markdown similarity index 100% rename from reference/components/cf-monitord.markdown rename to content/reference/components/cf-monitord.markdown diff --git a/reference/components/cf-net.markdown b/content/reference/components/cf-net.markdown similarity index 100% rename from reference/components/cf-net.markdown rename to content/reference/components/cf-net.markdown diff --git a/reference/components/cf-promises.markdown b/content/reference/components/cf-promises.markdown similarity index 100% rename from reference/components/cf-promises.markdown rename to content/reference/components/cf-promises.markdown diff --git a/reference/components/cf-reactor.markdown b/content/reference/components/cf-reactor.markdown similarity index 100% rename from reference/components/cf-reactor.markdown rename to content/reference/components/cf-reactor.markdown diff --git a/reference/components/cf-runagent.markdown b/content/reference/components/cf-runagent.markdown similarity index 100% rename from reference/components/cf-runagent.markdown rename to content/reference/components/cf-runagent.markdown diff --git a/reference/components/cf-secret.markdown b/content/reference/components/cf-secret.markdown similarity index 100% rename from reference/components/cf-secret.markdown rename to content/reference/components/cf-secret.markdown diff --git a/reference/components/cf-serverd.markdown b/content/reference/components/cf-serverd.markdown similarity index 100% rename from reference/components/cf-serverd.markdown rename to content/reference/components/cf-serverd.markdown diff --git a/reference/components/cf-support.markdown b/content/reference/components/cf-support.markdown similarity index 100% rename from reference/components/cf-support.markdown rename to content/reference/components/cf-support.markdown diff --git a/reference/components/file_control_promises.markdown b/content/reference/components/file_control_promises.markdown similarity index 100% rename from reference/components/file_control_promises.markdown rename to content/reference/components/file_control_promises.markdown diff --git a/reference/functions/TEMPLATE b/content/reference/functions/TEMPLATE similarity index 100% rename from reference/functions/TEMPLATE rename to content/reference/functions/TEMPLATE diff --git a/reference/functions/_index.markdown b/content/reference/functions/_index.markdown similarity index 100% rename from reference/functions/_index.markdown rename to content/reference/functions/_index.markdown diff --git a/reference/functions/accessedbefore.markdown b/content/reference/functions/accessedbefore.markdown similarity index 100% rename from reference/functions/accessedbefore.markdown rename to content/reference/functions/accessedbefore.markdown diff --git a/reference/functions/accumulated.markdown b/content/reference/functions/accumulated.markdown similarity index 100% rename from reference/functions/accumulated.markdown rename to content/reference/functions/accumulated.markdown diff --git a/reference/functions/ago.markdown b/content/reference/functions/ago.markdown similarity index 100% rename from reference/functions/ago.markdown rename to content/reference/functions/ago.markdown diff --git a/reference/functions/and.markdown b/content/reference/functions/and.markdown similarity index 100% rename from reference/functions/and.markdown rename to content/reference/functions/and.markdown diff --git a/reference/functions/basename.markdown b/content/reference/functions/basename.markdown similarity index 100% rename from reference/functions/basename.markdown rename to content/reference/functions/basename.markdown diff --git a/reference/functions/bundlesmatching.markdown b/content/reference/functions/bundlesmatching.markdown similarity index 100% rename from reference/functions/bundlesmatching.markdown rename to content/reference/functions/bundlesmatching.markdown diff --git a/reference/functions/bundlestate.markdown b/content/reference/functions/bundlestate.markdown similarity index 100% rename from reference/functions/bundlestate.markdown rename to content/reference/functions/bundlestate.markdown diff --git a/reference/functions/callstack_callers.markdown b/content/reference/functions/callstack_callers.markdown similarity index 100% rename from reference/functions/callstack_callers.markdown rename to content/reference/functions/callstack_callers.markdown diff --git a/reference/functions/callstack_promisers.markdown b/content/reference/functions/callstack_promisers.markdown similarity index 100% rename from reference/functions/callstack_promisers.markdown rename to content/reference/functions/callstack_promisers.markdown diff --git a/reference/functions/canonify.markdown b/content/reference/functions/canonify.markdown similarity index 100% rename from reference/functions/canonify.markdown rename to content/reference/functions/canonify.markdown diff --git a/reference/functions/canonifyuniquely.markdown b/content/reference/functions/canonifyuniquely.markdown similarity index 100% rename from reference/functions/canonifyuniquely.markdown rename to content/reference/functions/canonifyuniquely.markdown diff --git a/reference/functions/cf_version_after.markdown b/content/reference/functions/cf_version_after.markdown similarity index 100% rename from reference/functions/cf_version_after.markdown rename to content/reference/functions/cf_version_after.markdown diff --git a/reference/functions/cf_version_at.markdown b/content/reference/functions/cf_version_at.markdown similarity index 100% rename from reference/functions/cf_version_at.markdown rename to content/reference/functions/cf_version_at.markdown diff --git a/reference/functions/cf_version_before.markdown b/content/reference/functions/cf_version_before.markdown similarity index 100% rename from reference/functions/cf_version_before.markdown rename to content/reference/functions/cf_version_before.markdown diff --git a/reference/functions/cf_version_between.markdown b/content/reference/functions/cf_version_between.markdown similarity index 100% rename from reference/functions/cf_version_between.markdown rename to content/reference/functions/cf_version_between.markdown diff --git a/reference/functions/cf_version_maximum.markdown b/content/reference/functions/cf_version_maximum.markdown similarity index 100% rename from reference/functions/cf_version_maximum.markdown rename to content/reference/functions/cf_version_maximum.markdown diff --git a/reference/functions/cf_version_minimum.markdown b/content/reference/functions/cf_version_minimum.markdown similarity index 100% rename from reference/functions/cf_version_minimum.markdown rename to content/reference/functions/cf_version_minimum.markdown diff --git a/reference/functions/changedbefore.markdown b/content/reference/functions/changedbefore.markdown similarity index 100% rename from reference/functions/changedbefore.markdown rename to content/reference/functions/changedbefore.markdown diff --git a/reference/functions/classesmatching.markdown b/content/reference/functions/classesmatching.markdown similarity index 100% rename from reference/functions/classesmatching.markdown rename to content/reference/functions/classesmatching.markdown diff --git a/reference/functions/classfiltercsv.markdown b/content/reference/functions/classfiltercsv.markdown similarity index 100% rename from reference/functions/classfiltercsv.markdown rename to content/reference/functions/classfiltercsv.markdown diff --git a/reference/functions/classify.markdown b/content/reference/functions/classify.markdown similarity index 100% rename from reference/functions/classify.markdown rename to content/reference/functions/classify.markdown diff --git a/reference/functions/classmatch.markdown b/content/reference/functions/classmatch.markdown similarity index 100% rename from reference/functions/classmatch.markdown rename to content/reference/functions/classmatch.markdown diff --git a/reference/functions/concat.markdown b/content/reference/functions/concat.markdown similarity index 100% rename from reference/functions/concat.markdown rename to content/reference/functions/concat.markdown diff --git a/reference/functions/countclassesmatching.markdown b/content/reference/functions/countclassesmatching.markdown similarity index 100% rename from reference/functions/countclassesmatching.markdown rename to content/reference/functions/countclassesmatching.markdown diff --git a/reference/functions/countlinesmatching.markdown b/content/reference/functions/countlinesmatching.markdown similarity index 100% rename from reference/functions/countlinesmatching.markdown rename to content/reference/functions/countlinesmatching.markdown diff --git a/reference/functions/data_expand.markdown b/content/reference/functions/data_expand.markdown similarity index 100% rename from reference/functions/data_expand.markdown rename to content/reference/functions/data_expand.markdown diff --git a/reference/functions/data_readstringarray.markdown b/content/reference/functions/data_readstringarray.markdown similarity index 100% rename from reference/functions/data_readstringarray.markdown rename to content/reference/functions/data_readstringarray.markdown diff --git a/reference/functions/data_readstringarrayidx.markdown b/content/reference/functions/data_readstringarrayidx.markdown similarity index 100% rename from reference/functions/data_readstringarrayidx.markdown rename to content/reference/functions/data_readstringarrayidx.markdown diff --git a/reference/functions/data_regextract.markdown b/content/reference/functions/data_regextract.markdown similarity index 100% rename from reference/functions/data_regextract.markdown rename to content/reference/functions/data_regextract.markdown diff --git a/reference/functions/data_sysctlvalues.markdown b/content/reference/functions/data_sysctlvalues.markdown similarity index 100% rename from reference/functions/data_sysctlvalues.markdown rename to content/reference/functions/data_sysctlvalues.markdown diff --git a/reference/functions/datastate.markdown b/content/reference/functions/datastate.markdown similarity index 100% rename from reference/functions/datastate.markdown rename to content/reference/functions/datastate.markdown diff --git a/reference/functions/difference.markdown b/content/reference/functions/difference.markdown similarity index 100% rename from reference/functions/difference.markdown rename to content/reference/functions/difference.markdown diff --git a/reference/functions/dirname.markdown b/content/reference/functions/dirname.markdown similarity index 100% rename from reference/functions/dirname.markdown rename to content/reference/functions/dirname.markdown diff --git a/reference/functions/diskfree.markdown b/content/reference/functions/diskfree.markdown similarity index 100% rename from reference/functions/diskfree.markdown rename to content/reference/functions/diskfree.markdown diff --git a/reference/functions/escape.markdown b/content/reference/functions/escape.markdown similarity index 100% rename from reference/functions/escape.markdown rename to content/reference/functions/escape.markdown diff --git a/reference/functions/eval.markdown b/content/reference/functions/eval.markdown similarity index 100% rename from reference/functions/eval.markdown rename to content/reference/functions/eval.markdown diff --git a/reference/functions/every.markdown b/content/reference/functions/every.markdown similarity index 100% rename from reference/functions/every.markdown rename to content/reference/functions/every.markdown diff --git a/reference/functions/execresult.markdown b/content/reference/functions/execresult.markdown similarity index 100% rename from reference/functions/execresult.markdown rename to content/reference/functions/execresult.markdown diff --git a/reference/functions/execresult_as_data.markdown b/content/reference/functions/execresult_as_data.markdown similarity index 100% rename from reference/functions/execresult_as_data.markdown rename to content/reference/functions/execresult_as_data.markdown diff --git a/reference/functions/expandrange.markdown b/content/reference/functions/expandrange.markdown similarity index 100% rename from reference/functions/expandrange.markdown rename to content/reference/functions/expandrange.markdown diff --git a/reference/functions/file_hash.markdown b/content/reference/functions/file_hash.markdown similarity index 100% rename from reference/functions/file_hash.markdown rename to content/reference/functions/file_hash.markdown diff --git a/reference/functions/fileexists.markdown b/content/reference/functions/fileexists.markdown similarity index 100% rename from reference/functions/fileexists.markdown rename to content/reference/functions/fileexists.markdown diff --git a/reference/functions/filesexist.markdown b/content/reference/functions/filesexist.markdown similarity index 100% rename from reference/functions/filesexist.markdown rename to content/reference/functions/filesexist.markdown diff --git a/reference/functions/filesize.markdown b/content/reference/functions/filesize.markdown similarity index 100% rename from reference/functions/filesize.markdown rename to content/reference/functions/filesize.markdown diff --git a/reference/functions/filestat.markdown b/content/reference/functions/filestat.markdown similarity index 100% rename from reference/functions/filestat.markdown rename to content/reference/functions/filestat.markdown diff --git a/reference/functions/filter.markdown b/content/reference/functions/filter.markdown similarity index 100% rename from reference/functions/filter.markdown rename to content/reference/functions/filter.markdown diff --git a/reference/functions/findfiles.markdown b/content/reference/functions/findfiles.markdown similarity index 100% rename from reference/functions/findfiles.markdown rename to content/reference/functions/findfiles.markdown diff --git a/reference/functions/findfiles_up.markdown b/content/reference/functions/findfiles_up.markdown similarity index 100% rename from reference/functions/findfiles_up.markdown rename to content/reference/functions/findfiles_up.markdown diff --git a/reference/functions/findprocesses.markdown b/content/reference/functions/findprocesses.markdown similarity index 100% rename from reference/functions/findprocesses.markdown rename to content/reference/functions/findprocesses.markdown diff --git a/reference/functions/format.markdown b/content/reference/functions/format.markdown similarity index 100% rename from reference/functions/format.markdown rename to content/reference/functions/format.markdown diff --git a/reference/functions/getclassmetatags.markdown b/content/reference/functions/getclassmetatags.markdown similarity index 100% rename from reference/functions/getclassmetatags.markdown rename to content/reference/functions/getclassmetatags.markdown diff --git a/reference/functions/getenv.markdown b/content/reference/functions/getenv.markdown similarity index 100% rename from reference/functions/getenv.markdown rename to content/reference/functions/getenv.markdown diff --git a/reference/functions/getfields.markdown b/content/reference/functions/getfields.markdown similarity index 100% rename from reference/functions/getfields.markdown rename to content/reference/functions/getfields.markdown diff --git a/reference/functions/getgid.markdown b/content/reference/functions/getgid.markdown similarity index 100% rename from reference/functions/getgid.markdown rename to content/reference/functions/getgid.markdown diff --git a/reference/functions/getindices.markdown b/content/reference/functions/getindices.markdown similarity index 100% rename from reference/functions/getindices.markdown rename to content/reference/functions/getindices.markdown diff --git a/reference/functions/getuid.markdown b/content/reference/functions/getuid.markdown similarity index 100% rename from reference/functions/getuid.markdown rename to content/reference/functions/getuid.markdown diff --git a/reference/functions/getuserinfo.markdown b/content/reference/functions/getuserinfo.markdown similarity index 100% rename from reference/functions/getuserinfo.markdown rename to content/reference/functions/getuserinfo.markdown diff --git a/reference/functions/getusers.markdown b/content/reference/functions/getusers.markdown similarity index 100% rename from reference/functions/getusers.markdown rename to content/reference/functions/getusers.markdown diff --git a/reference/functions/getvalues.markdown b/content/reference/functions/getvalues.markdown similarity index 100% rename from reference/functions/getvalues.markdown rename to content/reference/functions/getvalues.markdown diff --git a/reference/functions/getvariablemetatags.markdown b/content/reference/functions/getvariablemetatags.markdown similarity index 100% rename from reference/functions/getvariablemetatags.markdown rename to content/reference/functions/getvariablemetatags.markdown diff --git a/reference/functions/grep.markdown b/content/reference/functions/grep.markdown similarity index 100% rename from reference/functions/grep.markdown rename to content/reference/functions/grep.markdown diff --git a/reference/functions/groupexists.markdown b/content/reference/functions/groupexists.markdown similarity index 100% rename from reference/functions/groupexists.markdown rename to content/reference/functions/groupexists.markdown diff --git a/reference/functions/hash.markdown b/content/reference/functions/hash.markdown similarity index 100% rename from reference/functions/hash.markdown rename to content/reference/functions/hash.markdown diff --git a/reference/functions/hash_to_int.markdown b/content/reference/functions/hash_to_int.markdown similarity index 100% rename from reference/functions/hash_to_int.markdown rename to content/reference/functions/hash_to_int.markdown diff --git a/reference/functions/hashmatch.markdown b/content/reference/functions/hashmatch.markdown similarity index 100% rename from reference/functions/hashmatch.markdown rename to content/reference/functions/hashmatch.markdown diff --git a/reference/functions/host2ip.markdown b/content/reference/functions/host2ip.markdown similarity index 100% rename from reference/functions/host2ip.markdown rename to content/reference/functions/host2ip.markdown diff --git a/reference/functions/hostinnetgroup.markdown b/content/reference/functions/hostinnetgroup.markdown similarity index 100% rename from reference/functions/hostinnetgroup.markdown rename to content/reference/functions/hostinnetgroup.markdown diff --git a/reference/functions/hostrange.markdown b/content/reference/functions/hostrange.markdown similarity index 100% rename from reference/functions/hostrange.markdown rename to content/reference/functions/hostrange.markdown diff --git a/reference/functions/hostsseen.markdown b/content/reference/functions/hostsseen.markdown similarity index 100% rename from reference/functions/hostsseen.markdown rename to content/reference/functions/hostsseen.markdown diff --git a/reference/functions/hostswithclass.markdown b/content/reference/functions/hostswithclass.markdown similarity index 100% rename from reference/functions/hostswithclass.markdown rename to content/reference/functions/hostswithclass.markdown diff --git a/reference/functions/hubknowledge.markdown b/content/reference/functions/hubknowledge.markdown similarity index 100% rename from reference/functions/hubknowledge.markdown rename to content/reference/functions/hubknowledge.markdown diff --git a/reference/functions/ifelse.markdown b/content/reference/functions/ifelse.markdown similarity index 100% rename from reference/functions/ifelse.markdown rename to content/reference/functions/ifelse.markdown diff --git a/reference/functions/int.markdown b/content/reference/functions/int.markdown similarity index 100% rename from reference/functions/int.markdown rename to content/reference/functions/int.markdown diff --git a/reference/functions/intersection.markdown b/content/reference/functions/intersection.markdown similarity index 100% rename from reference/functions/intersection.markdown rename to content/reference/functions/intersection.markdown diff --git a/reference/functions/ip2host.markdown b/content/reference/functions/ip2host.markdown similarity index 100% rename from reference/functions/ip2host.markdown rename to content/reference/functions/ip2host.markdown diff --git a/reference/functions/iprange.markdown b/content/reference/functions/iprange.markdown similarity index 100% rename from reference/functions/iprange.markdown rename to content/reference/functions/iprange.markdown diff --git a/reference/functions/irange.markdown b/content/reference/functions/irange.markdown similarity index 100% rename from reference/functions/irange.markdown rename to content/reference/functions/irange.markdown diff --git a/reference/functions/isdir.markdown b/content/reference/functions/isdir.markdown similarity index 100% rename from reference/functions/isdir.markdown rename to content/reference/functions/isdir.markdown diff --git a/reference/functions/isexecutable.markdown b/content/reference/functions/isexecutable.markdown similarity index 100% rename from reference/functions/isexecutable.markdown rename to content/reference/functions/isexecutable.markdown diff --git a/reference/functions/isgreaterthan.markdown b/content/reference/functions/isgreaterthan.markdown similarity index 100% rename from reference/functions/isgreaterthan.markdown rename to content/reference/functions/isgreaterthan.markdown diff --git a/reference/functions/isipinsubnet.markdown b/content/reference/functions/isipinsubnet.markdown similarity index 100% rename from reference/functions/isipinsubnet.markdown rename to content/reference/functions/isipinsubnet.markdown diff --git a/reference/functions/islessthan.markdown b/content/reference/functions/islessthan.markdown similarity index 100% rename from reference/functions/islessthan.markdown rename to content/reference/functions/islessthan.markdown diff --git a/reference/functions/islink.markdown b/content/reference/functions/islink.markdown similarity index 100% rename from reference/functions/islink.markdown rename to content/reference/functions/islink.markdown diff --git a/reference/functions/isnewerthan.markdown b/content/reference/functions/isnewerthan.markdown similarity index 100% rename from reference/functions/isnewerthan.markdown rename to content/reference/functions/isnewerthan.markdown diff --git a/reference/functions/isplain.markdown b/content/reference/functions/isplain.markdown similarity index 100% rename from reference/functions/isplain.markdown rename to content/reference/functions/isplain.markdown diff --git a/reference/functions/isreadable.markdown b/content/reference/functions/isreadable.markdown similarity index 100% rename from reference/functions/isreadable.markdown rename to content/reference/functions/isreadable.markdown diff --git a/reference/functions/isvariable.markdown b/content/reference/functions/isvariable.markdown similarity index 100% rename from reference/functions/isvariable.markdown rename to content/reference/functions/isvariable.markdown diff --git a/reference/functions/join.markdown b/content/reference/functions/join.markdown similarity index 100% rename from reference/functions/join.markdown rename to content/reference/functions/join.markdown diff --git a/reference/functions/lastnode.markdown b/content/reference/functions/lastnode.markdown similarity index 100% rename from reference/functions/lastnode.markdown rename to content/reference/functions/lastnode.markdown diff --git a/reference/functions/laterthan.markdown b/content/reference/functions/laterthan.markdown similarity index 100% rename from reference/functions/laterthan.markdown rename to content/reference/functions/laterthan.markdown diff --git a/reference/functions/ldaparray.markdown b/content/reference/functions/ldaparray.markdown similarity index 100% rename from reference/functions/ldaparray.markdown rename to content/reference/functions/ldaparray.markdown diff --git a/reference/functions/ldaplist.markdown b/content/reference/functions/ldaplist.markdown similarity index 100% rename from reference/functions/ldaplist.markdown rename to content/reference/functions/ldaplist.markdown diff --git a/reference/functions/ldapvalue.markdown b/content/reference/functions/ldapvalue.markdown similarity index 100% rename from reference/functions/ldapvalue.markdown rename to content/reference/functions/ldapvalue.markdown diff --git a/reference/functions/length.markdown b/content/reference/functions/length.markdown similarity index 100% rename from reference/functions/length.markdown rename to content/reference/functions/length.markdown diff --git a/reference/functions/lsdir.markdown b/content/reference/functions/lsdir.markdown similarity index 100% rename from reference/functions/lsdir.markdown rename to content/reference/functions/lsdir.markdown diff --git a/reference/functions/makerule.markdown b/content/reference/functions/makerule.markdown similarity index 100% rename from reference/functions/makerule.markdown rename to content/reference/functions/makerule.markdown diff --git a/reference/functions/maparray.markdown b/content/reference/functions/maparray.markdown similarity index 100% rename from reference/functions/maparray.markdown rename to content/reference/functions/maparray.markdown diff --git a/reference/functions/mapdata.markdown b/content/reference/functions/mapdata.markdown similarity index 100% rename from reference/functions/mapdata.markdown rename to content/reference/functions/mapdata.markdown diff --git a/reference/functions/maplist.markdown b/content/reference/functions/maplist.markdown similarity index 100% rename from reference/functions/maplist.markdown rename to content/reference/functions/maplist.markdown diff --git a/reference/functions/max.markdown b/content/reference/functions/max.markdown similarity index 100% rename from reference/functions/max.markdown rename to content/reference/functions/max.markdown diff --git a/reference/functions/mean.markdown b/content/reference/functions/mean.markdown similarity index 100% rename from reference/functions/mean.markdown rename to content/reference/functions/mean.markdown diff --git a/reference/functions/mergedata.markdown b/content/reference/functions/mergedata.markdown similarity index 100% rename from reference/functions/mergedata.markdown rename to content/reference/functions/mergedata.markdown diff --git a/reference/functions/min.markdown b/content/reference/functions/min.markdown similarity index 100% rename from reference/functions/min.markdown rename to content/reference/functions/min.markdown diff --git a/reference/functions/network_connections.markdown b/content/reference/functions/network_connections.markdown similarity index 100% rename from reference/functions/network_connections.markdown rename to content/reference/functions/network_connections.markdown diff --git a/reference/functions/none.markdown b/content/reference/functions/none.markdown similarity index 100% rename from reference/functions/none.markdown rename to content/reference/functions/none.markdown diff --git a/reference/functions/not.markdown b/content/reference/functions/not.markdown similarity index 100% rename from reference/functions/not.markdown rename to content/reference/functions/not.markdown diff --git a/reference/functions/now.markdown b/content/reference/functions/now.markdown similarity index 100% rename from reference/functions/now.markdown rename to content/reference/functions/now.markdown diff --git a/reference/functions/nth.markdown b/content/reference/functions/nth.markdown similarity index 100% rename from reference/functions/nth.markdown rename to content/reference/functions/nth.markdown diff --git a/reference/functions/on.markdown b/content/reference/functions/on.markdown similarity index 100% rename from reference/functions/on.markdown rename to content/reference/functions/on.markdown diff --git a/reference/functions/or.markdown b/content/reference/functions/or.markdown similarity index 100% rename from reference/functions/or.markdown rename to content/reference/functions/or.markdown diff --git a/reference/functions/packagesmatching.markdown b/content/reference/functions/packagesmatching.markdown similarity index 100% rename from reference/functions/packagesmatching.markdown rename to content/reference/functions/packagesmatching.markdown diff --git a/reference/functions/packageupdatesmatching.markdown b/content/reference/functions/packageupdatesmatching.markdown similarity index 100% rename from reference/functions/packageupdatesmatching.markdown rename to content/reference/functions/packageupdatesmatching.markdown diff --git a/reference/functions/parseintarray.markdown b/content/reference/functions/parseintarray.markdown similarity index 100% rename from reference/functions/parseintarray.markdown rename to content/reference/functions/parseintarray.markdown diff --git a/reference/functions/parsejson.markdown b/content/reference/functions/parsejson.markdown similarity index 100% rename from reference/functions/parsejson.markdown rename to content/reference/functions/parsejson.markdown diff --git a/reference/functions/parserealarray.markdown b/content/reference/functions/parserealarray.markdown similarity index 100% rename from reference/functions/parserealarray.markdown rename to content/reference/functions/parserealarray.markdown diff --git a/reference/functions/parsestringarray.markdown b/content/reference/functions/parsestringarray.markdown similarity index 100% rename from reference/functions/parsestringarray.markdown rename to content/reference/functions/parsestringarray.markdown diff --git a/reference/functions/parsestringarrayidx.markdown b/content/reference/functions/parsestringarrayidx.markdown similarity index 100% rename from reference/functions/parsestringarrayidx.markdown rename to content/reference/functions/parsestringarrayidx.markdown diff --git a/reference/functions/parseyaml.markdown b/content/reference/functions/parseyaml.markdown similarity index 100% rename from reference/functions/parseyaml.markdown rename to content/reference/functions/parseyaml.markdown diff --git a/reference/functions/peerleader.markdown b/content/reference/functions/peerleader.markdown similarity index 100% rename from reference/functions/peerleader.markdown rename to content/reference/functions/peerleader.markdown diff --git a/reference/functions/peerleaders.markdown b/content/reference/functions/peerleaders.markdown similarity index 100% rename from reference/functions/peerleaders.markdown rename to content/reference/functions/peerleaders.markdown diff --git a/reference/functions/peers.markdown b/content/reference/functions/peers.markdown similarity index 100% rename from reference/functions/peers.markdown rename to content/reference/functions/peers.markdown diff --git a/reference/functions/processexists.markdown b/content/reference/functions/processexists.markdown similarity index 100% rename from reference/functions/processexists.markdown rename to content/reference/functions/processexists.markdown diff --git a/reference/functions/product.markdown b/content/reference/functions/product.markdown similarity index 100% rename from reference/functions/product.markdown rename to content/reference/functions/product.markdown diff --git a/reference/functions/randomint.markdown b/content/reference/functions/randomint.markdown similarity index 100% rename from reference/functions/randomint.markdown rename to content/reference/functions/randomint.markdown diff --git a/reference/functions/read_module_protocol.markdown b/content/reference/functions/read_module_protocol.markdown similarity index 100% rename from reference/functions/read_module_protocol.markdown rename to content/reference/functions/read_module_protocol.markdown diff --git a/reference/functions/readcsv.markdown b/content/reference/functions/readcsv.markdown similarity index 100% rename from reference/functions/readcsv.markdown rename to content/reference/functions/readcsv.markdown diff --git a/reference/functions/readdata.markdown b/content/reference/functions/readdata.markdown similarity index 100% rename from reference/functions/readdata.markdown rename to content/reference/functions/readdata.markdown diff --git a/reference/functions/readenvfile.markdown b/content/reference/functions/readenvfile.markdown similarity index 100% rename from reference/functions/readenvfile.markdown rename to content/reference/functions/readenvfile.markdown diff --git a/reference/functions/readfile.markdown b/content/reference/functions/readfile.markdown similarity index 100% rename from reference/functions/readfile.markdown rename to content/reference/functions/readfile.markdown diff --git a/reference/functions/readintarray.markdown b/content/reference/functions/readintarray.markdown similarity index 100% rename from reference/functions/readintarray.markdown rename to content/reference/functions/readintarray.markdown diff --git a/reference/functions/readintlist.markdown b/content/reference/functions/readintlist.markdown similarity index 100% rename from reference/functions/readintlist.markdown rename to content/reference/functions/readintlist.markdown diff --git a/reference/functions/readjson.markdown b/content/reference/functions/readjson.markdown similarity index 100% rename from reference/functions/readjson.markdown rename to content/reference/functions/readjson.markdown diff --git a/reference/functions/readrealarray.markdown b/content/reference/functions/readrealarray.markdown similarity index 100% rename from reference/functions/readrealarray.markdown rename to content/reference/functions/readrealarray.markdown diff --git a/reference/functions/readreallist.markdown b/content/reference/functions/readreallist.markdown similarity index 100% rename from reference/functions/readreallist.markdown rename to content/reference/functions/readreallist.markdown diff --git a/reference/functions/readstringarray.markdown b/content/reference/functions/readstringarray.markdown similarity index 100% rename from reference/functions/readstringarray.markdown rename to content/reference/functions/readstringarray.markdown diff --git a/reference/functions/readstringarrayidx.markdown b/content/reference/functions/readstringarrayidx.markdown similarity index 100% rename from reference/functions/readstringarrayidx.markdown rename to content/reference/functions/readstringarrayidx.markdown diff --git a/reference/functions/readstringlist.markdown b/content/reference/functions/readstringlist.markdown similarity index 100% rename from reference/functions/readstringlist.markdown rename to content/reference/functions/readstringlist.markdown diff --git a/reference/functions/readtcp.markdown b/content/reference/functions/readtcp.markdown similarity index 100% rename from reference/functions/readtcp.markdown rename to content/reference/functions/readtcp.markdown diff --git a/reference/functions/readyaml.markdown b/content/reference/functions/readyaml.markdown similarity index 100% rename from reference/functions/readyaml.markdown rename to content/reference/functions/readyaml.markdown diff --git a/reference/functions/regarray.markdown b/content/reference/functions/regarray.markdown similarity index 100% rename from reference/functions/regarray.markdown rename to content/reference/functions/regarray.markdown diff --git a/reference/functions/regcmp.markdown b/content/reference/functions/regcmp.markdown similarity index 100% rename from reference/functions/regcmp.markdown rename to content/reference/functions/regcmp.markdown diff --git a/reference/functions/regex_replace.markdown b/content/reference/functions/regex_replace.markdown similarity index 100% rename from reference/functions/regex_replace.markdown rename to content/reference/functions/regex_replace.markdown diff --git a/reference/functions/regextract.markdown b/content/reference/functions/regextract.markdown similarity index 100% rename from reference/functions/regextract.markdown rename to content/reference/functions/regextract.markdown diff --git a/reference/functions/registryvalue.markdown b/content/reference/functions/registryvalue.markdown similarity index 100% rename from reference/functions/registryvalue.markdown rename to content/reference/functions/registryvalue.markdown diff --git a/reference/functions/regldap.markdown b/content/reference/functions/regldap.markdown similarity index 100% rename from reference/functions/regldap.markdown rename to content/reference/functions/regldap.markdown diff --git a/reference/functions/regline.markdown b/content/reference/functions/regline.markdown similarity index 100% rename from reference/functions/regline.markdown rename to content/reference/functions/regline.markdown diff --git a/reference/functions/reglist.markdown b/content/reference/functions/reglist.markdown similarity index 100% rename from reference/functions/reglist.markdown rename to content/reference/functions/reglist.markdown diff --git a/reference/functions/remoteclassesmatching.markdown b/content/reference/functions/remoteclassesmatching.markdown similarity index 100% rename from reference/functions/remoteclassesmatching.markdown rename to content/reference/functions/remoteclassesmatching.markdown diff --git a/reference/functions/remotescalar.markdown b/content/reference/functions/remotescalar.markdown similarity index 100% rename from reference/functions/remotescalar.markdown rename to content/reference/functions/remotescalar.markdown diff --git a/reference/functions/returnszero.markdown b/content/reference/functions/returnszero.markdown similarity index 100% rename from reference/functions/returnszero.markdown rename to content/reference/functions/returnszero.markdown diff --git a/reference/functions/reverse.markdown b/content/reference/functions/reverse.markdown similarity index 100% rename from reference/functions/reverse.markdown rename to content/reference/functions/reverse.markdown diff --git a/reference/functions/rrange.markdown b/content/reference/functions/rrange.markdown similarity index 100% rename from reference/functions/rrange.markdown rename to content/reference/functions/rrange.markdown diff --git a/reference/functions/selectservers.markdown b/content/reference/functions/selectservers.markdown similarity index 100% rename from reference/functions/selectservers.markdown rename to content/reference/functions/selectservers.markdown diff --git a/reference/functions/shuffle.markdown b/content/reference/functions/shuffle.markdown similarity index 100% rename from reference/functions/shuffle.markdown rename to content/reference/functions/shuffle.markdown diff --git a/reference/functions/some.markdown b/content/reference/functions/some.markdown similarity index 100% rename from reference/functions/some.markdown rename to content/reference/functions/some.markdown diff --git a/reference/functions/sort.markdown b/content/reference/functions/sort.markdown similarity index 100% rename from reference/functions/sort.markdown rename to content/reference/functions/sort.markdown diff --git a/reference/functions/splayclass.markdown b/content/reference/functions/splayclass.markdown similarity index 100% rename from reference/functions/splayclass.markdown rename to content/reference/functions/splayclass.markdown diff --git a/reference/functions/splitstring.markdown b/content/reference/functions/splitstring.markdown similarity index 100% rename from reference/functions/splitstring.markdown rename to content/reference/functions/splitstring.markdown diff --git a/reference/functions/storejson.markdown b/content/reference/functions/storejson.markdown similarity index 100% rename from reference/functions/storejson.markdown rename to content/reference/functions/storejson.markdown diff --git a/reference/functions/strcmp.markdown b/content/reference/functions/strcmp.markdown similarity index 100% rename from reference/functions/strcmp.markdown rename to content/reference/functions/strcmp.markdown diff --git a/reference/functions/strftime.markdown b/content/reference/functions/strftime.markdown similarity index 100% rename from reference/functions/strftime.markdown rename to content/reference/functions/strftime.markdown diff --git a/reference/functions/string.markdown b/content/reference/functions/string.markdown similarity index 100% rename from reference/functions/string.markdown rename to content/reference/functions/string.markdown diff --git a/reference/functions/string_downcase.markdown b/content/reference/functions/string_downcase.markdown similarity index 100% rename from reference/functions/string_downcase.markdown rename to content/reference/functions/string_downcase.markdown diff --git a/reference/functions/string_head.markdown b/content/reference/functions/string_head.markdown similarity index 100% rename from reference/functions/string_head.markdown rename to content/reference/functions/string_head.markdown diff --git a/reference/functions/string_length.markdown b/content/reference/functions/string_length.markdown similarity index 100% rename from reference/functions/string_length.markdown rename to content/reference/functions/string_length.markdown diff --git a/reference/functions/string_mustache.markdown b/content/reference/functions/string_mustache.markdown similarity index 100% rename from reference/functions/string_mustache.markdown rename to content/reference/functions/string_mustache.markdown diff --git a/reference/functions/string_replace.markdown b/content/reference/functions/string_replace.markdown similarity index 100% rename from reference/functions/string_replace.markdown rename to content/reference/functions/string_replace.markdown diff --git a/reference/functions/string_reverse.markdown b/content/reference/functions/string_reverse.markdown similarity index 100% rename from reference/functions/string_reverse.markdown rename to content/reference/functions/string_reverse.markdown diff --git a/reference/functions/string_split.markdown b/content/reference/functions/string_split.markdown similarity index 100% rename from reference/functions/string_split.markdown rename to content/reference/functions/string_split.markdown diff --git a/reference/functions/string_tail.markdown b/content/reference/functions/string_tail.markdown similarity index 100% rename from reference/functions/string_tail.markdown rename to content/reference/functions/string_tail.markdown diff --git a/reference/functions/string_trim.markdown b/content/reference/functions/string_trim.markdown similarity index 100% rename from reference/functions/string_trim.markdown rename to content/reference/functions/string_trim.markdown diff --git a/reference/functions/string_upcase.markdown b/content/reference/functions/string_upcase.markdown similarity index 100% rename from reference/functions/string_upcase.markdown rename to content/reference/functions/string_upcase.markdown diff --git a/reference/functions/sublist.markdown b/content/reference/functions/sublist.markdown similarity index 100% rename from reference/functions/sublist.markdown rename to content/reference/functions/sublist.markdown diff --git a/reference/functions/sum.markdown b/content/reference/functions/sum.markdown similarity index 100% rename from reference/functions/sum.markdown rename to content/reference/functions/sum.markdown diff --git a/reference/functions/sysctlvalue.markdown b/content/reference/functions/sysctlvalue.markdown similarity index 100% rename from reference/functions/sysctlvalue.markdown rename to content/reference/functions/sysctlvalue.markdown diff --git a/reference/functions/translatepath.markdown b/content/reference/functions/translatepath.markdown similarity index 100% rename from reference/functions/translatepath.markdown rename to content/reference/functions/translatepath.markdown diff --git a/reference/functions/type.markdown b/content/reference/functions/type.markdown similarity index 100% rename from reference/functions/type.markdown rename to content/reference/functions/type.markdown diff --git a/reference/functions/unique.markdown b/content/reference/functions/unique.markdown similarity index 100% rename from reference/functions/unique.markdown rename to content/reference/functions/unique.markdown diff --git a/reference/functions/url_get.markdown b/content/reference/functions/url_get.markdown similarity index 100% rename from reference/functions/url_get.markdown rename to content/reference/functions/url_get.markdown diff --git a/reference/functions/usemodule.markdown b/content/reference/functions/usemodule.markdown similarity index 100% rename from reference/functions/usemodule.markdown rename to content/reference/functions/usemodule.markdown diff --git a/reference/functions/userexists.markdown b/content/reference/functions/userexists.markdown similarity index 100% rename from reference/functions/userexists.markdown rename to content/reference/functions/userexists.markdown diff --git a/reference/functions/validdata.markdown b/content/reference/functions/validdata.markdown similarity index 100% rename from reference/functions/validdata.markdown rename to content/reference/functions/validdata.markdown diff --git a/reference/functions/validjson.markdown b/content/reference/functions/validjson.markdown similarity index 100% rename from reference/functions/validjson.markdown rename to content/reference/functions/validjson.markdown diff --git a/reference/functions/variablesmatching.markdown b/content/reference/functions/variablesmatching.markdown similarity index 100% rename from reference/functions/variablesmatching.markdown rename to content/reference/functions/variablesmatching.markdown diff --git a/reference/functions/variablesmatching_as_data.markdown b/content/reference/functions/variablesmatching_as_data.markdown similarity index 100% rename from reference/functions/variablesmatching_as_data.markdown rename to content/reference/functions/variablesmatching_as_data.markdown diff --git a/reference/functions/variance.markdown b/content/reference/functions/variance.markdown similarity index 100% rename from reference/functions/variance.markdown rename to content/reference/functions/variance.markdown diff --git a/reference/functions/version_compare.markdown b/content/reference/functions/version_compare.markdown similarity index 100% rename from reference/functions/version_compare.markdown rename to content/reference/functions/version_compare.markdown diff --git a/reference/language-concepts/_index.markdown b/content/reference/language-concepts/_index.markdown similarity index 100% rename from reference/language-concepts/_index.markdown rename to content/reference/language-concepts/_index.markdown diff --git a/reference/language-concepts/augments.markdown b/content/reference/language-concepts/augments.markdown similarity index 100% rename from reference/language-concepts/augments.markdown rename to content/reference/language-concepts/augments.markdown diff --git a/reference/language-concepts/bodies.markdown b/content/reference/language-concepts/bodies.markdown similarity index 100% rename from reference/language-concepts/bodies.markdown rename to content/reference/language-concepts/bodies.markdown diff --git a/reference/language-concepts/bundles.markdown b/content/reference/language-concepts/bundles.markdown similarity index 100% rename from reference/language-concepts/bundles.markdown rename to content/reference/language-concepts/bundles.markdown diff --git a/reference/language-concepts/classes.markdown b/content/reference/language-concepts/classes.markdown similarity index 100% rename from reference/language-concepts/classes.markdown rename to content/reference/language-concepts/classes.markdown diff --git a/reference/language-concepts/loops.markdown b/content/reference/language-concepts/loops.markdown similarity index 100% rename from reference/language-concepts/loops.markdown rename to content/reference/language-concepts/loops.markdown diff --git a/reference/language-concepts/modules/_index.markdown b/content/reference/language-concepts/modules/_index.markdown similarity index 100% rename from reference/language-concepts/modules/_index.markdown rename to content/reference/language-concepts/modules/_index.markdown diff --git a/reference/language-concepts/modules/package-module-api.markdown b/content/reference/language-concepts/modules/package-module-api.markdown similarity index 100% rename from reference/language-concepts/modules/package-module-api.markdown rename to content/reference/language-concepts/modules/package-module-api.markdown diff --git a/reference/language-concepts/namespaces.markdown b/content/reference/language-concepts/namespaces.markdown similarity index 100% rename from reference/language-concepts/namespaces.markdown rename to content/reference/language-concepts/namespaces.markdown diff --git a/reference/language-concepts/normal-ordering.markdown b/content/reference/language-concepts/normal-ordering.markdown similarity index 100% rename from reference/language-concepts/normal-ordering.markdown rename to content/reference/language-concepts/normal-ordering.markdown diff --git a/reference/language-concepts/pattern-matching-and-referencing.markdown b/content/reference/language-concepts/pattern-matching-and-referencing.markdown similarity index 100% rename from reference/language-concepts/pattern-matching-and-referencing.markdown rename to content/reference/language-concepts/pattern-matching-and-referencing.markdown diff --git a/reference/language-concepts/promises.markdown b/content/reference/language-concepts/promises.markdown similarity index 100% rename from reference/language-concepts/promises.markdown rename to content/reference/language-concepts/promises.markdown diff --git a/reference/language-concepts/variables.markdown b/content/reference/language-concepts/variables.markdown similarity index 100% rename from reference/language-concepts/variables.markdown rename to content/reference/language-concepts/variables.markdown diff --git a/reference/macros.markdown b/content/reference/macros.markdown similarity index 100% rename from reference/macros.markdown rename to content/reference/macros.markdown diff --git a/reference/masterfiles-policy-framework/_index.markdown b/content/reference/masterfiles-policy-framework/_index.markdown similarity index 100% rename from reference/masterfiles-policy-framework/_index.markdown rename to content/reference/masterfiles-policy-framework/_index.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-core.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-core.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-core.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal-update.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal-update.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal-update.markdown diff --git a/reference/masterfiles-policy-framework/cfe_internal.markdown b/content/reference/masterfiles-policy-framework/cfe_internal.markdown similarity index 100% rename from reference/masterfiles-policy-framework/cfe_internal.markdown rename to content/reference/masterfiles-policy-framework/cfe_internal.markdown diff --git a/reference/masterfiles-policy-framework/controls-cf-hub.markdown b/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-cf-hub.markdown rename to content/reference/masterfiles-policy-framework/controls-cf-hub.markdown diff --git a/reference/masterfiles-policy-framework/controls-cf_agent.markdown b/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-cf_agent.markdown rename to content/reference/masterfiles-policy-framework/controls-cf_agent.markdown diff --git a/reference/masterfiles-policy-framework/controls-cf_execd.markdown b/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-cf_execd.markdown rename to content/reference/masterfiles-policy-framework/controls-cf_execd.markdown diff --git a/reference/masterfiles-policy-framework/controls-cf_monitord.markdown b/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-cf_monitord.markdown rename to content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown diff --git a/reference/masterfiles-policy-framework/controls-cf_runagent.markdown b/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-cf_runagent.markdown rename to content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown diff --git a/reference/masterfiles-policy-framework/controls-cf_serverd.markdown b/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-cf_serverd.markdown rename to content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown diff --git a/reference/masterfiles-policy-framework/controls-def.markdown b/content/reference/masterfiles-policy-framework/controls-def.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-def.markdown rename to content/reference/masterfiles-policy-framework/controls-def.markdown diff --git a/reference/masterfiles-policy-framework/controls-def_inputs.markdown b/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-def_inputs.markdown rename to content/reference/masterfiles-policy-framework/controls-def_inputs.markdown diff --git a/reference/masterfiles-policy-framework/controls-reports.markdown b/content/reference/masterfiles-policy-framework/controls-reports.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-reports.markdown rename to content/reference/masterfiles-policy-framework/controls-reports.markdown diff --git a/reference/masterfiles-policy-framework/controls-update_def.markdown b/content/reference/masterfiles-policy-framework/controls-update_def.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-update_def.markdown rename to content/reference/masterfiles-policy-framework/controls-update_def.markdown diff --git a/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown b/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls-update_def_inputs.markdown rename to content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown diff --git a/reference/masterfiles-policy-framework/controls.markdown b/content/reference/masterfiles-policy-framework/controls.markdown similarity index 100% rename from reference/masterfiles-policy-framework/controls.markdown rename to content/reference/masterfiles-policy-framework/controls.markdown diff --git a/reference/masterfiles-policy-framework/inventory-any.markdown b/content/reference/masterfiles-policy-framework/inventory-any.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-any.markdown rename to content/reference/masterfiles-policy-framework/inventory-any.markdown diff --git a/reference/masterfiles-policy-framework/inventory-debian.markdown b/content/reference/masterfiles-policy-framework/inventory-debian.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-debian.markdown rename to content/reference/masterfiles-policy-framework/inventory-debian.markdown diff --git a/reference/masterfiles-policy-framework/inventory-freebsd.markdown b/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-freebsd.markdown rename to content/reference/masterfiles-policy-framework/inventory-freebsd.markdown diff --git a/reference/masterfiles-policy-framework/inventory-generic.markdown b/content/reference/masterfiles-policy-framework/inventory-generic.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-generic.markdown rename to content/reference/masterfiles-policy-framework/inventory-generic.markdown diff --git a/reference/masterfiles-policy-framework/inventory-linux.markdown b/content/reference/masterfiles-policy-framework/inventory-linux.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-linux.markdown rename to content/reference/masterfiles-policy-framework/inventory-linux.markdown diff --git a/reference/masterfiles-policy-framework/inventory-lsb.markdown b/content/reference/masterfiles-policy-framework/inventory-lsb.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-lsb.markdown rename to content/reference/masterfiles-policy-framework/inventory-lsb.markdown diff --git a/reference/masterfiles-policy-framework/inventory-macos.markdown b/content/reference/masterfiles-policy-framework/inventory-macos.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-macos.markdown rename to content/reference/masterfiles-policy-framework/inventory-macos.markdown diff --git a/reference/masterfiles-policy-framework/inventory-os.markdown b/content/reference/masterfiles-policy-framework/inventory-os.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-os.markdown rename to content/reference/masterfiles-policy-framework/inventory-os.markdown diff --git a/reference/masterfiles-policy-framework/inventory-redhat.markdown b/content/reference/masterfiles-policy-framework/inventory-redhat.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-redhat.markdown rename to content/reference/masterfiles-policy-framework/inventory-redhat.markdown diff --git a/reference/masterfiles-policy-framework/inventory-suse.markdown b/content/reference/masterfiles-policy-framework/inventory-suse.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-suse.markdown rename to content/reference/masterfiles-policy-framework/inventory-suse.markdown diff --git a/reference/masterfiles-policy-framework/inventory-windows.markdown b/content/reference/masterfiles-policy-framework/inventory-windows.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory-windows.markdown rename to content/reference/masterfiles-policy-framework/inventory-windows.markdown diff --git a/reference/masterfiles-policy-framework/inventory.markdown b/content/reference/masterfiles-policy-framework/inventory.markdown similarity index 100% rename from reference/masterfiles-policy-framework/inventory.markdown rename to content/reference/masterfiles-policy-framework/inventory.markdown diff --git a/reference/masterfiles-policy-framework/lib-autorun.markdown b/content/reference/masterfiles-policy-framework/lib-autorun.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-autorun.markdown rename to content/reference/masterfiles-policy-framework/lib-autorun.markdown diff --git a/reference/masterfiles-policy-framework/lib-bundles.markdown b/content/reference/masterfiles-policy-framework/lib-bundles.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-bundles.markdown rename to content/reference/masterfiles-policy-framework/lib-bundles.markdown diff --git a/reference/masterfiles-policy-framework/lib-cfe_internal.markdown b/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-cfe_internal.markdown rename to content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown diff --git a/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown b/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown rename to content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown diff --git a/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown b/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown rename to content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown diff --git a/reference/masterfiles-policy-framework/lib-commands.markdown b/content/reference/masterfiles-policy-framework/lib-commands.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-commands.markdown rename to content/reference/masterfiles-policy-framework/lib-commands.markdown diff --git a/reference/masterfiles-policy-framework/lib-common.markdown b/content/reference/masterfiles-policy-framework/lib-common.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-common.markdown rename to content/reference/masterfiles-policy-framework/lib-common.markdown diff --git a/reference/masterfiles-policy-framework/lib-databases.markdown b/content/reference/masterfiles-policy-framework/lib-databases.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-databases.markdown rename to content/reference/masterfiles-policy-framework/lib-databases.markdown diff --git a/reference/masterfiles-policy-framework/lib-edit_xml.markdown b/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-edit_xml.markdown rename to content/reference/masterfiles-policy-framework/lib-edit_xml.markdown diff --git a/reference/masterfiles-policy-framework/lib-event.markdown b/content/reference/masterfiles-policy-framework/lib-event.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-event.markdown rename to content/reference/masterfiles-policy-framework/lib-event.markdown diff --git a/reference/masterfiles-policy-framework/lib-examples.markdown b/content/reference/masterfiles-policy-framework/lib-examples.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-examples.markdown rename to content/reference/masterfiles-policy-framework/lib-examples.markdown diff --git a/reference/masterfiles-policy-framework/lib-feature.markdown b/content/reference/masterfiles-policy-framework/lib-feature.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-feature.markdown rename to content/reference/masterfiles-policy-framework/lib-feature.markdown diff --git a/reference/masterfiles-policy-framework/lib-files.markdown b/content/reference/masterfiles-policy-framework/lib-files.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-files.markdown rename to content/reference/masterfiles-policy-framework/lib-files.markdown diff --git a/reference/masterfiles-policy-framework/lib-guest_environments.markdown b/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-guest_environments.markdown rename to content/reference/masterfiles-policy-framework/lib-guest_environments.markdown diff --git a/reference/masterfiles-policy-framework/lib-monitor.markdown b/content/reference/masterfiles-policy-framework/lib-monitor.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-monitor.markdown rename to content/reference/masterfiles-policy-framework/lib-monitor.markdown diff --git a/reference/masterfiles-policy-framework/lib-packages.markdown b/content/reference/masterfiles-policy-framework/lib-packages.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-packages.markdown rename to content/reference/masterfiles-policy-framework/lib-packages.markdown diff --git a/reference/masterfiles-policy-framework/lib-paths.markdown b/content/reference/masterfiles-policy-framework/lib-paths.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-paths.markdown rename to content/reference/masterfiles-policy-framework/lib-paths.markdown diff --git a/reference/masterfiles-policy-framework/lib-processes.markdown b/content/reference/masterfiles-policy-framework/lib-processes.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-processes.markdown rename to content/reference/masterfiles-policy-framework/lib-processes.markdown diff --git a/reference/masterfiles-policy-framework/lib-reports.markdown b/content/reference/masterfiles-policy-framework/lib-reports.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-reports.markdown rename to content/reference/masterfiles-policy-framework/lib-reports.markdown diff --git a/reference/masterfiles-policy-framework/lib-services.markdown b/content/reference/masterfiles-policy-framework/lib-services.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-services.markdown rename to content/reference/masterfiles-policy-framework/lib-services.markdown diff --git a/reference/masterfiles-policy-framework/lib-stdlib.markdown b/content/reference/masterfiles-policy-framework/lib-stdlib.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-stdlib.markdown rename to content/reference/masterfiles-policy-framework/lib-stdlib.markdown diff --git a/reference/masterfiles-policy-framework/lib-storage.markdown b/content/reference/masterfiles-policy-framework/lib-storage.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-storage.markdown rename to content/reference/masterfiles-policy-framework/lib-storage.markdown diff --git a/reference/masterfiles-policy-framework/lib-testing.markdown b/content/reference/masterfiles-policy-framework/lib-testing.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-testing.markdown rename to content/reference/masterfiles-policy-framework/lib-testing.markdown diff --git a/reference/masterfiles-policy-framework/lib-users.markdown b/content/reference/masterfiles-policy-framework/lib-users.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-users.markdown rename to content/reference/masterfiles-policy-framework/lib-users.markdown diff --git a/reference/masterfiles-policy-framework/lib-vcs.markdown b/content/reference/masterfiles-policy-framework/lib-vcs.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib-vcs.markdown rename to content/reference/masterfiles-policy-framework/lib-vcs.markdown diff --git a/reference/masterfiles-policy-framework/lib.markdown b/content/reference/masterfiles-policy-framework/lib.markdown similarity index 100% rename from reference/masterfiles-policy-framework/lib.markdown rename to content/reference/masterfiles-policy-framework/lib.markdown diff --git a/reference/masterfiles-policy-framework/modules-mustache.markdown b/content/reference/masterfiles-policy-framework/modules-mustache.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules-mustache.markdown rename to content/reference/masterfiles-policy-framework/modules-mustache.markdown diff --git a/reference/masterfiles-policy-framework/modules-packages-vendored.markdown b/content/reference/masterfiles-policy-framework/modules-packages-vendored.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules-packages-vendored.markdown rename to content/reference/masterfiles-policy-framework/modules-packages-vendored.markdown diff --git a/reference/masterfiles-policy-framework/modules-packages.markdown b/content/reference/masterfiles-policy-framework/modules-packages.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules-packages.markdown rename to content/reference/masterfiles-policy-framework/modules-packages.markdown diff --git a/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown rename to content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown diff --git a/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown rename to content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown diff --git a/reference/masterfiles-policy-framework/modules-promises.markdown b/content/reference/masterfiles-policy-framework/modules-promises.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules-promises.markdown rename to content/reference/masterfiles-policy-framework/modules-promises.markdown diff --git a/reference/masterfiles-policy-framework/modules.markdown b/content/reference/masterfiles-policy-framework/modules.markdown similarity index 100% rename from reference/masterfiles-policy-framework/modules.markdown rename to content/reference/masterfiles-policy-framework/modules.markdown diff --git a/reference/masterfiles-policy-framework/no-distrib.markdown b/content/reference/masterfiles-policy-framework/no-distrib.markdown similarity index 100% rename from reference/masterfiles-policy-framework/no-distrib.markdown rename to content/reference/masterfiles-policy-framework/no-distrib.markdown diff --git a/reference/masterfiles-policy-framework/promises.markdown b/content/reference/masterfiles-policy-framework/promises.markdown similarity index 100% rename from reference/masterfiles-policy-framework/promises.markdown rename to content/reference/masterfiles-policy-framework/promises.markdown diff --git a/reference/masterfiles-policy-framework/services-autorun.markdown b/content/reference/masterfiles-policy-framework/services-autorun.markdown similarity index 100% rename from reference/masterfiles-policy-framework/services-autorun.markdown rename to content/reference/masterfiles-policy-framework/services-autorun.markdown diff --git a/reference/masterfiles-policy-framework/services-main.markdown b/content/reference/masterfiles-policy-framework/services-main.markdown similarity index 100% rename from reference/masterfiles-policy-framework/services-main.markdown rename to content/reference/masterfiles-policy-framework/services-main.markdown diff --git a/reference/masterfiles-policy-framework/services.markdown b/content/reference/masterfiles-policy-framework/services.markdown similarity index 100% rename from reference/masterfiles-policy-framework/services.markdown rename to content/reference/masterfiles-policy-framework/services.markdown diff --git a/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown b/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown similarity index 100% rename from reference/masterfiles-policy-framework/standalone_self_upgrade.markdown rename to content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown diff --git a/reference/masterfiles-policy-framework/update.markdown b/content/reference/masterfiles-policy-framework/update.markdown similarity index 100% rename from reference/masterfiles-policy-framework/update.markdown rename to content/reference/masterfiles-policy-framework/update.markdown diff --git a/reference/promise-types/_index.markdown b/content/reference/promise-types/_index.markdown similarity index 100% rename from reference/promise-types/_index.markdown rename to content/reference/promise-types/_index.markdown diff --git a/reference/promise-types/access.markdown b/content/reference/promise-types/access.markdown similarity index 100% rename from reference/promise-types/access.markdown rename to content/reference/promise-types/access.markdown diff --git a/reference/promise-types/classes.markdown b/content/reference/promise-types/classes.markdown similarity index 100% rename from reference/promise-types/classes.markdown rename to content/reference/promise-types/classes.markdown diff --git a/reference/promise-types/commands.markdown b/content/reference/promise-types/commands.markdown similarity index 100% rename from reference/promise-types/commands.markdown rename to content/reference/promise-types/commands.markdown diff --git a/reference/promise-types/custom.markdown b/content/reference/promise-types/custom.markdown similarity index 100% rename from reference/promise-types/custom.markdown rename to content/reference/promise-types/custom.markdown diff --git a/reference/promise-types/databases.markdown b/content/reference/promise-types/databases.markdown similarity index 100% rename from reference/promise-types/databases.markdown rename to content/reference/promise-types/databases.markdown diff --git a/reference/promise-types/defaults.markdown b/content/reference/promise-types/defaults.markdown similarity index 100% rename from reference/promise-types/defaults.markdown rename to content/reference/promise-types/defaults.markdown diff --git a/reference/promise-types/filelogic.png b/content/reference/promise-types/filelogic.png similarity index 100% rename from reference/promise-types/filelogic.png rename to content/reference/promise-types/filelogic.png diff --git a/reference/promise-types/files/_index.markdown b/content/reference/promise-types/files/_index.markdown similarity index 100% rename from reference/promise-types/files/_index.markdown rename to content/reference/promise-types/files/_index.markdown diff --git a/reference/promise-types/files/edit_line/_index.markdown b/content/reference/promise-types/files/edit_line/_index.markdown similarity index 100% rename from reference/promise-types/files/edit_line/_index.markdown rename to content/reference/promise-types/files/edit_line/_index.markdown diff --git a/reference/promise-types/files/edit_line/delete_lines.markdown b/content/reference/promise-types/files/edit_line/delete_lines.markdown similarity index 100% rename from reference/promise-types/files/edit_line/delete_lines.markdown rename to content/reference/promise-types/files/edit_line/delete_lines.markdown diff --git a/reference/promise-types/files/edit_line/field_edits.markdown b/content/reference/promise-types/files/edit_line/field_edits.markdown similarity index 100% rename from reference/promise-types/files/edit_line/field_edits.markdown rename to content/reference/promise-types/files/edit_line/field_edits.markdown diff --git a/reference/promise-types/files/edit_line/insert_lines.markdown b/content/reference/promise-types/files/edit_line/insert_lines.markdown similarity index 100% rename from reference/promise-types/files/edit_line/insert_lines.markdown rename to content/reference/promise-types/files/edit_line/insert_lines.markdown diff --git a/reference/promise-types/files/edit_line/replace_patterns.markdown b/content/reference/promise-types/files/edit_line/replace_patterns.markdown similarity index 100% rename from reference/promise-types/files/edit_line/replace_patterns.markdown rename to content/reference/promise-types/files/edit_line/replace_patterns.markdown diff --git a/reference/promise-types/files/edit_xml/_index.markdown b/content/reference/promise-types/files/edit_xml/_index.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/_index.markdown rename to content/reference/promise-types/files/edit_xml/_index.markdown diff --git a/reference/promise-types/files/edit_xml/build_xpath.markdown b/content/reference/promise-types/files/edit_xml/build_xpath.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/build_xpath.markdown rename to content/reference/promise-types/files/edit_xml/build_xpath.markdown diff --git a/reference/promise-types/files/edit_xml/delete_attribute.markdown b/content/reference/promise-types/files/edit_xml/delete_attribute.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/delete_attribute.markdown rename to content/reference/promise-types/files/edit_xml/delete_attribute.markdown diff --git a/reference/promise-types/files/edit_xml/delete_text.markdown b/content/reference/promise-types/files/edit_xml/delete_text.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/delete_text.markdown rename to content/reference/promise-types/files/edit_xml/delete_text.markdown diff --git a/reference/promise-types/files/edit_xml/delete_tree.markdown b/content/reference/promise-types/files/edit_xml/delete_tree.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/delete_tree.markdown rename to content/reference/promise-types/files/edit_xml/delete_tree.markdown diff --git a/reference/promise-types/files/edit_xml/insert_text.markdown b/content/reference/promise-types/files/edit_xml/insert_text.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/insert_text.markdown rename to content/reference/promise-types/files/edit_xml/insert_text.markdown diff --git a/reference/promise-types/files/edit_xml/insert_tree.markdown b/content/reference/promise-types/files/edit_xml/insert_tree.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/insert_tree.markdown rename to content/reference/promise-types/files/edit_xml/insert_tree.markdown diff --git a/reference/promise-types/files/edit_xml/set_attribute.markdown b/content/reference/promise-types/files/edit_xml/set_attribute.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/set_attribute.markdown rename to content/reference/promise-types/files/edit_xml/set_attribute.markdown diff --git a/reference/promise-types/files/edit_xml/set_text.markdown b/content/reference/promise-types/files/edit_xml/set_text.markdown similarity index 100% rename from reference/promise-types/files/edit_xml/set_text.markdown rename to content/reference/promise-types/files/edit_xml/set_text.markdown diff --git a/reference/promise-types/guest_environments.markdown b/content/reference/promise-types/guest_environments.markdown similarity index 100% rename from reference/promise-types/guest_environments.markdown rename to content/reference/promise-types/guest_environments.markdown diff --git a/reference/promise-types/measurements.markdown b/content/reference/promise-types/measurements.markdown similarity index 100% rename from reference/promise-types/measurements.markdown rename to content/reference/promise-types/measurements.markdown diff --git a/reference/promise-types/meta.markdown b/content/reference/promise-types/meta.markdown similarity index 100% rename from reference/promise-types/meta.markdown rename to content/reference/promise-types/meta.markdown diff --git a/reference/promise-types/methods.markdown b/content/reference/promise-types/methods.markdown similarity index 100% rename from reference/promise-types/methods.markdown rename to content/reference/promise-types/methods.markdown diff --git a/reference/promise-types/packages-deprecated.markdown b/content/reference/promise-types/packages-deprecated.markdown similarity index 100% rename from reference/promise-types/packages-deprecated.markdown rename to content/reference/promise-types/packages-deprecated.markdown diff --git a/reference/promise-types/packages.markdown b/content/reference/promise-types/packages.markdown similarity index 100% rename from reference/promise-types/packages.markdown rename to content/reference/promise-types/packages.markdown diff --git a/reference/promise-types/processes.markdown b/content/reference/promise-types/processes.markdown similarity index 100% rename from reference/promise-types/processes.markdown rename to content/reference/promise-types/processes.markdown diff --git a/reference/promise-types/promise-types-services-winservice-properties_name.png b/content/reference/promise-types/promise-types-services-winservice-properties_name.png similarity index 100% rename from reference/promise-types/promise-types-services-winservice-properties_name.png rename to content/reference/promise-types/promise-types-services-winservice-properties_name.png diff --git a/reference/promise-types/reports.markdown b/content/reference/promise-types/reports.markdown similarity index 100% rename from reference/promise-types/reports.markdown rename to content/reference/promise-types/reports.markdown diff --git a/reference/promise-types/roles.markdown b/content/reference/promise-types/roles.markdown similarity index 100% rename from reference/promise-types/roles.markdown rename to content/reference/promise-types/roles.markdown diff --git a/reference/promise-types/services.markdown b/content/reference/promise-types/services.markdown similarity index 100% rename from reference/promise-types/services.markdown rename to content/reference/promise-types/services.markdown diff --git a/reference/promise-types/storage.markdown b/content/reference/promise-types/storage.markdown similarity index 100% rename from reference/promise-types/storage.markdown rename to content/reference/promise-types/storage.markdown diff --git a/reference/promise-types/users.markdown b/content/reference/promise-types/users.markdown similarity index 100% rename from reference/promise-types/users.markdown rename to content/reference/promise-types/users.markdown diff --git a/reference/promise-types/vars.markdown b/content/reference/promise-types/vars.markdown similarity index 100% rename from reference/promise-types/vars.markdown rename to content/reference/promise-types/vars.markdown diff --git a/reference/special-variables/_index.markdown b/content/reference/special-variables/_index.markdown similarity index 100% rename from reference/special-variables/_index.markdown rename to content/reference/special-variables/_index.markdown diff --git a/reference/special-variables/connection.markdown b/content/reference/special-variables/connection.markdown similarity index 100% rename from reference/special-variables/connection.markdown rename to content/reference/special-variables/connection.markdown diff --git a/reference/special-variables/const.markdown b/content/reference/special-variables/const.markdown similarity index 100% rename from reference/special-variables/const.markdown rename to content/reference/special-variables/const.markdown diff --git a/reference/special-variables/def.markdown b/content/reference/special-variables/def.markdown similarity index 100% rename from reference/special-variables/def.markdown rename to content/reference/special-variables/def.markdown diff --git a/reference/special-variables/edit.markdown b/content/reference/special-variables/edit.markdown similarity index 100% rename from reference/special-variables/edit.markdown rename to content/reference/special-variables/edit.markdown diff --git a/reference/special-variables/match.markdown b/content/reference/special-variables/match.markdown similarity index 100% rename from reference/special-variables/match.markdown rename to content/reference/special-variables/match.markdown diff --git a/reference/special-variables/mon.markdown b/content/reference/special-variables/mon.markdown similarity index 100% rename from reference/special-variables/mon.markdown rename to content/reference/special-variables/mon.markdown diff --git a/reference/special-variables/sys.markdown b/content/reference/special-variables/sys.markdown similarity index 100% rename from reference/special-variables/sys.markdown rename to content/reference/special-variables/sys.markdown diff --git a/reference/special-variables/this.markdown b/content/reference/special-variables/this.markdown similarity index 100% rename from reference/special-variables/this.markdown rename to content/reference/special-variables/this.markdown diff --git a/release-notes/_index.markdown b/content/release-notes/_index.markdown similarity index 100% rename from release-notes/_index.markdown rename to content/release-notes/_index.markdown diff --git a/release-notes/known-issues.markdown b/content/release-notes/known-issues.markdown similarity index 100% rename from release-notes/known-issues.markdown rename to content/release-notes/known-issues.markdown diff --git a/release-notes/legal-and-licenses.markdown b/content/release-notes/legal-and-licenses.markdown similarity index 100% rename from release-notes/legal-and-licenses.markdown rename to content/release-notes/legal-and-licenses.markdown diff --git a/release-notes/supported-platforms.markdown b/content/release-notes/supported-platforms.markdown similarity index 100% rename from release-notes/supported-platforms.markdown rename to content/release-notes/supported-platforms.markdown diff --git a/release-notes/whatsnew/_index.markdown b/content/release-notes/whatsnew/_index.markdown similarity index 100% rename from release-notes/whatsnew/_index.markdown rename to content/release-notes/whatsnew/_index.markdown diff --git a/release-notes/whatsnew/changelog-core.markdown b/content/release-notes/whatsnew/changelog-core.markdown similarity index 100% rename from release-notes/whatsnew/changelog-core.markdown rename to content/release-notes/whatsnew/changelog-core.markdown diff --git a/release-notes/whatsnew/changelog-enterprise.markdown b/content/release-notes/whatsnew/changelog-enterprise.markdown similarity index 100% rename from release-notes/whatsnew/changelog-enterprise.markdown rename to content/release-notes/whatsnew/changelog-enterprise.markdown diff --git a/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown b/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown similarity index 100% rename from release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown rename to content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown diff --git a/resources/_index.markdown b/content/resources/_index.markdown similarity index 100% rename from resources/_index.markdown rename to content/resources/_index.markdown diff --git a/resources/additional-topics/BDMA-model.png b/content/resources/additional-topics/BDMA-model.png similarity index 100% rename from resources/additional-topics/BDMA-model.png rename to content/resources/additional-topics/BDMA-model.png diff --git a/resources/additional-topics/STIGs.cf b/content/resources/additional-topics/STIGs.cf similarity index 100% rename from resources/additional-topics/STIGs.cf rename to content/resources/additional-topics/STIGs.cf diff --git a/resources/additional-topics/STIGs_readme.txt b/content/resources/additional-topics/STIGs_readme.txt similarity index 100% rename from resources/additional-topics/STIGs_readme.txt rename to content/resources/additional-topics/STIGs_readme.txt diff --git a/resources/additional-topics/_index.markdown b/content/resources/additional-topics/_index.markdown similarity index 100% rename from resources/additional-topics/_index.markdown rename to content/resources/additional-topics/_index.markdown diff --git a/resources/additional-topics/adopting-cfengine-mission-plan.png b/content/resources/additional-topics/adopting-cfengine-mission-plan.png similarity index 100% rename from resources/additional-topics/adopting-cfengine-mission-plan.png rename to content/resources/additional-topics/adopting-cfengine-mission-plan.png diff --git a/resources/additional-topics/agility.markdown b/content/resources/additional-topics/agility.markdown similarity index 100% rename from resources/additional-topics/agility.markdown rename to content/resources/additional-topics/agility.markdown diff --git a/resources/additional-topics/agility.png b/content/resources/additional-topics/agility.png similarity index 100% rename from resources/additional-topics/agility.png rename to content/resources/additional-topics/agility.png diff --git a/resources/additional-topics/application-management.markdown b/content/resources/additional-topics/application-management.markdown similarity index 100% rename from resources/additional-topics/application-management.markdown rename to content/resources/additional-topics/application-management.markdown diff --git a/resources/additional-topics/authority-paradox.png b/content/resources/additional-topics/authority-paradox.png similarity index 100% rename from resources/additional-topics/authority-paradox.png rename to content/resources/additional-topics/authority-paradox.png diff --git a/resources/additional-topics/bow-tie-delegation.png b/content/resources/additional-topics/bow-tie-delegation.png similarity index 100% rename from resources/additional-topics/bow-tie-delegation.png rename to content/resources/additional-topics/bow-tie-delegation.png diff --git a/resources/additional-topics/build-deploy-manage-audit.markdown b/content/resources/additional-topics/build-deploy-manage-audit.markdown similarity index 100% rename from resources/additional-topics/build-deploy-manage-audit.markdown rename to content/resources/additional-topics/build-deploy-manage-audit.markdown diff --git a/resources/additional-topics/cfengine-relationship-to-infrastructure.png b/content/resources/additional-topics/cfengine-relationship-to-infrastructure.png similarity index 100% rename from resources/additional-topics/cfengine-relationship-to-infrastructure.png rename to content/resources/additional-topics/cfengine-relationship-to-infrastructure.png diff --git a/resources/additional-topics/change-management.markdown b/content/resources/additional-topics/change-management.markdown similarity index 100% rename from resources/additional-topics/change-management.markdown rename to content/resources/additional-topics/change-management.markdown diff --git a/resources/additional-topics/cloud-computing.markdown b/content/resources/additional-topics/cloud-computing.markdown similarity index 100% rename from resources/additional-topics/cloud-computing.markdown rename to content/resources/additional-topics/cloud-computing.markdown diff --git a/resources/additional-topics/content-driven-policy.markdown b/content/resources/additional-topics/content-driven-policy.markdown similarity index 100% rename from resources/additional-topics/content-driven-policy.markdown rename to content/resources/additional-topics/content-driven-policy.markdown diff --git a/resources/additional-topics/convergence.png b/content/resources/additional-topics/convergence.png similarity index 100% rename from resources/additional-topics/convergence.png rename to content/resources/additional-topics/convergence.png diff --git a/resources/additional-topics/coordination.png b/content/resources/additional-topics/coordination.png similarity index 100% rename from resources/additional-topics/coordination.png rename to content/resources/additional-topics/coordination.png diff --git a/resources/additional-topics/demolish.png b/content/resources/additional-topics/demolish.png similarity index 100% rename from resources/additional-topics/demolish.png rename to content/resources/additional-topics/demolish.png diff --git a/resources/additional-topics/devops.markdown b/content/resources/additional-topics/devops.markdown similarity index 100% rename from resources/additional-topics/devops.markdown rename to content/resources/additional-topics/devops.markdown diff --git a/resources/additional-topics/distributed-scheduling.markdown b/content/resources/additional-topics/distributed-scheduling.markdown similarity index 100% rename from resources/additional-topics/distributed-scheduling.markdown rename to content/resources/additional-topics/distributed-scheduling.markdown diff --git a/resources/additional-topics/fed2.png b/content/resources/additional-topics/fed2.png similarity index 100% rename from resources/additional-topics/fed2.png rename to content/resources/additional-topics/fed2.png diff --git a/resources/additional-topics/fed3.png b/content/resources/additional-topics/fed3.png similarity index 100% rename from resources/additional-topics/fed3.png rename to content/resources/additional-topics/fed3.png diff --git a/resources/additional-topics/file-content.markdown b/content/resources/additional-topics/file-content.markdown similarity index 100% rename from resources/additional-topics/file-content.markdown rename to content/resources/additional-topics/file-content.markdown diff --git a/resources/additional-topics/file-integrity-monitoring.markdown.breaks_build b/content/resources/additional-topics/file-integrity-monitoring.markdown.breaks_build similarity index 100% rename from resources/additional-topics/file-integrity-monitoring.markdown.breaks_build rename to content/resources/additional-topics/file-integrity-monitoring.markdown.breaks_build diff --git a/resources/additional-topics/hierarchies.markdown b/content/resources/additional-topics/hierarchies.markdown similarity index 100% rename from resources/additional-topics/hierarchies.markdown rename to content/resources/additional-topics/hierarchies.markdown diff --git a/resources/additional-topics/hierarchy-vs-team.png b/content/resources/additional-topics/hierarchy-vs-team.png similarity index 100% rename from resources/additional-topics/hierarchy-vs-team.png rename to content/resources/additional-topics/hierarchy-vs-team.png diff --git a/resources/additional-topics/inherit.png b/content/resources/additional-topics/inherit.png similarity index 100% rename from resources/additional-topics/inherit.png rename to content/resources/additional-topics/inherit.png diff --git a/resources/additional-topics/iteration.markdown b/content/resources/additional-topics/iteration.markdown similarity index 100% rename from resources/additional-topics/iteration.markdown rename to content/resources/additional-topics/iteration.markdown diff --git a/resources/additional-topics/itil-cfengine.png b/content/resources/additional-topics/itil-cfengine.png similarity index 100% rename from resources/additional-topics/itil-cfengine.png rename to content/resources/additional-topics/itil-cfengine.png diff --git a/resources/additional-topics/itil.markdown b/content/resources/additional-topics/itil.markdown similarity index 100% rename from resources/additional-topics/itil.markdown rename to content/resources/additional-topics/itil.markdown diff --git a/resources/additional-topics/km1.png b/content/resources/additional-topics/km1.png similarity index 100% rename from resources/additional-topics/km1.png rename to content/resources/additional-topics/km1.png diff --git a/resources/additional-topics/km2.png b/content/resources/additional-topics/km2.png similarity index 100% rename from resources/additional-topics/km2.png rename to content/resources/additional-topics/km2.png diff --git a/resources/additional-topics/km3.png b/content/resources/additional-topics/km3.png similarity index 100% rename from resources/additional-topics/km3.png rename to content/resources/additional-topics/km3.png diff --git a/resources/additional-topics/km4.png b/content/resources/additional-topics/km4.png similarity index 100% rename from resources/additional-topics/km4.png rename to content/resources/additional-topics/km4.png diff --git a/resources/additional-topics/km5.png b/content/resources/additional-topics/km5.png similarity index 100% rename from resources/additional-topics/km5.png rename to content/resources/additional-topics/km5.png diff --git a/resources/additional-topics/km6.png b/content/resources/additional-topics/km6.png similarity index 100% rename from resources/additional-topics/km6.png rename to content/resources/additional-topics/km6.png diff --git a/resources/additional-topics/km7.png b/content/resources/additional-topics/km7.png similarity index 100% rename from resources/additional-topics/km7.png rename to content/resources/additional-topics/km7.png diff --git a/resources/additional-topics/km8.png b/content/resources/additional-topics/km8.png similarity index 100% rename from resources/additional-topics/km8.png rename to content/resources/additional-topics/km8.png diff --git a/resources/additional-topics/km9.png b/content/resources/additional-topics/km9.png similarity index 100% rename from resources/additional-topics/km9.png rename to content/resources/additional-topics/km9.png diff --git a/resources/additional-topics/knowledge-management.markdown.breaks_build b/content/resources/additional-topics/knowledge-management.markdown.breaks_build similarity index 100% rename from resources/additional-topics/knowledge-management.markdown.breaks_build rename to content/resources/additional-topics/knowledge-management.markdown.breaks_build diff --git a/resources/additional-topics/menu-driven-configuration.markdown.breaks_build b/content/resources/additional-topics/menu-driven-configuration.markdown.breaks_build similarity index 100% rename from resources/additional-topics/menu-driven-configuration.markdown.breaks_build rename to content/resources/additional-topics/menu-driven-configuration.markdown.breaks_build diff --git a/resources/additional-topics/mission-critical-operations.markdown.breaks_build b/content/resources/additional-topics/mission-critical-operations.markdown.breaks_build similarity index 100% rename from resources/additional-topics/mission-critical-operations.markdown.breaks_build rename to content/resources/additional-topics/mission-critical-operations.markdown.breaks_build diff --git a/resources/additional-topics/modularity.markdown b/content/resources/additional-topics/modularity.markdown similarity index 100% rename from resources/additional-topics/modularity.markdown rename to content/resources/additional-topics/modularity.markdown diff --git a/resources/additional-topics/monitoring.markdown.breaks_build b/content/resources/additional-topics/monitoring.markdown.breaks_build similarity index 100% rename from resources/additional-topics/monitoring.markdown.breaks_build rename to content/resources/additional-topics/monitoring.markdown.breaks_build diff --git a/resources/additional-topics/network-organizational-structures.png b/content/resources/additional-topics/network-organizational-structures.png similarity index 100% rename from resources/additional-topics/network-organizational-structures.png rename to content/resources/additional-topics/network-organizational-structures.png diff --git a/resources/additional-topics/open-nebula-architecture.png b/content/resources/additional-topics/open-nebula-architecture.png similarity index 100% rename from resources/additional-topics/open-nebula-architecture.png rename to content/resources/additional-topics/open-nebula-architecture.png diff --git a/resources/additional-topics/open-nebula.markdown b/content/resources/additional-topics/open-nebula.markdown similarity index 100% rename from resources/additional-topics/open-nebula.markdown rename to content/resources/additional-topics/open-nebula.markdown diff --git a/resources/additional-topics/orchestration.markdown b/content/resources/additional-topics/orchestration.markdown similarity index 100% rename from resources/additional-topics/orchestration.markdown rename to content/resources/additional-topics/orchestration.markdown diff --git a/resources/additional-topics/overlapping-sets.png b/content/resources/additional-topics/overlapping-sets.png similarity index 100% rename from resources/additional-topics/overlapping-sets.png rename to content/resources/additional-topics/overlapping-sets.png diff --git a/resources/additional-topics/package-flow.png b/content/resources/additional-topics/package-flow.png similarity index 100% rename from resources/additional-topics/package-flow.png rename to content/resources/additional-topics/package-flow.png diff --git a/resources/additional-topics/package-management.markdown.breaks_build b/content/resources/additional-topics/package-management.markdown.breaks_build similarity index 100% rename from resources/additional-topics/package-management.markdown.breaks_build rename to content/resources/additional-topics/package-management.markdown.breaks_build diff --git a/resources/additional-topics/policy-distribution-fanout.png b/content/resources/additional-topics/policy-distribution-fanout.png similarity index 100% rename from resources/additional-topics/policy-distribution-fanout.png rename to content/resources/additional-topics/policy-distribution-fanout.png diff --git a/resources/additional-topics/reporting.markdown.breaks_build b/content/resources/additional-topics/reporting.markdown.breaks_build similarity index 100% rename from resources/additional-topics/reporting.markdown.breaks_build rename to content/resources/additional-topics/reporting.markdown.breaks_build diff --git a/resources/additional-topics/role-based-access-control.markdown.breaks_build b/content/resources/additional-topics/role-based-access-control.markdown.breaks_build similarity index 100% rename from resources/additional-topics/role-based-access-control.markdown.breaks_build rename to content/resources/additional-topics/role-based-access-control.markdown.breaks_build diff --git a/resources/additional-topics/rollback.markdown.breaks_build b/content/resources/additional-topics/rollback.markdown.breaks_build similarity index 100% rename from resources/additional-topics/rollback.markdown.breaks_build rename to content/resources/additional-topics/rollback.markdown.breaks_build diff --git a/resources/additional-topics/scale-and-scalability.markdown.breaks_build b/content/resources/additional-topics/scale-and-scalability.markdown.breaks_build similarity index 100% rename from resources/additional-topics/scale-and-scalability.markdown.breaks_build rename to content/resources/additional-topics/scale-and-scalability.markdown.breaks_build diff --git a/resources/additional-topics/scheduleing-jobs.markdown.breaks_build b/content/resources/additional-topics/scheduleing-jobs.markdown.breaks_build similarity index 100% rename from resources/additional-topics/scheduleing-jobs.markdown.breaks_build rename to content/resources/additional-topics/scheduleing-jobs.markdown.breaks_build diff --git a/resources/additional-topics/scheduleing-patterns.png b/content/resources/additional-topics/scheduleing-patterns.png similarity index 100% rename from resources/additional-topics/scheduleing-patterns.png rename to content/resources/additional-topics/scheduleing-patterns.png diff --git a/resources/additional-topics/security.markdown b/content/resources/additional-topics/security.markdown similarity index 100% rename from resources/additional-topics/security.markdown rename to content/resources/additional-topics/security.markdown diff --git a/resources/additional-topics/single-points-of-failure.png b/content/resources/additional-topics/single-points-of-failure.png similarity index 100% rename from resources/additional-topics/single-points-of-failure.png rename to content/resources/additional-topics/single-points-of-failure.png diff --git a/resources/additional-topics/stigs.markdown b/content/resources/additional-topics/stigs.markdown similarity index 100% rename from resources/additional-topics/stigs.markdown rename to content/resources/additional-topics/stigs.markdown diff --git a/resources/additional-topics/teamwork.markdown b/content/resources/additional-topics/teamwork.markdown similarity index 100% rename from resources/additional-topics/teamwork.markdown rename to content/resources/additional-topics/teamwork.markdown diff --git a/resources/additional-topics/understanding.png b/content/resources/additional-topics/understanding.png similarity index 100% rename from resources/additional-topics/understanding.png rename to content/resources/additional-topics/understanding.png diff --git a/resources/additional-topics/virtualization.markdown.breaks_build b/content/resources/additional-topics/virtualization.markdown.breaks_build similarity index 100% rename from resources/additional-topics/virtualization.markdown.breaks_build rename to content/resources/additional-topics/virtualization.markdown.breaks_build diff --git a/resources/additional-topics/windows-management.markdown.breaks_build b/content/resources/additional-topics/windows-management.markdown.breaks_build similarity index 100% rename from resources/additional-topics/windows-management.markdown.breaks_build rename to content/resources/additional-topics/windows-management.markdown.breaks_build diff --git a/resources/best-practices.markdown b/content/resources/best-practices.markdown similarity index 100% rename from resources/best-practices.markdown rename to content/resources/best-practices.markdown diff --git a/resources/external-resources.markdown b/content/resources/external-resources.markdown similarity index 100% rename from resources/external-resources.markdown rename to content/resources/external-resources.markdown diff --git a/resources/faq/_index.markdown b/content/resources/faq/_index.markdown similarity index 100% rename from resources/faq/_index.markdown rename to content/resources/faq/_index.markdown diff --git a/resources/faq/agents-not-running.png b/content/resources/faq/agents-not-running.png similarity index 100% rename from resources/faq/agents-not-running.png rename to content/resources/faq/agents-not-running.png diff --git a/resources/faq/bootstrap-failed.markdown b/content/resources/faq/bootstrap-failed.markdown similarity index 100% rename from resources/faq/bootstrap-failed.markdown rename to content/resources/faq/bootstrap-failed.markdown diff --git a/resources/faq/debugging-slow-queries.markdown b/content/resources/faq/debugging-slow-queries.markdown similarity index 100% rename from resources/faq/debugging-slow-queries.markdown rename to content/resources/faq/debugging-slow-queries.markdown diff --git a/resources/faq/enterprise-changes-ui.png b/content/resources/faq/enterprise-changes-ui.png similarity index 100% rename from resources/faq/enterprise-changes-ui.png rename to content/resources/faq/enterprise-changes-ui.png diff --git a/resources/faq/enterprise-license.markdown b/content/resources/faq/enterprise-license.markdown similarity index 100% rename from resources/faq/enterprise-license.markdown rename to content/resources/faq/enterprise-license.markdown diff --git a/resources/faq/enterprise-report-collection.markdown b/content/resources/faq/enterprise-report-collection.markdown similarity index 100% rename from resources/faq/enterprise-report-collection.markdown rename to content/resources/faq/enterprise-report-collection.markdown diff --git a/resources/faq/enterprise-report-filtering.markdown b/content/resources/faq/enterprise-report-filtering.markdown similarity index 100% rename from resources/faq/enterprise-report-filtering.markdown rename to content/resources/faq/enterprise-report-filtering.markdown diff --git a/resources/faq/enterprise.markdown b/content/resources/faq/enterprise.markdown similarity index 100% rename from resources/faq/enterprise.markdown rename to content/resources/faq/enterprise.markdown diff --git a/resources/faq/fhs.markdown b/content/resources/faq/fhs.markdown similarity index 100% rename from resources/faq/fhs.markdown rename to content/resources/faq/fhs.markdown diff --git a/resources/faq/filter-inventoried-list-items.png b/content/resources/faq/filter-inventoried-list-items.png similarity index 100% rename from resources/faq/filter-inventoried-list-items.png rename to content/resources/faq/filter-inventoried-list-items.png diff --git a/resources/faq/find-public-key-for-host-sha.markdown b/content/resources/faq/find-public-key-for-host-sha.markdown similarity index 100% rename from resources/faq/find-public-key-for-host-sha.markdown rename to content/resources/faq/find-public-key-for-host-sha.markdown diff --git a/resources/faq/fix-trust-after-ip-change.markdown b/content/resources/faq/fix-trust-after-ip-change.markdown similarity index 100% rename from resources/faq/fix-trust-after-ip-change.markdown rename to content/resources/faq/fix-trust-after-ip-change.markdown diff --git a/resources/faq/fix-undefined-body-error.markdown b/content/resources/faq/fix-undefined-body-error.markdown similarity index 100% rename from resources/faq/fix-undefined-body-error.markdown rename to content/resources/faq/fix-undefined-body-error.markdown diff --git a/resources/faq/hosts-not-reporting.png b/content/resources/faq/hosts-not-reporting.png similarity index 100% rename from resources/faq/hosts-not-reporting.png rename to content/resources/faq/hosts-not-reporting.png diff --git a/resources/faq/how-does-cfengine-work-agent-workflow.png b/content/resources/faq/how-does-cfengine-work-agent-workflow.png similarity index 100% rename from resources/faq/how-does-cfengine-work-agent-workflow.png rename to content/resources/faq/how-does-cfengine-work-agent-workflow.png diff --git a/resources/faq/how-does-cfengine-work-process.png b/content/resources/faq/how-does-cfengine-work-process.png similarity index 100% rename from resources/faq/how-does-cfengine-work-process.png rename to content/resources/faq/how-does-cfengine-work-process.png diff --git a/resources/faq/integrate-custom-policy.markdown b/content/resources/faq/integrate-custom-policy.markdown similarity index 100% rename from resources/faq/integrate-custom-policy.markdown rename to content/resources/faq/integrate-custom-policy.markdown diff --git a/resources/faq/inventoried-list-items.png b/content/resources/faq/inventoried-list-items.png similarity index 100% rename from resources/faq/inventoried-list-items.png rename to content/resources/faq/inventoried-list-items.png diff --git a/resources/faq/manual-execution.markdown b/content/resources/faq/manual-execution.markdown similarity index 100% rename from resources/faq/manual-execution.markdown rename to content/resources/faq/manual-execution.markdown diff --git a/resources/faq/mustache-templating.markdown b/content/resources/faq/mustache-templating.markdown similarity index 100% rename from resources/faq/mustache-templating.markdown rename to content/resources/faq/mustache-templating.markdown diff --git a/resources/faq/output-email.markdown b/content/resources/faq/output-email.markdown similarity index 100% rename from resources/faq/output-email.markdown rename to content/resources/faq/output-email.markdown diff --git a/resources/faq/show-classes-and-vars.markdown b/content/resources/faq/show-classes-and-vars.markdown similarity index 100% rename from resources/faq/show-classes-and-vars.markdown rename to content/resources/faq/show-classes-and-vars.markdown diff --git a/resources/faq/tuning-postgresql.markdown b/content/resources/faq/tuning-postgresql.markdown similarity index 100% rename from resources/faq/tuning-postgresql.markdown rename to content/resources/faq/tuning-postgresql.markdown diff --git a/resources/faq/unable-to-log-in-mission-portal.markdown b/content/resources/faq/unable-to-log-in-mission-portal.markdown similarity index 100% rename from resources/faq/unable-to-log-in-mission-portal.markdown rename to content/resources/faq/unable-to-log-in-mission-portal.markdown diff --git a/resources/faq/uninstall-reinstall.markdown b/content/resources/faq/uninstall-reinstall.markdown similarity index 100% rename from resources/faq/uninstall-reinstall.markdown rename to content/resources/faq/uninstall-reinstall.markdown diff --git a/resources/faq/users.markdown b/content/resources/faq/users.markdown similarity index 100% rename from resources/faq/users.markdown rename to content/resources/faq/users.markdown diff --git a/resources/faq/variables.markdown b/content/resources/faq/variables.markdown similarity index 100% rename from resources/faq/variables.markdown rename to content/resources/faq/variables.markdown diff --git a/resources/faq/what-did-cfengine-change.markdown b/content/resources/faq/what-did-cfengine-change.markdown similarity index 100% rename from resources/faq/what-did-cfengine-change.markdown rename to content/resources/faq/what-did-cfengine-change.markdown diff --git a/resources/faq/what-is-promise-locking.markdown b/content/resources/faq/what-is-promise-locking.markdown similarity index 100% rename from resources/faq/what-is-promise-locking.markdown rename to content/resources/faq/what-is-promise-locking.markdown diff --git a/resources/faq/why-are-files-not-being-distributed.markdown b/content/resources/faq/why-are-files-not-being-distributed.markdown similarity index 100% rename from resources/faq/why-are-files-not-being-distributed.markdown rename to content/resources/faq/why-are-files-not-being-distributed.markdown diff --git a/resources/faq/why-are-remote-agents-not-updating.markdown b/content/resources/faq/why-are-remote-agents-not-updating.markdown similarity index 100% rename from resources/faq/why-are-remote-agents-not-updating.markdown rename to content/resources/faq/why-are-remote-agents-not-updating.markdown diff --git a/resources/faq/why-knowledge-management.markdown b/content/resources/faq/why-knowledge-management.markdown similarity index 100% rename from resources/faq/why-knowledge-management.markdown rename to content/resources/faq/why-knowledge-management.markdown diff --git a/web-ui/Alerts.bottom.condition.type.png b/content/web-ui/Alerts.bottom.condition.type.png similarity index 100% rename from web-ui/Alerts.bottom.condition.type.png rename to content/web-ui/Alerts.bottom.condition.type.png diff --git a/web-ui/Alerts.bottom.hosts.png b/content/web-ui/Alerts.bottom.hosts.png similarity index 100% rename from web-ui/Alerts.bottom.hosts.png rename to content/web-ui/Alerts.bottom.hosts.png diff --git a/web-ui/Alerts.bottom.notifications.png b/content/web-ui/Alerts.bottom.notifications.png similarity index 100% rename from web-ui/Alerts.bottom.notifications.png rename to content/web-ui/Alerts.bottom.notifications.png diff --git a/web-ui/Alerts.new.png b/content/web-ui/Alerts.new.png similarity index 100% rename from web-ui/Alerts.new.png rename to content/web-ui/Alerts.new.png diff --git a/web-ui/Alerts.top.condition.png b/content/web-ui/Alerts.top.condition.png similarity index 100% rename from web-ui/Alerts.top.condition.png rename to content/web-ui/Alerts.top.condition.png diff --git a/web-ui/Alerts.top.name.png b/content/web-ui/Alerts.top.name.png similarity index 100% rename from web-ui/Alerts.top.name.png rename to content/web-ui/Alerts.top.name.png diff --git a/web-ui/Alerts.top.severity.png b/content/web-ui/Alerts.top.severity.png similarity index 100% rename from web-ui/Alerts.top.severity.png rename to content/web-ui/Alerts.top.severity.png diff --git a/web-ui/Authentication-settings.png b/content/web-ui/Authentication-settings.png similarity index 100% rename from web-ui/Authentication-settings.png rename to content/web-ui/Authentication-settings.png diff --git a/web-ui/Host-info-page.png b/content/web-ui/Host-info-page.png similarity index 100% rename from web-ui/Host-info-page.png rename to content/web-ui/Host-info-page.png diff --git a/web-ui/Hosts-app-custom-tree-geographic-region.png b/content/web-ui/Hosts-app-custom-tree-geographic-region.png similarity index 100% rename from web-ui/Hosts-app-custom-tree-geographic-region.png rename to content/web-ui/Hosts-app-custom-tree-geographic-region.png diff --git a/web-ui/Hosts-app-overview.png b/content/web-ui/Hosts-app-overview.png similarity index 100% rename from web-ui/Hosts-app-overview.png rename to content/web-ui/Hosts-app-overview.png diff --git a/web-ui/Mission-Portal-Monitoring-1.png b/content/web-ui/Mission-Portal-Monitoring-1.png similarity index 100% rename from web-ui/Mission-Portal-Monitoring-1.png rename to content/web-ui/Mission-Portal-Monitoring-1.png diff --git a/web-ui/Mission-portal-health-dignostics-header.png b/content/web-ui/Mission-portal-health-dignostics-header.png similarity index 100% rename from web-ui/Mission-portal-health-dignostics-header.png rename to content/web-ui/Mission-portal-health-dignostics-header.png diff --git a/web-ui/Settings-1.png b/content/web-ui/Settings-1.png similarity index 100% rename from web-ui/Settings-1.png rename to content/web-ui/Settings-1.png diff --git a/web-ui/Settings-2.png b/content/web-ui/Settings-2.png similarity index 100% rename from web-ui/Settings-2.png rename to content/web-ui/Settings-2.png diff --git a/web-ui/Settings-3.png b/content/web-ui/Settings-3.png similarity index 100% rename from web-ui/Settings-3.png rename to content/web-ui/Settings-3.png diff --git a/web-ui/Settings-4.png b/content/web-ui/Settings-4.png similarity index 100% rename from web-ui/Settings-4.png rename to content/web-ui/Settings-4.png diff --git a/web-ui/Settings-6.png b/content/web-ui/Settings-6.png similarity index 100% rename from web-ui/Settings-6.png rename to content/web-ui/Settings-6.png diff --git a/web-ui/Settings-7.png b/content/web-ui/Settings-7.png similarity index 100% rename from web-ui/Settings-7.png rename to content/web-ui/Settings-7.png diff --git a/web-ui/Settings-role.png b/content/web-ui/Settings-role.png similarity index 100% rename from web-ui/Settings-role.png rename to content/web-ui/Settings-role.png diff --git a/web-ui/Time-zone-modal.png b/content/web-ui/Time-zone-modal.png similarity index 100% rename from web-ui/Time-zone-modal.png rename to content/web-ui/Time-zone-modal.png diff --git a/web-ui/User-profile.png b/content/web-ui/User-profile.png similarity index 100% rename from web-ui/User-profile.png rename to content/web-ui/User-profile.png diff --git a/web-ui/_index.markdown b/content/web-ui/_index.markdown similarity index 100% rename from web-ui/_index.markdown rename to content/web-ui/_index.markdown diff --git a/web-ui/add-new-user.png b/content/web-ui/add-new-user.png similarity index 100% rename from web-ui/add-new-user.png rename to content/web-ui/add-new-user.png diff --git a/web-ui/add_columns.png b/content/web-ui/add_columns.png similarity index 100% rename from web-ui/add_columns.png rename to content/web-ui/add_columns.png diff --git a/web-ui/alerts-and-notifications.markdown b/content/web-ui/alerts-and-notifications.markdown similarity index 100% rename from web-ui/alerts-and-notifications.markdown rename to content/web-ui/alerts-and-notifications.markdown diff --git a/web-ui/clone-dashboard.png b/content/web-ui/clone-dashboard.png similarity index 100% rename from web-ui/clone-dashboard.png rename to content/web-ui/clone-dashboard.png diff --git a/web-ui/create-alert-custom-action-syslog.png b/content/web-ui/create-alert-custom-action-syslog.png similarity index 100% rename from web-ui/create-alert-custom-action-syslog.png rename to content/web-ui/create-alert-custom-action-syslog.png diff --git a/web-ui/custom-actions-for-alerts.markdown b/content/web-ui/custom-actions-for-alerts.markdown similarity index 100% rename from web-ui/custom-actions-for-alerts.markdown rename to content/web-ui/custom-actions-for-alerts.markdown diff --git a/web-ui/dashboard-event-log.png b/content/web-ui/dashboard-event-log.png similarity index 100% rename from web-ui/dashboard-event-log.png rename to content/web-ui/dashboard-event-log.png diff --git a/web-ui/dashboard-widget-changes.png b/content/web-ui/dashboard-widget-changes.png similarity index 100% rename from web-ui/dashboard-widget-changes.png rename to content/web-ui/dashboard-widget-changes.png diff --git a/web-ui/dashboard-widget-newly-bootstrapped.png b/content/web-ui/dashboard-widget-newly-bootstrapped.png similarity index 100% rename from web-ui/dashboard-widget-newly-bootstrapped.png rename to content/web-ui/dashboard-widget-newly-bootstrapped.png diff --git a/web-ui/debugging-mission-portal.markdown b/content/web-ui/debugging-mission-portal.markdown similarity index 100% rename from web-ui/debugging-mission-portal.markdown rename to content/web-ui/debugging-mission-portal.markdown diff --git a/web-ui/enterprise-reporting/Report-Builder-3.18.0.png b/content/web-ui/enterprise-reporting/Report-Builder-3.18.0.png similarity index 100% rename from web-ui/enterprise-reporting/Report-Builder-3.18.0.png rename to content/web-ui/enterprise-reporting/Report-Builder-3.18.0.png diff --git a/web-ui/enterprise-reporting/Reports-Inventory-1.png b/content/web-ui/enterprise-reporting/Reports-Inventory-1.png similarity index 100% rename from web-ui/enterprise-reporting/Reports-Inventory-1.png rename to content/web-ui/enterprise-reporting/Reports-Inventory-1.png diff --git a/web-ui/enterprise-reporting/Reports-Inventory-2.png b/content/web-ui/enterprise-reporting/Reports-Inventory-2.png similarity index 100% rename from web-ui/enterprise-reporting/Reports-Inventory-2.png rename to content/web-ui/enterprise-reporting/Reports-Inventory-2.png diff --git a/web-ui/enterprise-reporting/Reports-Inventory-3.png b/content/web-ui/enterprise-reporting/Reports-Inventory-3.png similarity index 100% rename from web-ui/enterprise-reporting/Reports-Inventory-3.png rename to content/web-ui/enterprise-reporting/Reports-Inventory-3.png diff --git a/web-ui/enterprise-reporting/Reports-Inventory-4.png b/content/web-ui/enterprise-reporting/Reports-Inventory-4.png similarity index 100% rename from web-ui/enterprise-reporting/Reports-Inventory-4.png rename to content/web-ui/enterprise-reporting/Reports-Inventory-4.png diff --git a/web-ui/enterprise-reporting/Reports-Inventory-5.png b/content/web-ui/enterprise-reporting/Reports-Inventory-5.png similarity index 100% rename from web-ui/enterprise-reporting/Reports-Inventory-5.png rename to content/web-ui/enterprise-reporting/Reports-Inventory-5.png diff --git a/web-ui/enterprise-reporting/Reports-Inventory-6.png b/content/web-ui/enterprise-reporting/Reports-Inventory-6.png similarity index 100% rename from web-ui/enterprise-reporting/Reports-Inventory-6.png rename to content/web-ui/enterprise-reporting/Reports-Inventory-6.png diff --git a/web-ui/enterprise-reporting/_index.markdown b/content/web-ui/enterprise-reporting/_index.markdown similarity index 100% rename from web-ui/enterprise-reporting/_index.markdown rename to content/web-ui/enterprise-reporting/_index.markdown diff --git a/web-ui/enterprise-reporting/client-initiated-reporting.markdown b/content/web-ui/enterprise-reporting/client-initiated-reporting.markdown similarity index 100% rename from web-ui/enterprise-reporting/client-initiated-reporting.markdown rename to content/web-ui/enterprise-reporting/client-initiated-reporting.markdown diff --git a/web-ui/enterprise-reporting/reporting-architecture.markdown b/content/web-ui/enterprise-reporting/reporting-architecture.markdown similarity index 100% rename from web-ui/enterprise-reporting/reporting-architecture.markdown rename to content/web-ui/enterprise-reporting/reporting-architecture.markdown diff --git a/web-ui/enterprise-reporting/reporting_ui.markdown b/content/web-ui/enterprise-reporting/reporting_ui.markdown similarity index 100% rename from web-ui/enterprise-reporting/reporting_ui.markdown rename to content/web-ui/enterprise-reporting/reporting_ui.markdown diff --git a/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown b/content/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown similarity index 100% rename from web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown rename to content/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown diff --git a/web-ui/federated-reporting.markdown b/content/web-ui/federated-reporting.markdown similarity index 100% rename from web-ui/federated-reporting.markdown rename to content/web-ui/federated-reporting.markdown diff --git a/web-ui/fr-connect-a-hub.png b/content/web-ui/fr-connect-a-hub.png similarity index 100% rename from web-ui/fr-connect-a-hub.png rename to content/web-ui/fr-connect-a-hub.png diff --git a/web-ui/fr-disabled-feeder.png b/content/web-ui/fr-disabled-feeder.png similarity index 100% rename from web-ui/fr-disabled-feeder.png rename to content/web-ui/fr-disabled-feeder.png diff --git a/web-ui/fr-edit-hub-disable.png b/content/web-ui/fr-edit-hub-disable.png similarity index 100% rename from web-ui/fr-edit-hub-disable.png rename to content/web-ui/fr-edit-hub-disable.png diff --git a/web-ui/fr-feeder-added.png b/content/web-ui/fr-feeder-added.png similarity index 100% rename from web-ui/fr-feeder-added.png rename to content/web-ui/fr-feeder-added.png diff --git a/web-ui/fr-hub-management-default.png b/content/web-ui/fr-hub-management-default.png similarity index 100% rename from web-ui/fr-hub-management-default.png rename to content/web-ui/fr-hub-management-default.png diff --git a/web-ui/fr-hub-management-enabled.png b/content/web-ui/fr-hub-management-enabled.png similarity index 100% rename from web-ui/fr-hub-management-enabled.png rename to content/web-ui/fr-hub-management-enabled.png diff --git a/web-ui/fr-superhub-enabled-no-feeders.png b/content/web-ui/fr-superhub-enabled-no-feeders.png similarity index 100% rename from web-ui/fr-superhub-enabled-no-feeders.png rename to content/web-ui/fr-superhub-enabled-no-feeders.png diff --git a/web-ui/health.markdown b/content/web-ui/health.markdown similarity index 100% rename from web-ui/health.markdown rename to content/web-ui/health.markdown diff --git a/web-ui/host-action-buttons.png b/content/web-ui/host-action-buttons.png similarity index 100% rename from web-ui/host-action-buttons.png rename to content/web-ui/host-action-buttons.png diff --git a/web-ui/host-info-collect-reports.png b/content/web-ui/host-info-collect-reports.png similarity index 100% rename from web-ui/host-info-collect-reports.png rename to content/web-ui/host-info-collect-reports.png diff --git a/web-ui/host-info-delete-host.png b/content/web-ui/host-info-delete-host.png similarity index 100% rename from web-ui/host-info-delete-host.png rename to content/web-ui/host-info-delete-host.png diff --git a/web-ui/host-info-get-url.png b/content/web-ui/host-info-get-url.png similarity index 100% rename from web-ui/host-info-get-url.png rename to content/web-ui/host-info-get-url.png diff --git a/web-ui/host-info-run-agent.png b/content/web-ui/host-info-run-agent.png similarity index 100% rename from web-ui/host-info-run-agent.png rename to content/web-ui/host-info-run-agent.png diff --git a/web-ui/host-specific-data-classes.png b/content/web-ui/host-specific-data-classes.png similarity index 100% rename from web-ui/host-specific-data-classes.png rename to content/web-ui/host-specific-data-classes.png diff --git a/web-ui/host-specific-data-variables.png b/content/web-ui/host-specific-data-variables.png similarity index 100% rename from web-ui/host-specific-data-variables.png rename to content/web-ui/host-specific-data-variables.png diff --git a/web-ui/hosts.markdown b/content/web-ui/hosts.markdown similarity index 100% rename from web-ui/hosts.markdown rename to content/web-ui/hosts.markdown diff --git a/web-ui/hub_administration/Mission-portal-remove-host.png b/content/web-ui/hub_administration/Mission-portal-remove-host.png similarity index 100% rename from web-ui/hub_administration/Mission-portal-remove-host.png rename to content/web-ui/hub_administration/Mission-portal-remove-host.png diff --git a/web-ui/hub_administration/_index.markdown b/content/web-ui/hub_administration/_index.markdown similarity index 100% rename from web-ui/hub_administration/_index.markdown rename to content/web-ui/hub_administration/_index.markdown diff --git a/web-ui/hub_administration/adjusting-schedules.markdown b/content/web-ui/hub_administration/adjusting-schedules.markdown similarity index 100% rename from web-ui/hub_administration/adjusting-schedules.markdown rename to content/web-ui/hub_administration/adjusting-schedules.markdown diff --git a/web-ui/hub_administration/backup-and-restore.markdown b/content/web-ui/hub_administration/backup-and-restore.markdown similarity index 100% rename from web-ui/hub_administration/backup-and-restore.markdown rename to content/web-ui/hub_administration/backup-and-restore.markdown diff --git a/web-ui/hub_administration/custom-https-certificate.markdown b/content/web-ui/hub_administration/custom-https-certificate.markdown similarity index 100% rename from web-ui/hub_administration/custom-https-certificate.markdown rename to content/web-ui/hub_administration/custom-https-certificate.markdown diff --git a/web-ui/hub_administration/custom-ldap-port-settings.png b/content/web-ui/hub_administration/custom-ldap-port-settings.png similarity index 100% rename from web-ui/hub_administration/custom-ldap-port-settings.png rename to content/web-ui/hub_administration/custom-ldap-port-settings.png diff --git a/web-ui/hub_administration/custom-ldap-port.markdown b/content/web-ui/hub_administration/custom-ldap-port.markdown similarity index 100% rename from web-ui/hub_administration/custom-ldap-port.markdown rename to content/web-ui/hub_administration/custom-ldap-port.markdown diff --git a/web-ui/hub_administration/custom-ldaps-certificate.markdown b/content/web-ui/hub_administration/custom-ldaps-certificate.markdown similarity index 100% rename from web-ui/hub_administration/custom-ldaps-certificate.markdown rename to content/web-ui/hub_administration/custom-ldaps-certificate.markdown diff --git a/web-ui/hub_administration/decommissioning-hosts.markdown b/content/web-ui/hub_administration/decommissioning-hosts.markdown similarity index 100% rename from web-ui/hub_administration/decommissioning-hosts.markdown rename to content/web-ui/hub_administration/decommissioning-hosts.markdown diff --git a/web-ui/hub_administration/enable-plain-http.markdown b/content/web-ui/hub_administration/enable-plain-http.markdown similarity index 100% rename from web-ui/hub_administration/enable-plain-http.markdown rename to content/web-ui/hub_administration/enable-plain-http.markdown diff --git a/web-ui/hub_administration/extended-menu.png b/content/web-ui/hub_administration/extended-menu.png similarity index 100% rename from web-ui/hub_administration/extended-menu.png rename to content/web-ui/hub_administration/extended-menu.png diff --git a/web-ui/hub_administration/extended-query-builder-report.png b/content/web-ui/hub_administration/extended-query-builder-report.png similarity index 100% rename from web-ui/hub_administration/extended-query-builder-report.png rename to content/web-ui/hub_administration/extended-query-builder-report.png diff --git a/web-ui/hub_administration/extended-query-builder.png b/content/web-ui/hub_administration/extended-query-builder.png similarity index 100% rename from web-ui/hub_administration/extended-query-builder.png rename to content/web-ui/hub_administration/extended-query-builder.png diff --git a/web-ui/hub_administration/extending-mission-portal.markdown b/content/web-ui/hub_administration/extending-mission-portal.markdown similarity index 100% rename from web-ui/hub_administration/extending-mission-portal.markdown rename to content/web-ui/hub_administration/extending-mission-portal.markdown diff --git a/web-ui/hub_administration/extending-query-builder.markdown b/content/web-ui/hub_administration/extending-query-builder.markdown similarity index 100% rename from web-ui/hub_administration/extending-query-builder.markdown rename to content/web-ui/hub_administration/extending-query-builder.markdown diff --git a/web-ui/hub_administration/lookup-license-info.markdown b/content/web-ui/hub_administration/lookup-license-info.markdown similarity index 100% rename from web-ui/hub_administration/lookup-license-info.markdown rename to content/web-ui/hub_administration/lookup-license-info.markdown diff --git a/web-ui/hub_administration/policy-deployment.markdown b/content/web-ui/hub_administration/policy-deployment.markdown similarity index 100% rename from web-ui/hub_administration/policy-deployment.markdown rename to content/web-ui/hub_administration/policy-deployment.markdown diff --git a/web-ui/hub_administration/public-key-distribution.markdown b/content/web-ui/hub_administration/public-key-distribution.markdown similarity index 100% rename from web-ui/hub_administration/public-key-distribution.markdown rename to content/web-ui/hub_administration/public-key-distribution.markdown diff --git a/web-ui/hub_administration/regenerate-self-signed-cert.markdown b/content/web-ui/hub_administration/regenerate-self-signed-cert.markdown similarity index 100% rename from web-ui/hub_administration/regenerate-self-signed-cert.markdown rename to content/web-ui/hub_administration/regenerate-self-signed-cert.markdown diff --git a/web-ui/hub_administration/reinstall.markdown b/content/web-ui/hub_administration/reinstall.markdown similarity index 100% rename from web-ui/hub_administration/reinstall.markdown rename to content/web-ui/hub_administration/reinstall.markdown diff --git a/web-ui/hub_administration/reset-admin-creds.markdown b/content/web-ui/hub_administration/reset-admin-creds.markdown similarity index 100% rename from web-ui/hub_administration/reset-admin-creds.markdown rename to content/web-ui/hub_administration/reset-admin-creds.markdown diff --git a/web-ui/hub_administration/settings-menu.png b/content/web-ui/hub_administration/settings-menu.png similarity index 100% rename from web-ui/hub_administration/settings-menu.png rename to content/web-ui/hub_administration/settings-menu.png diff --git a/web-ui/hub_administration/settings-vcs.png b/content/web-ui/hub_administration/settings-vcs.png similarity index 100% rename from web-ui/hub_administration/settings-vcs.png rename to content/web-ui/hub_administration/settings-vcs.png diff --git a/web-ui/inventory_filter.gif b/content/web-ui/inventory_filter.gif similarity index 100% rename from web-ui/inventory_filter.gif rename to content/web-ui/inventory_filter.gif diff --git a/web-ui/license-info.png b/content/web-ui/license-info.png similarity index 100% rename from web-ui/license-info.png rename to content/web-ui/license-info.png diff --git a/web-ui/license-status-report.png b/content/web-ui/license-status-report.png similarity index 100% rename from web-ui/license-status-report.png rename to content/web-ui/license-status-report.png diff --git a/web-ui/license.markdown b/content/web-ui/license.markdown similarity index 100% rename from web-ui/license.markdown rename to content/web-ui/license.markdown diff --git a/web-ui/mail-settings.png b/content/web-ui/mail-settings.png similarity index 100% rename from web-ui/mail-settings.png rename to content/web-ui/mail-settings.png diff --git a/web-ui/measurements.markdown b/content/web-ui/measurements.markdown similarity index 100% rename from web-ui/measurements.markdown rename to content/web-ui/measurements.markdown diff --git a/web-ui/mp-settings-custom-notification-add.png b/content/web-ui/mp-settings-custom-notification-add.png similarity index 100% rename from web-ui/mp-settings-custom-notification-add.png rename to content/web-ui/mp-settings-custom-notification-add.png diff --git a/web-ui/mp-settings-custom-notification.png b/content/web-ui/mp-settings-custom-notification.png similarity index 100% rename from web-ui/mp-settings-custom-notification.png rename to content/web-ui/mp-settings-custom-notification.png diff --git a/web-ui/pause_alerts.gif b/content/web-ui/pause_alerts.gif similarity index 100% rename from web-ui/pause_alerts.gif rename to content/web-ui/pause_alerts.gif diff --git a/web-ui/role_based_access_control_settings.png b/content/web-ui/role_based_access_control_settings.png similarity index 100% rename from web-ui/role_based_access_control_settings.png rename to content/web-ui/role_based_access_control_settings.png diff --git a/web-ui/roles-list.png b/content/web-ui/roles-list.png similarity index 100% rename from web-ui/roles-list.png rename to content/web-ui/roles-list.png diff --git a/web-ui/settings-export-import-3.18.0.png b/content/web-ui/settings-export-import-3.18.0.png similarity index 100% rename from web-ui/settings-export-import-3.18.0.png rename to content/web-ui/settings-export-import-3.18.0.png diff --git a/web-ui/settings.markdown b/content/web-ui/settings.markdown similarity index 100% rename from web-ui/settings.markdown rename to content/web-ui/settings.markdown diff --git a/web-ui/web-ui-event-log.png b/content/web-ui/web-ui-event-log.png similarity index 100% rename from web-ui/web-ui-event-log.png rename to content/web-ui/web-ui-event-log.png diff --git a/web-ui/web-ui-events-api-rbac-get-event-list-event-checked.png b/content/web-ui/web-ui-events-api-rbac-get-event-list-event-checked.png similarity index 100% rename from web-ui/web-ui-events-api-rbac-get-event-list-event-checked.png rename to content/web-ui/web-ui-events-api-rbac-get-event-list-event-checked.png diff --git a/web-ui/web-ui-mission-portal-api-view-whole-system-events-rbac.png b/content/web-ui/web-ui-mission-portal-api-view-whole-system-events-rbac.png similarity index 100% rename from web-ui/web-ui-mission-portal-api-view-whole-system-events-rbac.png rename to content/web-ui/web-ui-mission-portal-api-view-whole-system-events-rbac.png diff --git a/web-ui/welcome_2nd_screen.png b/content/web-ui/welcome_2nd_screen.png similarity index 100% rename from web-ui/welcome_2nd_screen.png rename to content/web-ui/welcome_2nd_screen.png diff --git a/web-ui/widget_1.gif b/content/web-ui/widget_1.gif similarity index 100% rename from web-ui/widget_1.gif rename to content/web-ui/widget_1.gif From ed8009c4a338fe20359794cc4763eff605a9a3d5 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Mon, 26 May 2025 14:34:57 +0300 Subject: [PATCH 077/142] Added preprocessor script to fix image paths Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit a4406eeceaff3736932b3bac7619dda5c767b117) --- .../_scripts/cfdoc_images_path_resolver.py | 44 +++++++++++++++++++ generator/_scripts/cfdoc_preprocess.py | 9 ++++ 2 files changed, 53 insertions(+) create mode 100644 generator/_scripts/cfdoc_images_path_resolver.py diff --git a/generator/_scripts/cfdoc_images_path_resolver.py b/generator/_scripts/cfdoc_images_path_resolver.py new file mode 100644 index 000000000..7af389931 --- /dev/null +++ b/generator/_scripts/cfdoc_images_path_resolver.py @@ -0,0 +1,44 @@ +import re +import os + +def run(config): + """ Fixes images paths + The markdown files other than _index.markdown need img tag src values adjusted if they are relative. + They need to reference the parent directory with ../ prefixed to the relative location of the image file. + """ + markdown_files = config["markdown_files"] + + for file in markdown_files: + process(file) + +def load_references(file_path): + try: + with open(file_path, 'r', encoding='utf-8') as f: + return f.read() + except FileNotFoundError: + return "" + +def process(file_path): + """Process a markdown file to fix image paths""" + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + is_index_file = os.path.basename(file_path) == "_index.markdown" + + if is_index_file: + # For _index.markdown files, leave image paths as is. As they are on the same level + return + + # Pattern to match img src with relative paths that need fixing + # skips ../, /, or http + img_pattern = r']*?)src="(?!\.\.\/|\/|https?:\/\/)([^"]+?)"([^>]*?)>' + + # Replace with ../ added to the path + modified_content = re.sub(img_pattern, r'', content, flags=re.IGNORECASE); + if modified_content != content: + with open(file_path, 'w', encoding='utf-8') as f: + f.write(modified_content) + + except Exception as e: + print(f"Error processing {file_path}: {e}") diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index 4a2ebcd55..a6810fabd 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -32,6 +32,7 @@ import cfdoc_patch_header_nav as patch_header_nav import cfdoc_references_resolver as references_resolver import cfdoc_shortcodes_resolver as shortcodes_resolver +import cfdoc_images_path_resolver as images_path_resolver import sys import os import traceback @@ -104,4 +105,12 @@ print(sys.exc_info()) exit(3) +try: + images_path_resolver.run(config) +except: + print("images_path_resolver: Fatal error resolving images paths") + sys.stdout.write(" Exception: ") + print(sys.exc_info()) + exit(3) + exit(0) From 315d5f747a29d9e0092d5a2319bcd11541c41ce6 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 12:29:30 +0300 Subject: [PATCH 078/142] Adjusted the links from html to path-based on the Home page Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit bf806e65549b9df52eb88005c19ac302a16484b8) --- content/_index.markdown | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/content/_index.markdown b/content/_index.markdown index ea3b675b5..ab5f2eabe 100644 --- a/content/_index.markdown +++ b/content/_index.markdown @@ -14,53 +14,53 @@ alias: index.html It includes the reference for the following versions of CFEngine:

    - {% include lts_versions_list.html %} + {{< includehtml file="static/lts_versions_list.html" >}}
- Go to the page + Go to the page
From b956529cf0199f264e730a932841c7bd195b02e5 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 12:30:53 +0300 Subject: [PATCH 079/142] Replaced Jekyll comments with HTML comments supported by Hugo Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit bbacb01c0d905c1eb098c3646b44cf49f8be66ab) --- content/overview/how-cfengine-works.markdown | 4 ++-- content/reference/functions/_index.markdown | 4 ++-- content/reference/language-concepts/modules/_index.markdown | 4 ++-- content/reference/promise-types/files/_index.markdown | 4 ++-- content/reference/promise-types/reports.markdown | 4 ++-- content/reference/promise-types/storage.markdown | 2 +- content/resources/additional-topics/itil.markdown | 4 ++-- content/resources/faq/enterprise-report-collection.markdown | 2 +- content/web-ui/_index.markdown | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/content/overview/how-cfengine-works.markdown b/content/overview/how-cfengine-works.markdown index 9b1dec31e..b1136af45 100644 --- a/content/overview/how-cfengine-works.markdown +++ b/content/overview/how-cfengine-works.markdown @@ -53,8 +53,8 @@ agent was able to repair the state into compliance * **Promise not Kept**: Actual state was not equal to Desired state and the agent was not able to restore into compliance -{% comment %}Promises you cannot keep are no better than lies! -https://www.youtube.com/watch?v=Zd9-wdGzedU {% endcomment %} + ## Graphical illustration of CFEngine process diff --git a/content/reference/functions/_index.markdown b/content/reference/functions/_index.markdown index 594bb520f..65aa4cdae 100644 --- a/content/reference/functions/_index.markdown +++ b/content/reference/functions/_index.markdown @@ -93,12 +93,12 @@ functions multiple times, which can be a performance concern. Some _system_ functions are particularly expensive: -{% comment %} + * `execresult()` and `returnszero()` for shell execution * `regldap()`, `ldapvalue()`, and `ldaplist()` for LDAP queries diff --git a/content/reference/language-concepts/modules/_index.markdown b/content/reference/language-concepts/modules/_index.markdown index 85a2ede32..0fd51fa69 100644 --- a/content/reference/language-concepts/modules/_index.markdown +++ b/content/reference/language-concepts/modules/_index.markdown @@ -6,13 +6,13 @@ published: true Modules allow users to extend the capabilities of CFEngine in a modular way, they can be easily added and upgraded independently of when you upgrade your CFEngine version. Several different types of modules are available. -{% comment %} + ## Promise modules diff --git a/content/reference/promise-types/files/_index.markdown b/content/reference/promise-types/files/_index.markdown index abb222bd5..adb635d69 100644 --- a/content/reference/promise-types/files/_index.markdown +++ b/content/reference/promise-types/files/_index.markdown @@ -2033,7 +2033,7 @@ bundle agent example **Example:** -{% comment %} This example contains mustache, so it needs to be wrapped in raw or else it won't render as desired.{% endcomment %} + {% raw %} [%CFEngine_include_example(template_method-inline_mustache.cf)%] {% endraw %} @@ -3179,7 +3179,7 @@ for `inline_mustache` and `mustache`. For mustache explanation see **Example:** -{% comment %} This example contains mustache, so it needs to be wrapped in raw or else it won't render as desired.{% endcomment %} + {% raw %} [%CFEngine_include_example(template_method-inline_mustache.cf)%] {% endraw %} diff --git a/content/reference/promise-types/reports.markdown b/content/reference/promise-types/reports.markdown index 89721174e..75ad1c712 100644 --- a/content/reference/promise-types/reports.markdown +++ b/content/reference/promise-types/reports.markdown @@ -11,9 +11,9 @@ reports are guarded appropriately. [%CFEngine_include_example(reports.cf)%] -{% comment %} TODO: Should link to a page that describes all CFEngine output + Messages output by report promises are prefixed with the letter R to distinguish them from other output. diff --git a/content/reference/promise-types/storage.markdown b/content/reference/promise-types/storage.markdown index 2a6fce414..45b47f0db 100644 --- a/content/reference/promise-types/storage.markdown +++ b/content/reference/promise-types/storage.markdown @@ -84,7 +84,7 @@ body mount example **Type:** (menu option) **Allowed input range:** -{% comment %}cf-promises --syntax-description=json | jq '.bodyTypes.mount.attributes.mount_type.range|split(",")'{% endcomment %} + * `nfs` * `nfs2` diff --git a/content/resources/additional-topics/itil.markdown b/content/resources/additional-topics/itil.markdown index cd427a84a..29e851c44 100644 --- a/content/resources/additional-topics/itil.markdown +++ b/content/resources/additional-topics/itil.markdown @@ -412,14 +412,14 @@ know how much equipment is in use and how much can be brought in at a moment's notice to solve a business problem. These are a few of the reasons why we need to keep track of assets. -{% comment %} + ### Change management in the enterprise diff --git a/content/resources/faq/enterprise-report-collection.markdown b/content/resources/faq/enterprise-report-collection.markdown index b728b1795..bee66a503 100644 --- a/content/resources/faq/enterprise-report-collection.markdown +++ b/content/resources/faq/enterprise-report-collection.markdown @@ -26,7 +26,7 @@ in [`body hub control`][cf-hub#control-promises]. ## How often does cf-hub re-check the LICENSE -{% comment %}cf-hub/license-checking.c:#define SECONDS_BETWEEN_CHECKS (5 * SECONDS_PER_MINUTE){% endcomment %} + `cf-hub` re-checks the license when it is started and once every 5 minutes after that. diff --git a/content/web-ui/_index.markdown b/content/web-ui/_index.markdown index a01e0d422..c83987e40 100644 --- a/content/web-ui/_index.markdown +++ b/content/web-ui/_index.markdown @@ -72,7 +72,7 @@ Examples of significant events include: - Deleting a host - Alert status change -Events are accessible {% comment %}via the Events API {% endcomment %}from every Mission Portal +Events are accessible from every Mission Portal dashboard. The event log on the dashboard is filtered to show only information relevant based on the widgets present. It shows when alerts are triggered and cleared and when hosts are bootstrapped or decommissioned. From 80fdd95e2a139d7c2a73f86ff6397ae989abfabf Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 14:46:51 +0300 Subject: [PATCH 080/142] Added search and versions pages Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 56c683390a8048183db0abfc04dc7ca8016a26fd) --- content/search.markdown | 6 ++++++ content/versions.markdown | 9 +++++++++ 2 files changed, 15 insertions(+) create mode 100644 content/search.markdown create mode 100644 content/versions.markdown diff --git a/content/search.markdown b/content/search.markdown new file mode 100644 index 000000000..c6f890be6 --- /dev/null +++ b/content/search.markdown @@ -0,0 +1,6 @@ +--- +layout: search +title: Search +hidden: true +alias: search +--- diff --git a/content/versions.markdown b/content/versions.markdown new file mode 100644 index 000000000..47eb2a113 --- /dev/null +++ b/content/versions.markdown @@ -0,0 +1,9 @@ +--- +layout: versions +title: Versions +hidden: true +sorting: 1 +--- +# Versions + +Following versions are available in CFEngine docs. From e345df8e592eb3a3f6fca86c67f96022faa66036 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 14:47:02 +0300 Subject: [PATCH 081/142] Removed unsuported {%raw%} Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit ab9ef4e8698a6e4fe92f48779554ce240c5f6c1c) --- .../example_edit_motd.markdown | 4 +- .../examples/tutorials/manage-ntp.markdown | 12 +-- ...der-files-with-mustache-templates.markdown | 18 ++--- .../functions/string_mustache.markdown | 4 +- .../modules-promises-cfengine.py.markdown | 4 +- .../modules-promises-cfengine.sh.markdown | 4 +- .../reference/promise-types/classes.markdown | 4 +- .../promise-types/files/_index.markdown | 74 +++++++++---------- .../whatsnew/changelog-core.markdown | 4 +- .../whatsnew/changelog-enterprise.markdown | 4 +- ...elog-masterfiles-policy-framework.markdown | 4 +- .../faq/mustache-templating.markdown | 24 +++--- 12 files changed, 80 insertions(+), 80 deletions(-) diff --git a/content/examples/example-snippets/promise-patterns/example_edit_motd.markdown b/content/examples/example-snippets/promise-patterns/example_edit_motd.markdown index 1ad4f0bc2..2cec094b1 100644 --- a/content/examples/example-snippets/promise-patterns/example_edit_motd.markdown +++ b/content/examples/example-snippets/promise-patterns/example_edit_motd.markdown @@ -24,9 +24,9 @@ render a `/etc/motd` using a mustache template and add useful information as: The bundle is defined like this: -{%raw%} + [%CFEngine_include_example(mustache_template_motd.cf)%] -{%endraw%} + **Example run:** diff --git a/content/examples/tutorials/manage-ntp.markdown b/content/examples/tutorials/manage-ntp.markdown index d6d040e8a..c1d7ff227 100644 --- a/content/examples/tutorials/manage-ntp.markdown +++ b/content/examples/tutorials/manage-ntp.markdown @@ -292,7 +292,7 @@ Now we will manage the configuration file using the built-in mustache templating By default, the NTP service leverages configuration properties specified in /etc/ntp.conf. In this tutorial, we introduce the concept of the files promise type. With this promise type, you can create, delete, and edit files using CFEngine policies. The example policy below illustrates the use of the files promise. -{%raw%} + ```cf3 bundle agent ntp { @@ -360,7 +360,7 @@ keys /etc/ntp/keys } ``` -{%endraw%} + What does this policy do? @@ -368,7 +368,7 @@ Let's review the different sections of the code, starting with the variable decl #### vars -{%raw%} + ```cf3 vars: linux:: @@ -392,7 +392,7 @@ includefile /etc/ntp/crypto/pw keys /etc/ntp/keys "; ``` -{%endraw%} + A few new variables are defined. The variables `ntp_package_name`, `config_file`, `driftfile`, `servers`, and `config_template_string` are defined under the `linux` context (so only linux hosts will define them). `config_file` is the path to the ntp configuration file, `driftfile` and `servers` are both variables that will be used when rendering the configuration file and `config_template_string` is the template that will be used to render the configuration file. While both `driftfile` and `servers` are set the same for all linux hosts, those variables could easily be set to different values under different contexts. @@ -522,7 +522,7 @@ Next we will augment file/template management with data sourced from a JSON data CFEngine offers out-of-the-box support for reading and writing JSON data structures. In this tutorial, we will default the NTP configuration properties in policy, but provide a path for the properties to be overridden from Augments. -{% raw %} + ```cf3 {file="ntp.cf"} bundle agent ntp { @@ -606,7 +606,7 @@ keys /etc/ntp/keys } ``` -{% endraw %} + What does this policy do? diff --git a/content/examples/tutorials/render-files-with-mustache-templates.markdown b/content/examples/tutorials/render-files-with-mustache-templates.markdown index 85ac96127..ff9a1ae7e 100644 --- a/content/examples/tutorials/render-files-with-mustache-templates.markdown +++ b/content/examples/tutorials/render-files-with-mustache-templates.markdown @@ -27,13 +27,13 @@ Allowed users
   malin=guest myapp.conf.template – the template:.
-{% raw %}Port {{port}}{% endraw %}
-{% raw %}Protocol {{protocol}}{% endraw %}
-{% raw %}Filepath {{filepath}}{% endraw %}
-{% raw %}Encryption {{encryption-level}}{% endraw %}
-{% raw %}Loglevel {{loglevel}}{% endraw %}
-{% raw %}Allowed users {{#users}}{% endraw %}
-{% raw %} {{user}}={{level}}{{/users}}{% endraw %} +Port {{port}}
+Protocol {{protocol}}
+Filepath {{filepath}}
+Encryption {{encryption-level}}
+Loglevel {{loglevel}}
+Allowed users {{#users}}
+ {{user}}={{level}}{{/users}} @@ -44,7 +44,7 @@ Create a file called `/tmp/myapp.conf.template` with the following content: ``` [file=myapp.conf.template] -{% raw %} + Port {{port}} Protocol {{protocol}} Filepath {{filepath}} @@ -52,7 +52,7 @@ Encryption {{encryption-level}} Loglevel {{loglevel}} Allowed users {{#users}} {{user}}={{level}}{{/users}} -{% endraw %} + ``` 2. Create CFEngine policy diff --git a/content/reference/functions/string_mustache.markdown b/content/reference/functions/string_mustache.markdown index d4e205b2f..bbc193969 100644 --- a/content/reference/functions/string_mustache.markdown +++ b/content/reference/functions/string_mustache.markdown @@ -13,9 +13,9 @@ The usual Mustache facilities like conditional evaluation and loops are availabl [%CFEngine_function_attributes(template_string, optional_data_container)%] **Example:** -{%raw%} + [%CFEngine_include_snippet(string_mustache.cf, #\+begin_src cfengine3, .*end_src)%] -{%endraw%} + Output: diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown index 2c1fe9774..d11514279 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown @@ -3,8 +3,8 @@ layout: default title: modules/promises/cfengine.py published: true --- -{% raw %} + ``` [%CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.py)%] ``` -{% endraw %} + diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown index bc94fa43c..d5ff3edf5 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown @@ -3,8 +3,8 @@ layout: default title: modules/promises/cfengine.sh published: true --- -{% raw %} + ``` [%CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.sh)%] ``` -{% endraw %} + diff --git a/content/reference/promise-types/classes.markdown b/content/reference/promise-types/classes.markdown index 4e161d68b..adb15d5a3 100644 --- a/content/reference/promise-types/classes.markdown +++ b/content/reference/promise-types/classes.markdown @@ -25,9 +25,9 @@ classes: - The promiser is automatically canonified when classes are defined. - Classes are not automatically canonified when checked. -{% raw %} + [%CFEngine_include_example(class-automatic-canonificiation.cf)%] -{% endraw %} + - The term ```class``` and ```context``` are sometimes used interchangeably. - The following attributes to make a complete promise. diff --git a/content/reference/promise-types/files/_index.markdown b/content/reference/promise-types/files/_index.markdown index adb635d69..d5b94696c 100644 --- a/content/reference/promise-types/files/_index.markdown +++ b/content/reference/promise-types/files/_index.markdown @@ -1404,9 +1404,9 @@ verify => "true"; **Example:** -{%raw%} + [%CFEngine_include_example(files_content.cf)%] -{%endraw%} + **History:** Was introduced in 3.16.0 @@ -2034,9 +2034,9 @@ bundle agent example **Example:** -{% raw %} + [%CFEngine_include_example(template_method-inline_mustache.cf)%] -{% endraw %} + **History:** Was introduced in 3.12.0 @@ -3180,9 +3180,9 @@ for `inline_mustache` and `mustache`. For mustache explanation see **Example:** -{% raw %} + [%CFEngine_include_example(template_method-inline_mustache.cf)%] -{% endraw %} + **History:** Was introduced in 3.12.0 @@ -3213,28 +3213,28 @@ currently supported. ##### template_method mustache Variables -The most basic tag type is the variable. A {%raw%}```{{name}}```{%endraw%} tag in a basic +The most basic tag type is the variable. A ```{{name}}``` tag in a basic template will try to find the name key in the current context. If there is no name key, the parent contexts will be checked recursively. If the top context is reached and the name key is still not found, nothing will be rendered. **All variables are HTML escaped by default**. If you want to return unescaped -HTML, use the triple mustache: {%raw%}```{{{name}}}```{%endraw%} or an ampersand -({%raw%}```{{& name}}```{%endraw%}). +HTML, use the triple mustache: ```{{{name}}}``` or an ampersand +(```{{& name}}```). A variable "miss" returns an empty string. -{%raw%} + [%CFEngine_include_example(mustache_variables.cf)%] -{%endraw%} + ##### template_method mustache Sections Sections render blocks of text one or more times, depending on the value of the key in the current context. -A section begins with a pound and ends with a slash. That is, {%raw%}```{{#key}}```{%endraw%} -begins a "person" section while {%raw%}```{{/key}}```{%endraw%} ends it. +A section begins with a pound and ends with a slash. That is, ```{{#key}}``` +begins a "person" section while ```{{/key}}``` ends it. The behavior of the section is determined by the value of the key. @@ -3243,89 +3243,89 @@ The behavior of the section is determined by the value of the key. If the key exists and has a value of false or an empty list, the HTML between the pound and slash will not be displayed. -{%raw%} + [%CFEngine_include_example(mustache_sections_empty_list.cf)%] -{%endraw%} + **Non-Empty Lists:** -{%raw%} + [%CFEngine_include_example(mustache_sections_non_empty_list.cf)%] -{%endraw%} + **Non-False Values:** When the value is non-false but not a list, it will be used as the context for a single rendering of the block. -{%raw%} + [%CFEngine_include_example(mustache_sections_non_false_value.cf)%] -{%endraw%} + ##### template_method mustache Inverted Sections An inverted section begins with a caret (hat) and ends with a slash. That is -{%raw%}```{{^key}}```{%endraw%} begins a "key" inverted section while -{%raw%}```{{/key}}```{%endraw%} ends it. +```{{^key}}``` begins a "key" inverted section while +```{{/key}}``` ends it. While sections can be used to render text one or more times based on the value of the key, inverted sections may render text once based on the inverse value of the key. That is, they will be rendered if the key doesn't exist, is false, or is an empty list. -{%raw%} + [%CFEngine_include_example(mustache_sections_inverted.cf)%] -{%endraw%} + ##### template_method mustache Comments Comments begin with a bang and are ignored. Comments may contain newlines. -{%raw%} + [%CFEngine_include_example(mustache_comments.cf)%] -{%endraw%} + ##### template_method mustache Set Delimiter Set Delimiter tags start with an equal sign and change the tag delimiters from -{%raw%}```{{```{%endraw%} and {%raw%}```}}```{%endraw%} to custom strings. +```{{``` and ```}}``` to custom strings. + -{%raw%} [%CFEngine_include_example(mustache_set_delimiters.cf)%] -{%endraw%} + ##### template_method mustache extensions The following are **CFEngine-specific extensions**. `-top-` special key representing the complete data given. Useful for iterating -over the top level of a container {%raw%}`{{#-top-}} ... {{/-top-}}`{%endraw%} +over the top level of a container `{{#-top-}} ... {{/-top-}}` and rendering json representation of data given with `$` and `%`. -{%raw%} + [%CFEngine_include_example(mustache_extension_top.cf)%] -{%endraw%} + `%` variable prefix causing data to be rendered as multi-line json representation. Like output from `storejson()`. -{%raw%} + [%CFEngine_include_example(mustache_extension_multiline_json.cf)%] -{%endraw%} + `$` variable prefix causing data to be rendered as compact json representation. Like output from `format()` with the ```%S``` format string. -{%raw%} + [%CFEngine_include_example(mustache_extension_compact_json.cf)%] -{%endraw%} + `@` expands the current key being iterated to complement the value as accessed with `.`. -{%raw%} + [%CFEngine_include_example(mustache_extension_expand_key.cf)%] -{%endraw%} + **See also:** `edit_template`, `template_data`, `datastate()` diff --git a/content/release-notes/whatsnew/changelog-core.markdown b/content/release-notes/whatsnew/changelog-core.markdown index 48b1b911d..9b077c8d1 100644 --- a/content/release-notes/whatsnew/changelog-core.markdown +++ b/content/release-notes/whatsnew/changelog-core.markdown @@ -8,7 +8,7 @@ sorting: 10 **See also:** [Enterprise changelog][Enterprise changelog], [Masterfiles changelog][Masterfiles changelog]
-{% raw %}
+
 [%CFEngine_include_markdown(core/ChangeLog)%]
-{% endraw %}
+
 
diff --git a/content/release-notes/whatsnew/changelog-enterprise.markdown b/content/release-notes/whatsnew/changelog-enterprise.markdown index 7e16a9ff0..a837ce16f 100644 --- a/content/release-notes/whatsnew/changelog-enterprise.markdown +++ b/content/release-notes/whatsnew/changelog-enterprise.markdown @@ -8,7 +8,7 @@ sorting: 30 **See also:** [Core changelog][Changelog], [Masterfiles changelog][Masterfiles changelog]
-{% raw %}
+
 [%CFEngine_include_markdown(enterprise/ChangeLog.Enterprise)%]
-{% endraw %}
+
 
diff --git a/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown b/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown index 66fa88380..0ddfba3e4 100644 --- a/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown +++ b/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown @@ -8,7 +8,7 @@ sorting: 20 **See also:** [Core changelog][Changelog], [Enterprise changelog][Enterprise changelog]
-{% raw %}
+
 [%CFEngine_include_markdown(masterfiles/CHANGELOG.md)%]
-{% endraw %}
+
 
diff --git a/content/resources/faq/mustache-templating.markdown b/content/resources/faq/mustache-templating.markdown index f57209ac0..f755d3b9e 100644 --- a/content/resources/faq/mustache-templating.markdown +++ b/content/resources/faq/mustache-templating.markdown @@ -36,11 +36,11 @@ This template should not be passed a data container; it uses the `datastate()` of the CFEngine system. That's where `classes.enterprise` and `vars.sys.cf_version` came from. -{% raw %} + ``` Version: CFEngine {{#classes.enterprise}}Enterprise{{/classes.enterprise}} {{vars.sys.cf_version}} ``` -{% endraw %} + ## How do I render a section only if a given class is not defined? @@ -54,11 +54,11 @@ This template should not be passed a data container; it uses the `datastate()` of the CFEngine system. That's where `classes.cfengine_enterprise` and `vars.sys.cf_version` came from. -{% raw %} + ``` Version: CFEngine {{#classes.cfengine_enterprise}}Enterprise{{/classes.cfengine_enterprise}}{{^classes.cfengine_enterprise}}Community{{/classes.cfengine_enterprise}} {{vars.sys.cf_version}} ``` -{% endraw %} + ## How do I use class expressions? @@ -67,30 +67,30 @@ possible to use full class expressions in mustache templates. Instead, use class expressions inside CFEngine policy to define a singular class which can be used to conditionally render a block. -{% raw %} + [%CFEngine_include_example(mustache_classes.cf)%] -{% endraw %} + ## How do I iterate over a list? This template should not be passed a data container; it uses the `datastate()` of the CFEngine system. That's where `vars.mon.listening_tcp4_ports` came from. -{% raw %} + ``` {{#vars.mon.listening_tcp4_ports}} * {{.}} {{/vars.mon.listening_tcp4_ports}} ``` -{% endraw %} + ## How can I access keys when iterating over a dict? In CFEngine, the `@` symbol expands to the current key when iterating over a dict. -{% raw %} + [%CFEngine_include_example(mustache_extension_expand_key.cf)%] -{% endraw %} + ## Can you use nested classes? @@ -99,7 +99,7 @@ In this example for ssh daemon the authorized key configuration will only be add class `SSH_LDAP_PUBKEY_BUNDLE` is true and for the class debian/centos diffenrent keywords are added. -{% raw %} + ``` {{#classes.SSH_LDAP_PUBKEY_BUNDLE}} {{#classes.debian}} @@ -112,4 +112,4 @@ AuthorizedKeysCommandRunAs {{vars.sara_data.ssh.authorized_keys_commanduser}} {{/classes.centos}} {{/classes.SSH_LDAP_PUBKEY_BUNDLE}} ``` -{% endraw %} + From f29d4f9c073c84803e1748425a9c1aa89582f876 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 14:15:50 +0300 Subject: [PATCH 082/142] Adjusted pre-process and run scirpts Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 5e9ad3aa530f344dd61f3fde372a0a4331eb2b65) --- generator/README.org | 4 +- generator/_scripts/_run.sh | 39 ++++++++++++++ generator/_scripts/_run_jekyll.sh | 54 ------------------- generator/_scripts/cfdoc_environment.py | 6 +-- generator/_scripts/cfdoc_metadata.py | 6 +-- generator/_scripts/cfdoc_patch_header_nav.py | 2 +- generator/_scripts/cfdoc_qa.py | 2 +- .../_scripts/cfdoc_shortcodes_resolver.py | 2 +- generator/_scripts/starter_pack-build-docs.sh | 2 +- generator/build/main.sh | 19 +------ 10 files changed, 53 insertions(+), 83 deletions(-) create mode 100755 generator/_scripts/_run.sh delete mode 100755 generator/_scripts/_run_jekyll.sh diff --git a/generator/README.org b/generator/README.org index 0d17e4025..c024dadeb 100644 --- a/generator/README.org +++ b/generator/README.org @@ -158,7 +158,7 @@ For example: ./_scripts/cfdoc_preprocess.py master || exit 4 - bash -x ./_scripts/_run_jekyll.sh master || exit 5 + bash -x ./_scripts/_run.sh master || exit 5 #+END_SRC @@ -174,7 +174,7 @@ Once the syntax map has been regenerated [[https://github.com/cfengine/documenta (whatever that means), resolving links, expanding our custom macros and creating printable (dead trees) versions of the documentation. -After pre-processing is complete [[https://github.com/cfengine/documentation/blob/master/generator/_scripts/_run_jekyll.sh][_run_jekyll.sh]] performs the =jekyll= build, +After pre-processing is complete [[https://github.com/cfengine/documentation/blob/master/generator/_scripts/_run.sh][_run.sh]] performs the =jekyll= build, post processes the build with [[https://github.com/cfengine/documentation/blob/master/generator/_scripts/cfdoc_postprocess.py][cfdoc_postprocess.py]] *** Publishing diff --git a/generator/_scripts/_run.sh b/generator/_scripts/_run.sh new file mode 100755 index 000000000..1d9bc96e7 --- /dev/null +++ b/generator/_scripts/_run.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +if [ -z "$WRKDIR" ] +then + echo Environment WRKDIR is not set, setting it to current working directory + WRKDIR=`pwd` + export WRKDIR +fi + +echo "Generating documentation from '$WRKDIR'..." + +sed '/^\[.*\[.*\].*\]/d' $WRKDIR/documentation/generator/_references.md > $WRKDIR/documentation/generator/new_references.md +mv $WRKDIR/documentation/generator/new_references.md $WRKDIR/documentation/generator/_references.md + +mkdir $WRKDIR/documentation/generator/pages +cp -r $WRKDIR/documentation/content/* $WRKDIR/documentation/generator/pages +cp -r $WRKDIR/documentation/generator/_includes/lts_versions_list.html $WRKDIR/documentation/hugo/static/ +cp -rf $WRKDIR/documentation/generator/_includes/versions_list.html $WRKDIR/documentation/hugo/layouts/partials/ +cp -rf $WRKDIR/documentation/generator/_includes/header_nav_options.html $WRKDIR/documentation/hugo/layouts/partials/ +rm -rf $WRKDIR/documentation/generator/pages/generator +# remove not published .markdown files +find $WRKDIR/documentation/generator/pages -type f -name "*.markdown" -exec grep -l '^published: false$' {} + | xargs rm -f +mkdir $WRKDIR/documentation/hugo/content +cp -rf $WRKDIR/documentation/generator/pages/* $WRKDIR/documentation/hugo/content + +# Hugo build +cd $WRKDIR/documentation/hugo +wget https://github.com/gohugoio/hugo/releases/download/v0.147.5/hugo_0.147.5_Linux-64bit.tar.gz -O hugo.tar.gz +tar -zxvf hugo.tar.gz +npm ci +npm run build:all + +cd $WRKDIR/documentation/generator +cp -rf $WRKDIR/documentation/hugo/scripts/search/index/searchIndex $WRKDIR/documentation/generator/_site/assets/ + +$WRKDIR/documentation/generator/_scripts/cfdoc_postprocess.py "$@" +if [ "$?" -gt "0" ]; then + exit 2; +fi diff --git a/generator/_scripts/_run_jekyll.sh b/generator/_scripts/_run_jekyll.sh deleted file mode 100755 index 97d2a93f0..000000000 --- a/generator/_scripts/_run_jekyll.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -if [ -z "$WRKDIR" ] -then - echo Environment WRKDIR is not set, setting it to current working directory - WRKDIR=`pwd` - export WRKDIR -fi - -echo "Generating documentation from '$WRKDIR'..." - -sed '/^\[.*\[.*\].*\]/d' $WRKDIR/documentation/generator/_references.md > $WRKDIR/documentation/generator/new_references.md -mv $WRKDIR/documentation/generator/new_references.md $WRKDIR/documentation/generator/_references.md - -mkdir $WRKDIR/documentation/generator/pages -cp -r $WRKDIR/documentation/* $WRKDIR/documentation/generator/pages -rm -rf $WRKDIR/documentation/generator/pages/generator -# remove not published .markdown files -find $WRKDIR/documentation/generator/pages -type f -name "*.markdown" -exec grep -l '^published: false$' {} + | xargs rm -f -cd $WRKDIR/documentation/generator - -# rvm commands are insane scripts which pollut output -# so instead of set -x we just echo each command ourselves -set +x -if [ -e "/home/jenkins/.rvm/scripts/rvm" ]; then - echo "+ /home/jenkins/.rvm/scripts/rvm" - source /home/jenkins/.rvm/scripts/rvm -elif [ -e "$HOME/.rvm/scripts/rvm" ]; then - echo "+ $HOME/.rvm/scripts/rvm" - source $HOME/.rvm/scripts/rvm -else - echo "ERROR: I couldn't source rvm from '/home/jenkins/.rvm/scripts/rvm' or '\$HOME/.rvm/scripts/rvm', probably jekyll won't work" -fi - -echo "Latest jekyll run :$BUILD_ID" > $WRKDIR/output.log -echo "Based on latest git commit :$GIT_COMMIT" >> $WRKDIR/output.log -echo "*********************************************************" >> $WRKDIR/output.log -echo "* CONSOLE OUTPUT *" >> $WRKDIR/output.log -echo "*********************************************************" >> $WRKDIR/output.log -set -x -jekyll -if [ "$?" -gt "0" ]; then - exit 1; -fi - -$WRKDIR/documentation/generator/_scripts/cfdoc_postprocess.py "$@" -if [ "$?" -gt "0" ]; then - exit 2; -fi - -$WRKDIR/documentation/generator/_scripts/_create_pdf.sh -if [ "$?" -gt "0" ]; then - exit 3; -fi diff --git a/generator/_scripts/cfdoc_environment.py b/generator/_scripts/cfdoc_environment.py index c8bc54868..ac6e644fb 100644 --- a/generator/_scripts/cfdoc_environment.py +++ b/generator/_scripts/cfdoc_environment.py @@ -42,9 +42,9 @@ def validate(branch): if not os.path.exists(config["project_directory"]): print("Directory 'documentation/generator' not found in WORKDIR") - config["markdown_directory"] = config["WORKDIR"] + "/documentation" + config["markdown_directory"] = config["WORKDIR"] + "/documentation/content" if not os.path.exists(config["markdown_directory"]): - print("Directory 'documentation' not found in WORKDIR") + print("Directory 'documentation/content' not found in WORKDIR") version = branch @@ -52,7 +52,7 @@ def validate(branch): config["include_directories"].append(config["WORKDIR"]) config["include_directories"].append(config["WORKDIR"] + "/core/examples") config["include_directories"].append( - config["WORKDIR"] + "/documentation/examples/example-snippets" + config["WORKDIR"] + "/documentation/content/examples/example-snippets" ) config["include_directories"].append( config["WORKDIR"] + "/documentation/generator/_generated" diff --git a/generator/_scripts/cfdoc_metadata.py b/generator/_scripts/cfdoc_metadata.py index 1f3f44b86..57ec6bcd8 100644 --- a/generator/_scripts/cfdoc_metadata.py +++ b/generator/_scripts/cfdoc_metadata.py @@ -78,11 +78,11 @@ def processMetaData(file_path, config): return if len(rel_file_path): - alias = "%s/%s" % (rel_file_path, file_name) + alias = "/%s/%s" % (rel_file_path, file_name) else: - alias = file_name + alias = "/" + file_name - alias = alias.lower() + alias = alias.replace("/_index", "").lower() out_file = open(file_path, "w") in_header = False diff --git a/generator/_scripts/cfdoc_patch_header_nav.py b/generator/_scripts/cfdoc_patch_header_nav.py index b7d9edfca..2e8c478b4 100644 --- a/generator/_scripts/cfdoc_patch_header_nav.py +++ b/generator/_scripts/cfdoc_patch_header_nav.py @@ -48,7 +48,7 @@ def patch(current_branch): % (link, selected, branch["Title"].replace("Version ", "")), file=f, ) - print('view all versions', file=f) + print('view all versions', file=f) with open("_includes/versions_list.html", "w") as f: for branch in data["docs"]: diff --git a/generator/_scripts/cfdoc_qa.py b/generator/_scripts/cfdoc_qa.py index 8c6c9009f..e5ae03f16 100644 --- a/generator/_scripts/cfdoc_qa.py +++ b/generator/_scripts/cfdoc_qa.py @@ -33,7 +33,7 @@ def initialize(config): logfile.write("---\n") logfile.write("layout: printable\n") logfile.write('title: "Documentation Issues"\n') - logfile.write("published: true\n") + logfile.write("published: false\n") logfile.write("alias: cfdoc_log.html\n") logfile.write("---\n") logfile.write("\n") diff --git a/generator/_scripts/cfdoc_shortcodes_resolver.py b/generator/_scripts/cfdoc_shortcodes_resolver.py index ca7fd7860..523003388 100644 --- a/generator/_scripts/cfdoc_shortcodes_resolver.py +++ b/generator/_scripts/cfdoc_shortcodes_resolver.py @@ -8,7 +8,7 @@ def process(file): # Replace the pattern {{%anything}} with {{% print `{{%$1}}` %}} # The .*? ensures a non-greedy match for the content between the braces - updated_content = re.sub(r'\{\{%(.*?)\}\}', r'{{% print `{{%\1}}` %}}', content) + updated_content = re.sub(r'\{\{%([^%]*?)\}\}', r'{{% print `{{%\1}}` %}}', content) # Write the updated content back to the file with open(file, 'w', encoding='utf-8') as f: diff --git a/generator/_scripts/starter_pack-build-docs.sh b/generator/_scripts/starter_pack-build-docs.sh index bcf9f4d88..6f4c29cc3 100644 --- a/generator/_scripts/starter_pack-build-docs.sh +++ b/generator/_scripts/starter_pack-build-docs.sh @@ -34,7 +34,7 @@ bash -x ./_regenerate_json.sh ./_scripts/cfdoc_preprocess.py master # Build docs -bash -x ./_scripts/_run_jekyll.sh master +bash -x ./_scripts/_run.sh master #strip leading slash from assets #in the _site directory diff --git a/generator/build/main.sh b/generator/build/main.sh index 16513dbe9..e3e0d6aac 100644 --- a/generator/build/main.sh +++ b/generator/build/main.sh @@ -130,25 +130,10 @@ echo "branch: $BRANCH" >> "$WRKDIR"/documentation/generator/_config.yml # so instead of set -x we just echo each command ourselves set +x -# since May 14 2019, we need this to run jekyll. IDK why. -echo "+ source ~/.rvm/scripts/rvm" -# shellcheck disable=SC1090 -source ~/.rvm/scripts/rvm -echo "+ rvm --default use 1.9.3-p551" -rvm --default use 1.9.3-p551 -echo "+ source ~/.profile" -ls -lah ~ -# shellcheck disable=SC1090 -test -f ~/.profile && source ~/.profile -echo "+ source ~/.rvm/scripts/rvm" -# shellcheck disable=SC1090 -source ~/.rvm/scripts/rvm - export LC_ALL=C.UTF-8 -# finally, run actual jekyll -echo "+ bash -x ./_scripts/_run_jekyll.sh $BRANCH || exit 6" -bash -x ./_scripts/_run_jekyll.sh "$BRANCH" || exit 6 +echo "+ bash -x ./_scripts/_run.sh $BRANCH || exit 6" +bash -x ./_scripts/_run.sh "$BRANCH" || exit 6 cd "$WRKDIR"/documentation/generator npm run build From 24cacc5163a80a4d50b0589240b87db9c71ddfe6 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Fri, 6 Jun 2025 13:55:32 +0300 Subject: [PATCH 083/142] Removed unnessesary files from generator Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 3f7907bb9bbeade55999e52b7fd36d4b6e0e23df) --- generator/_assets/css/.gitignore | 1 - generator/_assets/css/hacks.css | 0 generator/_assets/css/navigation.css | 0 generator/_assets/css/style.css | 0 generator/_assets/js/custom.js | 467 ---------------- generator/_assets/js/dropdown.js | 23 - .../_assets/js/google_analytics_search.js | 28 - generator/_assets/js/jquery-1.9.1.min.js | 5 - .../_assets/js/jquery-migrate-1.2.1.min.js | 2 - generator/_assets/js/jquery.hammer.min.js | 7 - generator/_assets/js/jquery.sidr.min.js | 4 - .../jquery_ui/jquery-ui-1.10.2.custom.min.css | 6 - .../jquery_ui/jquery-ui-1.10.2.custom.min.js | 6 - .../js/jscrollpane/jquery.jscrollpane.css | 120 ---- .../js/jscrollpane/jquery.jscrollpane.min.js | 11 - .../js/jscrollpane/jquery.mousewheel.js | 84 --- generator/_assets/styles/cfengine.less | 13 - generator/_assets/styles/less/article.less | 167 ------ generator/_assets/styles/less/base.less | 479 ---------------- generator/_assets/styles/less/buttons.less | 67 --- generator/_assets/styles/less/dropdown.less | 113 ---- generator/_assets/styles/less/font.less | 56 -- generator/_assets/styles/less/footer.less | 110 ---- generator/_assets/styles/less/header.less | 275 --------- generator/_assets/styles/less/home.less | 114 ---- generator/_assets/styles/less/menu.less | 288 ---------- generator/_assets/styles/less/modal.less | 48 -- generator/_assets/styles/less/pages.less | 297 ---------- generator/_assets/styles/less/pigments.less | 63 --- generator/_assets/styles/less/variables.less | 35 -- generator/_assets/styles/package-lock.json | 52 -- generator/_assets/styles/package.json | 9 - generator/_includes/.gitignore | 3 + generator/_includes/breadcrumbs.html | 40 -- generator/_includes/footer.html | 15 - generator/_includes/head.html | 29 - generator/_includes/header_nav.html | 37 -- generator/_includes/left_col.html | 29 - generator/_includes/marketo.html | 5 - generator/_includes/move_to_top.html | 4 - generator/_layouts/default.html | 61 -- generator/_layouts/google_search.html | 62 --- generator/_layouts/group_index.html | 25 - generator/_layouts/index.html | 28 - generator/_layouts/printable.html | 12 - generator/_layouts/toc.html | 49 -- generator/_layouts/versions.html | 15 - generator/_plugins/CfeLiquidUtils.rb | 19 - generator/_plugins/CfeUtils.rb | 11 - generator/_plugins/category_nav.rb | 526 ------------------ generator/_plugins/cfengineAddons.rb | 37 -- generator/_plugins/debug.rb | 38 -- generator/_plugins/gentagspages.rb | 92 --- generator/_plugins/jekyll_asset_pipeline.rb | 38 -- generator/_plugins/navigation.rb | 62 --- generator/_plugins/redcarpet2_markdown.rb | 81 --- generator/_plugins/references.rb | 51 -- generator/_plugins/sitemap_generator.rb | 337 ----------- generator/_scripts/_run.sh | 1 + generator/media/fonts/DINRoundOT-Bold.otf | Bin 53772 -> 0 bytes .../media/images/agent_white_background.png | Bin 56642 -> 0 bytes generator/media/images/arrow-right.svg | 6 - generator/media/images/carret-down-fill.svg | 3 - .../media/images/cfengine-logo-white.svg | 49 -- generator/media/images/cfengine-logo.svg | 89 --- .../media/images/chat-square-dots-fill.svg | 10 - generator/media/images/check.svg | 3 - generator/media/images/chevron-down.svg | 3 - generator/media/images/docs-logo.svg | 11 - generator/media/images/favicon.png | Bin 1037 -> 0 bytes generator/media/images/favicon.svg | 44 -- generator/media/images/github.svg | 3 - .../media/images/logo_wide_opengraph.png | Bin 58884 -> 0 bytes generator/media/images/mail.svg | 3 - generator/media/images/people-fill.svg | 5 - generator/media/images/zoom-in.svg | 4 - 76 files changed, 4 insertions(+), 4886 deletions(-) delete mode 100644 generator/_assets/css/.gitignore delete mode 100644 generator/_assets/css/hacks.css delete mode 100644 generator/_assets/css/navigation.css delete mode 100644 generator/_assets/css/style.css delete mode 100755 generator/_assets/js/custom.js delete mode 100644 generator/_assets/js/dropdown.js delete mode 100644 generator/_assets/js/google_analytics_search.js delete mode 100644 generator/_assets/js/jquery-1.9.1.min.js delete mode 100644 generator/_assets/js/jquery-migrate-1.2.1.min.js delete mode 100644 generator/_assets/js/jquery.hammer.min.js delete mode 100644 generator/_assets/js/jquery.sidr.min.js delete mode 100644 generator/_assets/js/jquery_ui/jquery-ui-1.10.2.custom.min.css delete mode 100644 generator/_assets/js/jquery_ui/jquery-ui-1.10.2.custom.min.js delete mode 100644 generator/_assets/js/jscrollpane/jquery.jscrollpane.css delete mode 100644 generator/_assets/js/jscrollpane/jquery.jscrollpane.min.js delete mode 100644 generator/_assets/js/jscrollpane/jquery.mousewheel.js delete mode 100644 generator/_assets/styles/cfengine.less delete mode 100755 generator/_assets/styles/less/article.less delete mode 100755 generator/_assets/styles/less/base.less delete mode 100755 generator/_assets/styles/less/buttons.less delete mode 100755 generator/_assets/styles/less/dropdown.less delete mode 100644 generator/_assets/styles/less/font.less delete mode 100755 generator/_assets/styles/less/footer.less delete mode 100755 generator/_assets/styles/less/header.less delete mode 100755 generator/_assets/styles/less/home.less delete mode 100755 generator/_assets/styles/less/menu.less delete mode 100755 generator/_assets/styles/less/modal.less delete mode 100755 generator/_assets/styles/less/pages.less delete mode 100644 generator/_assets/styles/less/pigments.less delete mode 100755 generator/_assets/styles/less/variables.less delete mode 100644 generator/_assets/styles/package-lock.json delete mode 100644 generator/_assets/styles/package.json create mode 100644 generator/_includes/.gitignore delete mode 100644 generator/_includes/breadcrumbs.html delete mode 100755 generator/_includes/footer.html delete mode 100644 generator/_includes/head.html delete mode 100755 generator/_includes/header_nav.html delete mode 100755 generator/_includes/left_col.html delete mode 100644 generator/_includes/marketo.html delete mode 100644 generator/_includes/move_to_top.html delete mode 100644 generator/_layouts/default.html delete mode 100644 generator/_layouts/google_search.html delete mode 100644 generator/_layouts/group_index.html delete mode 100644 generator/_layouts/index.html delete mode 100644 generator/_layouts/printable.html delete mode 100644 generator/_layouts/toc.html delete mode 100644 generator/_layouts/versions.html delete mode 100644 generator/_plugins/CfeLiquidUtils.rb delete mode 100644 generator/_plugins/CfeUtils.rb delete mode 100644 generator/_plugins/category_nav.rb delete mode 100644 generator/_plugins/cfengineAddons.rb delete mode 100644 generator/_plugins/debug.rb delete mode 100644 generator/_plugins/gentagspages.rb delete mode 100644 generator/_plugins/jekyll_asset_pipeline.rb delete mode 100644 generator/_plugins/navigation.rb delete mode 100644 generator/_plugins/redcarpet2_markdown.rb delete mode 100644 generator/_plugins/references.rb delete mode 100644 generator/_plugins/sitemap_generator.rb delete mode 100644 generator/media/fonts/DINRoundOT-Bold.otf delete mode 100644 generator/media/images/agent_white_background.png delete mode 100644 generator/media/images/arrow-right.svg delete mode 100644 generator/media/images/carret-down-fill.svg delete mode 100644 generator/media/images/cfengine-logo-white.svg delete mode 100644 generator/media/images/cfengine-logo.svg delete mode 100644 generator/media/images/chat-square-dots-fill.svg delete mode 100644 generator/media/images/check.svg delete mode 100644 generator/media/images/chevron-down.svg delete mode 100644 generator/media/images/docs-logo.svg delete mode 100644 generator/media/images/favicon.png delete mode 100644 generator/media/images/favicon.svg delete mode 100644 generator/media/images/github.svg delete mode 100644 generator/media/images/logo_wide_opengraph.png delete mode 100644 generator/media/images/mail.svg delete mode 100644 generator/media/images/people-fill.svg delete mode 100644 generator/media/images/zoom-in.svg diff --git a/generator/_assets/css/.gitignore b/generator/_assets/css/.gitignore deleted file mode 100644 index e1bb9ab38..000000000 --- a/generator/_assets/css/.gitignore +++ /dev/null @@ -1 +0,0 @@ -styles.min.css \ No newline at end of file diff --git a/generator/_assets/css/hacks.css b/generator/_assets/css/hacks.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/generator/_assets/css/navigation.css b/generator/_assets/css/navigation.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/generator/_assets/css/style.css b/generator/_assets/css/style.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/generator/_assets/js/custom.js b/generator/_assets/js/custom.js deleted file mode 100755 index e6a8d215b..000000000 --- a/generator/_assets/js/custom.js +++ /dev/null @@ -1,467 +0,0 @@ -'use strict'; -import '../styles/cfengine.less'; - -var is_mobile = true; -$(document).ready(function() { - if ($(window).width() > 800) - { - is_mobile = false; - } - var scrollPos = 380; - /*show/hide moveTop link */ - var showMoveTop = false; - - if (is_mobile === false) - { - $("#moveTop a").click(function(e) { - $(window).scrollTop($('#nav_wrapper').offset().top); - showMoveTop = false; - $("#moveTop").hide(); - e.preventDefault(); - }); - - $(window).scroll(function() { - if ($(window).scrollTop() > scrollPos && showMoveTop===false) { - $("#moveTop").show(); - showMoveTop = true; - } else if($(window).scrollTop() < scrollPos && showMoveTop === true ) { - $("#moveTop").hide(); - showMoveTop = false; - } - }); - } - - if ($(window).scrollTop() > scrollPos && is_mobile === false) - { - $("#moveTop").show(); - showMoveTop = true; - } - - - var ToC_start = - ""; - - var newLine, el, title, link, elClass, url, ToC=''; - var usedIds = {}; - $(".article h2, .article h3, .article h4").each(function() { - el = $(this); - title = el.text() - var id = el.attr("id"); - var uniqueId = id; - if (usedIds[id]){ - uniqueId = id +'-' + usedIds[id]; - el.attr("id",uniqueId); - usedIds[id] += 1; - } else { - usedIds[id] = 1; - } - link = "#" + uniqueId; - elClass = "link_" + el.prop("tagName").toLowerCase() - url = window.location.pathname; - - // if header has data-behavior= exclude-from-toc - do not include it to the TOC list - if (el.children('center').attr('data-behavior') !=="exclude-from-toc") - { - newLine = - "
  • " + - "" + - title + - "" + - "
  • "; - ToC += newLine; - } - }); - - if (ToC.length) - { - if (is_mobile === false) - { - $("#TOCbox_wrapper").show(); - } - var result = ToC_start + ToC + ToC_End; - - $("#TOCbox_wrapper #TOCbox_list").html(''); - $("#print_TOC").html(''); - - $("#TOCbox_wrapper #TOCbox_list").append(result); - $("#print_TOC").append(result); - } else { - $("#TOCbox_wrapper").hide(); - } - - // detect print event, display TOC - var beforePrint = function() { - $("#print_TOC_wrapper").show(); - }; - var afterPrint = function() { - $("#print_TOC_wrapper").hide(); - }; - - if (window.matchMedia) { - var mediaQueryList = window.matchMedia('print'); - mediaQueryList.addListener(function(mql) { - if (mql.matches) { - beforePrint(); - } else { - afterPrint(); - } - }); - } - - window.onbeforeprint = beforePrint; - window.onafterprint = afterPrint; - - -}); - -document.querySelectorAll('pre').forEach(function (pre) { - var closest = pre.closest('div.highlight'); - if (closest) { - closest.innerHTML += ''; - } -}); - -document.querySelectorAll(".copy-to-clipboard").forEach(function (el) { - el.addEventListener("click", function (event) { - event.preventDefault(); - var target = event.target; - var copyText = target - .closest(event.target.dataset.closest) - .querySelector(event.target.dataset.copyfrom) - .innerText - .replace(/\n+$/, ""); // remove trailing newlines from the copied text - navigator.clipboard.writeText(copyText); - target.classList.remove('bi-clipboard'); - target.className += ' bi-check2 '; - setTimeout(function () { target.className = 'bi bi-clipboard copy-to-clipboard' }, 2000); - }) -}); - -var tableOfContents = document.querySelector('.table-of-contents .TOC'); -if (tableOfContents) { - window.onclick = function (e) { - if (!e.target.closest('.TOC') && !tableOfContents.querySelector('.closed')) { - tableOfContents.classList.add('closed'); - } - }; - tableOfContents.onclick = function () { - tableOfContents.classList.toggle('closed'); - }; -} - - -var menu = document.querySelector('.top_menu ul'); -var overlay = document.querySelector('#overlay'); -var openedClass = "opened"; - -window.openMenuHandler = function (collapseMenu) { - if (collapseMenu.className.indexOf(openedClass) == -1) { - collapseMenu.classList.add(openedClass); - menu.classList.add('d-b'); - overlay.style.display = "block"; - } else { - collapseMenu.classList.remove(openedClass); - menu.classList.remove('d-b'); - overlay.style.display = "none"; - } -} - -window.openNavigationHandler = function () { - document.querySelector('.left-menu').classList.add(openedClass); - overlay.style.display = "block"; -} - -document.querySelector('.left-menu .menu-close').onclick = function () { - document.querySelector('.left-menu').classList.remove(openedClass); - overlay.style.display = "none"; -} - -overlay.onclick = function () { - document.querySelector('.collapse').classList.remove(openedClass); - document.querySelector('.left-menu').classList.remove(openedClass); - menu.classList.remove('d-b'); - overlay.style.display = "none"; -} - -var topMenuVersions = document.querySelector('.top_menu-versions'); -topMenuVersions.onclick = function (event) { - topMenuVersions.classList.toggle('opened'); -} - -document.querySelector('.top_menu-versions-title > span > span').innerText = document.querySelector('.top_menu-versions-list a[selected="selected"], .top_menu-versions-list a').innerText; - -var mainMenuCopy = document.querySelector('.left-menu ul.mainMenu').cloneNode(true); -var clickedMenuHistory = [{href: './', name: 'Home'}]; - -var urlPaths = document.location.pathname.split('/'); -var url = urlPaths[urlPaths.length - 1]; // get last url part -var currentMenuItem = document.querySelector('.left-menu li[data-url="'+ url +'"]'); - -var renderNestedMenu = function (href) { - if (href == null) { - document.querySelector('.left-menu ul.mainMenu').replaceWith(mainMenuCopy); - } else { - var ul = mainMenuCopy.querySelector('li[data-url="'+ href +'"]').querySelector('ul').cloneNode(true); - ul.classList.add('mainMenu'); - document.querySelector('.left-menu ul.mainMenu').replaceWith(ul); - var selected = document.querySelector('li[data-url="'+ url +'"]'); - if (selected){ - selected.className += ' opened current'; - } - } - - applyOnclickToMenuItems(); -} -var menuItemClickFn = function (e) { - if (window.innerWidth < 1024) { // if the window width is less than 1024 then treat the menu as mobile one - if (e.target.closest('li').classList.contains('parent')) { - e.preventDefault(); - renderNestedMenu(e.target.getAttribute('href')); - clickedMenuHistory.push({href: e.target.getAttribute('href'), name: e.target.innerText}); - buildBreadcrumbs(clickedMenuHistory); - } - } -}; - -var applyOnclickToMenuItems = function () { - document - .querySelector('.left-menu') - .querySelectorAll('ul li.parent > a') - .forEach(function (item) { - item.onclick = menuItemClickFn - }); -} -applyOnclickToMenuItems(); - -var selectedMenu = document.querySelector('.selectedMenu'); -var leftMenuBreadcrumbs = document.querySelector('.left-menu-breadcrumbs'); -var buildBreadcrumbs = function (items) { - var html = ''; - if (items.length > 3) { - items = items.slice(-3); - html = '
  • ...
  • /
  • '; - } - items.forEach(function (item, index) { - if (index > 0) { - html += '
  • /
  • '; - } - html += '
  • '+ item.name +'
  • ' - }) - leftMenuBreadcrumbs.innerHTML = html; - var lastItem = items[items.length - 1]; - if (window.innerWidth < 1024){ - selectedMenu.innerHTML = lastItem.name !== 'Home' ? - ''+ lastItem.name +' ' : - ''; - } -} - -document.querySelector('.menu-back').onclick = function () { - if (clickedMenuHistory.length != 1) { - clickedMenuHistory.pop(); - var lastHistoryElement = clickedMenuHistory[clickedMenuHistory.length - 1]; - renderNestedMenu(lastHistoryElement['name'] !== 'Home' ? lastHistoryElement['href'] : null); - buildBreadcrumbs(clickedMenuHistory); - } -} - - - -if (currentMenuItem != null) { - currentMenuItem.className += ' opened current'; - var menuHistory = []; - var currentLink = currentMenuItem.querySelector('a'); - // if selected menu item is a parent we show children on mobile menu - if (currentLink && currentMenuItem.classList.contains('parent')){ - menuHistory.unshift({href: currentLink.getAttribute('href'), name: currentLink.innerText}); - } - var closest = currentMenuItem.closest('ul').closest('li'); - - while (true) { - if (!closest) break; - if (window.innerWidth > 1023) { // if the window width more than 1023 then treat the menu as desktop one - closest.classList.add('opened'); - } else { - // Restore history from html - var link = closest.querySelector('a'); - if (link){ - menuHistory.unshift({href: link.getAttribute('href'), name: link.innerText}); - } - } - closest = closest.closest('ul').closest('li'); - } - clickedMenuHistory = clickedMenuHistory.concat(menuHistory); -} -buildBreadcrumbs(clickedMenuHistory); - -if (window.innerWidth > 1023) { - document.querySelectorAll('.mainMenu li.parent > i').forEach(function (element) { - element.onclick = function (event) { - event.stopImmediatePropagation(); - var parent = element.closest('li.parent'); - parent.classList.toggle('opened'); - var openedSubmenus = parent.querySelectorAll('.' +openedClass); - openedSubmenus.forEach((subMenu)=>{ - subMenu.classList.remove(openedClass); - }) - } - }); -} else { - // Small screen - var lastHistoryElement = clickedMenuHistory[clickedMenuHistory.length - 1]; - renderNestedMenu(lastHistoryElement.href); -} - -function fillVersionWrapperSelect(url) { - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open('GET', url, true); - xmlhttp.onreadystatechange = function () { - if (xmlhttp.readyState != 4 || xmlhttp.status != 200) { - return - } - var str = ''; //generated HTML - var data = JSON.parse(xmlhttp.responseText); - for (var i = 0; i < data.docs.length; i++) { - var branch = data.docs[i]; - var selected = ''; - if (location.pathname.indexOf(branch.Link) == 0) { - // this is version that we're currently looking at - selected = ' selected'; - window.currentVersionLink = branch.Link; - } - str += ''; - } - var top_version_wrapper = document.querySelector('#top_version_wrapper select'); - - if (top_version_wrapper) { - top_version_wrapper.innerHTML = str; - } - } - xmlhttp.send(null); -}; - -function selectVersion(value) { - if (value.indexOf('archive') == -1 && window.currentVersionLink) { - window.location = window.location.href.replace(window.currentVersionLink, value); - } else { - window.location = value; - } -}; -window.selectVersion = selectVersion; - -$(document).ready(function () { - fillVersionWrapperSelect('/docs/branches.json') - - const anchors = document.querySelectorAll( - ".article h1[id], .article h2[id], .article h3[id], .article h4[id]" - ); - - anchors.forEach(function(el){ - const url = new URL(window.location.href); - el.insertAdjacentHTML('beforeend', ''); - }); - - document.querySelectorAll('a.anchor').forEach(function (a) { - a.onclick = function (e) { - e.preventDefault(); - navigator.clipboard.writeText(a.href); - a.classList.add('url-copied'); - history.replaceState(null, null, a.href); - setTimeout(function () { a.classList.remove('url-copied') }, 2000); - } - }); - - /** - * Highlight the current TOC item when a user scrolls to the corresponding page section. - */ - (() => { - const tocLinks = document.querySelectorAll('#TOCbox_list li a'); - - if (!tocLinks || !anchors) { - return; - } - - // offsetTop returns offset to the offsetParent, which is main wrapper, we need to add 130px to get actual offset - const fetchOffsets = anchors => [...anchors].map(a => a.offsetTop + 130); - let anchorsOffsets; - let timeout = undefined; - const updateActiveTocItem = () => { - if (timeout) { - clearTimeout(timeout) - } - anchorsOffsets = fetchOffsets(anchors); - - // The current TOC menu item will be calculated in 100 ms after the user stops scrolling. - // Otherwise, there might be redundant calculations. - timeout = setTimeout( () => { - let scrollTop = window.scrollY; - tocLinks.forEach(link => link.classList.remove('current')); - - for (let i = anchorsOffsets.length - 1; i >= 0; i--) { - if (scrollTop > anchorsOffsets[i]) { - setActiveLink(anchors[i].id, i); - break; - } - } - }, 50); // 0.05s threshold - - } - - const setActiveLink = (id, n) => { - const activeLink = document.querySelector(`#TOCbox_list li a[href$="#${id}"]`); - if (activeLink) { - activeLink.classList.add('current'); - } - const tocWrapper = document.getElementById('TOCbox_wrapper'); - const TOC_TOP_OFFSET = 42; - let i = 0; - const offsetArr = [...tocLinks].map((el,)=>{ - const li = el.parentElement; - i+=li.clientHeight + parseInt(window.getComputedStyle(li).getPropertyValue('margin-bottom')); - return i; - }) - const selectedOffset = window.innerHeight-TOC_TOP_OFFSET - (offsetArr[Math.min(offsetArr.length -1 , n + 1)]); - tocWrapper.style.top = (selectedOffset < 0 ? 12 + selectedOffset : 12) + 'px'; - - } - if (window.location.hash){ - const id = window.location.hash.slice(1); - const n = [...anchors].findIndex(a => a.id === id); - setActiveLink(id, n); - } - - - window.addEventListener('scroll', updateActiveTocItem); - window.addEventListener("resize", () => { - // anchors position change when the window is resized - anchorsOffsets = fetchOffsets(anchors); - }); - })(); - - /** - * Display scroll to top button when the scroll reaches 350px - * from the top and window width less than 1280px - */ - (() => { - const scrollToTopBtn = document.getElementById('scrollToTopBtn'); - const showClass = 'show'; - - if (!scrollToTopBtn) { - return; - } - - const handleScrollToTopVisibility = () => { - if (window.scrollY > 350 && window.innerWidth <= 1280) { - scrollToTopBtn.classList.add(showClass); - } else { - scrollToTopBtn.classList.remove(showClass); - } - } - - window.addEventListener('scroll', handleScrollToTopVisibility); - })(); -}); diff --git a/generator/_assets/js/dropdown.js b/generator/_assets/js/dropdown.js deleted file mode 100644 index ac906c823..000000000 --- a/generator/_assets/js/dropdown.js +++ /dev/null @@ -1,23 +0,0 @@ -window.onclick = function (e) { - if (!e.target.closest('.dropdown-select') || e.target.parentElement.classList.contains('dropdown-select_options')) { - document.querySelectorAll('.dropdown-select').forEach(function (item) { - item.classList.remove('opened') - }); - } -}; - -document.querySelectorAll('.dropdown-select span').forEach(function (item) { - item.onclick = function () { - item.closest('.dropdown-select').classList.toggle('opened'); - } -}); - -document.querySelectorAll('.dropdown-select').forEach(function (item) { - var selected_version = item.querySelector('a[selected="selected"]'); - // select first version in dropdown if no selected version - // this happens on build previews, because branch name isn't master there - if (!selected_version) { - selected_version = item.querySelector('a'); - } - item.querySelector('span div').textContent = selected_version.textContent; -}); diff --git a/generator/_assets/js/google_analytics_search.js b/generator/_assets/js/google_analytics_search.js deleted file mode 100644 index 5d55e5022..000000000 --- a/generator/_assets/js/google_analytics_search.js +++ /dev/null @@ -1,28 +0,0 @@ -//google search -(function() { - - var cx = '96c0f638b03564284'; - var gcse = document.createElement('script'); - gcse.type = 'text/javascript'; - gcse.async = true; - gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + - '//www.google.com/cse/cse.js?cx=' + cx; - var s = document.getElementsByTagName('script')[0]; - s.parentNode.insertBefore(gcse, s); - -})(); - -//google analytics -var _gaq = _gaq || []; -_gaq.push(['_setAccount', 'UA-2576171-2']); -_gaq.push(['_setDomainName', 'cfengine.com']); -_gaq.push(['_trackPageview']); - -(function() { - var ga = document.createElement('script'); - ga.type = 'text/javascript'; - ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; - s.parentNode.insertBefore(ga, s); -})(); diff --git a/generator/_assets/js/jquery-1.9.1.min.js b/generator/_assets/js/jquery-1.9.1.min.js deleted file mode 100644 index 006e95310..000000000 --- a/generator/_assets/js/jquery-1.9.1.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery.min.map -*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
    a",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="
    t
    ",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
    ",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; -return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="
    ",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:b.support.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) -}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b(" diff --git a/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown index 3e2f49545..5c3b65445 100644 --- a/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown +++ b/content/examples/tutorials/report_inventory_remediate_sec_vulnerabilities.markdown @@ -2,7 +2,6 @@ layout: default title: Reporting and remediation of security vulnerabilities sorting: 10 -published: true --- ## Prerequisites diff --git a/content/examples/tutorials/reporting/_index.markdown b/content/examples/tutorials/reporting/_index.markdown index ebaa8f6aa..bb1c59a41 100644 --- a/content/examples/tutorials/reporting/_index.markdown +++ b/content/examples/tutorials/reporting/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Reporting -published: true sorting: 80 --- diff --git a/content/examples/tutorials/reporting/command-line-reports.markdown b/content/examples/tutorials/reporting/command-line-reports.markdown index d960be38d..888d0d2a1 100644 --- a/content/examples/tutorials/reporting/command-line-reports.markdown +++ b/content/examples/tutorials/reporting/command-line-reports.markdown @@ -1,7 +1,6 @@ --- layout: default title: Command-Line reports -published: true sorting: 60 --- diff --git a/content/examples/tutorials/reporting/monitoring-reporting.markdown b/content/examples/tutorials/reporting/monitoring-reporting.markdown index ae4f01c39..c421185fc 100644 --- a/content/examples/tutorials/reporting/monitoring-reporting.markdown +++ b/content/examples/tutorials/reporting/monitoring-reporting.markdown @@ -1,7 +1,6 @@ --- layout: default title: Monitoring and reporting -published: true sorting: 10 --- diff --git a/content/examples/tutorials/tags.markdown b/content/examples/tutorials/tags.markdown index f8301367f..3ec63aab0 100644 --- a/content/examples/tutorials/tags.markdown +++ b/content/examples/tutorials/tags.markdown @@ -1,7 +1,6 @@ --- layout: default title: Tags for variables, classes, and bundles -published: true sorting: 14 --- diff --git a/content/examples/tutorials/write-cfengine-policy.markdown b/content/examples/tutorials/write-cfengine-policy.markdown index 0c988da28..6539c8fce 100644 --- a/content/examples/tutorials/write-cfengine-policy.markdown +++ b/content/examples/tutorials/write-cfengine-policy.markdown @@ -1,7 +1,6 @@ --- layout: default title: Writing CFEngine policy -published: true sorting: 3 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/_index.markdown b/content/examples/tutorials/writing-and-serving-policy/_index.markdown index 6f9e3acc7..26c683e5f 100644 --- a/content/examples/tutorials/writing-and-serving-policy/_index.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Writing and serving policy -published: true sorting: 100 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown b/content/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown index 3d05a1e1c..7f03bea19 100644 --- a/content/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/authoring-policy-tools-and-workflow.markdown @@ -1,7 +1,6 @@ --- layout: default title: Authoring policy tools & workflow -published: true sorting: 5 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown b/content/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown index eecdd302d..faef1fdb8 100644 --- a/content/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/bundles-best-practices.markdown @@ -1,7 +1,6 @@ --- layout: default title: Bundles best practices -published: true sorting: 20 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown b/content/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown index 123a05c87..94fa21398 100644 --- a/content/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/controlling-frequency.markdown @@ -1,7 +1,6 @@ --- layout: default title: Controlling frequency -published: true sorting: 90 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/editors.markdown b/content/examples/tutorials/writing-and-serving-policy/editors.markdown index 97f1187a6..8655458b3 100644 --- a/content/examples/tutorials/writing-and-serving-policy/editors.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/editors.markdown @@ -1,7 +1,6 @@ --- layout: default title: Editors -published: true sorting: 10 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/external_data.markdown b/content/examples/tutorials/writing-and-serving-policy/external_data.markdown index bdec2c370..06889b291 100644 --- a/content/examples/tutorials/writing-and-serving-policy/external_data.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/external_data.markdown @@ -1,7 +1,6 @@ --- layout: default title: External data -published: true sorting: 50 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown b/content/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown index 277ea8cfb..6832e9608 100644 --- a/content/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/policy-layers-abstraction.markdown @@ -1,7 +1,6 @@ --- layout: default title: Layers of abstraction in policy -published: true sorting: 2 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/policy-style.markdown b/content/examples/tutorials/writing-and-serving-policy/policy-style.markdown index d0d479bfc..f3845744a 100644 --- a/content/examples/tutorials/writing-and-serving-policy/policy-style.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/policy-style.markdown @@ -1,7 +1,6 @@ --- layout: default title: Policy style guide -published: true sorting: 10 --- diff --git a/content/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown b/content/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown index 08adbdee3..02ea82b97 100644 --- a/content/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/promises-available-in-cfengine.markdown @@ -2,7 +2,6 @@ layout: default title: Promises available in CFEngine sorting: 4 -published: true --- ### meta - information about promise bundles diff --git a/content/examples/tutorials/writing-and-serving-policy/testing-policies.markdown b/content/examples/tutorials/writing-and-serving-policy/testing-policies.markdown index 705d68537..1458db355 100644 --- a/content/examples/tutorials/writing-and-serving-policy/testing-policies.markdown +++ b/content/examples/tutorials/writing-and-serving-policy/testing-policies.markdown @@ -1,7 +1,6 @@ --- layout: default title: Testing policies -published: true sorting: 50 --- diff --git a/content/getting-started/_index.markdown b/content/getting-started/_index.markdown index bccbd8aae..88451584f 100644 --- a/content/getting-started/_index.markdown +++ b/content/getting-started/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Getting started -published: true sorting: 20 --- diff --git a/content/getting-started/developing-modules.markdown b/content/getting-started/developing-modules.markdown index a8231cc02..cdc0311fc 100644 --- a/content/getting-started/developing-modules.markdown +++ b/content/getting-started/developing-modules.markdown @@ -1,7 +1,6 @@ --- layout: default title: Developing modules -published: true sorting: 50 --- diff --git a/content/getting-started/installation/_index.markdown b/content/getting-started/installation/_index.markdown index e4f09b769..a5f77c356 100644 --- a/content/getting-started/installation/_index.markdown +++ b/content/getting-started/installation/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Installation -published: true sorting: 10 --- diff --git a/content/getting-started/installation/general-installation/_index.markdown b/content/getting-started/installation/general-installation/_index.markdown index 95374abed..40d2d7f4c 100644 --- a/content/getting-started/installation/general-installation/_index.markdown +++ b/content/getting-started/installation/general-installation/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: General installation -published: true sorting: 20 --- diff --git a/content/getting-started/installation/general-installation/installation-community.markdown b/content/getting-started/installation/general-installation/installation-community.markdown index da7d96162..f8e3c6d4c 100644 --- a/content/getting-started/installation/general-installation/installation-community.markdown +++ b/content/getting-started/installation/general-installation/installation-community.markdown @@ -1,7 +1,6 @@ --- layout: default title: Installing Community -published: true sorting: 50 --- diff --git a/content/getting-started/installation/general-installation/installation-coreos.markdown b/content/getting-started/installation/general-installation/installation-coreos.markdown index 1b7e575c5..ebbfee648 100644 --- a/content/getting-started/installation/general-installation/installation-coreos.markdown +++ b/content/getting-started/installation/general-installation/installation-coreos.markdown @@ -1,7 +1,6 @@ --- layout: default title: Installing Enterprise on CoreOS -published: true sorting: 40 --- diff --git a/content/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown b/content/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown index c72199321..7e57de0de 100644 --- a/content/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown +++ b/content/getting-started/installation/general-installation/installation-enterprise-free-aws-rhel.markdown @@ -1,7 +1,6 @@ --- layout: default title: Using Amazon Web Services -published: true sorting: 10 --- diff --git a/content/getting-started/installation/general-installation/installation-enterprise-free.markdown b/content/getting-started/installation/general-installation/installation-enterprise-free.markdown index 209408dba..188da2165 100644 --- a/content/getting-started/installation/general-installation/installation-enterprise-free.markdown +++ b/content/getting-started/installation/general-installation/installation-enterprise-free.markdown @@ -1,7 +1,6 @@ --- layout: default title: Installing Enterprise 25 Free -published: true sorting: 20 --- diff --git a/content/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown b/content/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown index f17b3b13a..f1c739dbe 100644 --- a/content/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown +++ b/content/getting-started/installation/general-installation/installation-enterprise-generic-tarball.markdown @@ -1,7 +1,6 @@ --- layout: default title: Installing from binary tarball -published: true sorting: 50 --- diff --git a/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown b/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown index 5b7e8ac89..26aed81f6 100644 --- a/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown +++ b/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown @@ -1,7 +1,6 @@ --- layout: default title: Using Vagrant -published: true sorting: 30 --- diff --git a/content/getting-started/installation/general-installation/installation-enterprise.markdown b/content/getting-started/installation/general-installation/installation-enterprise.markdown index a123d1091..192376766 100644 --- a/content/getting-started/installation/general-installation/installation-enterprise.markdown +++ b/content/getting-started/installation/general-installation/installation-enterprise.markdown @@ -1,7 +1,6 @@ --- layout: default title: Installing Enterprise for production -published: true sorting: 40 --- diff --git a/content/getting-started/installation/installation-overview.markdown b/content/getting-started/installation/installation-overview.markdown index b28dd261e..391104ff2 100644 --- a/content/getting-started/installation/installation-overview.markdown +++ b/content/getting-started/installation/installation-overview.markdown @@ -2,7 +2,6 @@ layout: default title: Installation overview sorting: 30 -published: true --- ## Installation diff --git a/content/getting-started/installation/local-virtual-machine.markdown b/content/getting-started/installation/local-virtual-machine.markdown index 64f44fcc8..c614c4295 100644 --- a/content/getting-started/installation/local-virtual-machine.markdown +++ b/content/getting-started/installation/local-virtual-machine.markdown @@ -1,7 +1,6 @@ --- layout: default title: Local virtual machine -published: true sorting: 15 --- diff --git a/content/getting-started/installation/pre-installation-checklist/_index.markdown b/content/getting-started/installation/pre-installation-checklist/_index.markdown index d07a0f3f0..0df50b90c 100644 --- a/content/getting-started/installation/pre-installation-checklist/_index.markdown +++ b/content/getting-started/installation/pre-installation-checklist/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Pre-installation checklist -published: true sorting: 10 --- diff --git a/content/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown b/content/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown index 24e2a70ca..773778739 100644 --- a/content/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown +++ b/content/getting-started/installation/pre-installation-checklist/putty-quick-start-guide.markdown @@ -1,7 +1,6 @@ --- title: Quick-Start guide to using PuTTY layout: default -published: true sorting: 2 --- diff --git a/content/getting-started/installation/pre-installation-checklist/verify-signatures.markdown b/content/getting-started/installation/pre-installation-checklist/verify-signatures.markdown index 89a552a42..fcc1b1140 100644 --- a/content/getting-started/installation/pre-installation-checklist/verify-signatures.markdown +++ b/content/getting-started/installation/pre-installation-checklist/verify-signatures.markdown @@ -1,7 +1,6 @@ --- layout: default title: Verifying package signatures -published: true sorting: 40 --- diff --git a/content/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown b/content/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown index fefccee6b..9e4a32ba0 100644 --- a/content/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown +++ b/content/getting-started/installation/pre-installation-checklist/vi-quick-start-guide.markdown @@ -1,7 +1,6 @@ --- layout: default title: Quick-Start guide to using vi -published: true sorting: 1 --- diff --git a/content/getting-started/installation/secure-bootstrap.markdown b/content/getting-started/installation/secure-bootstrap.markdown index 086af1ac5..573b7b324 100644 --- a/content/getting-started/installation/secure-bootstrap.markdown +++ b/content/getting-started/installation/secure-bootstrap.markdown @@ -1,7 +1,6 @@ --- layout: default title: Secure bootstrap -published: true sorting: 20 --- diff --git a/content/getting-started/installation/upgrading.markdown b/content/getting-started/installation/upgrading.markdown index bd7dfe57e..99c87240d 100644 --- a/content/getting-started/installation/upgrading.markdown +++ b/content/getting-started/installation/upgrading.markdown @@ -1,7 +1,6 @@ --- layout: default title: Upgrading -published: true sorting: 30 --- diff --git a/content/getting-started/installation/version-control.markdown b/content/getting-started/installation/version-control.markdown index 30bd315d2..cd7a5157c 100644 --- a/content/getting-started/installation/version-control.markdown +++ b/content/getting-started/installation/version-control.markdown @@ -1,7 +1,6 @@ --- layout: default title: Version control -published: true sorting: 60 --- diff --git a/content/getting-started/modules-from-cfengine-build.markdown b/content/getting-started/modules-from-cfengine-build.markdown index 81766b72d..f885db369 100644 --- a/content/getting-started/modules-from-cfengine-build.markdown +++ b/content/getting-started/modules-from-cfengine-build.markdown @@ -1,7 +1,6 @@ --- layout: default title: Modules from CFEngine Build -published: true sorting: 20 --- diff --git a/content/getting-started/reporting-and-web-ui.markdown b/content/getting-started/reporting-and-web-ui.markdown index 678a6addd..72b5f8b12 100644 --- a/content/getting-started/reporting-and-web-ui.markdown +++ b/content/getting-started/reporting-and-web-ui.markdown @@ -1,7 +1,6 @@ --- layout: default title: Reporting and web UI -published: true sorting: 30 --- diff --git a/content/getting-started/writing-policy.markdown b/content/getting-started/writing-policy.markdown index 60dc5fa8f..7c9677c0e 100644 --- a/content/getting-started/writing-policy.markdown +++ b/content/getting-started/writing-policy.markdown @@ -1,7 +1,6 @@ --- layout: default title: Writing policy -published: true sorting: 40 --- diff --git a/content/overview/_index.markdown b/content/overview/_index.markdown index 182c51e97..13c2f6de6 100644 --- a/content/overview/_index.markdown +++ b/content/overview/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Overview -published: true sorting: 10 --- diff --git a/content/overview/client-server-communication.markdown b/content/overview/client-server-communication.markdown index 9c92d4aa2..2bd1efc15 100644 --- a/content/overview/client-server-communication.markdown +++ b/content/overview/client-server-communication.markdown @@ -1,7 +1,6 @@ --- layout: default title: Client server communication -published: true sorting: 30 --- diff --git a/content/overview/directory-structure.markdown b/content/overview/directory-structure.markdown index 604c38151..90811eb31 100644 --- a/content/overview/directory-structure.markdown +++ b/content/overview/directory-structure.markdown @@ -1,7 +1,6 @@ --- layout: default title: CFEngine directory structure -published: true sorting: 20 --- diff --git a/content/overview/glossary.markdown b/content/overview/glossary.markdown index 8656267da..f744f45e9 100644 --- a/content/overview/glossary.markdown +++ b/content/overview/glossary.markdown @@ -2,7 +2,6 @@ layout: default title: Glossary sorting: 50 -published: true --- #### Agent diff --git a/content/overview/how-cfengine-works.markdown b/content/overview/how-cfengine-works.markdown index b1136af45..f7b731063 100644 --- a/content/overview/how-cfengine-works.markdown +++ b/content/overview/how-cfengine-works.markdown @@ -1,7 +1,6 @@ --- layout: default title: How CFEngine works -published: true sorting: 2 --- diff --git a/content/overview/what-is-cfengine-and-why.markdown b/content/overview/what-is-cfengine-and-why.markdown index 276e08459..3fe41cd6f 100644 --- a/content/overview/what-is-cfengine-and-why.markdown +++ b/content/overview/what-is-cfengine-and-why.markdown @@ -1,7 +1,6 @@ --- layout: default title: What is CFEngine and why? -published: true sorting: 1 --- diff --git a/content/reference/_index.markdown b/content/reference/_index.markdown index 53fddde73..61c746d4b 100644 --- a/content/reference/_index.markdown +++ b/content/reference/_index.markdown @@ -2,7 +2,6 @@ layout: default title: Reference alias: CFEngine Reference -published: true sorting: 70 --- diff --git a/content/reference/all-types.markdown b/content/reference/all-types.markdown index 5f4fc616f..a3168500e 100644 --- a/content/reference/all-types.markdown +++ b/content/reference/all-types.markdown @@ -1,7 +1,6 @@ --- layout: default title: All promise and body types -published: true sorting: 110 --- diff --git a/content/reference/components/_index.markdown b/content/reference/components/_index.markdown index c30dd4780..b64183a6e 100644 --- a/content/reference/components/_index.markdown +++ b/content/reference/components/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Components -published: true sorting: 10 --- diff --git a/content/reference/components/cf-agent.markdown b/content/reference/components/cf-agent.markdown index 49c3d75ed..1b0300b59 100644 --- a/content/reference/components/cf-agent.markdown +++ b/content/reference/components/cf-agent.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-agent -published: true sorting: 10 keywords: [agent] --- diff --git a/content/reference/components/cf-check.markdown b/content/reference/components/cf-check.markdown index e65844841..6eadc88b3 100644 --- a/content/reference/components/cf-check.markdown +++ b/content/reference/components/cf-check.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-check -published: true sorting: 80 keywords: [cf-hub] --- diff --git a/content/reference/components/cf-execd.markdown b/content/reference/components/cf-execd.markdown index bf8287d09..c298dc71e 100644 --- a/content/reference/components/cf-execd.markdown +++ b/content/reference/components/cf-execd.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-execd -published: true sorting: 30 keywords: [executor] --- diff --git a/content/reference/components/cf-hub.markdown b/content/reference/components/cf-hub.markdown index 001f04d7a..ee4b01db2 100644 --- a/content/reference/components/cf-hub.markdown +++ b/content/reference/components/cf-hub.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-hub -published: true sorting: 80 keywords: [hub] --- diff --git a/content/reference/components/cf-key.markdown b/content/reference/components/cf-key.markdown index 50e48a089..930fb33a7 100644 --- a/content/reference/components/cf-key.markdown +++ b/content/reference/components/cf-key.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-key -published: true sorting: 60 --- diff --git a/content/reference/components/cf-monitord.markdown b/content/reference/components/cf-monitord.markdown index 2f480e80b..3563aafd4 100644 --- a/content/reference/components/cf-monitord.markdown +++ b/content/reference/components/cf-monitord.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-monitord -published: true sorting: 50 keywords: [monitor] --- diff --git a/content/reference/components/cf-net.markdown b/content/reference/components/cf-net.markdown index 82178e4be..de6ccd931 100644 --- a/content/reference/components/cf-net.markdown +++ b/content/reference/components/cf-net.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-net -published: true sorting: 90 keywords: [protocol, cli] --- diff --git a/content/reference/components/cf-promises.markdown b/content/reference/components/cf-promises.markdown index a7a79a078..97e5cb40f 100644 --- a/content/reference/components/cf-promises.markdown +++ b/content/reference/components/cf-promises.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-promises -published: true sorting: 40 --- diff --git a/content/reference/components/cf-reactor.markdown b/content/reference/components/cf-reactor.markdown index e3ef86c4e..9ad9064ca 100644 --- a/content/reference/components/cf-reactor.markdown +++ b/content/reference/components/cf-reactor.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-reactor -published: true keywords: [reactor] --- diff --git a/content/reference/components/cf-runagent.markdown b/content/reference/components/cf-runagent.markdown index 324199fef..6d044b508 100644 --- a/content/reference/components/cf-runagent.markdown +++ b/content/reference/components/cf-runagent.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-runagent -published: true sorting: 70 keywords: [runagent] --- diff --git a/content/reference/components/cf-secret.markdown b/content/reference/components/cf-secret.markdown index b7c814389..7d893b68e 100644 --- a/content/reference/components/cf-secret.markdown +++ b/content/reference/components/cf-secret.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-secret -published: true sorting: 10 keywords: [cf-secret] --- diff --git a/content/reference/components/cf-serverd.markdown b/content/reference/components/cf-serverd.markdown index 2d2e12ff6..f1b89b391 100644 --- a/content/reference/components/cf-serverd.markdown +++ b/content/reference/components/cf-serverd.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-serverd -published: true sorting: 20 keywords: [server] --- diff --git a/content/reference/components/cf-support.markdown b/content/reference/components/cf-support.markdown index 1204df5d0..ccf7882c7 100644 --- a/content/reference/components/cf-support.markdown +++ b/content/reference/components/cf-support.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf-support -published: true sorting: 10 keywords: [cf-support] --- diff --git a/content/reference/components/file_control_promises.markdown b/content/reference/components/file_control_promises.markdown index e62066c44..8e8fac196 100644 --- a/content/reference/components/file_control_promises.markdown +++ b/content/reference/components/file_control_promises.markdown @@ -1,7 +1,6 @@ --- layout: default title: file control -published: true sorting: 100 --- diff --git a/content/reference/functions/_index.markdown b/content/reference/functions/_index.markdown index 65aa4cdae..b4e659b54 100644 --- a/content/reference/functions/_index.markdown +++ b/content/reference/functions/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Functions -published: true sorting: 30 --- diff --git a/content/reference/functions/accessedbefore.markdown b/content/reference/functions/accessedbefore.markdown index 31ae665ed..1d44cc956 100644 --- a/content/reference/functions/accessedbefore.markdown +++ b/content/reference/functions/accessedbefore.markdown @@ -1,7 +1,6 @@ --- layout: default title: accessedbefore -published: true --- [%CFEngine_function_prototype(newer,older)%] diff --git a/content/reference/functions/accumulated.markdown b/content/reference/functions/accumulated.markdown index 2608386cf..68e84ac3c 100644 --- a/content/reference/functions/accumulated.markdown +++ b/content/reference/functions/accumulated.markdown @@ -1,7 +1,6 @@ --- layout: default title: accumulated -published: true --- [%CFEngine_function_prototype(years, months, days, hours, minutes, seconds)%] diff --git a/content/reference/functions/ago.markdown b/content/reference/functions/ago.markdown index e98835827..12db4d43d 100644 --- a/content/reference/functions/ago.markdown +++ b/content/reference/functions/ago.markdown @@ -1,7 +1,6 @@ --- layout: default title: ago -published: true --- [%CFEngine_function_prototype(years, months, days, hours, minutes, seconds)%] diff --git a/content/reference/functions/and.markdown b/content/reference/functions/and.markdown index affbdcc28..467d26ccc 100644 --- a/content/reference/functions/and.markdown +++ b/content/reference/functions/and.markdown @@ -1,7 +1,6 @@ --- layout: default title: and -published: true --- [%CFEngine_function_prototype(...)%] diff --git a/content/reference/functions/basename.markdown b/content/reference/functions/basename.markdown index 6c03fd669..0cc03ed57 100644 --- a/content/reference/functions/basename.markdown +++ b/content/reference/functions/basename.markdown @@ -1,7 +1,6 @@ --- layout: default title: basename -published: true --- [%CFEngine_function_prototype(filename, optional_extension)%] diff --git a/content/reference/functions/bundlesmatching.markdown b/content/reference/functions/bundlesmatching.markdown index 8f351048d..c0b649544 100644 --- a/content/reference/functions/bundlesmatching.markdown +++ b/content/reference/functions/bundlesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: bundlesmatching -published: true --- [%CFEngine_function_prototype(name, tag1, tag2, ...)%] diff --git a/content/reference/functions/bundlestate.markdown b/content/reference/functions/bundlestate.markdown index bdb2b442c..1653eed40 100644 --- a/content/reference/functions/bundlestate.markdown +++ b/content/reference/functions/bundlestate.markdown @@ -1,7 +1,6 @@ --- layout: default title: bundlestate -published: true --- [%CFEngine_function_prototype(bundlename)%] diff --git a/content/reference/functions/callstack_callers.markdown b/content/reference/functions/callstack_callers.markdown index f7a4fdecc..aa5bc2624 100644 --- a/content/reference/functions/callstack_callers.markdown +++ b/content/reference/functions/callstack_callers.markdown @@ -1,7 +1,6 @@ --- layout: default title: callstack_callers -published: true --- [%CFEngine_function_prototype()%] diff --git a/content/reference/functions/callstack_promisers.markdown b/content/reference/functions/callstack_promisers.markdown index 0c8d1d71b..c76b85819 100644 --- a/content/reference/functions/callstack_promisers.markdown +++ b/content/reference/functions/callstack_promisers.markdown @@ -1,7 +1,6 @@ --- layout: default title: callstack_promisers -published: true --- [%CFEngine_function_prototype()%] diff --git a/content/reference/functions/canonify.markdown b/content/reference/functions/canonify.markdown index af19a74a0..8af1098c8 100644 --- a/content/reference/functions/canonify.markdown +++ b/content/reference/functions/canonify.markdown @@ -1,7 +1,6 @@ --- layout: default title: canonify -published: true --- [%CFEngine_function_prototype(text)%] diff --git a/content/reference/functions/canonifyuniquely.markdown b/content/reference/functions/canonifyuniquely.markdown index f0b464f48..551e14b66 100644 --- a/content/reference/functions/canonifyuniquely.markdown +++ b/content/reference/functions/canonifyuniquely.markdown @@ -1,7 +1,6 @@ --- layout: default title: canonifyuniquely -published: true --- [%CFEngine_function_prototype(text)%] diff --git a/content/reference/functions/cf_version_after.markdown b/content/reference/functions/cf_version_after.markdown index 562efa15c..d8532c4bf 100644 --- a/content/reference/functions/cf_version_after.markdown +++ b/content/reference/functions/cf_version_after.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf_version_after -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/cf_version_at.markdown b/content/reference/functions/cf_version_at.markdown index 07a8bf9bf..2d1647661 100644 --- a/content/reference/functions/cf_version_at.markdown +++ b/content/reference/functions/cf_version_at.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf_version_at -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/cf_version_before.markdown b/content/reference/functions/cf_version_before.markdown index 4886746d0..65e5c0e75 100644 --- a/content/reference/functions/cf_version_before.markdown +++ b/content/reference/functions/cf_version_before.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf_version_before -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/cf_version_between.markdown b/content/reference/functions/cf_version_between.markdown index 8b9b88b35..d052bb2f9 100644 --- a/content/reference/functions/cf_version_between.markdown +++ b/content/reference/functions/cf_version_between.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf_version_between -published: true --- [%CFEngine_function_prototype(string, string)%] diff --git a/content/reference/functions/cf_version_maximum.markdown b/content/reference/functions/cf_version_maximum.markdown index 62f3b0677..bcf646f66 100644 --- a/content/reference/functions/cf_version_maximum.markdown +++ b/content/reference/functions/cf_version_maximum.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf_version_maximum -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/cf_version_minimum.markdown b/content/reference/functions/cf_version_minimum.markdown index 8d7d27ac9..243c93dc0 100644 --- a/content/reference/functions/cf_version_minimum.markdown +++ b/content/reference/functions/cf_version_minimum.markdown @@ -1,7 +1,6 @@ --- layout: default title: cf_version_minimum -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/changedbefore.markdown b/content/reference/functions/changedbefore.markdown index ccc7787e0..8215be263 100644 --- a/content/reference/functions/changedbefore.markdown +++ b/content/reference/functions/changedbefore.markdown @@ -1,7 +1,6 @@ --- layout: default title: changedbefore -published: true --- [%CFEngine_function_prototype(newer,older)%] diff --git a/content/reference/functions/classesmatching.markdown b/content/reference/functions/classesmatching.markdown index acc24582e..c81b33fc7 100644 --- a/content/reference/functions/classesmatching.markdown +++ b/content/reference/functions/classesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: classesmatching -published: true --- [%CFEngine_function_prototype(name, tag1, tag2, ...)%] diff --git a/content/reference/functions/classfiltercsv.markdown b/content/reference/functions/classfiltercsv.markdown index c3f779f7f..08d713319 100644 --- a/content/reference/functions/classfiltercsv.markdown +++ b/content/reference/functions/classfiltercsv.markdown @@ -1,7 +1,6 @@ --- layout: default title: classfiltercsv -published: true --- [%CFEngine_function_prototype(filename, has_header, class_column, optional_sort_column)%] diff --git a/content/reference/functions/classify.markdown b/content/reference/functions/classify.markdown index cf0e5a181..03b496ff2 100644 --- a/content/reference/functions/classify.markdown +++ b/content/reference/functions/classify.markdown @@ -1,7 +1,6 @@ --- layout: default title: classify -published: true --- [%CFEngine_function_prototype(text)%] diff --git a/content/reference/functions/classmatch.markdown b/content/reference/functions/classmatch.markdown index c1b65d6f0..610306ed9 100644 --- a/content/reference/functions/classmatch.markdown +++ b/content/reference/functions/classmatch.markdown @@ -1,7 +1,6 @@ --- layout: default title: classmatch -published: true --- [%CFEngine_function_prototype(regex, tag1, tag2, ...)%] diff --git a/content/reference/functions/concat.markdown b/content/reference/functions/concat.markdown index 00f750987..1d85fefa7 100644 --- a/content/reference/functions/concat.markdown +++ b/content/reference/functions/concat.markdown @@ -1,7 +1,6 @@ --- layout: default title: concat -published: true --- [%CFEngine_function_prototype(...)%] diff --git a/content/reference/functions/countclassesmatching.markdown b/content/reference/functions/countclassesmatching.markdown index beb543f01..95160a48c 100644 --- a/content/reference/functions/countclassesmatching.markdown +++ b/content/reference/functions/countclassesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: countclassesmatching -published: true --- [%CFEngine_function_prototype(regex, tag1, tag2, ...)%] diff --git a/content/reference/functions/countlinesmatching.markdown b/content/reference/functions/countlinesmatching.markdown index e76fa7d63..e8e8bac3b 100644 --- a/content/reference/functions/countlinesmatching.markdown +++ b/content/reference/functions/countlinesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: countlinesmatching -published: true --- [%CFEngine_function_prototype(regex, filename)%] diff --git a/content/reference/functions/data_expand.markdown b/content/reference/functions/data_expand.markdown index 9ac4672f1..5fd2729f8 100644 --- a/content/reference/functions/data_expand.markdown +++ b/content/reference/functions/data_expand.markdown @@ -1,7 +1,6 @@ --- layout: default title: data_expand -published: true --- [%CFEngine_function_prototype(data_container)%] diff --git a/content/reference/functions/data_readstringarray.markdown b/content/reference/functions/data_readstringarray.markdown index 9b4e6ab5d..058f3682f 100644 --- a/content/reference/functions/data_readstringarray.markdown +++ b/content/reference/functions/data_readstringarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: data_readstringarray -published: true --- [%CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes)%] diff --git a/content/reference/functions/data_readstringarrayidx.markdown b/content/reference/functions/data_readstringarrayidx.markdown index 0bf11579c..fa0506a84 100644 --- a/content/reference/functions/data_readstringarrayidx.markdown +++ b/content/reference/functions/data_readstringarrayidx.markdown @@ -1,7 +1,6 @@ --- layout: default title: data_readstringarrayidx -published: true --- [%CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes)%] diff --git a/content/reference/functions/data_regextract.markdown b/content/reference/functions/data_regextract.markdown index d5b518f4f..3d0c58880 100644 --- a/content/reference/functions/data_regextract.markdown +++ b/content/reference/functions/data_regextract.markdown @@ -1,7 +1,6 @@ --- layout: default title: data_regextract -published: true --- [%CFEngine_function_prototype(regex, string)%] diff --git a/content/reference/functions/data_sysctlvalues.markdown b/content/reference/functions/data_sysctlvalues.markdown index 736fa28f8..a834a0c21 100644 --- a/content/reference/functions/data_sysctlvalues.markdown +++ b/content/reference/functions/data_sysctlvalues.markdown @@ -1,7 +1,6 @@ --- layout: default title: data_sysctlvalues -published: true --- [%CFEngine_function_prototype()%] diff --git a/content/reference/functions/datastate.markdown b/content/reference/functions/datastate.markdown index 38dde8711..29925ed80 100644 --- a/content/reference/functions/datastate.markdown +++ b/content/reference/functions/datastate.markdown @@ -1,7 +1,6 @@ --- layout: default title: datastate -published: true --- [%CFEngine_function_prototype()%] diff --git a/content/reference/functions/difference.markdown b/content/reference/functions/difference.markdown index 6af4ab44d..a411fc663 100644 --- a/content/reference/functions/difference.markdown +++ b/content/reference/functions/difference.markdown @@ -1,7 +1,6 @@ --- layout: default title: difference -published: true --- [%CFEngine_function_prototype(list1, list2)%] diff --git a/content/reference/functions/dirname.markdown b/content/reference/functions/dirname.markdown index 1a7635886..fdbc3d07d 100644 --- a/content/reference/functions/dirname.markdown +++ b/content/reference/functions/dirname.markdown @@ -1,7 +1,6 @@ --- layout: default title: dirname -published: true --- [%CFEngine_function_prototype(path)%] diff --git a/content/reference/functions/diskfree.markdown b/content/reference/functions/diskfree.markdown index c14effa2d..4f262c6ee 100644 --- a/content/reference/functions/diskfree.markdown +++ b/content/reference/functions/diskfree.markdown @@ -1,7 +1,6 @@ --- layout: default title: diskfree -published: true --- [%CFEngine_function_prototype(path)%] diff --git a/content/reference/functions/escape.markdown b/content/reference/functions/escape.markdown index e96e21cc8..934e196dc 100644 --- a/content/reference/functions/escape.markdown +++ b/content/reference/functions/escape.markdown @@ -1,7 +1,6 @@ --- layout: default title: escape -published: true --- [%CFEngine_function_prototype(text)%] diff --git a/content/reference/functions/eval.markdown b/content/reference/functions/eval.markdown index 63f94fdb3..c0ef77886 100644 --- a/content/reference/functions/eval.markdown +++ b/content/reference/functions/eval.markdown @@ -1,7 +1,6 @@ --- layout: default title: eval -published: true --- [%CFEngine_function_prototype(expression, mode, options)%] diff --git a/content/reference/functions/every.markdown b/content/reference/functions/every.markdown index 319866411..07f490141 100644 --- a/content/reference/functions/every.markdown +++ b/content/reference/functions/every.markdown @@ -1,7 +1,6 @@ --- layout: default title: every -published: true --- [%CFEngine_function_prototype(regex, list)%] diff --git a/content/reference/functions/execresult.markdown b/content/reference/functions/execresult.markdown index 7e01e06e6..156d6077f 100644 --- a/content/reference/functions/execresult.markdown +++ b/content/reference/functions/execresult.markdown @@ -1,7 +1,6 @@ --- layout: default title: execresult -published: true --- [%CFEngine_function_prototype(command, shell, output)%] diff --git a/content/reference/functions/execresult_as_data.markdown b/content/reference/functions/execresult_as_data.markdown index 11cb09052..1e80da971 100644 --- a/content/reference/functions/execresult_as_data.markdown +++ b/content/reference/functions/execresult_as_data.markdown @@ -1,7 +1,6 @@ --- layout: default title: execresult_as_data -published: true --- [%CFEngine_function_prototype(command, shell, output)%] diff --git a/content/reference/functions/expandrange.markdown b/content/reference/functions/expandrange.markdown index 3924eba67..dd9cf7347 100644 --- a/content/reference/functions/expandrange.markdown +++ b/content/reference/functions/expandrange.markdown @@ -1,7 +1,6 @@ --- layout: default title: expandrange -published: true --- [%CFEngine_function_prototype(string_template, stepsize)%] diff --git a/content/reference/functions/file_hash.markdown b/content/reference/functions/file_hash.markdown index 6c2aea30b..dd5308611 100644 --- a/content/reference/functions/file_hash.markdown +++ b/content/reference/functions/file_hash.markdown @@ -1,7 +1,6 @@ --- layout: default title: file_hash -published: true --- [%CFEngine_function_prototype(file, algorithm)%] diff --git a/content/reference/functions/fileexists.markdown b/content/reference/functions/fileexists.markdown index 02bd2881b..7e209e7ad 100644 --- a/content/reference/functions/fileexists.markdown +++ b/content/reference/functions/fileexists.markdown @@ -1,7 +1,6 @@ --- layout: default title: fileexists -published: true --- [%CFEngine_function_prototype(filename)%] diff --git a/content/reference/functions/filesexist.markdown b/content/reference/functions/filesexist.markdown index 7e50f88e6..af4f2c0df 100644 --- a/content/reference/functions/filesexist.markdown +++ b/content/reference/functions/filesexist.markdown @@ -1,7 +1,6 @@ --- layout: default title: filesexist -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/filesize.markdown b/content/reference/functions/filesize.markdown index 12a3b99d6..665b6435a 100644 --- a/content/reference/functions/filesize.markdown +++ b/content/reference/functions/filesize.markdown @@ -1,7 +1,6 @@ --- layout: default title: filesize -published: true --- [%CFEngine_function_prototype(filename)%] diff --git a/content/reference/functions/filestat.markdown b/content/reference/functions/filestat.markdown index 984bf33ce..f0cde4cb2 100644 --- a/content/reference/functions/filestat.markdown +++ b/content/reference/functions/filestat.markdown @@ -1,7 +1,6 @@ --- layout: default title: filestat -published: true --- [%CFEngine_function_prototype(filename, field)%] diff --git a/content/reference/functions/filter.markdown b/content/reference/functions/filter.markdown index b9ce3719b..21595c051 100644 --- a/content/reference/functions/filter.markdown +++ b/content/reference/functions/filter.markdown @@ -1,7 +1,6 @@ --- layout: default title: filter -published: true --- [%CFEngine_function_prototype(filter, list, is_regex, invert, max_return)%] diff --git a/content/reference/functions/findfiles.markdown b/content/reference/functions/findfiles.markdown index 6bb77baae..dc00c5ed3 100644 --- a/content/reference/functions/findfiles.markdown +++ b/content/reference/functions/findfiles.markdown @@ -1,7 +1,6 @@ --- layout: default title: findfiles -published: true --- [%CFEngine_function_prototype(glob1, glob2, ...)%] diff --git a/content/reference/functions/findfiles_up.markdown b/content/reference/functions/findfiles_up.markdown index c2569eb60..1e5513e9b 100644 --- a/content/reference/functions/findfiles_up.markdown +++ b/content/reference/functions/findfiles_up.markdown @@ -1,7 +1,6 @@ --- layout: default title: findfiles_up -published: true --- [%CFEngine_function_prototype(path, glob, level)%] diff --git a/content/reference/functions/findprocesses.markdown b/content/reference/functions/findprocesses.markdown index 634e26b78..b641a7efc 100644 --- a/content/reference/functions/findprocesses.markdown +++ b/content/reference/functions/findprocesses.markdown @@ -1,7 +1,6 @@ --- layout: default title: findprocesses -published: true --- [%CFEngine_function_prototype(regex)%] diff --git a/content/reference/functions/format.markdown b/content/reference/functions/format.markdown index 63f032550..8310b1f69 100644 --- a/content/reference/functions/format.markdown +++ b/content/reference/functions/format.markdown @@ -1,7 +1,6 @@ --- layout: default title: format -published: true --- [%CFEngine_function_prototype(string, ...)%] diff --git a/content/reference/functions/getclassmetatags.markdown b/content/reference/functions/getclassmetatags.markdown index 24874b3d2..25ee4eb3a 100644 --- a/content/reference/functions/getclassmetatags.markdown +++ b/content/reference/functions/getclassmetatags.markdown @@ -1,7 +1,6 @@ --- layout: default title: getclassmetatags -published: true --- [%CFEngine_function_prototype(classname, optional_tag)%] diff --git a/content/reference/functions/getenv.markdown b/content/reference/functions/getenv.markdown index 2f191e228..61cb8f014 100644 --- a/content/reference/functions/getenv.markdown +++ b/content/reference/functions/getenv.markdown @@ -1,7 +1,6 @@ --- layout: default title: getenv -published: true --- [%CFEngine_function_prototype(variable, maxlength)%] diff --git a/content/reference/functions/getfields.markdown b/content/reference/functions/getfields.markdown index b280219f6..f11902c1d 100644 --- a/content/reference/functions/getfields.markdown +++ b/content/reference/functions/getfields.markdown @@ -1,7 +1,6 @@ --- layout: default title: getfields -published: true --- [%CFEngine_function_prototype(regex, filename, split, array_lval)%] diff --git a/content/reference/functions/getgid.markdown b/content/reference/functions/getgid.markdown index dc67a88e6..95e5fcfc8 100644 --- a/content/reference/functions/getgid.markdown +++ b/content/reference/functions/getgid.markdown @@ -1,7 +1,6 @@ --- layout: default title: getgid -published: true --- [%CFEngine_function_prototype(groupname)%] diff --git a/content/reference/functions/getindices.markdown b/content/reference/functions/getindices.markdown index c42166c93..ecd92fbbc 100644 --- a/content/reference/functions/getindices.markdown +++ b/content/reference/functions/getindices.markdown @@ -1,7 +1,6 @@ --- layout: default title: getindices -published: true --- [%CFEngine_function_prototype(varref)%] diff --git a/content/reference/functions/getuid.markdown b/content/reference/functions/getuid.markdown index e3197d102..2dcb482a8 100644 --- a/content/reference/functions/getuid.markdown +++ b/content/reference/functions/getuid.markdown @@ -1,7 +1,6 @@ --- layout: default title: getuid -published: true --- [%CFEngine_function_prototype(username)%] diff --git a/content/reference/functions/getuserinfo.markdown b/content/reference/functions/getuserinfo.markdown index c362868cc..91dfeb750 100644 --- a/content/reference/functions/getuserinfo.markdown +++ b/content/reference/functions/getuserinfo.markdown @@ -1,7 +1,6 @@ --- layout: default title: getuserinfo -published: true --- [%CFEngine_function_prototype(optional_uidorname)%] diff --git a/content/reference/functions/getusers.markdown b/content/reference/functions/getusers.markdown index efe4a631c..c794d7c24 100644 --- a/content/reference/functions/getusers.markdown +++ b/content/reference/functions/getusers.markdown @@ -1,7 +1,6 @@ --- layout: default title: getusers -published: true --- [%CFEngine_function_prototype(exclude_names, exclude_ids)%] diff --git a/content/reference/functions/getvalues.markdown b/content/reference/functions/getvalues.markdown index c915fa1cc..a3a1dcf5e 100644 --- a/content/reference/functions/getvalues.markdown +++ b/content/reference/functions/getvalues.markdown @@ -1,7 +1,6 @@ --- layout: default title: getvalues -published: true --- [%CFEngine_function_prototype(varref)%] diff --git a/content/reference/functions/getvariablemetatags.markdown b/content/reference/functions/getvariablemetatags.markdown index eea8a8bf4..f9f15f1b4 100644 --- a/content/reference/functions/getvariablemetatags.markdown +++ b/content/reference/functions/getvariablemetatags.markdown @@ -1,7 +1,6 @@ --- layout: default title: getvariablemetatags -published: true --- [%CFEngine_function_prototype(varname, optional_tag)%] diff --git a/content/reference/functions/grep.markdown b/content/reference/functions/grep.markdown index 997cb2f31..173602abe 100644 --- a/content/reference/functions/grep.markdown +++ b/content/reference/functions/grep.markdown @@ -1,7 +1,6 @@ --- layout: default title: grep -published: true --- [%CFEngine_function_prototype(regex, list)%] diff --git a/content/reference/functions/groupexists.markdown b/content/reference/functions/groupexists.markdown index be90dd9bd..5274b81b3 100644 --- a/content/reference/functions/groupexists.markdown +++ b/content/reference/functions/groupexists.markdown @@ -1,7 +1,6 @@ --- layout: default title: groupexists -published: true --- [%CFEngine_function_prototype(group)%] diff --git a/content/reference/functions/hash.markdown b/content/reference/functions/hash.markdown index 03726d336..f7574a029 100644 --- a/content/reference/functions/hash.markdown +++ b/content/reference/functions/hash.markdown @@ -1,7 +1,6 @@ --- layout: default title: hash -published: true --- [%CFEngine_function_prototype(input, algorithm)%] diff --git a/content/reference/functions/hash_to_int.markdown b/content/reference/functions/hash_to_int.markdown index 38df46de8..469305063 100644 --- a/content/reference/functions/hash_to_int.markdown +++ b/content/reference/functions/hash_to_int.markdown @@ -1,7 +1,6 @@ --- layout: default title: hash_to_int -published: true --- [%CFEngine_function_prototype( lower, upper, string )%] diff --git a/content/reference/functions/hashmatch.markdown b/content/reference/functions/hashmatch.markdown index 0c0a47ed7..48651499c 100644 --- a/content/reference/functions/hashmatch.markdown +++ b/content/reference/functions/hashmatch.markdown @@ -1,7 +1,6 @@ --- layout: default title: hashmatch -published: true --- [%CFEngine_function_prototype(filename, algorithm, hash)%] diff --git a/content/reference/functions/host2ip.markdown b/content/reference/functions/host2ip.markdown index a4a6a2c1b..7983818ea 100644 --- a/content/reference/functions/host2ip.markdown +++ b/content/reference/functions/host2ip.markdown @@ -1,7 +1,6 @@ --- layout: default title: host2ip -published: true --- [%CFEngine_function_prototype(hostname)%] diff --git a/content/reference/functions/hostinnetgroup.markdown b/content/reference/functions/hostinnetgroup.markdown index 7dbc11430..f3d026e73 100644 --- a/content/reference/functions/hostinnetgroup.markdown +++ b/content/reference/functions/hostinnetgroup.markdown @@ -1,7 +1,6 @@ --- layout: default title: hostinnetgroup -published: true --- [%CFEngine_function_prototype(netgroup)%] diff --git a/content/reference/functions/hostrange.markdown b/content/reference/functions/hostrange.markdown index 0a3ddc36f..0b8b3f877 100644 --- a/content/reference/functions/hostrange.markdown +++ b/content/reference/functions/hostrange.markdown @@ -1,7 +1,6 @@ --- layout: default title: hostrange -published: true --- [%CFEngine_function_prototype(prefix, range)%] diff --git a/content/reference/functions/hostsseen.markdown b/content/reference/functions/hostsseen.markdown index ce7975b30..308722cf9 100644 --- a/content/reference/functions/hostsseen.markdown +++ b/content/reference/functions/hostsseen.markdown @@ -1,7 +1,6 @@ --- layout: default title: hostsseen -published: true --- [%CFEngine_function_prototype(horizon, seen, field)%] diff --git a/content/reference/functions/hostswithclass.markdown b/content/reference/functions/hostswithclass.markdown index fe2d1173c..c32b5450a 100644 --- a/content/reference/functions/hostswithclass.markdown +++ b/content/reference/functions/hostswithclass.markdown @@ -1,7 +1,6 @@ --- layout: default title: hostswithclass -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/hubknowledge.markdown b/content/reference/functions/hubknowledge.markdown index c0ed841f4..1d3858207 100644 --- a/content/reference/functions/hubknowledge.markdown +++ b/content/reference/functions/hubknowledge.markdown @@ -1,7 +1,6 @@ --- layout: default title: hubknowledge -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/ifelse.markdown b/content/reference/functions/ifelse.markdown index 59885cced..dbd2fbba1 100644 --- a/content/reference/functions/ifelse.markdown +++ b/content/reference/functions/ifelse.markdown @@ -1,7 +1,6 @@ --- layout: default title: ifelse -published: true --- [%CFEngine_function_prototype(...)%] diff --git a/content/reference/functions/int.markdown b/content/reference/functions/int.markdown index ed6425439..e2e86ee2a 100644 --- a/content/reference/functions/int.markdown +++ b/content/reference/functions/int.markdown @@ -1,7 +1,6 @@ --- layout: default title: int -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/intersection.markdown b/content/reference/functions/intersection.markdown index 6eb53db4d..2dc38bef7 100644 --- a/content/reference/functions/intersection.markdown +++ b/content/reference/functions/intersection.markdown @@ -1,7 +1,6 @@ --- layout: default title: intersection -published: true --- [%CFEngine_function_prototype(list1, list2)%] diff --git a/content/reference/functions/ip2host.markdown b/content/reference/functions/ip2host.markdown index a0c28246d..410a5eca6 100644 --- a/content/reference/functions/ip2host.markdown +++ b/content/reference/functions/ip2host.markdown @@ -1,7 +1,6 @@ --- layout: default title: ip2host -published: true --- [%CFEngine_function_prototype(ip)%] diff --git a/content/reference/functions/iprange.markdown b/content/reference/functions/iprange.markdown index 47b895fe9..82c78f1e3 100644 --- a/content/reference/functions/iprange.markdown +++ b/content/reference/functions/iprange.markdown @@ -1,7 +1,6 @@ --- layout: default title: iprange -published: true --- [%CFEngine_function_prototype(range, optional_interface)%] diff --git a/content/reference/functions/irange.markdown b/content/reference/functions/irange.markdown index 83da72d83..d741617bd 100644 --- a/content/reference/functions/irange.markdown +++ b/content/reference/functions/irange.markdown @@ -1,7 +1,6 @@ --- layout: default title: irange -published: true --- [%CFEngine_function_prototype(arg1, arg2)%] diff --git a/content/reference/functions/isdir.markdown b/content/reference/functions/isdir.markdown index 788927809..0a7f59baa 100644 --- a/content/reference/functions/isdir.markdown +++ b/content/reference/functions/isdir.markdown @@ -1,7 +1,6 @@ --- layout: default title: isdir -published: true --- [%CFEngine_function_prototype(filename)%] diff --git a/content/reference/functions/isexecutable.markdown b/content/reference/functions/isexecutable.markdown index 8a26b53e6..e33bc57d2 100644 --- a/content/reference/functions/isexecutable.markdown +++ b/content/reference/functions/isexecutable.markdown @@ -1,7 +1,6 @@ --- layout: default title: isexecutable -published: true --- [%CFEngine_function_prototype(filename)%] diff --git a/content/reference/functions/isgreaterthan.markdown b/content/reference/functions/isgreaterthan.markdown index eaac3845e..1048b2e8d 100644 --- a/content/reference/functions/isgreaterthan.markdown +++ b/content/reference/functions/isgreaterthan.markdown @@ -1,7 +1,6 @@ --- layout: default title: isgreaterthan -published: true --- [%CFEngine_function_prototype(value1, value2)%] diff --git a/content/reference/functions/isipinsubnet.markdown b/content/reference/functions/isipinsubnet.markdown index 58995f456..b28e3284e 100644 --- a/content/reference/functions/isipinsubnet.markdown +++ b/content/reference/functions/isipinsubnet.markdown @@ -1,7 +1,6 @@ --- layout: default title: isipinsubnet -published: true --- [%CFEngine_function_prototype(range, ip_address1, ip_address2, ...)%] diff --git a/content/reference/functions/islessthan.markdown b/content/reference/functions/islessthan.markdown index c7e074c1f..1516653cd 100644 --- a/content/reference/functions/islessthan.markdown +++ b/content/reference/functions/islessthan.markdown @@ -1,7 +1,6 @@ --- layout: default title: islessthan -published: true --- [%CFEngine_function_prototype(value1, value2)%] diff --git a/content/reference/functions/islink.markdown b/content/reference/functions/islink.markdown index 7bdbdf8a7..1816392bc 100644 --- a/content/reference/functions/islink.markdown +++ b/content/reference/functions/islink.markdown @@ -1,7 +1,6 @@ --- layout: default title: islink -published: true --- [%CFEngine_function_prototype(filename)%] diff --git a/content/reference/functions/isnewerthan.markdown b/content/reference/functions/isnewerthan.markdown index cc222fd8b..8d2da7a38 100644 --- a/content/reference/functions/isnewerthan.markdown +++ b/content/reference/functions/isnewerthan.markdown @@ -1,7 +1,6 @@ --- layout: default title: isnewerthan -published: true --- [%CFEngine_function_prototype(newer, older)%] diff --git a/content/reference/functions/isplain.markdown b/content/reference/functions/isplain.markdown index 6bbca0c6a..10aa84a47 100644 --- a/content/reference/functions/isplain.markdown +++ b/content/reference/functions/isplain.markdown @@ -1,7 +1,6 @@ --- layout: default title: isplain -published: true --- [%CFEngine_function_prototype(filename)%] diff --git a/content/reference/functions/isreadable.markdown b/content/reference/functions/isreadable.markdown index cb0973e7d..214fb4e8e 100644 --- a/content/reference/functions/isreadable.markdown +++ b/content/reference/functions/isreadable.markdown @@ -1,7 +1,6 @@ --- layout: default title: isreadable -published: true --- [%CFEngine_function_prototype(path, timeout)%] diff --git a/content/reference/functions/isvariable.markdown b/content/reference/functions/isvariable.markdown index dc41bf435..02af50866 100644 --- a/content/reference/functions/isvariable.markdown +++ b/content/reference/functions/isvariable.markdown @@ -1,7 +1,6 @@ --- layout: default title: isvariable -published: true --- [%CFEngine_function_prototype(var)%] diff --git a/content/reference/functions/join.markdown b/content/reference/functions/join.markdown index a2e8db0bf..6af4f2ab6 100644 --- a/content/reference/functions/join.markdown +++ b/content/reference/functions/join.markdown @@ -1,7 +1,6 @@ --- layout: default title: join -published: true --- [%CFEngine_function_prototype(glue, list)%] diff --git a/content/reference/functions/lastnode.markdown b/content/reference/functions/lastnode.markdown index c3d2d7b25..06fabf2c7 100644 --- a/content/reference/functions/lastnode.markdown +++ b/content/reference/functions/lastnode.markdown @@ -1,7 +1,6 @@ --- layout: default title: lastnode -published: true --- [%CFEngine_function_prototype(string, separator)%] diff --git a/content/reference/functions/laterthan.markdown b/content/reference/functions/laterthan.markdown index 6585f0d8e..2b4f27ac7 100644 --- a/content/reference/functions/laterthan.markdown +++ b/content/reference/functions/laterthan.markdown @@ -1,7 +1,6 @@ --- layout: default title: laterthan -published: true --- [%CFEngine_function_prototype(year, month, day, hour, minute, second)%] diff --git a/content/reference/functions/ldaparray.markdown b/content/reference/functions/ldaparray.markdown index f45786031..514677b2b 100644 --- a/content/reference/functions/ldaparray.markdown +++ b/content/reference/functions/ldaparray.markdown @@ -1,7 +1,6 @@ --- layout: default title: ldaparray -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/ldaplist.markdown b/content/reference/functions/ldaplist.markdown index 7320e31e9..874855d53 100644 --- a/content/reference/functions/ldaplist.markdown +++ b/content/reference/functions/ldaplist.markdown @@ -1,7 +1,6 @@ --- layout: default title: ldaplist -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/ldapvalue.markdown b/content/reference/functions/ldapvalue.markdown index 23333390f..899c3a45d 100644 --- a/content/reference/functions/ldapvalue.markdown +++ b/content/reference/functions/ldapvalue.markdown @@ -1,7 +1,6 @@ --- layout: default title: ldapvalue -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/length.markdown b/content/reference/functions/length.markdown index ef11e368c..60bfb5f5c 100644 --- a/content/reference/functions/length.markdown +++ b/content/reference/functions/length.markdown @@ -1,7 +1,6 @@ --- layout: default title: length -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/lsdir.markdown b/content/reference/functions/lsdir.markdown index ae774177f..1e68cd71d 100644 --- a/content/reference/functions/lsdir.markdown +++ b/content/reference/functions/lsdir.markdown @@ -1,7 +1,6 @@ --- layout: default title: lsdir -published: true --- [%CFEngine_function_prototype(path, regex, include_base)%] diff --git a/content/reference/functions/makerule.markdown b/content/reference/functions/makerule.markdown index d97c0479a..c72c6212c 100644 --- a/content/reference/functions/makerule.markdown +++ b/content/reference/functions/makerule.markdown @@ -1,7 +1,6 @@ --- layout: default title: makerule -published: true --- [%CFEngine_function_prototype(target, sources)%] diff --git a/content/reference/functions/maparray.markdown b/content/reference/functions/maparray.markdown index c16af3d15..c3fd35993 100644 --- a/content/reference/functions/maparray.markdown +++ b/content/reference/functions/maparray.markdown @@ -1,7 +1,6 @@ --- layout: default title: maparray -published: true --- [%CFEngine_function_prototype(pattern, array_or_container)%] diff --git a/content/reference/functions/mapdata.markdown b/content/reference/functions/mapdata.markdown index 1558d3c2f..4f713ca33 100644 --- a/content/reference/functions/mapdata.markdown +++ b/content/reference/functions/mapdata.markdown @@ -1,7 +1,6 @@ --- layout: default title: mapdata -published: true --- [%CFEngine_function_prototype(interpretation, pattern, array_or_container)%] diff --git a/content/reference/functions/maplist.markdown b/content/reference/functions/maplist.markdown index 605c3964e..1bd5731ab 100644 --- a/content/reference/functions/maplist.markdown +++ b/content/reference/functions/maplist.markdown @@ -1,7 +1,6 @@ --- layout: default title: maplist -published: true --- [%CFEngine_function_prototype(pattern, list)%] diff --git a/content/reference/functions/max.markdown b/content/reference/functions/max.markdown index 33fe3e1c7..7e0bca981 100644 --- a/content/reference/functions/max.markdown +++ b/content/reference/functions/max.markdown @@ -1,7 +1,6 @@ --- layout: default title: max -published: true --- [%CFEngine_function_prototype(list, sortmode)%] diff --git a/content/reference/functions/mean.markdown b/content/reference/functions/mean.markdown index 4d13f72a7..d2dfe7bbf 100644 --- a/content/reference/functions/mean.markdown +++ b/content/reference/functions/mean.markdown @@ -1,7 +1,6 @@ --- layout: default title: mean -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/mergedata.markdown b/content/reference/functions/mergedata.markdown index 28686cc6a..ce95724fc 100644 --- a/content/reference/functions/mergedata.markdown +++ b/content/reference/functions/mergedata.markdown @@ -1,7 +1,6 @@ --- layout: default title: mergedata -published: true --- [%CFEngine_function_prototype(one, two, etc)%] diff --git a/content/reference/functions/min.markdown b/content/reference/functions/min.markdown index 37b6ec74a..be8515304 100644 --- a/content/reference/functions/min.markdown +++ b/content/reference/functions/min.markdown @@ -1,7 +1,6 @@ --- layout: default title: min -published: true --- [%CFEngine_function_prototype(list, sortmode)%] diff --git a/content/reference/functions/network_connections.markdown b/content/reference/functions/network_connections.markdown index a4f88d378..f8d51cb11 100644 --- a/content/reference/functions/network_connections.markdown +++ b/content/reference/functions/network_connections.markdown @@ -1,7 +1,6 @@ --- layout: default title: network_connections -published: true --- [%CFEngine_function_prototype()%] diff --git a/content/reference/functions/none.markdown b/content/reference/functions/none.markdown index b5a6adbe0..99d8b4519 100644 --- a/content/reference/functions/none.markdown +++ b/content/reference/functions/none.markdown @@ -1,7 +1,6 @@ --- layout: default title: none -published: true --- [%CFEngine_function_prototype(regex, list)%] diff --git a/content/reference/functions/not.markdown b/content/reference/functions/not.markdown index 7745c5a7b..a545da267 100644 --- a/content/reference/functions/not.markdown +++ b/content/reference/functions/not.markdown @@ -1,7 +1,6 @@ --- layout: default title: not -published: true --- [%CFEngine_function_prototype(expression)%] diff --git a/content/reference/functions/now.markdown b/content/reference/functions/now.markdown index e1a9be210..c423f6d4e 100644 --- a/content/reference/functions/now.markdown +++ b/content/reference/functions/now.markdown @@ -1,7 +1,6 @@ --- layout: default title: now -published: true --- [%CFEngine_function_prototype()%] diff --git a/content/reference/functions/nth.markdown b/content/reference/functions/nth.markdown index 90b9aedb8..fddcefec5 100644 --- a/content/reference/functions/nth.markdown +++ b/content/reference/functions/nth.markdown @@ -1,7 +1,6 @@ --- layout: default title: nth -published: true --- [%CFEngine_function_prototype(list_or_container, position_or_key)%] diff --git a/content/reference/functions/on.markdown b/content/reference/functions/on.markdown index 7d0ffb8ba..e12a08b92 100644 --- a/content/reference/functions/on.markdown +++ b/content/reference/functions/on.markdown @@ -1,7 +1,6 @@ --- layout: default title: "on" -published: true --- [%CFEngine_function_prototype(year, month, day, hour, minute, second)%] diff --git a/content/reference/functions/or.markdown b/content/reference/functions/or.markdown index 94fe6751f..6d4d08deb 100644 --- a/content/reference/functions/or.markdown +++ b/content/reference/functions/or.markdown @@ -1,7 +1,6 @@ --- layout: default title: or -published: true --- [%CFEngine_function_prototype(...)%] diff --git a/content/reference/functions/packagesmatching.markdown b/content/reference/functions/packagesmatching.markdown index b19135654..21cd99532 100644 --- a/content/reference/functions/packagesmatching.markdown +++ b/content/reference/functions/packagesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: packagesmatching -published: true --- [%CFEngine_function_prototype(package_regex, version_regex, arch_regex, method_regex)%] diff --git a/content/reference/functions/packageupdatesmatching.markdown b/content/reference/functions/packageupdatesmatching.markdown index dcc612970..cf023cff5 100644 --- a/content/reference/functions/packageupdatesmatching.markdown +++ b/content/reference/functions/packageupdatesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: packageupdatesmatching -published: true --- [%CFEngine_function_prototype(package_regex, version_regex, arch_regex, method_regex)%] diff --git a/content/reference/functions/parseintarray.markdown b/content/reference/functions/parseintarray.markdown index 4d9a16665..a88f5dcdd 100644 --- a/content/reference/functions/parseintarray.markdown +++ b/content/reference/functions/parseintarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: "parseintarray" -published: true --- **Prototype:** `parseintarray(array, input, comment, split, maxentries, maxbytes)`
    diff --git a/content/reference/functions/parsejson.markdown b/content/reference/functions/parsejson.markdown index 3c2491da9..6b06497e0 100644 --- a/content/reference/functions/parsejson.markdown +++ b/content/reference/functions/parsejson.markdown @@ -1,7 +1,6 @@ --- layout: default title: parsejson -published: true --- [%CFEngine_function_prototype(json_data)%] diff --git a/content/reference/functions/parserealarray.markdown b/content/reference/functions/parserealarray.markdown index 28e19c547..5b9036b75 100644 --- a/content/reference/functions/parserealarray.markdown +++ b/content/reference/functions/parserealarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: "parserealarray" -published: true --- **Prototype:** `parserealarray(array, input, comment, split, maxentries, maxbytes)`
    diff --git a/content/reference/functions/parsestringarray.markdown b/content/reference/functions/parsestringarray.markdown index 676557397..c3c29983b 100644 --- a/content/reference/functions/parsestringarray.markdown +++ b/content/reference/functions/parsestringarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: "parsestringarray" -published: true --- **Prototype:** `parsestringarray(array, input, comment, split, maxentries, maxbytes)`
    diff --git a/content/reference/functions/parsestringarrayidx.markdown b/content/reference/functions/parsestringarrayidx.markdown index a0397648f..9e22f8140 100644 --- a/content/reference/functions/parsestringarrayidx.markdown +++ b/content/reference/functions/parsestringarrayidx.markdown @@ -1,7 +1,6 @@ --- layout: default title: parsestringarrayidx -published: true --- [%CFEngine_function_prototype(array, input, comment, split, maxentries, maxbytes)%] diff --git a/content/reference/functions/parseyaml.markdown b/content/reference/functions/parseyaml.markdown index e220898e8..577e014df 100644 --- a/content/reference/functions/parseyaml.markdown +++ b/content/reference/functions/parseyaml.markdown @@ -1,7 +1,6 @@ --- layout: default title: parseyaml -published: true --- [%CFEngine_function_prototype(yaml_data)%] diff --git a/content/reference/functions/peerleader.markdown b/content/reference/functions/peerleader.markdown index 537fa6521..a227a5184 100644 --- a/content/reference/functions/peerleader.markdown +++ b/content/reference/functions/peerleader.markdown @@ -1,7 +1,6 @@ --- layout: default title: peerleader -published: true --- [%CFEngine_function_prototype(filename, regex, groupsize)%] diff --git a/content/reference/functions/peerleaders.markdown b/content/reference/functions/peerleaders.markdown index 53d25ae23..754701a4b 100644 --- a/content/reference/functions/peerleaders.markdown +++ b/content/reference/functions/peerleaders.markdown @@ -1,7 +1,6 @@ --- layout: default title: peerleaders -published: true --- [%CFEngine_function_prototype(filename, regex, groupsize)%] diff --git a/content/reference/functions/peers.markdown b/content/reference/functions/peers.markdown index ad8e5228e..25ad20edf 100644 --- a/content/reference/functions/peers.markdown +++ b/content/reference/functions/peers.markdown @@ -1,7 +1,6 @@ --- layout: default title: peers -published: true --- [%CFEngine_function_prototype(filename, regex, groupsize)%] diff --git a/content/reference/functions/processexists.markdown b/content/reference/functions/processexists.markdown index a2b9949e9..54e9c4995 100644 --- a/content/reference/functions/processexists.markdown +++ b/content/reference/functions/processexists.markdown @@ -1,7 +1,6 @@ --- layout: default title: processexists -published: true --- [%CFEngine_function_prototype(regex)%] diff --git a/content/reference/functions/product.markdown b/content/reference/functions/product.markdown index 8d836e5cd..716b822ff 100644 --- a/content/reference/functions/product.markdown +++ b/content/reference/functions/product.markdown @@ -1,7 +1,6 @@ --- layout: default title: product -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/randomint.markdown b/content/reference/functions/randomint.markdown index b58ea2a5f..0029c7635 100644 --- a/content/reference/functions/randomint.markdown +++ b/content/reference/functions/randomint.markdown @@ -1,7 +1,6 @@ --- layout: default title: randomint -published: true --- [%CFEngine_function_prototype(lower, upper)%] diff --git a/content/reference/functions/read_module_protocol.markdown b/content/reference/functions/read_module_protocol.markdown index a30e255ac..c0f9ea997 100644 --- a/content/reference/functions/read_module_protocol.markdown +++ b/content/reference/functions/read_module_protocol.markdown @@ -1,7 +1,6 @@ --- layout: default title: read_module_protocol -published: true --- [%CFEngine_function_prototype(file_path)%] diff --git a/content/reference/functions/readcsv.markdown b/content/reference/functions/readcsv.markdown index 698da166a..97b9c0234 100644 --- a/content/reference/functions/readcsv.markdown +++ b/content/reference/functions/readcsv.markdown @@ -1,7 +1,6 @@ --- layout: default title: readcsv -published: true --- [%CFEngine_function_prototype(filename, optional_maxbytes)%] diff --git a/content/reference/functions/readdata.markdown b/content/reference/functions/readdata.markdown index 02c69c6ec..6280f87c3 100644 --- a/content/reference/functions/readdata.markdown +++ b/content/reference/functions/readdata.markdown @@ -1,7 +1,6 @@ --- layout: default title: readdata -published: true --- [%CFEngine_function_prototype(filename, filetype)%] diff --git a/content/reference/functions/readenvfile.markdown b/content/reference/functions/readenvfile.markdown index e3e85c45f..c2e4980bd 100644 --- a/content/reference/functions/readenvfile.markdown +++ b/content/reference/functions/readenvfile.markdown @@ -1,7 +1,6 @@ --- layout: default title: readenvfile -published: true --- [%CFEngine_function_prototype(filename, optional_maxbytes)%] diff --git a/content/reference/functions/readfile.markdown b/content/reference/functions/readfile.markdown index a7147e9b0..f1bc71453 100644 --- a/content/reference/functions/readfile.markdown +++ b/content/reference/functions/readfile.markdown @@ -1,7 +1,6 @@ --- layout: default title: readfile -published: true --- [%CFEngine_function_prototype(filename, optional_maxbytes)%] diff --git a/content/reference/functions/readintarray.markdown b/content/reference/functions/readintarray.markdown index 01f4b3c24..21398638a 100644 --- a/content/reference/functions/readintarray.markdown +++ b/content/reference/functions/readintarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: "readintarray" -published: true --- **Prototype:** `readintarray(array, filename, comment, split, maxentries, maxbytes)`
    diff --git a/content/reference/functions/readintlist.markdown b/content/reference/functions/readintlist.markdown index 189502046..b4ccc1cf1 100644 --- a/content/reference/functions/readintlist.markdown +++ b/content/reference/functions/readintlist.markdown @@ -1,7 +1,6 @@ --- layout: default title: readintlist -published: true --- [%CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes)%] diff --git a/content/reference/functions/readjson.markdown b/content/reference/functions/readjson.markdown index ced2b6859..c34aab76a 100644 --- a/content/reference/functions/readjson.markdown +++ b/content/reference/functions/readjson.markdown @@ -1,7 +1,6 @@ --- layout: default title: readjson -published: true --- [%CFEngine_function_prototype(filename, optional_maxbytes)%] diff --git a/content/reference/functions/readrealarray.markdown b/content/reference/functions/readrealarray.markdown index 6ee8d9e60..cde8539c4 100644 --- a/content/reference/functions/readrealarray.markdown +++ b/content/reference/functions/readrealarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: "readrealarray" -published: true --- **Prototype:** `readrealarray(array, filename, comment, split, maxentries, maxbytes)`
    diff --git a/content/reference/functions/readreallist.markdown b/content/reference/functions/readreallist.markdown index 82679807d..42ab08a67 100644 --- a/content/reference/functions/readreallist.markdown +++ b/content/reference/functions/readreallist.markdown @@ -1,7 +1,6 @@ --- layout: default title: readreallist -published: true --- **Prototype:** `readreallist(filename, comment, split, maxentries, maxbytes)`
    diff --git a/content/reference/functions/readstringarray.markdown b/content/reference/functions/readstringarray.markdown index 478ecdd4d..a78409229 100644 --- a/content/reference/functions/readstringarray.markdown +++ b/content/reference/functions/readstringarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: "readstringarray" -published: true --- **Prototype:** `readstringarray(array, filename, comment, split, maxentries, maxbytes)` diff --git a/content/reference/functions/readstringarrayidx.markdown b/content/reference/functions/readstringarrayidx.markdown index 077faed4e..48e829823 100644 --- a/content/reference/functions/readstringarrayidx.markdown +++ b/content/reference/functions/readstringarrayidx.markdown @@ -1,7 +1,6 @@ --- layout: default title: readstringarrayidx -published: true --- [%CFEngine_function_prototype(array, filename, comment, split, maxentries, maxbytes)%] diff --git a/content/reference/functions/readstringlist.markdown b/content/reference/functions/readstringlist.markdown index 2ed7ab872..e5a4f01cd 100644 --- a/content/reference/functions/readstringlist.markdown +++ b/content/reference/functions/readstringlist.markdown @@ -1,7 +1,6 @@ --- layout: default title: readstringlist -published: true --- **Prototype:** `readstringlist(filename, comment, split, maxentries, maxbytes)` diff --git a/content/reference/functions/readtcp.markdown b/content/reference/functions/readtcp.markdown index 532da1835..29c40cd79 100644 --- a/content/reference/functions/readtcp.markdown +++ b/content/reference/functions/readtcp.markdown @@ -1,7 +1,6 @@ --- layout: default title: readtcp -published: true --- [%CFEngine_function_prototype(hostnameip, port, sendstring, maxbytes)%] diff --git a/content/reference/functions/readyaml.markdown b/content/reference/functions/readyaml.markdown index 7b1091568..58d4bb6b9 100644 --- a/content/reference/functions/readyaml.markdown +++ b/content/reference/functions/readyaml.markdown @@ -1,7 +1,6 @@ --- layout: default title: readyaml -published: true --- [%CFEngine_function_prototype(filename, optional_maxbytes)%] diff --git a/content/reference/functions/regarray.markdown b/content/reference/functions/regarray.markdown index 845c452df..15cb36b46 100644 --- a/content/reference/functions/regarray.markdown +++ b/content/reference/functions/regarray.markdown @@ -1,7 +1,6 @@ --- layout: default title: regarray -published: true --- [%CFEngine_function_prototype(array, regex)%] diff --git a/content/reference/functions/regcmp.markdown b/content/reference/functions/regcmp.markdown index 203493951..ca4822ee2 100644 --- a/content/reference/functions/regcmp.markdown +++ b/content/reference/functions/regcmp.markdown @@ -1,7 +1,6 @@ --- layout: default title: regcmp -published: true --- [%CFEngine_function_prototype(regex, string)%] diff --git a/content/reference/functions/regex_replace.markdown b/content/reference/functions/regex_replace.markdown index 1579b2889..a618833f7 100644 --- a/content/reference/functions/regex_replace.markdown +++ b/content/reference/functions/regex_replace.markdown @@ -1,7 +1,6 @@ --- layout: default title: regex_replace -published: true --- [%CFEngine_function_prototype(string, regex, replacement, options)%] diff --git a/content/reference/functions/regextract.markdown b/content/reference/functions/regextract.markdown index 681cd4da9..f177a573b 100644 --- a/content/reference/functions/regextract.markdown +++ b/content/reference/functions/regextract.markdown @@ -1,7 +1,6 @@ --- layout: default title: regextract -published: true --- [%CFEngine_function_prototype(regex, string, backref)%] diff --git a/content/reference/functions/registryvalue.markdown b/content/reference/functions/registryvalue.markdown index 28ce5fafa..a0e8657c6 100644 --- a/content/reference/functions/registryvalue.markdown +++ b/content/reference/functions/registryvalue.markdown @@ -1,7 +1,6 @@ --- layout: default title: registryvalue -published: true --- [%CFEngine_function_prototype(key, valueid)%] diff --git a/content/reference/functions/regldap.markdown b/content/reference/functions/regldap.markdown index ed180389d..af3eb7147 100644 --- a/content/reference/functions/regldap.markdown +++ b/content/reference/functions/regldap.markdown @@ -1,7 +1,6 @@ --- layout: default title: regldap -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/regline.markdown b/content/reference/functions/regline.markdown index 9c868e0ed..586f4c0c1 100644 --- a/content/reference/functions/regline.markdown +++ b/content/reference/functions/regline.markdown @@ -1,7 +1,6 @@ --- layout: default title: regline -published: true --- [%CFEngine_function_prototype(regex, filename)%] diff --git a/content/reference/functions/reglist.markdown b/content/reference/functions/reglist.markdown index 5f5af4058..3ec15bb65 100644 --- a/content/reference/functions/reglist.markdown +++ b/content/reference/functions/reglist.markdown @@ -1,7 +1,6 @@ --- layout: default title: reglist -published: true --- [%CFEngine_function_prototype(list, regex)%] diff --git a/content/reference/functions/remoteclassesmatching.markdown b/content/reference/functions/remoteclassesmatching.markdown index 9ee0f9499..da4ba470d 100644 --- a/content/reference/functions/remoteclassesmatching.markdown +++ b/content/reference/functions/remoteclassesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: remoteclassesmatching -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/remotescalar.markdown b/content/reference/functions/remotescalar.markdown index 3934ffb37..c04da7523 100644 --- a/content/reference/functions/remotescalar.markdown +++ b/content/reference/functions/remotescalar.markdown @@ -1,7 +1,6 @@ --- layout: default title: remotescalar -published: true --- **This function is only available in CFEngine Enterprise.** diff --git a/content/reference/functions/returnszero.markdown b/content/reference/functions/returnszero.markdown index 1d54aa77b..56b82049a 100644 --- a/content/reference/functions/returnszero.markdown +++ b/content/reference/functions/returnszero.markdown @@ -1,7 +1,6 @@ --- layout: default title: returnszero -published: true --- [%CFEngine_function_prototype(command, shell)%] diff --git a/content/reference/functions/reverse.markdown b/content/reference/functions/reverse.markdown index 91f75534a..9d9419f0b 100644 --- a/content/reference/functions/reverse.markdown +++ b/content/reference/functions/reverse.markdown @@ -1,7 +1,6 @@ --- layout: default title: reverse -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/rrange.markdown b/content/reference/functions/rrange.markdown index 8502e618c..76ec6eae8 100644 --- a/content/reference/functions/rrange.markdown +++ b/content/reference/functions/rrange.markdown @@ -1,7 +1,6 @@ --- layout: default title: rrange -published: true --- [%CFEngine_function_prototype(arg1, arg2)%] diff --git a/content/reference/functions/selectservers.markdown b/content/reference/functions/selectservers.markdown index 64fb267bd..e91292eb0 100644 --- a/content/reference/functions/selectservers.markdown +++ b/content/reference/functions/selectservers.markdown @@ -1,7 +1,6 @@ --- layout: default title: selectservers -published: true --- [%CFEngine_function_prototype(hostlist, port, query, regex, maxbytes, array)%] diff --git a/content/reference/functions/shuffle.markdown b/content/reference/functions/shuffle.markdown index 48135af56..f4796ae5c 100644 --- a/content/reference/functions/shuffle.markdown +++ b/content/reference/functions/shuffle.markdown @@ -1,7 +1,6 @@ --- layout: default title: shuffle -published: true --- [%CFEngine_function_prototype(list, seed)%] diff --git a/content/reference/functions/some.markdown b/content/reference/functions/some.markdown index 2fab47afe..40140fbca 100644 --- a/content/reference/functions/some.markdown +++ b/content/reference/functions/some.markdown @@ -1,7 +1,6 @@ --- layout: default title: some -published: true --- [%CFEngine_function_prototype(regex, list)%] diff --git a/content/reference/functions/sort.markdown b/content/reference/functions/sort.markdown index ede0cc2e5..b5972467b 100644 --- a/content/reference/functions/sort.markdown +++ b/content/reference/functions/sort.markdown @@ -1,7 +1,6 @@ --- layout: default title: sort -published: true --- [%CFEngine_function_prototype(list, mode)%] diff --git a/content/reference/functions/splayclass.markdown b/content/reference/functions/splayclass.markdown index 43857b252..715a0b4b8 100644 --- a/content/reference/functions/splayclass.markdown +++ b/content/reference/functions/splayclass.markdown @@ -1,7 +1,6 @@ --- layout: default title: splayclass -published: true --- [%CFEngine_function_prototype(input, policy)%] diff --git a/content/reference/functions/splitstring.markdown b/content/reference/functions/splitstring.markdown index e22ed9af3..6d1f0a283 100644 --- a/content/reference/functions/splitstring.markdown +++ b/content/reference/functions/splitstring.markdown @@ -1,7 +1,6 @@ --- layout: default title: splitstring -published: true --- [%CFEngine_function_prototype(string, regex, maxent)%] diff --git a/content/reference/functions/storejson.markdown b/content/reference/functions/storejson.markdown index eed076b43..10985ed74 100644 --- a/content/reference/functions/storejson.markdown +++ b/content/reference/functions/storejson.markdown @@ -1,7 +1,6 @@ --- layout: default title: storejson -published: true --- [%CFEngine_function_prototype(data_container)%] diff --git a/content/reference/functions/strcmp.markdown b/content/reference/functions/strcmp.markdown index 84447c58e..285f4910d 100644 --- a/content/reference/functions/strcmp.markdown +++ b/content/reference/functions/strcmp.markdown @@ -1,7 +1,6 @@ --- layout: default title: strcmp -published: true --- [%CFEngine_function_prototype(string1, string2)%] diff --git a/content/reference/functions/strftime.markdown b/content/reference/functions/strftime.markdown index 6e44cacca..17439acc0 100644 --- a/content/reference/functions/strftime.markdown +++ b/content/reference/functions/strftime.markdown @@ -1,7 +1,6 @@ --- layout: default title: strftime -published: true --- [%CFEngine_function_prototype(mode, template, time)%] diff --git a/content/reference/functions/string.markdown b/content/reference/functions/string.markdown index a13b6f892..be0f18589 100644 --- a/content/reference/functions/string.markdown +++ b/content/reference/functions/string.markdown @@ -1,7 +1,6 @@ --- layout: default title: string -published: true --- [%CFEngine_function_prototype(arg)%] diff --git a/content/reference/functions/string_downcase.markdown b/content/reference/functions/string_downcase.markdown index 05b6bf77f..6773c8150 100644 --- a/content/reference/functions/string_downcase.markdown +++ b/content/reference/functions/string_downcase.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_downcase -published: true --- [%CFEngine_function_prototype(data)%] diff --git a/content/reference/functions/string_head.markdown b/content/reference/functions/string_head.markdown index 5c7dd86e4..140db25dd 100644 --- a/content/reference/functions/string_head.markdown +++ b/content/reference/functions/string_head.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_head -published: true --- [%CFEngine_function_prototype(data, max)%] diff --git a/content/reference/functions/string_length.markdown b/content/reference/functions/string_length.markdown index e9f531168..705cc1249 100644 --- a/content/reference/functions/string_length.markdown +++ b/content/reference/functions/string_length.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_length -published: true --- [%CFEngine_function_prototype(data)%] diff --git a/content/reference/functions/string_mustache.markdown b/content/reference/functions/string_mustache.markdown index bbc193969..3a96bf5f8 100644 --- a/content/reference/functions/string_mustache.markdown +++ b/content/reference/functions/string_mustache.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_mustache -published: true --- [%CFEngine_function_prototype(template_string, optional_data_container)%] diff --git a/content/reference/functions/string_replace.markdown b/content/reference/functions/string_replace.markdown index 32b66ff45..451acf55d 100644 --- a/content/reference/functions/string_replace.markdown +++ b/content/reference/functions/string_replace.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_replace -published: true --- [%CFEngine_function_prototype(string, match, replacement)%] diff --git a/content/reference/functions/string_reverse.markdown b/content/reference/functions/string_reverse.markdown index ea943fd0c..df77974eb 100644 --- a/content/reference/functions/string_reverse.markdown +++ b/content/reference/functions/string_reverse.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_reverse -published: true --- [%CFEngine_function_prototype(data)%] diff --git a/content/reference/functions/string_split.markdown b/content/reference/functions/string_split.markdown index 10994bfa2..044135c8a 100644 --- a/content/reference/functions/string_split.markdown +++ b/content/reference/functions/string_split.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_split -published: true --- [%CFEngine_function_prototype(string, regex, maxent)%] diff --git a/content/reference/functions/string_tail.markdown b/content/reference/functions/string_tail.markdown index b72e51a1e..a2b22361f 100644 --- a/content/reference/functions/string_tail.markdown +++ b/content/reference/functions/string_tail.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_tail -published: true --- [%CFEngine_function_prototype(data, max)%] diff --git a/content/reference/functions/string_trim.markdown b/content/reference/functions/string_trim.markdown index 153fff677..718405e11 100644 --- a/content/reference/functions/string_trim.markdown +++ b/content/reference/functions/string_trim.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_trim -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/string_upcase.markdown b/content/reference/functions/string_upcase.markdown index 94d787dc4..cff7659da 100644 --- a/content/reference/functions/string_upcase.markdown +++ b/content/reference/functions/string_upcase.markdown @@ -1,7 +1,6 @@ --- layout: default title: string_upcase -published: true --- [%CFEngine_function_prototype(data)%] diff --git a/content/reference/functions/sublist.markdown b/content/reference/functions/sublist.markdown index 403298c98..dbf53dbe0 100644 --- a/content/reference/functions/sublist.markdown +++ b/content/reference/functions/sublist.markdown @@ -1,7 +1,6 @@ --- layout: default title: sublist -published: true --- [%CFEngine_function_prototype(list, head_or_tail, max_elements)%] diff --git a/content/reference/functions/sum.markdown b/content/reference/functions/sum.markdown index bf47a9475..6aa6cae02 100644 --- a/content/reference/functions/sum.markdown +++ b/content/reference/functions/sum.markdown @@ -1,7 +1,6 @@ --- layout: default title: sum -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/sysctlvalue.markdown b/content/reference/functions/sysctlvalue.markdown index 3300860a3..07536d5a2 100644 --- a/content/reference/functions/sysctlvalue.markdown +++ b/content/reference/functions/sysctlvalue.markdown @@ -1,7 +1,6 @@ --- layout: default title: sysctlvalue -published: true --- [%CFEngine_function_prototype(key)%] diff --git a/content/reference/functions/translatepath.markdown b/content/reference/functions/translatepath.markdown index 94b46713b..076010716 100644 --- a/content/reference/functions/translatepath.markdown +++ b/content/reference/functions/translatepath.markdown @@ -1,7 +1,6 @@ --- layout: default title: translatepath -published: true --- [%CFEngine_function_prototype(path)%] diff --git a/content/reference/functions/type.markdown b/content/reference/functions/type.markdown index abaa43c68..d31a2226d 100644 --- a/content/reference/functions/type.markdown +++ b/content/reference/functions/type.markdown @@ -1,7 +1,6 @@ --- layout: default title: type -published: true --- [%CFEngine_function_prototype(var, detail)%] diff --git a/content/reference/functions/unique.markdown b/content/reference/functions/unique.markdown index f4131a162..341d38100 100644 --- a/content/reference/functions/unique.markdown +++ b/content/reference/functions/unique.markdown @@ -1,7 +1,6 @@ --- layout: default title: unique -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/url_get.markdown b/content/reference/functions/url_get.markdown index 2685c3345..e1c1aa634 100644 --- a/content/reference/functions/url_get.markdown +++ b/content/reference/functions/url_get.markdown @@ -1,7 +1,6 @@ --- layout: default title: url_get -published: true --- [%CFEngine_function_prototype(url, options_container)%] diff --git a/content/reference/functions/usemodule.markdown b/content/reference/functions/usemodule.markdown index 87cbea763..ab750af2d 100644 --- a/content/reference/functions/usemodule.markdown +++ b/content/reference/functions/usemodule.markdown @@ -1,7 +1,6 @@ --- layout: default title: usemodule -published: true --- [%CFEngine_function_prototype(module, args)%] diff --git a/content/reference/functions/userexists.markdown b/content/reference/functions/userexists.markdown index 636185aa7..4424072b2 100644 --- a/content/reference/functions/userexists.markdown +++ b/content/reference/functions/userexists.markdown @@ -1,7 +1,6 @@ --- layout: default title: userexists -published: true --- [%CFEngine_function_prototype(user)%] diff --git a/content/reference/functions/validdata.markdown b/content/reference/functions/validdata.markdown index 1a1c483c3..9fd2136d9 100644 --- a/content/reference/functions/validdata.markdown +++ b/content/reference/functions/validdata.markdown @@ -1,7 +1,6 @@ --- layout: default title: validdata -published: true --- [%CFEngine_function_prototype(data_container, type)%] diff --git a/content/reference/functions/validjson.markdown b/content/reference/functions/validjson.markdown index 871a2e751..c0cf1cd4b 100644 --- a/content/reference/functions/validjson.markdown +++ b/content/reference/functions/validjson.markdown @@ -1,7 +1,6 @@ --- layout: default title: validjson -published: true --- [%CFEngine_function_prototype(string)%] diff --git a/content/reference/functions/variablesmatching.markdown b/content/reference/functions/variablesmatching.markdown index fb689542f..b736d5dc4 100644 --- a/content/reference/functions/variablesmatching.markdown +++ b/content/reference/functions/variablesmatching.markdown @@ -1,7 +1,6 @@ --- layout: default title: variablesmatching -published: true --- [%CFEngine_function_prototype(name, tag1, tag2, ...)%] diff --git a/content/reference/functions/variablesmatching_as_data.markdown b/content/reference/functions/variablesmatching_as_data.markdown index a079e1a36..cd74fecc0 100644 --- a/content/reference/functions/variablesmatching_as_data.markdown +++ b/content/reference/functions/variablesmatching_as_data.markdown @@ -1,7 +1,6 @@ --- layout: default title: variablesmatching_as_data -published: true --- [%CFEngine_function_prototype(name, tag1, tag2, ...)%] diff --git a/content/reference/functions/variance.markdown b/content/reference/functions/variance.markdown index ab635cebe..3e06589f4 100644 --- a/content/reference/functions/variance.markdown +++ b/content/reference/functions/variance.markdown @@ -1,7 +1,6 @@ --- layout: default title: variance -published: true --- [%CFEngine_function_prototype(list)%] diff --git a/content/reference/functions/version_compare.markdown b/content/reference/functions/version_compare.markdown index b85d18809..286f92d94 100644 --- a/content/reference/functions/version_compare.markdown +++ b/content/reference/functions/version_compare.markdown @@ -1,7 +1,6 @@ --- layout: default title: version_compare -published: true --- [%CFEngine_function_prototype(version1, comparison, version2)%] diff --git a/content/reference/language-concepts/_index.markdown b/content/reference/language-concepts/_index.markdown index 5e814a78d..a076dd755 100644 --- a/content/reference/language-concepts/_index.markdown +++ b/content/reference/language-concepts/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Language concepts -published: true sorting: 50 --- diff --git a/content/reference/language-concepts/augments.markdown b/content/reference/language-concepts/augments.markdown index 4d618d2c5..a443519db 100644 --- a/content/reference/language-concepts/augments.markdown +++ b/content/reference/language-concepts/augments.markdown @@ -1,7 +1,6 @@ --- layout: default title: Augments -published: true sorting: 70 --- diff --git a/content/reference/language-concepts/bodies.markdown b/content/reference/language-concepts/bodies.markdown index 12f7f724b..fe5b8be68 100644 --- a/content/reference/language-concepts/bodies.markdown +++ b/content/reference/language-concepts/bodies.markdown @@ -1,7 +1,6 @@ --- layout: default title: Bodies -published: true sorting: 20 --- diff --git a/content/reference/language-concepts/bundles.markdown b/content/reference/language-concepts/bundles.markdown index 9b3ad12c1..cadd29d78 100644 --- a/content/reference/language-concepts/bundles.markdown +++ b/content/reference/language-concepts/bundles.markdown @@ -1,7 +1,6 @@ --- layout: default title: Bundles -published: true sorting: 10 --- diff --git a/content/reference/language-concepts/classes.markdown b/content/reference/language-concepts/classes.markdown index cfdce53e8..403d29e59 100644 --- a/content/reference/language-concepts/classes.markdown +++ b/content/reference/language-concepts/classes.markdown @@ -1,7 +1,6 @@ --- layout: default title: Classes and decisions -published: true sorting: 50 --- diff --git a/content/reference/language-concepts/loops.markdown b/content/reference/language-concepts/loops.markdown index 00988847b..c7cf115de 100644 --- a/content/reference/language-concepts/loops.markdown +++ b/content/reference/language-concepts/loops.markdown @@ -1,7 +1,6 @@ --- layout: default title: Loops -published: true sorting: 70 --- diff --git a/content/reference/language-concepts/modules/_index.markdown b/content/reference/language-concepts/modules/_index.markdown index 0fd51fa69..c864b3949 100644 --- a/content/reference/language-concepts/modules/_index.markdown +++ b/content/reference/language-concepts/modules/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Modules -published: true --- Modules allow users to extend the capabilities of CFEngine in a modular way, they can be easily added and upgraded independently of when you upgrade your CFEngine version. Several different types of modules are available. diff --git a/content/reference/language-concepts/modules/package-module-api.markdown b/content/reference/language-concepts/modules/package-module-api.markdown index 7d7955bd6..c36dcbbed 100644 --- a/content/reference/language-concepts/modules/package-module-api.markdown +++ b/content/reference/language-concepts/modules/package-module-api.markdown @@ -1,7 +1,6 @@ --- layout: default title: Package modules -published: true sorting: 70 --- diff --git a/content/reference/language-concepts/namespaces.markdown b/content/reference/language-concepts/namespaces.markdown index bfa099a3c..ad226da78 100644 --- a/content/reference/language-concepts/namespaces.markdown +++ b/content/reference/language-concepts/namespaces.markdown @@ -1,7 +1,6 @@ --- layout: default title: Namespaces -published: true sorting: 100 --- diff --git a/content/reference/language-concepts/normal-ordering.markdown b/content/reference/language-concepts/normal-ordering.markdown index 444d32f25..d2bec1b31 100644 --- a/content/reference/language-concepts/normal-ordering.markdown +++ b/content/reference/language-concepts/normal-ordering.markdown @@ -1,7 +1,6 @@ --- layout: default title: Normal ordering -published: true sorting: 40 --- diff --git a/content/reference/language-concepts/pattern-matching-and-referencing.markdown b/content/reference/language-concepts/pattern-matching-and-referencing.markdown index 41b54703d..ed6805600 100644 --- a/content/reference/language-concepts/pattern-matching-and-referencing.markdown +++ b/content/reference/language-concepts/pattern-matching-and-referencing.markdown @@ -1,7 +1,6 @@ --- layout: default title: Pattern matching and referencing -published: true sorting: 80 --- diff --git a/content/reference/language-concepts/promises.markdown b/content/reference/language-concepts/promises.markdown index ff7799400..2ae8748c9 100644 --- a/content/reference/language-concepts/promises.markdown +++ b/content/reference/language-concepts/promises.markdown @@ -1,7 +1,6 @@ --- layout: default title: Promises -published: true sorting: 30 --- diff --git a/content/reference/language-concepts/variables.markdown b/content/reference/language-concepts/variables.markdown index ac0e2597b..4806cf658 100644 --- a/content/reference/language-concepts/variables.markdown +++ b/content/reference/language-concepts/variables.markdown @@ -1,7 +1,6 @@ --- layout: default title: Variables -published: true sorting: 60 --- diff --git a/content/reference/macros.markdown b/content/reference/macros.markdown index e9fd45136..2898cca97 100644 --- a/content/reference/macros.markdown +++ b/content/reference/macros.markdown @@ -2,7 +2,6 @@ layout: default title: Macros categories: [Reference, Macros] -published: true alias: reference-macros.html --- diff --git a/content/reference/masterfiles-policy-framework/_index.markdown b/content/reference/masterfiles-policy-framework/_index.markdown index 84871eb13..531858b93 100644 --- a/content/reference/masterfiles-policy-framework/_index.markdown +++ b/content/reference/masterfiles-policy-framework/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Masterfiles Policy Framework -published: true sorting: 90 --- diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown index 1e50ac1b9..a81bdaeac 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/CFE_cfengine.cf -published: true --- [%CFEngine_library_include(cfe_internal/CFE_cfengine)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown index 00ed9cc21..a79f9f161 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/core/watchdog/watchdog.cf -published: true --- [%CFEngine_library_include(cfe_internal/core/watchdog/watchdog)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown index 11a72ed0d..f9011a9a0 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/core/watchdog -published: true --- [%CFEngine_include_markdown(../../masterfiles/cfe_internal/core/watchdog/README.md)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-core.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core.markdown index 50527465b..94d32af5e 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-core.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-core.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/core/ -published: true --- This directory contains internal management polcies related to CFEngine diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown index 1af18f3db..60a8fe4ef 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/enterprise/federation/federation.cf -published: true --- This policy file handles Federated reporting setup and ongoing operations. diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown index 1954e7017..6cc4c6f72 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/enterprise/federation/ -published: true --- This directory contains assets related to the function and configuration of [CFEngine Enterprise Federated reporting][Federated reporting]. diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown index a90d170ce..07c68188a 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/enterprise/ -published: true --- This directory contains internal management polcies related to CFEngine diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown index 4c224ea26..20aca9737 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/recommendations.cf -published: true --- [%CFEngine_library_include(cfe_internal/recommendations)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown index d50ac7021..784dfe70b 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/cfe_internal_dc_workflow.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/cfe_internal_dc_workflow)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown index e59a3abcc..8c5e6c212 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/cfe_internal_update_from_repository.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/cfe_internal_update_from_repository)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown index 9e2f5c1f7..19a6709b4 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/lib.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/lib)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown index e527c9a5d..d06d5b5fb 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/systemd_units.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/systemd_units)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown index c2de4a80b..53e70651d 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/update_bins.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/update_bins)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown index fe7d42f27..1c5fb7e33 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/update_policy.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/update_policy)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown index 2c0412850..08a26b57d 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/update_processes.cf -published: true --- [%CFEngine_library_include(cfe_internal/update/update_processes)%] diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update.markdown index 53d4d2bc8..671b3a537 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/update/ -published: true --- This directory contains internal management polcies related to the default diff --git a/content/reference/masterfiles-policy-framework/cfe_internal.markdown b/content/reference/masterfiles-policy-framework/cfe_internal.markdown index 5c29877d1..53a48aa51 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal.markdown @@ -1,7 +1,6 @@ --- layout: default title: cfe_internal/ -published: true --- This directory contains policy related to the internal control and functioning diff --git a/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown b/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown index 8a6dd39fa..dda9b61b4 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/cf_hub.cf -published: true --- This is where `body hub control` is defined. `body hub control` is where diff --git a/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown b/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown index 3d3387117..1515cefba 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/cf_agent.cf -published: true --- This is where `body agent control` is defined. `body agent control` is where diff --git a/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown b/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown index 65c42fed1..f001d4f76 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/cf_execd.cf -published: true --- This is where `body executor control` is defined. `body executor control` is where diff --git a/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown b/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown index b80a80469..062ecde0f 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/cf_monitord.cf -published: true --- This is where `body monitor control` is defined. `body monitor control` is where diff --git a/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown b/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown index ecda64ff1..f768e67b0 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/cf_runagent.cf -published: true --- This is where `body runagent control` is defined. `body runagent control` is where diff --git a/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown b/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown index 0f69edde8..40cef2f4a 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/cf_serverd.cf -published: true --- This is where `body server control` is defined. `body server control` is where diff --git a/content/reference/masterfiles-policy-framework/controls-def.markdown b/content/reference/masterfiles-policy-framework/controls-def.markdown index 104555bc7..322a00f2d 100644 --- a/content/reference/masterfiles-policy-framework/controls-def.markdown +++ b/content/reference/masterfiles-policy-framework/controls-def.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/def.cf -published: true --- This is where most common variables and classes are defined. Note its variable scope can be augmented with `def.json`. diff --git a/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown b/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown index 6e4346263..e36d55431 100644 --- a/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown +++ b/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/def_inputs.cf -published: true --- This is where the list of policy files to include as defined from the augments diff --git a/content/reference/masterfiles-policy-framework/controls-reports.markdown b/content/reference/masterfiles-policy-framework/controls-reports.markdown index bcfd17adc..5057236aa 100644 --- a/content/reference/masterfiles-policy-framework/controls-reports.markdown +++ b/content/reference/masterfiles-policy-framework/controls-reports.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/reports.cf -published: true --- This is where report settings for CFEngine Enterprise are found. Control which diff --git a/content/reference/masterfiles-policy-framework/controls-update_def.markdown b/content/reference/masterfiles-policy-framework/controls-update_def.markdown index 8117e51ac..6b7861032 100644 --- a/content/reference/masterfiles-policy-framework/controls-update_def.markdown +++ b/content/reference/masterfiles-policy-framework/controls-update_def.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/update_def.cf -published: true --- This is where most common variables and classes are defined for the update diff --git a/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown b/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown index 71762a22f..91b1a1b5e 100644 --- a/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown +++ b/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/update_def_inputs.cf -published: true --- This is where the list of update related policy files to include as defined diff --git a/content/reference/masterfiles-policy-framework/controls.markdown b/content/reference/masterfiles-policy-framework/controls.markdown index c1989ec3f..663d5d228 100644 --- a/content/reference/masterfiles-policy-framework/controls.markdown +++ b/content/reference/masterfiles-policy-framework/controls.markdown @@ -1,7 +1,6 @@ --- layout: default title: controls/ -published: true --- This directory contains policy related to the internal control and functioning diff --git a/content/reference/masterfiles-policy-framework/inventory-any.markdown b/content/reference/masterfiles-policy-framework/inventory-any.markdown index 8da56d649..c7e60e603 100644 --- a/content/reference/masterfiles-policy-framework/inventory-any.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-any.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/any.cf -published: true --- This policy is inventory related policy that can be run on any OS. This diff --git a/content/reference/masterfiles-policy-framework/inventory-debian.markdown b/content/reference/masterfiles-policy-framework/inventory-debian.markdown index 222495429..18fc88cc8 100644 --- a/content/reference/masterfiles-policy-framework/inventory-debian.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-debian.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/debian.cf -published: true --- This policy is inventory related to debian hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown b/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown index 3f25dcaeb..e48b8ada1 100644 --- a/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/freebsd.cf -published: true --- This policy is inventory related to freebsd hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-generic.markdown b/content/reference/masterfiles-policy-framework/inventory-generic.markdown index d2068558f..e478345e6 100644 --- a/content/reference/masterfiles-policy-framework/inventory-generic.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-generic.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/generic.cf -published: true --- This policy is inventory related to generic hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-linux.markdown b/content/reference/masterfiles-policy-framework/inventory-linux.markdown index b5541cb01..2085aceb6 100644 --- a/content/reference/masterfiles-policy-framework/inventory-linux.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-linux.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/linux.cf -published: true --- This policy is inventory related to linux hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-lsb.markdown b/content/reference/masterfiles-policy-framework/inventory-lsb.markdown index 70cf71b93..cbd7d30f6 100644 --- a/content/reference/masterfiles-policy-framework/inventory-lsb.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-lsb.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/lsb.cf -published: true --- This policy is inventory related to lsb hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-macos.markdown b/content/reference/masterfiles-policy-framework/inventory-macos.markdown index 20d9232a8..b9e09ef5e 100644 --- a/content/reference/masterfiles-policy-framework/inventory-macos.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-macos.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/macos.cf -published: true --- This policy is inventory related to macos hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-os.markdown b/content/reference/masterfiles-policy-framework/inventory-os.markdown index f1cd41d92..cd2946f1d 100644 --- a/content/reference/masterfiles-policy-framework/inventory-os.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-os.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/os.cf -published: true --- This policy is inventory related to os hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-redhat.markdown b/content/reference/masterfiles-policy-framework/inventory-redhat.markdown index 58e2a466b..b91ba010d 100644 --- a/content/reference/masterfiles-policy-framework/inventory-redhat.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-redhat.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/redhat.cf -published: true --- This policy is inventory related to redhat hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-suse.markdown b/content/reference/masterfiles-policy-framework/inventory-suse.markdown index a1211c438..e3f451b23 100644 --- a/content/reference/masterfiles-policy-framework/inventory-suse.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-suse.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/suse.cf -published: true --- This policy is inventory related to suse hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory-windows.markdown b/content/reference/masterfiles-policy-framework/inventory-windows.markdown index 05de8196b..1f2833ac8 100644 --- a/content/reference/masterfiles-policy-framework/inventory-windows.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-windows.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/windows.cf -published: true --- This policy is inventory related to windows hosts. diff --git a/content/reference/masterfiles-policy-framework/inventory.markdown b/content/reference/masterfiles-policy-framework/inventory.markdown index 5ee048a9b..baa2f88ca 100644 --- a/content/reference/masterfiles-policy-framework/inventory.markdown +++ b/content/reference/masterfiles-policy-framework/inventory.markdown @@ -1,7 +1,6 @@ --- layout: default title: inventory/ -published: true --- [%CFEngine_include_markdown(../../masterfiles/inventory/README.md)%] diff --git a/content/reference/masterfiles-policy-framework/lib-autorun.markdown b/content/reference/masterfiles-policy-framework/lib-autorun.markdown index 7753fcf76..3b4734d5a 100644 --- a/content/reference/masterfiles-policy-framework/lib-autorun.markdown +++ b/content/reference/masterfiles-policy-framework/lib-autorun.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/autorun.cf -published: true --- [%CFEngine_library_include(lib/autorun)%] diff --git a/content/reference/masterfiles-policy-framework/lib-bundles.markdown b/content/reference/masterfiles-policy-framework/lib-bundles.markdown index 8592320ef..ce1cb1771 100644 --- a/content/reference/masterfiles-policy-framework/lib-bundles.markdown +++ b/content/reference/masterfiles-policy-framework/lib-bundles.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/bundles.cf -published: true --- [%CFEngine_library_include(lib/bundles)%] diff --git a/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown b/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown index d2169eeb9..96cb83423 100644 --- a/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown +++ b/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/cfe_internal.cf -published: true --- [%CFEngine_library_include(lib/cfe_internal)%] diff --git a/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown b/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown index 9cba4956d..ec0a41fd8 100644 --- a/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown +++ b/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/cfe_internal_hub.cf -published: true --- [%CFEngine_library_include(lib/cfe_internal_hub)%] diff --git a/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown b/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown index 226b69d59..93a84e848 100644 --- a/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown +++ b/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/cfengine_enterprise_hub_ha.cf -published: true --- [%CFEngine_library_include(lib/cfengine_enterprise_hub_ha)%] diff --git a/content/reference/masterfiles-policy-framework/lib-commands.markdown b/content/reference/masterfiles-policy-framework/lib-commands.markdown index c5521565c..8f472a976 100644 --- a/content/reference/masterfiles-policy-framework/lib-commands.markdown +++ b/content/reference/masterfiles-policy-framework/lib-commands.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/commands.cf -published: true --- See the [`commands` promises][commands] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-common.markdown b/content/reference/masterfiles-policy-framework/lib-common.markdown index 9c981d99f..4405ed888 100644 --- a/content/reference/masterfiles-policy-framework/lib-common.markdown +++ b/content/reference/masterfiles-policy-framework/lib-common.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/common.cf -published: true --- See diff --git a/content/reference/masterfiles-policy-framework/lib-databases.markdown b/content/reference/masterfiles-policy-framework/lib-databases.markdown index c5d60907a..808095500 100644 --- a/content/reference/masterfiles-policy-framework/lib-databases.markdown +++ b/content/reference/masterfiles-policy-framework/lib-databases.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/databases.cf -published: true --- See the [`databases` promises][databases] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown b/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown index 81e1cca6c..f544c2d97 100644 --- a/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown +++ b/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/edit_xml.cf -published: true --- [%CFEngine_library_include(lib/edit_xml)%] diff --git a/content/reference/masterfiles-policy-framework/lib-event.markdown b/content/reference/masterfiles-policy-framework/lib-event.markdown index 1e81ee78b..ff919b253 100644 --- a/content/reference/masterfiles-policy-framework/lib-event.markdown +++ b/content/reference/masterfiles-policy-framework/lib-event.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/event.cf -published: true --- [%CFEngine_library_include(lib/event)%] diff --git a/content/reference/masterfiles-policy-framework/lib-examples.markdown b/content/reference/masterfiles-policy-framework/lib-examples.markdown index b060e5baf..d9cb82eba 100644 --- a/content/reference/masterfiles-policy-framework/lib-examples.markdown +++ b/content/reference/masterfiles-policy-framework/lib-examples.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/examples.cf -published: true --- [%CFEngine_library_include(lib/examples)%] diff --git a/content/reference/masterfiles-policy-framework/lib-feature.markdown b/content/reference/masterfiles-policy-framework/lib-feature.markdown index d2f047c14..a1e4f9cd2 100644 --- a/content/reference/masterfiles-policy-framework/lib-feature.markdown +++ b/content/reference/masterfiles-policy-framework/lib-feature.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/feature.cf -published: true --- [%CFEngine_library_include(lib/feature)%] diff --git a/content/reference/masterfiles-policy-framework/lib-files.markdown b/content/reference/masterfiles-policy-framework/lib-files.markdown index e0ae675e5..3bd846dac 100644 --- a/content/reference/masterfiles-policy-framework/lib-files.markdown +++ b/content/reference/masterfiles-policy-framework/lib-files.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/files.cf -published: true --- See the [`files` promises][files] and [`edit_line` bundles][edit_line] diff --git a/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown b/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown index 0f510cac4..f00f3bdf2 100644 --- a/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown +++ b/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/guest_environments.cf -published: true --- [%CFEngine_library_include(lib/guest_environments)%] diff --git a/content/reference/masterfiles-policy-framework/lib-monitor.markdown b/content/reference/masterfiles-policy-framework/lib-monitor.markdown index b04055d72..0fc0908d9 100644 --- a/content/reference/masterfiles-policy-framework/lib-monitor.markdown +++ b/content/reference/masterfiles-policy-framework/lib-monitor.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/monitor.cf -published: true --- [%CFEngine_library_include(lib/monitor)%] diff --git a/content/reference/masterfiles-policy-framework/lib-packages.markdown b/content/reference/masterfiles-policy-framework/lib-packages.markdown index 7a7f0fbda..175480b9e 100644 --- a/content/reference/masterfiles-policy-framework/lib-packages.markdown +++ b/content/reference/masterfiles-policy-framework/lib-packages.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/packages.cf -published: true --- See the [`packages` promises][packages] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-paths.markdown b/content/reference/masterfiles-policy-framework/lib-paths.markdown index 697d24b35..2399f21fa 100644 --- a/content/reference/masterfiles-policy-framework/lib-paths.markdown +++ b/content/reference/masterfiles-policy-framework/lib-paths.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/paths.cf -published: true --- [%CFEngine_library_include(lib/paths)%] diff --git a/content/reference/masterfiles-policy-framework/lib-processes.markdown b/content/reference/masterfiles-policy-framework/lib-processes.markdown index cf237bc4e..2e03d83f5 100644 --- a/content/reference/masterfiles-policy-framework/lib-processes.markdown +++ b/content/reference/masterfiles-policy-framework/lib-processes.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/processes.cf -published: true --- See the [`processes` promises][processes] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-reports.markdown b/content/reference/masterfiles-policy-framework/lib-reports.markdown index eb84d830d..740b0795b 100644 --- a/content/reference/masterfiles-policy-framework/lib-reports.markdown +++ b/content/reference/masterfiles-policy-framework/lib-reports.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/reports.cf -published: true --- [%CFEngine_library_include(lib/reports)%] diff --git a/content/reference/masterfiles-policy-framework/lib-services.markdown b/content/reference/masterfiles-policy-framework/lib-services.markdown index b00f1f361..df38393fb 100644 --- a/content/reference/masterfiles-policy-framework/lib-services.markdown +++ b/content/reference/masterfiles-policy-framework/lib-services.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/services.cf -published: true --- See the [`services` promises][services] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-stdlib.markdown b/content/reference/masterfiles-policy-framework/lib-stdlib.markdown index 4f83a5bec..8d69dc906 100644 --- a/content/reference/masterfiles-policy-framework/lib-stdlib.markdown +++ b/content/reference/masterfiles-policy-framework/lib-stdlib.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/stdlib.cf -published: true --- [%CFEngine_library_include(lib/stdlib)%] diff --git a/content/reference/masterfiles-policy-framework/lib-storage.markdown b/content/reference/masterfiles-policy-framework/lib-storage.markdown index 3bf6bedb0..d438c779a 100644 --- a/content/reference/masterfiles-policy-framework/lib-storage.markdown +++ b/content/reference/masterfiles-policy-framework/lib-storage.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/storage.cf -published: true --- See the [`storage` promises][storage] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-testing.markdown b/content/reference/masterfiles-policy-framework/lib-testing.markdown index 68b7c5a5c..96dc2f299 100644 --- a/content/reference/masterfiles-policy-framework/lib-testing.markdown +++ b/content/reference/masterfiles-policy-framework/lib-testing.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/testing.cf -published: true --- The `testing.cf` library provides bundles for working testing frameworks like diff --git a/content/reference/masterfiles-policy-framework/lib-users.markdown b/content/reference/masterfiles-policy-framework/lib-users.markdown index a2dad9617..ee26609df 100644 --- a/content/reference/masterfiles-policy-framework/lib-users.markdown +++ b/content/reference/masterfiles-policy-framework/lib-users.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/users.cf -published: true --- See the [`users` promises][users] documentation for a diff --git a/content/reference/masterfiles-policy-framework/lib-vcs.markdown b/content/reference/masterfiles-policy-framework/lib-vcs.markdown index 7bb9874da..4868ef8f4 100644 --- a/content/reference/masterfiles-policy-framework/lib-vcs.markdown +++ b/content/reference/masterfiles-policy-framework/lib-vcs.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/vcs.cf -published: true --- The `vcs.cf` library provides bundles for working with version control tools. diff --git a/content/reference/masterfiles-policy-framework/lib.markdown b/content/reference/masterfiles-policy-framework/lib.markdown index 86e8e78a0..3ff508b38 100644 --- a/content/reference/masterfiles-policy-framework/lib.markdown +++ b/content/reference/masterfiles-policy-framework/lib.markdown @@ -1,7 +1,6 @@ --- layout: default title: lib/ -published: true --- This directory contains the standard library aka COPBL or the Community Open diff --git a/content/reference/masterfiles-policy-framework/modules-mustache.markdown b/content/reference/masterfiles-policy-framework/modules-mustache.markdown index 65725c239..1d2cbb53b 100644 --- a/content/reference/masterfiles-policy-framework/modules-mustache.markdown +++ b/content/reference/masterfiles-policy-framework/modules-mustache.markdown @@ -1,7 +1,6 @@ --- layout: default title: modules/mustache/ -published: true --- [%CFEngine_include_markdown(../../masterfiles/modules/mustache/README.md)%] diff --git a/content/reference/masterfiles-policy-framework/modules-packages-vendored.markdown b/content/reference/masterfiles-policy-framework/modules-packages-vendored.markdown index ae39f8663..d14fda5c7 100644 --- a/content/reference/masterfiles-policy-framework/modules-packages-vendored.markdown +++ b/content/reference/masterfiles-policy-framework/modules-packages-vendored.markdown @@ -1,6 +1,5 @@ --- layout: default title: modules/packages/vendored/ -published: true --- This directory tree is used for distributing package modules that are rendered into place with mustache. The modules found here are rendered into place if no plain copy is found in the parent directory. diff --git a/content/reference/masterfiles-policy-framework/modules-packages.markdown b/content/reference/masterfiles-policy-framework/modules-packages.markdown index cef683896..ffb0baa79 100644 --- a/content/reference/masterfiles-policy-framework/modules-packages.markdown +++ b/content/reference/masterfiles-policy-framework/modules-packages.markdown @@ -1,7 +1,6 @@ --- layout: default title: modules/packages/ -published: true --- This directory tree is used for distributing package modules. diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown index d11514279..dec190407 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown @@ -1,7 +1,6 @@ --- layout: default title: modules/promises/cfengine.py -published: true --- ``` diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown index d5ff3edf5..e605ffe5e 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown @@ -1,7 +1,6 @@ --- layout: default title: modules/promises/cfengine.sh -published: true --- ``` diff --git a/content/reference/masterfiles-policy-framework/modules-promises.markdown b/content/reference/masterfiles-policy-framework/modules-promises.markdown index 66e7f2467..bc847ce73 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises.markdown @@ -1,7 +1,6 @@ --- layout: default title: modules/promises/ -published: true --- This directory tree is used for distributing promise modules and supporting libraries. diff --git a/content/reference/masterfiles-policy-framework/modules.markdown b/content/reference/masterfiles-policy-framework/modules.markdown index df704fb7e..c52a6129e 100644 --- a/content/reference/masterfiles-policy-framework/modules.markdown +++ b/content/reference/masterfiles-policy-framework/modules.markdown @@ -1,7 +1,6 @@ --- layout: default title: modules/ -published: true --- This directory tree is used for distributing Modules. The [packages subtree][modules/packages/] is used for vendoring packages modules and the [promises sub-directory][modules/promises/] is used for promise modules, including the libraries used by promise modules. diff --git a/content/reference/masterfiles-policy-framework/no-distrib.markdown b/content/reference/masterfiles-policy-framework/no-distrib.markdown index 36665ab5a..ff6379274 100644 --- a/content/reference/masterfiles-policy-framework/no-distrib.markdown +++ b/content/reference/masterfiles-policy-framework/no-distrib.markdown @@ -1,7 +1,6 @@ --- layout: default title: .no-distrib/ -published: true sorting: 20 --- diff --git a/content/reference/masterfiles-policy-framework/promises.markdown b/content/reference/masterfiles-policy-framework/promises.markdown index 6b4a4c716..444001775 100644 --- a/content/reference/masterfiles-policy-framework/promises.markdown +++ b/content/reference/masterfiles-policy-framework/promises.markdown @@ -1,7 +1,6 @@ --- layout: default title: promises.cf -published: true sorting: 10 --- diff --git a/content/reference/masterfiles-policy-framework/services-autorun.markdown b/content/reference/masterfiles-policy-framework/services-autorun.markdown index 0492c5617..372765cc2 100644 --- a/content/reference/masterfiles-policy-framework/services-autorun.markdown +++ b/content/reference/masterfiles-policy-framework/services-autorun.markdown @@ -1,7 +1,6 @@ --- layout: default title: services/autorun/ -published: true --- [%CFEngine_include_markdown(../../masterfiles/services/autorun/README.md)%] diff --git a/content/reference/masterfiles-policy-framework/services-main.markdown b/content/reference/masterfiles-policy-framework/services-main.markdown index 6db4bdbbe..1d8b04050 100644 --- a/content/reference/masterfiles-policy-framework/services-main.markdown +++ b/content/reference/masterfiles-policy-framework/services-main.markdown @@ -1,7 +1,6 @@ --- layout: default title: services/main.cf -published: true --- This directory is the suggested place to add your custom policies. diff --git a/content/reference/masterfiles-policy-framework/services.markdown b/content/reference/masterfiles-policy-framework/services.markdown index c52e5dc05..d349e478c 100644 --- a/content/reference/masterfiles-policy-framework/services.markdown +++ b/content/reference/masterfiles-policy-framework/services.markdown @@ -1,7 +1,6 @@ --- layout: default title: services/ -published: true --- This directory is the suggested place to add your custom policies. diff --git a/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown b/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown index ccb085a12..8bc9de36e 100644 --- a/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown +++ b/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown @@ -1,7 +1,6 @@ --- layout: default title: standalone_self_upgrade.cf -published: true sorting: 30 --- diff --git a/content/reference/masterfiles-policy-framework/update.markdown b/content/reference/masterfiles-policy-framework/update.markdown index 8a011331c..d9f91ba09 100644 --- a/content/reference/masterfiles-policy-framework/update.markdown +++ b/content/reference/masterfiles-policy-framework/update.markdown @@ -1,7 +1,6 @@ --- layout: default title: update.cf -published: true sorting: 20 --- diff --git a/content/reference/promise-types/_index.markdown b/content/reference/promise-types/_index.markdown index 7389f0227..aa86f9a59 100644 --- a/content/reference/promise-types/_index.markdown +++ b/content/reference/promise-types/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Promise types -published: true sorting: 20 --- diff --git a/content/reference/promise-types/access.markdown b/content/reference/promise-types/access.markdown index 8da7615bc..0bd70594a 100644 --- a/content/reference/promise-types/access.markdown +++ b/content/reference/promise-types/access.markdown @@ -1,7 +1,6 @@ --- layout: default title: access -published: true --- Access promises are conditional promises made by resources living on the server. diff --git a/content/reference/promise-types/classes.markdown b/content/reference/promise-types/classes.markdown index adb15d5a3..e621eeb64 100644 --- a/content/reference/promise-types/classes.markdown +++ b/content/reference/promise-types/classes.markdown @@ -1,7 +1,6 @@ --- layout: default title: classes -published: true --- [Classes][classes] promises may be made in any bundle. Classes defined by diff --git a/content/reference/promise-types/commands.markdown b/content/reference/promise-types/commands.markdown index 09026d65d..247cbdc48 100644 --- a/content/reference/promise-types/commands.markdown +++ b/content/reference/promise-types/commands.markdown @@ -1,7 +1,6 @@ --- layout: default title: commands -published: true --- Commands and [processes][processes] are separated cleanly. Restarting of diff --git a/content/reference/promise-types/custom.markdown b/content/reference/promise-types/custom.markdown index 8d5fc8afa..6f6a421ec 100644 --- a/content/reference/promise-types/custom.markdown +++ b/content/reference/promise-types/custom.markdown @@ -1,7 +1,6 @@ --- layout: default title: custom -published: true --- Custom promise types can be added as _Promise modules_. diff --git a/content/reference/promise-types/databases.markdown b/content/reference/promise-types/databases.markdown index 105429b28..6f7a0a721 100644 --- a/content/reference/promise-types/databases.markdown +++ b/content/reference/promise-types/databases.markdown @@ -1,7 +1,6 @@ --- layout: default title: databases -published: true sorting: 9999 --- diff --git a/content/reference/promise-types/defaults.markdown b/content/reference/promise-types/defaults.markdown index 402863f21..512365d90 100644 --- a/content/reference/promise-types/defaults.markdown +++ b/content/reference/promise-types/defaults.markdown @@ -1,7 +1,6 @@ --- layout: default title: defaults -published: true --- Defaults promises are related to [variables][variables]. If a variable or diff --git a/content/reference/promise-types/files/_index.markdown b/content/reference/promise-types/files/_index.markdown index d5b94696c..2dcbde987 100644 --- a/content/reference/promise-types/files/_index.markdown +++ b/content/reference/promise-types/files/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: files -published: true --- Files promises manage all aspects of files. Presence, absence, file content, permissions, and ownership. File content can be fully or partially managed. diff --git a/content/reference/promise-types/files/edit_line/_index.markdown b/content/reference/promise-types/files/edit_line/_index.markdown index 28a01010e..7e19f502f 100644 --- a/content/reference/promise-types/files/edit_line/_index.markdown +++ b/content/reference/promise-types/files/edit_line/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: edit_line -published: true --- Line based editing is a simple model for editing files. Before XML, and diff --git a/content/reference/promise-types/files/edit_line/delete_lines.markdown b/content/reference/promise-types/files/edit_line/delete_lines.markdown index 3dce273f0..c505e3d3d 100644 --- a/content/reference/promise-types/files/edit_line/delete_lines.markdown +++ b/content/reference/promise-types/files/edit_line/delete_lines.markdown @@ -1,7 +1,6 @@ --- layout: default title: delete_lines -published: true --- This promise assures that certain lines exactly matching regular diff --git a/content/reference/promise-types/files/edit_line/field_edits.markdown b/content/reference/promise-types/files/edit_line/field_edits.markdown index b7153b5b9..b50f13074 100644 --- a/content/reference/promise-types/files/edit_line/field_edits.markdown +++ b/content/reference/promise-types/files/edit_line/field_edits.markdown @@ -1,7 +1,6 @@ --- layout: default title: field_edits -published: true --- Certain types of text files are tabular in nature, with field separators (e.g. diff --git a/content/reference/promise-types/files/edit_line/insert_lines.markdown b/content/reference/promise-types/files/edit_line/insert_lines.markdown index 586fe0f31..a602e80de 100644 --- a/content/reference/promise-types/files/edit_line/insert_lines.markdown +++ b/content/reference/promise-types/files/edit_line/insert_lines.markdown @@ -1,7 +1,6 @@ --- layout: default title: insert_lines -published: true --- This promise type is part of the line-editing model. It inserts lines into diff --git a/content/reference/promise-types/files/edit_line/replace_patterns.markdown b/content/reference/promise-types/files/edit_line/replace_patterns.markdown index 4072f2b3a..9f5317098 100644 --- a/content/reference/promise-types/files/edit_line/replace_patterns.markdown +++ b/content/reference/promise-types/files/edit_line/replace_patterns.markdown @@ -1,7 +1,6 @@ --- layout: default title: replace_patterns -published: true --- This promise refers to arbitrary text patterns in a file. The pattern is diff --git a/content/reference/promise-types/files/edit_xml/_index.markdown b/content/reference/promise-types/files/edit_xml/_index.markdown index 4a726286b..8eaec5ff6 100644 --- a/content/reference/promise-types/files/edit_xml/_index.markdown +++ b/content/reference/promise-types/files/edit_xml/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: edit_xml -published: true --- The use of XML documents in systems configuration is widespread. XML diff --git a/content/reference/promise-types/files/edit_xml/build_xpath.markdown b/content/reference/promise-types/files/edit_xml/build_xpath.markdown index b681b3988..05442cdf9 100644 --- a/content/reference/promise-types/files/edit_xml/build_xpath.markdown +++ b/content/reference/promise-types/files/edit_xml/build_xpath.markdown @@ -1,7 +1,6 @@ --- layout: default title: build_xpath -published: true --- This promise type assures that a balanced XML tree, described by the given diff --git a/content/reference/promise-types/files/edit_xml/delete_attribute.markdown b/content/reference/promise-types/files/edit_xml/delete_attribute.markdown index 61ba3870d..490915c6c 100644 --- a/content/reference/promise-types/files/edit_xml/delete_attribute.markdown +++ b/content/reference/promise-types/files/edit_xml/delete_attribute.markdown @@ -1,7 +1,6 @@ --- layout: default title: delete_attribute -published: true --- This promise type assures that an attribute, with the given name, will not be diff --git a/content/reference/promise-types/files/edit_xml/delete_text.markdown b/content/reference/promise-types/files/edit_xml/delete_text.markdown index ea9412f02..b0ed58bab 100644 --- a/content/reference/promise-types/files/edit_xml/delete_text.markdown +++ b/content/reference/promise-types/files/edit_xml/delete_text.markdown @@ -1,7 +1,6 @@ --- layout: default title: delete_text -published: true --- This promise type assures that a value string, containing the matching diff --git a/content/reference/promise-types/files/edit_xml/delete_tree.markdown b/content/reference/promise-types/files/edit_xml/delete_tree.markdown index e953a42dd..19f5be156 100644 --- a/content/reference/promise-types/files/edit_xml/delete_tree.markdown +++ b/content/reference/promise-types/files/edit_xml/delete_tree.markdown @@ -1,7 +1,6 @@ --- layout: default title: delete_tree -published: true --- This promise type assures that a balanced XML tree, containing the matching diff --git a/content/reference/promise-types/files/edit_xml/insert_text.markdown b/content/reference/promise-types/files/edit_xml/insert_text.markdown index 7d5694ceb..f424014f9 100644 --- a/content/reference/promise-types/files/edit_xml/insert_text.markdown +++ b/content/reference/promise-types/files/edit_xml/insert_text.markdown @@ -1,7 +1,6 @@ --- layout: default title: insert_text -published: true --- This proimse type assures that a value string, containing the matching diff --git a/content/reference/promise-types/files/edit_xml/insert_tree.markdown b/content/reference/promise-types/files/edit_xml/insert_tree.markdown index 2c9d2f707..e45d395ec 100644 --- a/content/reference/promise-types/files/edit_xml/insert_tree.markdown +++ b/content/reference/promise-types/files/edit_xml/insert_tree.markdown @@ -1,7 +1,6 @@ --- layout: default title: insert_tree -published: true --- This promise type assures that a diff --git a/content/reference/promise-types/files/edit_xml/set_attribute.markdown b/content/reference/promise-types/files/edit_xml/set_attribute.markdown index dade549e4..5980d2c23 100644 --- a/content/reference/promise-types/files/edit_xml/set_attribute.markdown +++ b/content/reference/promise-types/files/edit_xml/set_attribute.markdown @@ -1,7 +1,6 @@ --- layout: default title: set_attribute -published: true --- This promise type assures that an attribute, with the given name and value, will diff --git a/content/reference/promise-types/files/edit_xml/set_text.markdown b/content/reference/promise-types/files/edit_xml/set_text.markdown index 97dd1b331..65629934c 100644 --- a/content/reference/promise-types/files/edit_xml/set_text.markdown +++ b/content/reference/promise-types/files/edit_xml/set_text.markdown @@ -1,7 +1,6 @@ --- layout: default title: set_text -published: true --- This promise type assures that a matching value string will be present in the diff --git a/content/reference/promise-types/guest_environments.markdown b/content/reference/promise-types/guest_environments.markdown index aa943348f..7cc26dafd 100644 --- a/content/reference/promise-types/guest_environments.markdown +++ b/content/reference/promise-types/guest_environments.markdown @@ -1,7 +1,6 @@ --- layout: default title: guest_environments -published: true sorting: 9999 --- diff --git a/content/reference/promise-types/measurements.markdown b/content/reference/promise-types/measurements.markdown index 9a103d477..bab78c628 100644 --- a/content/reference/promise-types/measurements.markdown +++ b/content/reference/promise-types/measurements.markdown @@ -1,7 +1,6 @@ --- layout: default title: measurements -published: true --- By default, CFEngine's monitoring component `cf-monitord` records performance diff --git a/content/reference/promise-types/meta.markdown b/content/reference/promise-types/meta.markdown index 48dabae08..e2f672f5f 100644 --- a/content/reference/promise-types/meta.markdown +++ b/content/reference/promise-types/meta.markdown @@ -1,7 +1,6 @@ --- layout: default title: meta -published: true --- Meta-data promises have no internal function. They are intended to be used to diff --git a/content/reference/promise-types/methods.markdown b/content/reference/promise-types/methods.markdown index 698a33ab4..ff7262479 100644 --- a/content/reference/promise-types/methods.markdown +++ b/content/reference/promise-types/methods.markdown @@ -1,7 +1,6 @@ --- layout: default title: methods -published: true --- Methods are compound promises that refer to whole bundles of promises. diff --git a/content/reference/promise-types/packages-deprecated.markdown b/content/reference/promise-types/packages-deprecated.markdown index ebf423999..623142515 100644 --- a/content/reference/promise-types/packages-deprecated.markdown +++ b/content/reference/promise-types/packages-deprecated.markdown @@ -1,7 +1,6 @@ --- layout: default title: packages (deprecated) -published: true --- **NOTE:** This package promise is deprecated and has been superseded by diff --git a/content/reference/promise-types/packages.markdown b/content/reference/promise-types/packages.markdown index f3a52d63e..b6487068b 100644 --- a/content/reference/promise-types/packages.markdown +++ b/content/reference/promise-types/packages.markdown @@ -1,7 +1,6 @@ --- layout: default title: packages -published: true --- CFEngine 3.7 and later supports package management through a simple promise diff --git a/content/reference/promise-types/processes.markdown b/content/reference/promise-types/processes.markdown index 1eea1d413..5508ffa03 100644 --- a/content/reference/promise-types/processes.markdown +++ b/content/reference/promise-types/processes.markdown @@ -1,7 +1,6 @@ --- layout: default title: processes -published: true --- Process promises refer to items in the system process table, i.e., a command in diff --git a/content/reference/promise-types/reports.markdown b/content/reference/promise-types/reports.markdown index 75ad1c712..551b496ef 100644 --- a/content/reference/promise-types/reports.markdown +++ b/content/reference/promise-types/reports.markdown @@ -1,7 +1,6 @@ --- layout: default title: reports -published: true --- Reports promises simply print messages. Outputting a message without diff --git a/content/reference/promise-types/roles.markdown b/content/reference/promise-types/roles.markdown index 506a88128..c677e7ddc 100644 --- a/content/reference/promise-types/roles.markdown +++ b/content/reference/promise-types/roles.markdown @@ -1,7 +1,6 @@ --- layout: default title: roles -published: true --- Roles promises are server-side decisions about which users are allowed diff --git a/content/reference/promise-types/services.markdown b/content/reference/promise-types/services.markdown index fdd48df4c..d62c27b5d 100644 --- a/content/reference/promise-types/services.markdown +++ b/content/reference/promise-types/services.markdown @@ -1,7 +1,6 @@ --- layout: default title: services -published: true --- `services` type promises in their simplest *generic* form are an abstraction on diff --git a/content/reference/promise-types/storage.markdown b/content/reference/promise-types/storage.markdown index 45b47f0db..c8abe61ef 100644 --- a/content/reference/promise-types/storage.markdown +++ b/content/reference/promise-types/storage.markdown @@ -1,7 +1,6 @@ --- layout: default title: storage -published: true --- Storage promises refer to disks and filesystem properties. diff --git a/content/reference/promise-types/users.markdown b/content/reference/promise-types/users.markdown index c8f93465c..be839e594 100644 --- a/content/reference/promise-types/users.markdown +++ b/content/reference/promise-types/users.markdown @@ -1,7 +1,6 @@ --- layout: default title: users -published: true --- User promises are promises made about **local users** on a host. They diff --git a/content/reference/promise-types/vars.markdown b/content/reference/promise-types/vars.markdown index e08411ed1..946eeab66 100644 --- a/content/reference/promise-types/vars.markdown +++ b/content/reference/promise-types/vars.markdown @@ -1,7 +1,6 @@ --- layout: default title: vars -published: true --- [Variables][variables] in CFEngine are defined diff --git a/content/reference/special-variables/_index.markdown b/content/reference/special-variables/_index.markdown index 29bb1808b..1923b08a7 100644 --- a/content/reference/special-variables/_index.markdown +++ b/content/reference/special-variables/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Special variables -published: true sorting: 50 --- diff --git a/content/reference/special-variables/connection.markdown b/content/reference/special-variables/connection.markdown index 253b45da8..9b80540af 100644 --- a/content/reference/special-variables/connection.markdown +++ b/content/reference/special-variables/connection.markdown @@ -1,7 +1,6 @@ --- layout: default title: connection -published: true --- The context `connection` is used by the `shortcut` attribute in `access` diff --git a/content/reference/special-variables/const.markdown b/content/reference/special-variables/const.markdown index a523ffd75..ca764153a 100644 --- a/content/reference/special-variables/const.markdown +++ b/content/reference/special-variables/const.markdown @@ -1,7 +1,6 @@ --- layout: default title: const -published: true --- CFEngine defines a number of variables for embedding unprintable values diff --git a/content/reference/special-variables/def.markdown b/content/reference/special-variables/def.markdown index a8aa32652..c95494dc7 100644 --- a/content/reference/special-variables/def.markdown +++ b/content/reference/special-variables/def.markdown @@ -1,7 +1,6 @@ --- layout: default title: def -published: true --- The context `def` is populated by the diff --git a/content/reference/special-variables/edit.markdown b/content/reference/special-variables/edit.markdown index 4b0dffaee..a41095013 100644 --- a/content/reference/special-variables/edit.markdown +++ b/content/reference/special-variables/edit.markdown @@ -1,7 +1,6 @@ --- layout: default title: edit -published: true --- This context is used to access information about editing promises during diff --git a/content/reference/special-variables/match.markdown b/content/reference/special-variables/match.markdown index 23b9d2d31..7edc444cb 100644 --- a/content/reference/special-variables/match.markdown +++ b/content/reference/special-variables/match.markdown @@ -1,7 +1,6 @@ --- layout: default title: match -published: true --- Each time CFEngine matches a string, these values are assigned to a special diff --git a/content/reference/special-variables/mon.markdown b/content/reference/special-variables/mon.markdown index 126ff27c2..e47781e62 100644 --- a/content/reference/special-variables/mon.markdown +++ b/content/reference/special-variables/mon.markdown @@ -1,7 +1,6 @@ --- layout: default title: mon -published: true --- The variables discovered by `cf-monitord` are placed in this monitoring diff --git a/content/reference/special-variables/sys.markdown b/content/reference/special-variables/sys.markdown index 87f5a3370..d6dcff0e4 100644 --- a/content/reference/special-variables/sys.markdown +++ b/content/reference/special-variables/sys.markdown @@ -1,7 +1,6 @@ --- layout: default title: sys -published: true --- System variables are derived from CFEngine's automated discovery of system diff --git a/content/reference/special-variables/this.markdown b/content/reference/special-variables/this.markdown index f355954c7..e1c25b333 100644 --- a/content/reference/special-variables/this.markdown +++ b/content/reference/special-variables/this.markdown @@ -1,7 +1,6 @@ --- layout: default title: this -published: true --- The context `this` is used to access information about promises during diff --git a/content/release-notes/_index.markdown b/content/release-notes/_index.markdown index 3bb6bcb44..028fe70cc 100644 --- a/content/release-notes/_index.markdown +++ b/content/release-notes/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Release notes -published: true sorting: 30 --- diff --git a/content/release-notes/known-issues.markdown b/content/release-notes/known-issues.markdown index bc401b94f..5655a3068 100644 --- a/content/release-notes/known-issues.markdown +++ b/content/release-notes/known-issues.markdown @@ -2,7 +2,6 @@ layout: default title: Known issues sorting: 50 -published: true --- CFEngine defects are managed in our [bug tracker][bug tracker]. Please report diff --git a/content/release-notes/legal-and-licenses.markdown b/content/release-notes/legal-and-licenses.markdown index 6039938ed..13b5298c2 100644 --- a/content/release-notes/legal-and-licenses.markdown +++ b/content/release-notes/legal-and-licenses.markdown @@ -1,7 +1,6 @@ --- layout: default title: Legal and licenses -published: true sorting: 999 alias: legal.html --- diff --git a/content/release-notes/supported-platforms.markdown b/content/release-notes/supported-platforms.markdown index f6699b2b3..509c8476e 100644 --- a/content/release-notes/supported-platforms.markdown +++ b/content/release-notes/supported-platforms.markdown @@ -2,7 +2,6 @@ layout: default title: Supported platforms and versions sorting: 20 -published: true --- CFEngine works on a wide range of platforms, and the CFEngine team strives to diff --git a/content/release-notes/whatsnew/_index.markdown b/content/release-notes/whatsnew/_index.markdown index 94580d30e..6f27a3754 100644 --- a/content/release-notes/whatsnew/_index.markdown +++ b/content/release-notes/whatsnew/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: New in CFEngine -published: true sorting: 10 --- diff --git a/content/release-notes/whatsnew/changelog-core.markdown b/content/release-notes/whatsnew/changelog-core.markdown index 9b077c8d1..9f880095f 100644 --- a/content/release-notes/whatsnew/changelog-core.markdown +++ b/content/release-notes/whatsnew/changelog-core.markdown @@ -1,7 +1,6 @@ --- layout: default title: Changelog -published: true sorting: 10 --- diff --git a/content/release-notes/whatsnew/changelog-enterprise.markdown b/content/release-notes/whatsnew/changelog-enterprise.markdown index a837ce16f..7030f7b01 100644 --- a/content/release-notes/whatsnew/changelog-enterprise.markdown +++ b/content/release-notes/whatsnew/changelog-enterprise.markdown @@ -1,7 +1,6 @@ --- layout: default title: Enterprise changelog -published: true sorting: 30 --- diff --git a/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown b/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown index 0ddfba3e4..9689db9a7 100644 --- a/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown +++ b/content/release-notes/whatsnew/changelog-masterfiles-policy-framework.markdown @@ -1,7 +1,6 @@ --- layout: default title: Masterfiles changelog -published: true sorting: 20 --- diff --git a/content/resources/_index.markdown b/content/resources/_index.markdown index cefdc3d1f..6ec84c814 100644 --- a/content/resources/_index.markdown +++ b/content/resources/_index.markdown @@ -1,6 +1,5 @@ --- layout: default title: Resources -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/_index.markdown b/content/resources/additional-topics/_index.markdown index c4f60b940..daf43e09c 100644 --- a/content/resources/additional-topics/_index.markdown +++ b/content/resources/additional-topics/_index.markdown @@ -1,6 +1,5 @@ --- layout: default title: Additional topics -published: true sorting: 20 --- diff --git a/content/resources/additional-topics/agility.markdown b/content/resources/additional-topics/agility.markdown index 138afeec4..9a5a18087 100644 --- a/content/resources/additional-topics/agility.markdown +++ b/content/resources/additional-topics/agility.markdown @@ -1,7 +1,6 @@ --- layout: default title: Agility -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/application-management.markdown b/content/resources/additional-topics/application-management.markdown index f8ab796bd..c586cfb6c 100644 --- a/content/resources/additional-topics/application-management.markdown +++ b/content/resources/additional-topics/application-management.markdown @@ -1,7 +1,6 @@ --- layout: default title: Application management -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/build-deploy-manage-audit.markdown b/content/resources/additional-topics/build-deploy-manage-audit.markdown index 930a76b86..0d64d86f9 100644 --- a/content/resources/additional-topics/build-deploy-manage-audit.markdown +++ b/content/resources/additional-topics/build-deploy-manage-audit.markdown @@ -1,7 +1,6 @@ --- layout: default title: Build Deploy Manage Audit -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/change-management.markdown b/content/resources/additional-topics/change-management.markdown index abfddef63..e168fb15d 100644 --- a/content/resources/additional-topics/change-management.markdown +++ b/content/resources/additional-topics/change-management.markdown @@ -1,7 +1,6 @@ --- layout: default title: Change management -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/cloud-computing.markdown b/content/resources/additional-topics/cloud-computing.markdown index 4090fae70..f507f3097 100644 --- a/content/resources/additional-topics/cloud-computing.markdown +++ b/content/resources/additional-topics/cloud-computing.markdown @@ -1,7 +1,6 @@ --- layout: default title: Cloud computing -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/content-driven-policy.markdown b/content/resources/additional-topics/content-driven-policy.markdown index 653b798f7..a0aa2e75d 100644 --- a/content/resources/additional-topics/content-driven-policy.markdown +++ b/content/resources/additional-topics/content-driven-policy.markdown @@ -1,7 +1,6 @@ --- layout: default title: Content driven policy -published: true sorting: 80 reviewed: 2019-05-06 --- diff --git a/content/resources/additional-topics/devops.markdown b/content/resources/additional-topics/devops.markdown index 3578e1842..13b151dd6 100644 --- a/content/resources/additional-topics/devops.markdown +++ b/content/resources/additional-topics/devops.markdown @@ -1,7 +1,6 @@ --- layout: default title: DevOps -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/distributed-scheduling.markdown b/content/resources/additional-topics/distributed-scheduling.markdown index e860ce549..61645f121 100644 --- a/content/resources/additional-topics/distributed-scheduling.markdown +++ b/content/resources/additional-topics/distributed-scheduling.markdown @@ -1,7 +1,6 @@ --- layout: default title: Distributed scheduling -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/file-content.markdown b/content/resources/additional-topics/file-content.markdown index fce9e0b37..2d9028fd7 100644 --- a/content/resources/additional-topics/file-content.markdown +++ b/content/resources/additional-topics/file-content.markdown @@ -1,7 +1,6 @@ --- layout: default title: File content -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/hierarchies.markdown b/content/resources/additional-topics/hierarchies.markdown index d82350888..9a6eacca2 100644 --- a/content/resources/additional-topics/hierarchies.markdown +++ b/content/resources/additional-topics/hierarchies.markdown @@ -1,7 +1,6 @@ --- layout: default title: Hierarchies -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/iteration.markdown b/content/resources/additional-topics/iteration.markdown index 6f75739a6..d99ecf472 100644 --- a/content/resources/additional-topics/iteration.markdown +++ b/content/resources/additional-topics/iteration.markdown @@ -1,7 +1,6 @@ --- layout: default title: Iteration (Loops) -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/itil.markdown b/content/resources/additional-topics/itil.markdown index 29e851c44..15b903692 100644 --- a/content/resources/additional-topics/itil.markdown +++ b/content/resources/additional-topics/itil.markdown @@ -1,7 +1,6 @@ --- layout: default title: ITIL -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/modularity.markdown b/content/resources/additional-topics/modularity.markdown index 70ec67fab..d8bb9e62f 100644 --- a/content/resources/additional-topics/modularity.markdown +++ b/content/resources/additional-topics/modularity.markdown @@ -1,7 +1,6 @@ --- layout: default title: Modularity and orchestrating system policy -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/open-nebula.markdown b/content/resources/additional-topics/open-nebula.markdown index 72154e506..e23a98887 100644 --- a/content/resources/additional-topics/open-nebula.markdown +++ b/content/resources/additional-topics/open-nebula.markdown @@ -1,7 +1,6 @@ --- layout: default title: Using CFEngine with Open Nebula -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/orchestration.markdown b/content/resources/additional-topics/orchestration.markdown index eab20b871..bb80d488d 100644 --- a/content/resources/additional-topics/orchestration.markdown +++ b/content/resources/additional-topics/orchestration.markdown @@ -1,7 +1,6 @@ --- layout: default title: Orchestration -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/security.markdown b/content/resources/additional-topics/security.markdown index 2ea2b867d..fb10d17b2 100644 --- a/content/resources/additional-topics/security.markdown +++ b/content/resources/additional-topics/security.markdown @@ -1,7 +1,6 @@ --- layout: default title: Security -published: True sorting: 80 --- diff --git a/content/resources/additional-topics/stigs.markdown b/content/resources/additional-topics/stigs.markdown index b78c1517c..a63f6249f 100644 --- a/content/resources/additional-topics/stigs.markdown +++ b/content/resources/additional-topics/stigs.markdown @@ -1,7 +1,6 @@ --- layout: default title: STIGs -published: true sorting: 80 --- diff --git a/content/resources/additional-topics/teamwork.markdown b/content/resources/additional-topics/teamwork.markdown index 5721ebff4..08358c14c 100644 --- a/content/resources/additional-topics/teamwork.markdown +++ b/content/resources/additional-topics/teamwork.markdown @@ -1,7 +1,6 @@ --- layout: default title: Teamwork -published: true sorting: 80 --- diff --git a/content/resources/best-practices.markdown b/content/resources/best-practices.markdown index eea976d52..bb0ad1efd 100644 --- a/content/resources/best-practices.markdown +++ b/content/resources/best-practices.markdown @@ -2,7 +2,6 @@ layout: default title: Best practices sorting: 100 -published: true --- ## Policy style guide diff --git a/content/resources/external-resources.markdown b/content/resources/external-resources.markdown index 7eedb3cd5..328bd0f7d 100644 --- a/content/resources/external-resources.markdown +++ b/content/resources/external-resources.markdown @@ -1,7 +1,6 @@ --- layout: default title: External resources -published: true sorting: 30 --- diff --git a/content/resources/faq/_index.markdown b/content/resources/faq/_index.markdown index 026b0366e..1a58affaa 100644 --- a/content/resources/faq/_index.markdown +++ b/content/resources/faq/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: FAQ -published: true sorting: 10 --- diff --git a/content/resources/faq/bootstrap-failed.markdown b/content/resources/faq/bootstrap-failed.markdown index df8a1b90f..6ca3e6748 100644 --- a/content/resources/faq/bootstrap-failed.markdown +++ b/content/resources/faq/bootstrap-failed.markdown @@ -1,7 +1,6 @@ --- layout: default title: Bootstrapping -published: true --- Frequently asked questions around bootstrapping, the process of starting CFEngine for the first time, and connecting the agents to the correct policy server. diff --git a/content/resources/faq/debugging-slow-queries.markdown b/content/resources/faq/debugging-slow-queries.markdown index 603dc5da4..453c242e6 100644 --- a/content/resources/faq/debugging-slow-queries.markdown +++ b/content/resources/faq/debugging-slow-queries.markdown @@ -1,7 +1,6 @@ --- layout: default title: Debugging slow queries -published: true sorting: 90 --- diff --git a/content/resources/faq/enterprise-license.markdown b/content/resources/faq/enterprise-license.markdown index 8c4e9fb0c..e5bb64fda 100644 --- a/content/resources/faq/enterprise-license.markdown +++ b/content/resources/faq/enterprise-license.markdown @@ -1,7 +1,6 @@ --- layout: default title: Requesting a CFEngine Enterprise License -published: true sorting: 40 --- diff --git a/content/resources/faq/enterprise-report-collection.markdown b/content/resources/faq/enterprise-report-collection.markdown index bee66a503..aeabf0a17 100644 --- a/content/resources/faq/enterprise-report-collection.markdown +++ b/content/resources/faq/enterprise-report-collection.markdown @@ -1,7 +1,6 @@ --- layout: default title: Enterprise report collection -published: true sorting: 90 --- diff --git a/content/resources/faq/enterprise-report-filtering.markdown b/content/resources/faq/enterprise-report-filtering.markdown index 9f382dedf..06656ad0a 100644 --- a/content/resources/faq/enterprise-report-filtering.markdown +++ b/content/resources/faq/enterprise-report-filtering.markdown @@ -1,7 +1,6 @@ --- layout: default title: Enterprise Report Filtering -published: true sorting: 90 --- diff --git a/content/resources/faq/enterprise.markdown b/content/resources/faq/enterprise.markdown index 5b3c43667..54c6eaab7 100644 --- a/content/resources/faq/enterprise.markdown +++ b/content/resources/faq/enterprise.markdown @@ -1,7 +1,6 @@ --- layout: default title: Enterprise reporting database -published: true sorting: 90 --- diff --git a/content/resources/faq/fhs.markdown b/content/resources/faq/fhs.markdown index ebaf2a288..95bc3e68a 100644 --- a/content/resources/faq/fhs.markdown +++ b/content/resources/faq/fhs.markdown @@ -1,7 +1,6 @@ --- layout: default title: Why does CFEngine install into /var/cfengine instead of following the FHS? -published: true sorting: 90 --- diff --git a/content/resources/faq/find-public-key-for-host-sha.markdown b/content/resources/faq/find-public-key-for-host-sha.markdown index 5ce7bb6fd..fdb4eb24b 100644 --- a/content/resources/faq/find-public-key-for-host-sha.markdown +++ b/content/resources/faq/find-public-key-for-host-sha.markdown @@ -1,7 +1,6 @@ --- layout: default title: How do I find the public key for a given host -published: true sorting: 90 --- diff --git a/content/resources/faq/fix-trust-after-ip-change.markdown b/content/resources/faq/fix-trust-after-ip-change.markdown index 3a2eeba14..534d56d77 100644 --- a/content/resources/faq/fix-trust-after-ip-change.markdown +++ b/content/resources/faq/fix-trust-after-ip-change.markdown @@ -1,7 +1,6 @@ --- layout: default title: How do I fix trust after an IP change? -published: true sorting: 90 --- diff --git a/content/resources/faq/fix-undefined-body-error.markdown b/content/resources/faq/fix-undefined-body-error.markdown index 3ead18a53..9d8adee07 100644 --- a/content/resources/faq/fix-undefined-body-error.markdown +++ b/content/resources/faq/fix-undefined-body-error.markdown @@ -1,7 +1,6 @@ --- layout: default title: How do I fix undefined body errors? -published: true sorting: 90 --- diff --git a/content/resources/faq/integrate-custom-policy.markdown b/content/resources/faq/integrate-custom-policy.markdown index 94d2fed32..3d2990ba6 100644 --- a/content/resources/faq/integrate-custom-policy.markdown +++ b/content/resources/faq/integrate-custom-policy.markdown @@ -1,7 +1,6 @@ --- layout: default title: How do I integrate custom policy? -published: true sorting: 90 --- diff --git a/content/resources/faq/manual-execution.markdown b/content/resources/faq/manual-execution.markdown index 72776e0f8..b5b681733 100644 --- a/content/resources/faq/manual-execution.markdown +++ b/content/resources/faq/manual-execution.markdown @@ -1,7 +1,6 @@ --- layout: default title: Manual execution -published: true sorting: 90 --- diff --git a/content/resources/faq/mustache-templating.markdown b/content/resources/faq/mustache-templating.markdown index f755d3b9e..c94397c74 100644 --- a/content/resources/faq/mustache-templating.markdown +++ b/content/resources/faq/mustache-templating.markdown @@ -1,7 +1,6 @@ --- layout: default title: Mustache templating -published: true sorting: 90 --- diff --git a/content/resources/faq/output-email.markdown b/content/resources/faq/output-email.markdown index 1eec8f91e..9cea44539 100644 --- a/content/resources/faq/output-email.markdown +++ b/content/resources/faq/output-email.markdown @@ -1,7 +1,6 @@ --- layout: default title: Agent output email -published: true sorting: 90 --- diff --git a/content/resources/faq/show-classes-and-vars.markdown b/content/resources/faq/show-classes-and-vars.markdown index c1a623d9d..83f050bb8 100644 --- a/content/resources/faq/show-classes-and-vars.markdown +++ b/content/resources/faq/show-classes-and-vars.markdown @@ -1,7 +1,6 @@ --- layout: default title: How can I tell what classes and variables are defined? -published: true sorting: 90 --- diff --git a/content/resources/faq/tuning-postgresql.markdown b/content/resources/faq/tuning-postgresql.markdown index bc971f54b..dcbdb46b0 100644 --- a/content/resources/faq/tuning-postgresql.markdown +++ b/content/resources/faq/tuning-postgresql.markdown @@ -1,7 +1,6 @@ --- layout: default title: Tuning PostgreSQL -published: true --- During install the CFEngine Enterprise Hub Package pre-configures PostgreSQL with a configuration for low (<3GB), medium (>3GB <64GB) or high (>64GB) memory which adjusts the values of `effective_cache_size`, `shared_buffers`, and `maintenance_work_mem`. diff --git a/content/resources/faq/unable-to-log-in-mission-portal.markdown b/content/resources/faq/unable-to-log-in-mission-portal.markdown index 1f92fe489..f9d8b9546 100644 --- a/content/resources/faq/unable-to-log-in-mission-portal.markdown +++ b/content/resources/faq/unable-to-log-in-mission-portal.markdown @@ -1,7 +1,6 @@ --- layout: default title: Unable to log into Mission Portal -published: true sorting: 90 --- diff --git a/content/resources/faq/uninstall-reinstall.markdown b/content/resources/faq/uninstall-reinstall.markdown index b572a034d..90399447c 100644 --- a/content/resources/faq/uninstall-reinstall.markdown +++ b/content/resources/faq/uninstall-reinstall.markdown @@ -1,7 +1,6 @@ --- layout: default title: Uninstalling / reinstalling -published: true sorting: 40 --- diff --git a/content/resources/faq/users.markdown b/content/resources/faq/users.markdown index cdc6feff7..0cf309ccc 100644 --- a/content/resources/faq/users.markdown +++ b/content/resources/faq/users.markdown @@ -1,7 +1,6 @@ --- layout: default title: Users -published: true sorting: 90 --- diff --git a/content/resources/faq/variables.markdown b/content/resources/faq/variables.markdown index 00f7853ed..d023fbdef 100644 --- a/content/resources/faq/variables.markdown +++ b/content/resources/faq/variables.markdown @@ -1,7 +1,6 @@ --- layout: default title: How do I pass a data type variable? -published: true sorting: 90 --- diff --git a/content/resources/faq/what-did-cfengine-change.markdown b/content/resources/faq/what-did-cfengine-change.markdown index 0dd0d81e4..ec649d729 100644 --- a/content/resources/faq/what-did-cfengine-change.markdown +++ b/content/resources/faq/what-did-cfengine-change.markdown @@ -1,7 +1,6 @@ --- layout: default title: What did CFEngine do? -published: true --- This page presents a few ways of understanding what CFEngine has done to your machine. diff --git a/content/resources/faq/what-is-promise-locking.markdown b/content/resources/faq/what-is-promise-locking.markdown index 5dd2fe289..f99386efd 100644 --- a/content/resources/faq/what-is-promise-locking.markdown +++ b/content/resources/faq/what-is-promise-locking.markdown @@ -1,7 +1,6 @@ --- layout: default title: What is promise locking? -published: true sorting: 90 --- diff --git a/content/resources/faq/why-are-files-not-being-distributed.markdown b/content/resources/faq/why-are-files-not-being-distributed.markdown index 9b084f103..a89fa4600 100644 --- a/content/resources/faq/why-are-files-not-being-distributed.markdown +++ b/content/resources/faq/why-are-files-not-being-distributed.markdown @@ -1,7 +1,6 @@ --- layout: default title: Why are some files inside masterfiles not being updated/distributed? -published: true sorting: 90 --- diff --git a/content/resources/faq/why-are-remote-agents-not-updating.markdown b/content/resources/faq/why-are-remote-agents-not-updating.markdown index 74cb7b7b5..faf5de27b 100644 --- a/content/resources/faq/why-are-remote-agents-not-updating.markdown +++ b/content/resources/faq/why-are-remote-agents-not-updating.markdown @@ -1,7 +1,6 @@ --- layout: default title: Why are remote agents not updating? -published: true sorting: 90 --- diff --git a/content/resources/faq/why-knowledge-management.markdown b/content/resources/faq/why-knowledge-management.markdown index e8e527c7e..99b9e9a45 100644 --- a/content/resources/faq/why-knowledge-management.markdown +++ b/content/resources/faq/why-knowledge-management.markdown @@ -1,7 +1,6 @@ --- layout: default title: Why knowledge management? -published: true sorting: 3 --- diff --git a/content/web-ui/_index.markdown b/content/web-ui/_index.markdown index c83987e40..af880706e 100644 --- a/content/web-ui/_index.markdown +++ b/content/web-ui/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Web UI -published: true sorting: 40 --- diff --git a/content/web-ui/alerts-and-notifications.markdown b/content/web-ui/alerts-and-notifications.markdown index 0e7f94a23..a8a29cdc3 100644 --- a/content/web-ui/alerts-and-notifications.markdown +++ b/content/web-ui/alerts-and-notifications.markdown @@ -2,7 +2,6 @@ layout: default title: Alerts and notifications sorting: 40 -published: true --- ## Create a new alert diff --git a/content/web-ui/custom-actions-for-alerts.markdown b/content/web-ui/custom-actions-for-alerts.markdown index 6776e21eb..a9493238f 100644 --- a/content/web-ui/custom-actions-for-alerts.markdown +++ b/content/web-ui/custom-actions-for-alerts.markdown @@ -2,7 +2,6 @@ layout: default title: Custom actions for alerts sorting: 50 -published: true --- Once you have become familiar with the [Alerts widgets][Web UI#Alert widgets], you might see the need to integrate the alerts with an existing system like Nagios, instead of relying on emails for getting notified. diff --git a/content/web-ui/debugging-mission-portal.markdown b/content/web-ui/debugging-mission-portal.markdown index 7145b71f8..0702acf00 100644 --- a/content/web-ui/debugging-mission-portal.markdown +++ b/content/web-ui/debugging-mission-portal.markdown @@ -1,7 +1,6 @@ --- layout: default title: Debugging Mission Portal -published: true sorting: 90 --- diff --git a/content/web-ui/enterprise-reporting/_index.markdown b/content/web-ui/enterprise-reporting/_index.markdown index aa547b674..0b616be29 100644 --- a/content/web-ui/enterprise-reporting/_index.markdown +++ b/content/web-ui/enterprise-reporting/_index.markdown @@ -2,7 +2,6 @@ layout: default title: Enterprise reporting sorting: 50 -published: true --- CFEngine Enterprise can report on promise outcomes (changes made by `cf-agent` diff --git a/content/web-ui/enterprise-reporting/client-initiated-reporting.markdown b/content/web-ui/enterprise-reporting/client-initiated-reporting.markdown index ea48cd164..e2b1280ab 100644 --- a/content/web-ui/enterprise-reporting/client-initiated-reporting.markdown +++ b/content/web-ui/enterprise-reporting/client-initiated-reporting.markdown @@ -2,7 +2,6 @@ layout: default title: Client initiated reporting / call collect sorting: 60 -published: true --- Pull collect is the default mode of reporting. diff --git a/content/web-ui/enterprise-reporting/reporting-architecture.markdown b/content/web-ui/enterprise-reporting/reporting-architecture.markdown index 5b7c2520e..7be7a01e5 100644 --- a/content/web-ui/enterprise-reporting/reporting-architecture.markdown +++ b/content/web-ui/enterprise-reporting/reporting-architecture.markdown @@ -1,7 +1,6 @@ --- layout: default title: Reporting architecture -published: true sorting: 10 --- diff --git a/content/web-ui/enterprise-reporting/reporting_ui.markdown b/content/web-ui/enterprise-reporting/reporting_ui.markdown index 2aa533741..a6a4a03a1 100644 --- a/content/web-ui/enterprise-reporting/reporting_ui.markdown +++ b/content/web-ui/enterprise-reporting/reporting_ui.markdown @@ -2,7 +2,6 @@ layout: default title: Reporting UI sorting: 50 -published: true --- CFEngine collects a large amount of data. To inspect it, you can run and schedule pre-defined reports or use the [query builder][Reporting UI#Query builder] for your own custom reports. You can save these queries for later use, and schedule reports for specified times. diff --git a/content/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown b/content/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown index 578a5511c..3b1574be3 100644 --- a/content/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown +++ b/content/web-ui/enterprise-reporting/sql-queries-enterprise-api.markdown @@ -1,7 +1,6 @@ --- layout: default title: SQL queries using the Enterprise API -published: true sorting: 20 --- diff --git a/content/web-ui/federated-reporting.markdown b/content/web-ui/federated-reporting.markdown index fb1c7dc2a..0ae294a2e 100644 --- a/content/web-ui/federated-reporting.markdown +++ b/content/web-ui/federated-reporting.markdown @@ -1,7 +1,6 @@ --- layout: default title: Federated reporting -published: true sorting: 60 --- diff --git a/content/web-ui/health.markdown b/content/web-ui/health.markdown index 334585db3..7cf281145 100644 --- a/content/web-ui/health.markdown +++ b/content/web-ui/health.markdown @@ -2,7 +2,6 @@ layout: default title: Health sorting: 20 -published: true --- diff --git a/content/web-ui/hosts.markdown b/content/web-ui/hosts.markdown index 7a6fc48bd..a20e10a48 100644 --- a/content/web-ui/hosts.markdown +++ b/content/web-ui/hosts.markdown @@ -2,7 +2,6 @@ layout: default title: Hosts sorting: 30 -published: true --- The Hosts app provides a customizable global overview of _promise_ compliance. A summary of compliant vs non-compliant hosts is provided at each branch in the tree. diff --git a/content/web-ui/hub_administration/_index.markdown b/content/web-ui/hub_administration/_index.markdown index cc6265e2e..0a0aef57b 100644 --- a/content/web-ui/hub_administration/_index.markdown +++ b/content/web-ui/hub_administration/_index.markdown @@ -1,7 +1,6 @@ --- layout: default title: Hub administration -published: true sorting: 80 --- diff --git a/content/web-ui/hub_administration/adjusting-schedules.markdown b/content/web-ui/hub_administration/adjusting-schedules.markdown index 0b74d9540..ccf3aff17 100644 --- a/content/web-ui/hub_administration/adjusting-schedules.markdown +++ b/content/web-ui/hub_administration/adjusting-schedules.markdown @@ -1,7 +1,6 @@ --- layout: default title: Adjusting schedules -published: true --- ## Set cf-execd agent execution schedule diff --git a/content/web-ui/hub_administration/backup-and-restore.markdown b/content/web-ui/hub_administration/backup-and-restore.markdown index 4b24d95c4..b6c528a1e 100644 --- a/content/web-ui/hub_administration/backup-and-restore.markdown +++ b/content/web-ui/hub_administration/backup-and-restore.markdown @@ -1,7 +1,6 @@ --- layout: default title: Backup and restore -published: true --- With policy stored in version control there are few things that should be diff --git a/content/web-ui/hub_administration/custom-https-certificate.markdown b/content/web-ui/hub_administration/custom-https-certificate.markdown index d9617f5cb..3f9a56631 100644 --- a/content/web-ui/hub_administration/custom-https-certificate.markdown +++ b/content/web-ui/hub_administration/custom-https-certificate.markdown @@ -1,7 +1,6 @@ --- layout: default title: Custom SSL certificate -published: true --- When first installed a self-signed ssl certificate is automatically generated diff --git a/content/web-ui/hub_administration/custom-ldap-port.markdown b/content/web-ui/hub_administration/custom-ldap-port.markdown index 8fd3ea7de..19b94deba 100644 --- a/content/web-ui/hub_administration/custom-ldap-port.markdown +++ b/content/web-ui/hub_administration/custom-ldap-port.markdown @@ -1,7 +1,6 @@ --- layout: default title: Configure a custom LDAP port -published: true --- Mission Portals User settings and preferences provides a radio button diff --git a/content/web-ui/hub_administration/custom-ldaps-certificate.markdown b/content/web-ui/hub_administration/custom-ldaps-certificate.markdown index fa43bfb6e..6e2bbdbff 100644 --- a/content/web-ui/hub_administration/custom-ldaps-certificate.markdown +++ b/content/web-ui/hub_administration/custom-ldaps-certificate.markdown @@ -1,7 +1,6 @@ --- layout: default title: Custom LDAPs certificate -published: true --- To use a custom LDAPs certificate install it into your hubs operating system. diff --git a/content/web-ui/hub_administration/decommissioning-hosts.markdown b/content/web-ui/hub_administration/decommissioning-hosts.markdown index b9f906fd2..34cbd2485 100644 --- a/content/web-ui/hub_administration/decommissioning-hosts.markdown +++ b/content/web-ui/hub_administration/decommissioning-hosts.markdown @@ -2,7 +2,6 @@ layout: default title: Decommissioning hosts sorting: 30 -published: true --- Once a host is shut off, or CFEngine is uninstalled, you should remove it from Mission Portal. diff --git a/content/web-ui/hub_administration/enable-plain-http.markdown b/content/web-ui/hub_administration/enable-plain-http.markdown index fdfbaffc6..4e081f0ae 100644 --- a/content/web-ui/hub_administration/enable-plain-http.markdown +++ b/content/web-ui/hub_administration/enable-plain-http.markdown @@ -1,7 +1,6 @@ --- layout: default title: Enable plain http -published: true --- By default HTTPS is enforced by redirecting any non secure connection requests. diff --git a/content/web-ui/hub_administration/extending-mission-portal.markdown b/content/web-ui/hub_administration/extending-mission-portal.markdown index 9b72c01ee..36de67e87 100644 --- a/content/web-ui/hub_administration/extending-mission-portal.markdown +++ b/content/web-ui/hub_administration/extending-mission-portal.markdown @@ -1,7 +1,6 @@ --- layout: default title: Extending Mission Portal -published: true sorting: 90 --- diff --git a/content/web-ui/hub_administration/extending-query-builder.markdown b/content/web-ui/hub_administration/extending-query-builder.markdown index b0040fcf0..cf0290a95 100644 --- a/content/web-ui/hub_administration/extending-query-builder.markdown +++ b/content/web-ui/hub_administration/extending-query-builder.markdown @@ -1,7 +1,6 @@ --- layout: default title: Extending query builder in Mission Portal -published: true sorting: 90 --- diff --git a/content/web-ui/hub_administration/lookup-license-info.markdown b/content/web-ui/hub_administration/lookup-license-info.markdown index 273a4d801..a7524434f 100644 --- a/content/web-ui/hub_administration/lookup-license-info.markdown +++ b/content/web-ui/hub_administration/lookup-license-info.markdown @@ -1,7 +1,6 @@ --- layout: default title: Lookup license info -published: true --- Information about the currently issued license can be obtained from the About section in Mission Portal web interface or from the command line as shown here. diff --git a/content/web-ui/hub_administration/policy-deployment.markdown b/content/web-ui/hub_administration/policy-deployment.markdown index 4946251ce..05d9aabda 100644 --- a/content/web-ui/hub_administration/policy-deployment.markdown +++ b/content/web-ui/hub_administration/policy-deployment.markdown @@ -1,7 +1,6 @@ --- layout: default title: Policy deployment -published: true --- By default CFEngine policy is distributed from `/var/cfengine/masterfiles` on diff --git a/content/web-ui/hub_administration/public-key-distribution.markdown b/content/web-ui/hub_administration/public-key-distribution.markdown index 09c4c4cc1..76c87786a 100644 --- a/content/web-ui/hub_administration/public-key-distribution.markdown +++ b/content/web-ui/hub_administration/public-key-distribution.markdown @@ -1,7 +1,6 @@ --- layout: default title: Public key distribution -published: true --- > How can I arrange for the hosts in my infrastructure to trust a new key? diff --git a/content/web-ui/hub_administration/regenerate-self-signed-cert.markdown b/content/web-ui/hub_administration/regenerate-self-signed-cert.markdown index 50dbbd315..7a7b6c201 100644 --- a/content/web-ui/hub_administration/regenerate-self-signed-cert.markdown +++ b/content/web-ui/hub_administration/regenerate-self-signed-cert.markdown @@ -1,7 +1,6 @@ --- layout: default title: Regenerate self signed SSL certificate -published: true --- When first installed a self-signed ssl certificate is automatically generated diff --git a/content/web-ui/hub_administration/reinstall.markdown b/content/web-ui/hub_administration/reinstall.markdown index 20ee13f6e..60c2019d6 100644 --- a/content/web-ui/hub_administration/reinstall.markdown +++ b/content/web-ui/hub_administration/reinstall.markdown @@ -1,7 +1,6 @@ --- layout: default title: Re-installing Enterprise hub -published: true --- Sometimes it is useful to re-install the hub while still preserving existing diff --git a/content/web-ui/hub_administration/reset-admin-creds.markdown b/content/web-ui/hub_administration/reset-admin-creds.markdown index fd87675cb..88e71be90 100644 --- a/content/web-ui/hub_administration/reset-admin-creds.markdown +++ b/content/web-ui/hub_administration/reset-admin-creds.markdown @@ -1,7 +1,6 @@ --- layout: default title: Reset administrative credentials -published: true --- The default `admin` user can be reset to defaults using the following SQL. diff --git a/content/web-ui/license.markdown b/content/web-ui/license.markdown index 0edab3df5..5aef6bb3a 100644 --- a/content/web-ui/license.markdown +++ b/content/web-ui/license.markdown @@ -1,7 +1,6 @@ --- layout: default title: License -published: true --- ## License information diff --git a/content/web-ui/measurements.markdown b/content/web-ui/measurements.markdown index 339d8b5ad..8ce52e6c9 100644 --- a/content/web-ui/measurements.markdown +++ b/content/web-ui/measurements.markdown @@ -3,7 +3,6 @@ layout: default title: Measurements app alias: Measurements sorting: 70 -published: true --- Measurements allows you to get an overview of specific metrics on your hosts over time. diff --git a/content/web-ui/settings.markdown b/content/web-ui/settings.markdown index 766a4f89b..076e263c2 100644 --- a/content/web-ui/settings.markdown +++ b/content/web-ui/settings.markdown @@ -2,7 +2,6 @@ layout: default title: Settings sorting: 10 -published: true --- A variety of CFEngine and system properties can be changed in the settings view. diff --git a/search.markdown b/search.markdown index c14704d6c..99158c4b4 100644 --- a/search.markdown +++ b/search.markdown @@ -1,6 +1,5 @@ --- layout: google_search title: Search -published: true alias: search.html --- diff --git a/versions.markdown b/versions.markdown index d6a0462a0..2d9cd904c 100644 --- a/versions.markdown +++ b/versions.markdown @@ -1,7 +1,6 @@ --- layout: versions title: Versions -published: true sorting: 1 --- # Versions From 984e651a45e9af25997f38649a82f4ba3c97bb29 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 14:42:15 +0300 Subject: [PATCH 092/142] Get rid of try/except blocks from cfdoc preprocess Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit acff1b2729d9b08387dc926ac6b1919d876b39ed) --- generator/_scripts/cfdoc_preprocess.py | 82 +++----------------------- 1 file changed, 9 insertions(+), 73 deletions(-) diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index a6810fabd..dff1e907b 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -35,82 +35,18 @@ import cfdoc_images_path_resolver as images_path_resolver import sys import os -import traceback config = environment.validate(sys.argv[1]) qa.initialize(config) -try: - metadata.run(config) -except: - print("cfdoc_preprocess: Fatal error setting meta data") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - exit(2) - -try: - linkresolver.run(config) -except: - print("cfdoc_preprocess: Fatal error generating link map") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - exit(3) - -try: - codeblock_resolver.run(config) -except: - print("cfdoc_preprocess: Fatal error processing codeblocks") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - exit(3) - -try: - macros.run(config) -except: - print("cfdoc_macros: Error generating documentation from syntax maps") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - -try: # update the link map with content added by macros - linkresolver.run(config) -except: - print("cfdoc_preprocess: Fatal error updating link map") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - exit(4) - +metadata.run(config) +linkresolver.run(config) +codeblock_resolver.run(config) +macros.run(config) +linkresolver.run(config) # generate links to known targets linkresolver.apply(config) - -try: - patch_header_nav.patch(sys.argv[1]) -except: - print("cfdoc_patch_header_nav: Error patching header navigation") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - -try: - references_resolver.run(config) -except: - print("cfdoc_references_resolver: Fatal error resolving references") - sys.stdout.write(" Exception: ") - traceback.print_exc() - exit(3) - -try: - shortcodes_resolver.run(config) -except: - print("cfdoc_shortcodes_resolver: Fatal error resolving shortcodes replacement") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - exit(3) - -try: - images_path_resolver.run(config) -except: - print("images_path_resolver: Fatal error resolving images paths") - sys.stdout.write(" Exception: ") - print(sys.exc_info()) - exit(3) - -exit(0) +patch_header_nav.patch(sys.argv[1]) +references_resolver.run(config) +shortcodes_resolver.run(config) +images_path_resolver.run(config) From ed8804e59c4f95ac96225aeecd9a25d758e1cc9a Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 14:59:02 +0300 Subject: [PATCH 093/142] Get rid of generator/pages directory as we use hugo/content Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit a9dbccbc6ec2084bf410ff55df673f0ad1c5b785) --- generator/.gitignore | 1 - generator/_config.yml | 2 -- generator/_scripts/_publish.sh | 7 ------- generator/_scripts/_run.sh | 10 ++++------ 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/generator/.gitignore b/generator/.gitignore index f58df0670..ca3e2ba62 100644 --- a/generator/.gitignore +++ b/generator/.gitignore @@ -3,7 +3,6 @@ _cache/* _site/* _generated/* /nbproject/private/ -/pages/* *.pyc .DS_Store node_modules diff --git a/generator/_config.yml b/generator/_config.yml index 1d1041b75..8090cfede 100644 --- a/generator/_config.yml +++ b/generator/_config.yml @@ -1,11 +1,9 @@ #auto: true safe: false -#include: ./pages/ plugins: ./_plugins/ # baseurl: /docs/master/ git-repository: github.com/cfengine/documentation git-branch: "3.24" -#source: ./pages/ #destination: #layouts: ./_layouts/ #permalink: /:title.html diff --git a/generator/_scripts/_publish.sh b/generator/_scripts/_publish.sh index d81aed7e8..03cca7e55 100755 --- a/generator/_scripts/_publish.sh +++ b/generator/_scripts/_publish.sh @@ -9,13 +9,6 @@ then export WRKDIR fi -cd $WRKDIR -find documentation/generator/pages -name "*.markdown" | xargs rm -cp `find documentation/generator/pages -name "*.*"` documentation/generator/_site -if [ ! -d documentation/generator/_site ]; then - exit 1 -fi - OUTPUT=$WRKDIR/output mkdir -p $OUTPUT diff --git a/generator/_scripts/_run.sh b/generator/_scripts/_run.sh index a24f97b12..8f53f284c 100755 --- a/generator/_scripts/_run.sh +++ b/generator/_scripts/_run.sh @@ -12,16 +12,14 @@ echo "Generating documentation from '$WRKDIR'..." sed '/^\[.*\[.*\].*\]/d' $WRKDIR/documentation/generator/_references.md > $WRKDIR/documentation/generator/new_references.md mv $WRKDIR/documentation/generator/new_references.md $WRKDIR/documentation/generator/_references.md -mkdir $WRKDIR/documentation/generator/pages -cp -r $WRKDIR/documentation/content/* $WRKDIR/documentation/generator/pages +mkdir $WRKDIR/documentation/hugo/content +cp -r $WRKDIR/documentation/content/* $WRKDIR/documentation/hugo/content cp -r $WRKDIR/documentation/generator/_includes/lts_versions_list.html $WRKDIR/documentation/hugo/static/ cp -rf $WRKDIR/documentation/generator/_includes/versions_list.html $WRKDIR/documentation/hugo/static/ cp -rf $WRKDIR/documentation/generator/_includes/header_nav_options.html $WRKDIR/documentation/hugo/layouts/partials/ -rm -rf $WRKDIR/documentation/generator/pages/generator # remove not published .markdown files -find $WRKDIR/documentation/generator/pages -type f -name "*.markdown" -exec grep -l '^published: false$' {} + | xargs rm -f -mkdir $WRKDIR/documentation/hugo/content -cp -rf $WRKDIR/documentation/generator/pages/* $WRKDIR/documentation/hugo/content +find $WRKDIR/documentation/generator/content -type f -name "*.markdown" -exec grep -l '^published: false$' {} + | xargs rm -f + # Hugo build cp -rn $WRKDIR/nt-docs/* $WRKDIR/documentation/hugo/ From dd0c0003a7db30633cc09cae513065944beb9ebe Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 18 Jun 2025 15:09:27 +0300 Subject: [PATCH 094/142] Updated README.md (cherry picked from commit 20862305a7911f0051a3c044ca75e6c99a1ae8f8) --- README.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 496fc4c5b..9888017c7 100644 --- a/README.md +++ b/README.md @@ -223,18 +223,14 @@ Note: Do not use markdown files prefixed with `.`. They are not picked up by the Additional META tags you should set are: - layout: default - -Leave this as `default`. - title: "The Title" The title of the page. Quoting is only necessary if the title contains YAML keywords (like "on"). - published: true|false + hidden: true -Pages that set this tag to `false` will not be part of the navigation structure. +Pages that set this tag to `true` will not be part of the navigation structure. The HTML content will however be generated. tags: [list, of, tags with space, all lowercase] @@ -326,7 +322,7 @@ With single backticks, this would link to the documentation of the `meta` attrib ### Custom macros The documentation generator will pre-process the markdown content -before passing it to Jekyll for the rendering. The pre-processor +before passing it to Hugo for the rendering. The pre-processor understands and replaces the macros. Macros all have the form `[%CFEngine_MACRO(parameters)%]` @@ -518,11 +514,11 @@ links. - follow the [Policy style guide](guide/writing-and-serving-policy/policy-style.markdown) in examples and code snippets -- use the appropriate lexer for syntax highlighting via Pygments +- use the appropriate lexer for syntax highlighting via Chroma Most important are the `cf3` lexer, as well as `bash`, `console`, - `diff`, `shell-session` and `sql`. But Jekyll supports - [many more lexers](https://pygments.org/docs/lexers/) + `diff`, `shell-session` and `sql`. But Hugo supports + [many more lexers](https://gohugo.io/content-management/syntax-highlighting/#languages) - avoid custom color schemes and hand-coded HTML - document the example after the example code @@ -668,9 +664,9 @@ Special variables are documented within the page of their context. ## Publishing -Jekyll is used to generate the HTML pages. The toolchain is available at +Hugo is used to generate the HTML pages. The toolchain is available at https://github.com/cfengine/documentation/tree/master/generator. After you compile pages, -Jekyll will place all files into the \_site folder, without subdirectories. +Hugo will place all files into the \_site folder. Commits in this repository trigger the documentation generator to run, which then updates the contents of https://docs.cfengine.com/docs/ From e67b984beaf0f70b4187aa1dc666f7d4d0acb524 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 21 Apr 2026 10:53:00 +0300 Subject: [PATCH 095/142] Removed codeblock resolver pre-process script Signed-off-by: Ihor Aleksandrychiev --- .../_scripts/cfdoc_codeblock_resolver.py | 57 ------------------- generator/_scripts/cfdoc_preprocess.py | 2 - 2 files changed, 59 deletions(-) delete mode 100644 generator/_scripts/cfdoc_codeblock_resolver.py diff --git a/generator/_scripts/cfdoc_codeblock_resolver.py b/generator/_scripts/cfdoc_codeblock_resolver.py deleted file mode 100644 index 2a7eed6ac..000000000 --- a/generator/_scripts/cfdoc_codeblock_resolver.py +++ /dev/null @@ -1,57 +0,0 @@ -import re - -def run(config): - markdown_files = config["markdown_files"] - for file in markdown_files: - process(file) - -def process(file_path): - """ - Reads a markdown file, searches for code block headers that include specific flags - (file=..., noindent, noparse, noeval), and moves file=... finding to a new line inside - square brackets and ignores the rest flags as we don't use them in the markdown rendering. - """ - try: - # Read the file - with open(file_path, 'r', encoding='utf-8') as file: - content = file.read() - - # Find and replace codeblocks - transformed_content = transform_codeblocks(content) - - # Write file if content was changed - if transformed_content != content: - with open(file_path, 'w', encoding='utf-8') as file: - file.write(transformed_content) - - except Exception as e: - print(f"Error processing file {file_path}: {str(e)}") - raise - -def transform_codeblocks(content): - """ - Find code block headers that include file=... and optional flags (noindent, noparse, noeval), - remove all flags except file=... because we don't process them in docs, - and move file=... to a new line inside square brackets. - """ - - pattern = re.compile( - r'^```([a-zA-Z0-9_-]+)' # language - r'[ \t]+\{([^}]*)\}\s*$', # flags - re.MULTILINE - ) - - def replacer(match): - language = match.group(1) - all_flags = match.group(2) - - # Extract the file=... part - file_flag_match = re.search(r'file=("([^"]*)"|([^\s}]+))', all_flags) - if file_flag_match: - # file name without qoutes might be in group 2 or 3, depends on quotes presence - file_name = file_flag_match.group(2) or file_flag_match.group(3) - return f"```{language}\n[file={file_name}]" - else: - return f"```{language}" - - return pattern.sub(replacer, content) diff --git a/generator/_scripts/cfdoc_preprocess.py b/generator/_scripts/cfdoc_preprocess.py index dff1e907b..2bba28d80 100755 --- a/generator/_scripts/cfdoc_preprocess.py +++ b/generator/_scripts/cfdoc_preprocess.py @@ -25,7 +25,6 @@ import cfdoc_environment as environment import cfdoc_metadata as metadata import cfdoc_linkresolver as linkresolver -import cfdoc_codeblock_resolver as codeblock_resolver import cfdoc_macros as macros import cfdoc_git as git import cfdoc_qa as qa @@ -41,7 +40,6 @@ metadata.run(config) linkresolver.run(config) -codeblock_resolver.run(config) macros.run(config) linkresolver.run(config) # generate links to known targets From ec5aa70a30fdd4b6b1afe75b68afbf7cfa6b1dbd Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Fri, 20 Jun 2025 19:21:25 +0300 Subject: [PATCH 096/142] Removed included markdowns to prevent them from being rendered Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit f6cebd5d61782204b20a63d9e8834bad18ee6cef) --- .../installation/general-installation/_index.markdown | 2 +- ...next_steps.markdown => common_next_steps.include.markdown} | 0 .../installation-enterprise-vagrant.markdown | 2 +- .../installation/installation-overview.markdown | 2 +- content/guide/_index.markdown | 2 +- .../install-bootstrap-configure-summary.include.markdown | 0 ...es-include.markdown => common-attributes.include.markdown} | 0 ...clude.markdown => common-body-attributes.include.markdown} | 0 content/reference/promise-types/commands.markdown | 2 +- content/reference/promise-types/databases.markdown | 2 +- content/reference/promise-types/files/_index.markdown | 2 +- content/reference/promise-types/guest_environments.markdown | 2 +- content/reference/promise-types/methods.markdown | 2 +- content/reference/promise-types/packages-deprecated.markdown | 2 +- content/reference/promise-types/packages.markdown | 2 +- content/reference/promise-types/processes.markdown | 2 +- content/reference/promise-types/reports.markdown | 2 +- content/reference/promise-types/services.markdown | 2 +- content/reference/promise-types/storage.markdown | 2 +- content/reference/promise-types/users.markdown | 2 +- generator/_scripts/_run.sh | 4 +++- 21 files changed, 19 insertions(+), 17 deletions(-) rename content/getting-started/installation/general-installation/{common_next_steps.markdown => common_next_steps.include.markdown} (100%) rename include-install-bootstrap-configure-summary.markdown => content/install-bootstrap-configure-summary.include.markdown (100%) rename content/reference/{common-attributes-include.markdown => common-attributes.include.markdown} (100%) rename content/reference/{common-body-attributes-include.markdown => common-body-attributes.include.markdown} (100%) diff --git a/content/getting-started/installation/general-installation/_index.markdown b/content/getting-started/installation/general-installation/_index.markdown index 40d2d7f4c..fb4d609ca 100644 --- a/content/getting-started/installation/general-installation/_index.markdown +++ b/content/getting-started/installation/general-installation/_index.markdown @@ -4,7 +4,7 @@ title: General installation sorting: 20 --- -[%CFEngine_include_markdown(include-install-bootstrap-configure-summary.markdown)%] +[%CFEngine_include_markdown(install-bootstrap-configure-summary.include.markdown)%] ## Before installation diff --git a/content/getting-started/installation/general-installation/common_next_steps.markdown b/content/getting-started/installation/general-installation/common_next_steps.include.markdown similarity index 100% rename from content/getting-started/installation/general-installation/common_next_steps.markdown rename to content/getting-started/installation/general-installation/common_next_steps.include.markdown diff --git a/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown b/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown index 26aed81f6..b0e33f515 100644 --- a/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown +++ b/content/getting-started/installation/general-installation/installation-enterprise-vagrant.markdown @@ -223,4 +223,4 @@ Vagrant and VirtualBox are useful general purpose programs, so you might want to keep them around. If not, follow the standard procedures for your OS to remove these applications. -[%CFEngine_include_markdown(common_next_steps.markdown)%] +[%CFEngine_include_markdown(common_next_steps.include.markdown)%] diff --git a/content/getting-started/installation/installation-overview.markdown b/content/getting-started/installation/installation-overview.markdown index 391104ff2..7572ac8c4 100644 --- a/content/getting-started/installation/installation-overview.markdown +++ b/content/getting-started/installation/installation-overview.markdown @@ -6,7 +6,7 @@ sorting: 30 ## Installation -[%CFEngine_include_markdown(include-install-bootstrap-configure-summary.markdown)%] +[%CFEngine_include_markdown(install-bootstrap-configure-summary.include.markdown)%] See [General installation][General installation] for a more detailed guide for how to install CFEngine, and links to installation guides for various versions of CFEngine and different configurations. diff --git a/content/guide/_index.markdown b/content/guide/_index.markdown index 219729a72..58e729e92 100644 --- a/content/guide/_index.markdown +++ b/content/guide/_index.markdown @@ -35,7 +35,7 @@ See also: ## Install it -[%CFEngine_include_markdown(include-install-bootstrap-configure-summary.markdown)%] +[%CFEngine_include_markdown(install-bootstrap-configure-summary.include.markdown)%] See [Installation][Installation] for a more detailed guide on how to get CFEngine up and running for various environments. diff --git a/include-install-bootstrap-configure-summary.markdown b/content/install-bootstrap-configure-summary.include.markdown similarity index 100% rename from include-install-bootstrap-configure-summary.markdown rename to content/install-bootstrap-configure-summary.include.markdown diff --git a/content/reference/common-attributes-include.markdown b/content/reference/common-attributes.include.markdown similarity index 100% rename from content/reference/common-attributes-include.markdown rename to content/reference/common-attributes.include.markdown diff --git a/content/reference/common-body-attributes-include.markdown b/content/reference/common-body-attributes.include.markdown similarity index 100% rename from content/reference/common-body-attributes-include.markdown rename to content/reference/common-body-attributes.include.markdown diff --git a/content/reference/promise-types/commands.markdown b/content/reference/promise-types/commands.markdown index 247cbdc48..e41e875ad 100644 --- a/content/reference/promise-types/commands.markdown +++ b/content/reference/promise-types/commands.markdown @@ -90,7 +90,7 @@ continue. ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### args diff --git a/content/reference/promise-types/databases.markdown b/content/reference/promise-types/databases.markdown index 6f7a0a721..55c6edad2 100644 --- a/content/reference/promise-types/databases.markdown +++ b/content/reference/promise-types/databases.markdown @@ -149,7 +149,7 @@ a hierarchy of depth 1. ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### database_server diff --git a/content/reference/promise-types/files/_index.markdown b/content/reference/promise-types/files/_index.markdown index 2dcbde987..d25289a3a 100644 --- a/content/reference/promise-types/files/_index.markdown +++ b/content/reference/promise-types/files/_index.markdown @@ -316,7 +316,7 @@ alter such a socket. This is a known issue, documented in ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### acl diff --git a/content/reference/promise-types/guest_environments.markdown b/content/reference/promise-types/guest_environments.markdown index 7cc26dafd..d7370b402 100644 --- a/content/reference/promise-types/guest_environments.markdown +++ b/content/reference/promise-types/guest_environments.markdown @@ -52,7 +52,7 @@ CFEngine currently provides a convergent interface to *libvirt*. ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### environment_host diff --git a/content/reference/promise-types/methods.markdown b/content/reference/promise-types/methods.markdown index ff7262479..65c27b5c6 100644 --- a/content/reference/promise-types/methods.markdown +++ b/content/reference/promise-types/methods.markdown @@ -114,7 +114,7 @@ Output: ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### inherit diff --git a/content/reference/promise-types/packages-deprecated.markdown b/content/reference/promise-types/packages-deprecated.markdown index 623142515..ca6fa1260 100644 --- a/content/reference/promise-types/packages-deprecated.markdown +++ b/content/reference/promise-types/packages-deprecated.markdown @@ -232,7 +232,7 @@ does not come with package bodies for that platform. ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### package_architectures diff --git a/content/reference/promise-types/packages.markdown b/content/reference/promise-types/packages.markdown index b6487068b..c90d7ff07 100644 --- a/content/reference/promise-types/packages.markdown +++ b/content/reference/promise-types/packages.markdown @@ -91,7 +91,7 @@ string needs to be a bare package name, you cannot use a file name for this. ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### architecture diff --git a/content/reference/promise-types/processes.markdown b/content/reference/promise-types/processes.markdown index 5508ffa03..119edc1ca 100644 --- a/content/reference/promise-types/processes.markdown +++ b/content/reference/promise-types/processes.markdown @@ -91,7 +91,7 @@ commands: ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### process_count diff --git a/content/reference/promise-types/reports.markdown b/content/reference/promise-types/reports.markdown index 551b496ef..e67e56e98 100644 --- a/content/reference/promise-types/reports.markdown +++ b/content/reference/promise-types/reports.markdown @@ -71,7 +71,7 @@ R: found class: report_not_repaired ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### friend_pattern diff --git a/content/reference/promise-types/services.markdown b/content/reference/promise-types/services.markdown index d62c27b5d..853a10e38 100644 --- a/content/reference/promise-types/services.markdown +++ b/content/reference/promise-types/services.markdown @@ -134,7 +134,7 @@ for services promises. ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### service_policy diff --git a/content/reference/promise-types/storage.markdown b/content/reference/promise-types/storage.markdown index c8abe61ef..2d27d9591 100644 --- a/content/reference/promise-types/storage.markdown +++ b/content/reference/promise-types/storage.markdown @@ -48,7 +48,7 @@ body mount nfs(server,source) ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### mount diff --git a/content/reference/promise-types/users.markdown b/content/reference/promise-types/users.markdown index be839e594..6e0c1f54a 100644 --- a/content/reference/promise-types/users.markdown +++ b/content/reference/promise-types/users.markdown @@ -44,7 +44,7 @@ users: ## Attributes -[%CFEngine_include_markdown(common-attributes-include.markdown)%] +[%CFEngine_include_markdown(common-attributes.include.markdown)%] ### description diff --git a/generator/_scripts/_run.sh b/generator/_scripts/_run.sh index 8f53f284c..7379d3825 100755 --- a/generator/_scripts/_run.sh +++ b/generator/_scripts/_run.sh @@ -18,7 +18,9 @@ cp -r $WRKDIR/documentation/generator/_includes/lts_versions_list.html $WRKDIR/d cp -rf $WRKDIR/documentation/generator/_includes/versions_list.html $WRKDIR/documentation/hugo/static/ cp -rf $WRKDIR/documentation/generator/_includes/header_nav_options.html $WRKDIR/documentation/hugo/layouts/partials/ # remove not published .markdown files -find $WRKDIR/documentation/generator/content -type f -name "*.markdown" -exec grep -l '^published: false$' {} + | xargs rm -f +find $WRKDIR/documentation/hugo/content -type f -name "*.markdown" -exec grep -l '^published: false$' {} + | xargs rm -f +# remove .include.markdown files used in CFEngine_include_markdown function +find $WRKDIR/documentation/hugo/content -name "*.include.markdown" -type f -delete # Hugo build From 9edd9491e7c609a82ea2bf6dd4e3015cb4f896b6 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Mon, 23 Jun 2025 19:31:42 +0300 Subject: [PATCH 097/142] Fixed whitespaces Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit e6c211701cc0db22c2ab87cf7284617c58a0482a) --- .../tutorials/render-files-with-mustache-templates.markdown | 1 - .../modules-promises-cfengine.py.markdown | 1 - .../modules-promises-cfengine.sh.markdown | 1 - content/resources/faq/mustache-templating.markdown | 1 - 4 files changed, 4 deletions(-) diff --git a/content/examples/tutorials/render-files-with-mustache-templates.markdown b/content/examples/tutorials/render-files-with-mustache-templates.markdown index 8db2b3dcd..c41944464 100644 --- a/content/examples/tutorials/render-files-with-mustache-templates.markdown +++ b/content/examples/tutorials/render-files-with-mustache-templates.markdown @@ -51,7 +51,6 @@ Encryption {{encryption-level}} Loglevel {{loglevel}} Allowed users {{#users}} {{user}}={{level}}{{/users}} - ``` 2. Create CFEngine policy diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown index dec190407..27257e1d5 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown @@ -6,4 +6,3 @@ title: modules/promises/cfengine.py ``` [%CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.py)%] ``` - diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown index e605ffe5e..64a92c284 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown @@ -6,4 +6,3 @@ title: modules/promises/cfengine.sh ``` [%CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.sh)%] ``` - diff --git a/content/resources/faq/mustache-templating.markdown b/content/resources/faq/mustache-templating.markdown index c94397c74..92df41f74 100644 --- a/content/resources/faq/mustache-templating.markdown +++ b/content/resources/faq/mustache-templating.markdown @@ -111,4 +111,3 @@ AuthorizedKeysCommandRunAs {{vars.sara_data.ssh.authorized_keys_commanduser}} {{/classes.centos}} {{/classes.SSH_LDAP_PUBKEY_BUNDLE}} ``` - From 10b20dee62c01eec7e2bb6f1f050db3441e5188f Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 24 Jun 2025 18:37:24 +0300 Subject: [PATCH 098/142] Removed versions and search old markdowns Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 6228897c3d305504a17f04280df9d129cd69cd28) --- search.markdown | 5 ----- versions.markdown | 8 -------- 2 files changed, 13 deletions(-) delete mode 100644 search.markdown delete mode 100644 versions.markdown diff --git a/search.markdown b/search.markdown deleted file mode 100644 index 99158c4b4..000000000 --- a/search.markdown +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: google_search -title: Search -alias: search.html ---- diff --git a/versions.markdown b/versions.markdown deleted file mode 100644 index 2d9cd904c..000000000 --- a/versions.markdown +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: versions -title: Versions -sorting: 1 ---- -# Versions - -Following versions are available in CFEngine docs. From 2769df72f26c94404963a5d9ca1ce7207bb81869 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 24 Jun 2025 18:56:55 +0300 Subject: [PATCH 099/142] Copy redirects.conf to _site Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit b79a90760d1315d4ff4ebf0e0e3f49e54472f6fa) --- generator/_scripts/_run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/generator/_scripts/_run.sh b/generator/_scripts/_run.sh index 7379d3825..6fef7b9bc 100755 --- a/generator/_scripts/_run.sh +++ b/generator/_scripts/_run.sh @@ -31,6 +31,7 @@ npm run build:all cd $WRKDIR/documentation/generator cp -rf $WRKDIR/documentation/hugo/scripts/search/index/searchIndex $WRKDIR/documentation/generator/_site/assets/ +cp -f $WRKDIR/documentation/redirects.conf $WRKDIR/documentation/generator/_site/ $WRKDIR/documentation/generator/_scripts/cfdoc_postprocess.py "$@" if [ "$?" -gt "0" ]; then From 81acada120b3c41b67eb1043064441fa7dc97c21 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 25 Jun 2025 17:39:59 +0300 Subject: [PATCH 100/142] Copied search index into proper location Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 256007453f94c1a6886cd9ac2a513591f1837318) --- generator/_scripts/_run.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/generator/_scripts/_run.sh b/generator/_scripts/_run.sh index 6fef7b9bc..384711783 100755 --- a/generator/_scripts/_run.sh +++ b/generator/_scripts/_run.sh @@ -30,7 +30,9 @@ npm ci npm run build:all cd $WRKDIR/documentation/generator -cp -rf $WRKDIR/documentation/hugo/scripts/search/index/searchIndex $WRKDIR/documentation/generator/_site/assets/ +mkdir -p $WRKDIR/documentation/generator/_site/assets/searchIndex +cp -rf $WRKDIR/documentation/hugo/scripts/search/index/searchIndex/* $WRKDIR/documentation/generator/_site/assets/searchIndex +cp -rf $WRKDIR/documentation/hugo/scripts/search/index/documents $WRKDIR/documentation/generator/_site/assets/searchIndex/documents cp -f $WRKDIR/documentation/redirects.conf $WRKDIR/documentation/generator/_site/ $WRKDIR/documentation/generator/_scripts/cfdoc_postprocess.py "$@" From d109fe35804a4f5a57d6e590cca45b8d9d4d7c10 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Wed, 25 Jun 2025 21:23:46 +0300 Subject: [PATCH 101/142] Added searchUrlPrefix config Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 9fe5cf547d5b3d4dc66fb4751513161f40b9aad8) --- hugo/config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/hugo/config.toml b/hugo/config.toml index 2c3144758..17e26f971 100644 --- a/hugo/config.toml +++ b/hugo/config.toml @@ -12,6 +12,7 @@ relativeURLs = true branch = "%branch%" repositoryUrl = "https://github.com/cfengine/documentation" searchBaseUrl = "/docs/search/%branch%/" +searchUrlPrefix = ".." domain = "docs.cfengine.com" # Number of posts per page From 67b3abb408a0778e3d9c405df2c6d3a7e8cf57bf Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Thu, 26 Jun 2025 10:14:29 +0300 Subject: [PATCH 102/142] Fixed versions links Hugo makes them relative by default on the home and versions pages and we need to add ../.. prefix to point to the root of website Signed-off-by: Ihor Aleksandrychiev (cherry picked from commit 9bfac3cdcc8012c4aec4c77e5f2606d70628954e) --- generator/_scripts/cfdoc_patch_header_nav.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generator/_scripts/cfdoc_patch_header_nav.py b/generator/_scripts/cfdoc_patch_header_nav.py index 2e8c478b4..7786a6cb6 100644 --- a/generator/_scripts/cfdoc_patch_header_nav.py +++ b/generator/_scripts/cfdoc_patch_header_nav.py @@ -54,7 +54,7 @@ def patch(current_branch): for branch in data["docs"]: print( '
  • %s
  • ' - % (branch["Link"], branch["Title"].replace("Version ", "")), + % ("../../.." + branch["Link"], branch["Title"].replace("Version ", "")), file=f, ) with open("_includes/lts_versions_list.html", "w") as f: @@ -63,7 +63,7 @@ def patch(current_branch): print( '
  • %s
  • ' % ( - branch["Link"], + "../.." + branch["Link"], branch["Title"].replace("Version ", "CFEngine "), ), file=f, From e9f917a24aec82dc6496417c3efaa1c21eb8a494 Mon Sep 17 00:00:00 2001 From: Ihor Aleksandrychiev Date: Tue, 21 Apr 2026 11:10:43 +0300 Subject: [PATCH 103/142] Added aliases to support redirects from the previous docs structure Signed-off-by: Ihor Aleksandrychiev --- content/api/_index.markdown | 2 ++ content/api/enterprise-api-examples/_index.markdown | 2 ++ .../enterprise-api-examples/browsing-host-information.markdown | 2 ++ content/api/enterprise-api-examples/changes-api-usage.markdown | 2 ++ content/api/enterprise-api-examples/checking-status.markdown | 2 ++ content/api/enterprise-api-examples/managing-settings.markdown | 2 ++ .../enterprise-api-examples/managing-users-and-roles.markdown | 2 ++ content/api/enterprise-api-examples/sql-queries.markdown | 2 ++ content/api/enterprise-api-ref/_index.markdown | 2 ++ content/api/enterprise-api-ref/actions-api.markdown | 2 ++ content/api/enterprise-api-ref/build-api.markdown | 2 ++ content/api/enterprise-api-ref/changes.markdown | 2 ++ content/api/enterprise-api-ref/cmdb-api.markdown | 2 ++ content/api/enterprise-api-ref/export-import-api.markdown | 2 ++ .../export-import-compliance-report-api.markdown | 2 ++ content/api/enterprise-api-ref/federated-reporting-api.markdown | 2 ++ content/api/enterprise-api-ref/file-changes.markdown | 2 ++ content/api/enterprise-api-ref/health-diagnostic.markdown | 2 ++ content/api/enterprise-api-ref/host.markdown | 2 ++ content/api/enterprise-api-ref/inventory.markdown | 2 ++ content/api/enterprise-api-ref/ldap-api.markdown | 2 ++ content/api/enterprise-api-ref/personal-groups.markdown | 2 ++ content/api/enterprise-api-ref/query.markdown | 2 ++ content/api/enterprise-api-ref/shared-groups.markdown | 2 ++ content/api/enterprise-api-ref/sql-schema/_index.markdown | 2 ++ content/api/enterprise-api-ref/sql-schema/cfdb.markdown | 2 ++ content/api/enterprise-api-ref/sql-schema/cfmp.markdown | 2 ++ content/api/enterprise-api-ref/sql-schema/cfsettings.markdown | 2 ++ content/api/enterprise-api-ref/ssh-keys-api.markdown | 2 ++ content/api/enterprise-api-ref/status-settings.markdown | 2 ++ .../api/enterprise-api-ref/two-factor-authentication.markdown | 2 ++ content/api/enterprise-api-ref/users-rbac.markdown | 2 ++ content/api/enterprise-api-ref/vcs-settings.markdown | 2 ++ content/api/enterprise-api-ref/web-rbac.markdown | 2 ++ content/enterprise-cfengine-guide/_index.markdown | 2 ++ content/enterprise-cfengine-guide/install-get-started.markdown | 2 ++ content/examples/_index.markdown | 2 ++ content/examples/example-snippets/_index.markdown | 2 ++ content/examples/example-snippets/active_directory.markdown | 2 ++ content/examples/example-snippets/basic-file-directory.markdown | 2 ++ .../examples/example-snippets/cfengine-administration.markdown | 2 ++ .../example-snippets/commands-scripts-execution.markdown | 2 ++ content/examples/example-snippets/database.markdown | 2 ++ content/examples/example-snippets/file-template.markdown | 2 ++ content/examples/example-snippets/file_permissions.markdown | 2 ++ content/examples/example-snippets/general.markdown | 2 ++ content/examples/example-snippets/network.markdown | 2 ++ .../examples/example-snippets/promise-patterns/_index.markdown | 2 ++ .../promise-patterns/example_aborting_execution.markdown | 2 ++ .../promise-patterns/example_change_detection.markdown | 2 ++ .../promise-patterns/example_copy_single_files.markdown | 2 ++ .../promise-patterns/example_create_filedir.markdown | 2 ++ .../example-snippets/promise-patterns/example_diskfree.markdown | 2 ++ .../promise-patterns/example_edit_motd.markdown | 2 ++ .../promise-patterns/example_edit_name_resolution.markdown | 2 ++ .../promise-patterns/example_enable_service.markdown | 2 ++ .../promise-patterns/example_find_mac_addr.markdown | 2 ++ .../promise-patterns/example_install_package.markdown | 2 ++ .../promise-patterns/example_mount_nfs.markdown | 2 ++ .../example-snippets/promise-patterns/example_ntp.markdown | 2 ++ .../promise-patterns/example_process_kill.markdown | 2 ++ .../promise-patterns/example_process_restart.markdown | 2 ++ .../example-snippets/promise-patterns/example_ssh_keys.markdown | 2 ++ .../example-snippets/promise-patterns/example_sudoers.markdown | 2 ++ .../promise-patterns/example_updating_from_central_hub.markdown | 2 ++ .../examples/example-snippets/software-adminstration.markdown | 2 ++ .../examples/example-snippets/system-administration.markdown | 2 ++ content/examples/example-snippets/system-file.markdown | 2 ++ content/examples/example-snippets/system-information.markdown | 2 ++ content/examples/example-snippets/system-security.markdown | 2 ++ .../example-snippets/timing-counting-measuring.markdown | 2 ++ content/examples/example-snippets/user-management.markdown | 2 ++ content/examples/example-snippets/windows-registry.markdown | 2 ++ content/examples/tutorials/_index.markdown | 2 ++ content/examples/tutorials/custom_inventory.markdown | 2 ++ content/examples/tutorials/dashboard-alerts.markdown | 2 ++ .../tutorials/distribute-files-from-a-central-location.markdown | 2 ++ content/examples/tutorials/file_comparison.markdown | 2 ++ content/examples/tutorials/files-tutorial.markdown | 2 ++ content/examples/tutorials/high-availability/_index.markdown | 2 ++ .../tutorials/high-availability/installation-guide.markdown | 2 ++ .../tutorials/installing-cfengine-enterprise-agent.markdown | 2 ++ .../tutorials/integrating-alerts-with-pager-duty.markdown | 2 ++ .../integrating-alerts-with-ticketing-systems.markdown | 2 ++ content/examples/tutorials/integrating-with-sumo-logic.markdown | 2 ++ .../examples/tutorials/json-yaml-support-in-cfengine.markdown | 2 ++ content/examples/tutorials/manage-local-users.markdown | 2 ++ content/examples/tutorials/manage-ntp.markdown | 2 ++ content/examples/tutorials/manage-packages.markdown | 2 ++ .../examples/tutorials/manage-processes-and-services.markdown | 2 ++ .../tutorials/masterfiles_policy_framework_upgrade.markdown | 2 ++ .../tutorials/render-files-with-mustache-templates.markdown | 2 ++ .../report_inventory_remediate_sec_vulnerabilities.markdown | 2 ++ content/examples/tutorials/reporting/_index.markdown | 2 ++ .../examples/tutorials/reporting/command-line-reports.markdown | 2 ++ .../examples/tutorials/reporting/monitoring-reporting.markdown | 2 ++ content/examples/tutorials/tags.markdown | 2 ++ content/examples/tutorials/write-cfengine-policy.markdown | 2 ++ .../tutorials/writing-and-serving-policy/_index.markdown | 2 ++ .../authoring-policy-tools-and-workflow.markdown | 2 ++ .../writing-and-serving-policy/bundles-best-practices.markdown | 2 ++ .../writing-and-serving-policy/controlling-frequency.markdown | 2 ++ .../tutorials/writing-and-serving-policy/editors.markdown | 2 ++ .../tutorials/writing-and-serving-policy/external_data.markdown | 2 ++ .../policy-layers-abstraction.markdown | 2 ++ .../tutorials/writing-and-serving-policy/policy-style.markdown | 2 ++ .../promises-available-in-cfengine.markdown | 2 ++ .../writing-and-serving-policy/testing-policies.markdown | 2 ++ content/getting-started/_index.markdown | 2 ++ content/getting-started/developing-modules.markdown | 2 ++ content/getting-started/installation/_index.markdown | 2 ++ .../installation/general-installation/_index.markdown | 2 ++ .../general-installation/installation-community.markdown | 2 ++ .../general-installation/installation-coreos.markdown | 2 ++ .../installation-enterprise-free-aws-rhel.markdown | 2 ++ .../general-installation/installation-enterprise-free.markdown | 2 ++ .../installation-enterprise-generic-tarball.markdown | 2 ++ .../installation-enterprise-vagrant.markdown | 2 ++ .../general-installation/installation-enterprise.markdown | 2 ++ .../getting-started/installation/installation-overview.markdown | 2 ++ .../getting-started/installation/local-virtual-machine.markdown | 2 ++ .../installation/pre-installation-checklist/_index.markdown | 2 ++ .../pre-installation-checklist/putty-quick-start-guide.markdown | 2 ++ .../pre-installation-checklist/verify-signatures.markdown | 2 ++ .../pre-installation-checklist/vi-quick-start-guide.markdown | 2 ++ content/getting-started/installation/secure-bootstrap.markdown | 2 ++ content/getting-started/installation/upgrading.markdown | 2 ++ content/getting-started/installation/version-control.markdown | 2 ++ content/getting-started/modules-from-cfengine-build.markdown | 2 ++ content/getting-started/reporting-and-web-ui.markdown | 2 ++ content/getting-started/writing-policy.markdown | 2 ++ content/guide/_index.markdown | 2 ++ content/overview/_index.markdown | 2 ++ content/overview/client-server-communication.markdown | 2 ++ content/overview/directory-structure.markdown | 2 ++ content/overview/glossary.markdown | 2 ++ content/overview/how-cfengine-works.markdown | 2 ++ content/overview/what-is-cfengine-and-why.markdown | 2 ++ content/reference/_index.markdown | 2 ++ content/reference/all-types.markdown | 2 ++ content/reference/components/_index.markdown | 2 ++ content/reference/components/cf-agent.markdown | 2 ++ content/reference/components/cf-check.markdown | 2 ++ content/reference/components/cf-execd.markdown | 2 ++ content/reference/components/cf-hub.markdown | 2 ++ content/reference/components/cf-key.markdown | 2 ++ content/reference/components/cf-monitord.markdown | 2 ++ content/reference/components/cf-net.markdown | 2 ++ content/reference/components/cf-promises.markdown | 2 ++ content/reference/components/cf-reactor.markdown | 2 ++ content/reference/components/cf-runagent.markdown | 2 ++ content/reference/components/cf-secret.markdown | 2 ++ content/reference/components/cf-serverd.markdown | 2 ++ content/reference/components/cf-support.markdown | 2 ++ content/reference/components/file_control_promises.markdown | 2 ++ content/reference/functions/_index.markdown | 2 ++ content/reference/functions/accessedbefore.markdown | 2 ++ content/reference/functions/accumulated.markdown | 2 ++ content/reference/functions/ago.markdown | 2 ++ content/reference/functions/and.markdown | 2 ++ content/reference/functions/basename.markdown | 2 ++ content/reference/functions/bundlesmatching.markdown | 2 ++ content/reference/functions/bundlestate.markdown | 2 ++ content/reference/functions/callstack_callers.markdown | 2 ++ content/reference/functions/callstack_promisers.markdown | 2 ++ content/reference/functions/canonify.markdown | 2 ++ content/reference/functions/canonifyuniquely.markdown | 2 ++ content/reference/functions/cf_version_after.markdown | 2 ++ content/reference/functions/cf_version_at.markdown | 2 ++ content/reference/functions/cf_version_before.markdown | 2 ++ content/reference/functions/cf_version_between.markdown | 2 ++ content/reference/functions/cf_version_maximum.markdown | 2 ++ content/reference/functions/cf_version_minimum.markdown | 2 ++ content/reference/functions/changedbefore.markdown | 2 ++ content/reference/functions/classesmatching.markdown | 2 ++ content/reference/functions/classfiltercsv.markdown | 2 ++ content/reference/functions/classify.markdown | 2 ++ content/reference/functions/classmatch.markdown | 2 ++ content/reference/functions/concat.markdown | 2 ++ content/reference/functions/countclassesmatching.markdown | 2 ++ content/reference/functions/countlinesmatching.markdown | 2 ++ content/reference/functions/data_expand.markdown | 2 ++ content/reference/functions/data_readstringarray.markdown | 2 ++ content/reference/functions/data_readstringarrayidx.markdown | 2 ++ content/reference/functions/data_regextract.markdown | 2 ++ content/reference/functions/data_sysctlvalues.markdown | 2 ++ content/reference/functions/datastate.markdown | 2 ++ content/reference/functions/difference.markdown | 2 ++ content/reference/functions/dirname.markdown | 2 ++ content/reference/functions/diskfree.markdown | 2 ++ content/reference/functions/escape.markdown | 2 ++ content/reference/functions/eval.markdown | 2 ++ content/reference/functions/every.markdown | 2 ++ content/reference/functions/execresult.markdown | 2 ++ content/reference/functions/execresult_as_data.markdown | 2 ++ content/reference/functions/expandrange.markdown | 2 ++ content/reference/functions/file_hash.markdown | 2 ++ content/reference/functions/fileexists.markdown | 2 ++ content/reference/functions/filesexist.markdown | 2 ++ content/reference/functions/filesize.markdown | 2 ++ content/reference/functions/filestat.markdown | 2 ++ content/reference/functions/filter.markdown | 2 ++ content/reference/functions/findfiles.markdown | 2 ++ content/reference/functions/findfiles_up.markdown | 2 ++ content/reference/functions/findprocesses.markdown | 2 ++ content/reference/functions/format.markdown | 2 ++ content/reference/functions/getclassmetatags.markdown | 2 ++ content/reference/functions/getenv.markdown | 2 ++ content/reference/functions/getfields.markdown | 2 ++ content/reference/functions/getgid.markdown | 2 ++ content/reference/functions/getindices.markdown | 2 ++ content/reference/functions/getuid.markdown | 2 ++ content/reference/functions/getuserinfo.markdown | 2 ++ content/reference/functions/getusers.markdown | 2 ++ content/reference/functions/getvalues.markdown | 2 ++ content/reference/functions/getvariablemetatags.markdown | 2 ++ content/reference/functions/grep.markdown | 2 ++ content/reference/functions/groupexists.markdown | 2 ++ content/reference/functions/hash.markdown | 2 ++ content/reference/functions/hash_to_int.markdown | 2 ++ content/reference/functions/hashmatch.markdown | 2 ++ content/reference/functions/host2ip.markdown | 2 ++ content/reference/functions/hostinnetgroup.markdown | 2 ++ content/reference/functions/hostrange.markdown | 2 ++ content/reference/functions/hostsseen.markdown | 2 ++ content/reference/functions/hostswithclass.markdown | 2 ++ content/reference/functions/hubknowledge.markdown | 2 ++ content/reference/functions/ifelse.markdown | 2 ++ content/reference/functions/int.markdown | 2 ++ content/reference/functions/intersection.markdown | 2 ++ content/reference/functions/ip2host.markdown | 2 ++ content/reference/functions/iprange.markdown | 2 ++ content/reference/functions/irange.markdown | 2 ++ content/reference/functions/isdir.markdown | 2 ++ content/reference/functions/isexecutable.markdown | 2 ++ content/reference/functions/isgreaterthan.markdown | 2 ++ content/reference/functions/isipinsubnet.markdown | 2 ++ content/reference/functions/islessthan.markdown | 2 ++ content/reference/functions/islink.markdown | 2 ++ content/reference/functions/isnewerthan.markdown | 2 ++ content/reference/functions/isplain.markdown | 2 ++ content/reference/functions/isreadable.markdown | 2 ++ content/reference/functions/isvariable.markdown | 2 ++ content/reference/functions/join.markdown | 2 ++ content/reference/functions/lastnode.markdown | 2 ++ content/reference/functions/laterthan.markdown | 2 ++ content/reference/functions/ldaparray.markdown | 2 ++ content/reference/functions/ldaplist.markdown | 2 ++ content/reference/functions/ldapvalue.markdown | 2 ++ content/reference/functions/length.markdown | 2 ++ content/reference/functions/lsdir.markdown | 2 ++ content/reference/functions/makerule.markdown | 2 ++ content/reference/functions/maparray.markdown | 2 ++ content/reference/functions/mapdata.markdown | 2 ++ content/reference/functions/maplist.markdown | 2 ++ content/reference/functions/max.markdown | 2 ++ content/reference/functions/mean.markdown | 2 ++ content/reference/functions/mergedata.markdown | 2 ++ content/reference/functions/min.markdown | 2 ++ content/reference/functions/network_connections.markdown | 2 ++ content/reference/functions/none.markdown | 2 ++ content/reference/functions/not.markdown | 2 ++ content/reference/functions/now.markdown | 2 ++ content/reference/functions/nth.markdown | 2 ++ content/reference/functions/on.markdown | 2 ++ content/reference/functions/or.markdown | 2 ++ content/reference/functions/packagesmatching.markdown | 2 ++ content/reference/functions/packageupdatesmatching.markdown | 2 ++ content/reference/functions/parseintarray.markdown | 2 ++ content/reference/functions/parsejson.markdown | 2 ++ content/reference/functions/parserealarray.markdown | 2 ++ content/reference/functions/parsestringarray.markdown | 2 ++ content/reference/functions/parsestringarrayidx.markdown | 2 ++ content/reference/functions/parseyaml.markdown | 2 ++ content/reference/functions/peerleader.markdown | 2 ++ content/reference/functions/peerleaders.markdown | 2 ++ content/reference/functions/peers.markdown | 2 ++ content/reference/functions/processexists.markdown | 2 ++ content/reference/functions/product.markdown | 2 ++ content/reference/functions/randomint.markdown | 2 ++ content/reference/functions/read_module_protocol.markdown | 2 ++ content/reference/functions/readcsv.markdown | 2 ++ content/reference/functions/readdata.markdown | 2 ++ content/reference/functions/readenvfile.markdown | 2 ++ content/reference/functions/readfile.markdown | 2 ++ content/reference/functions/readintarray.markdown | 2 ++ content/reference/functions/readintlist.markdown | 2 ++ content/reference/functions/readjson.markdown | 2 ++ content/reference/functions/readrealarray.markdown | 2 ++ content/reference/functions/readreallist.markdown | 2 ++ content/reference/functions/readstringarray.markdown | 2 ++ content/reference/functions/readstringarrayidx.markdown | 2 ++ content/reference/functions/readstringlist.markdown | 2 ++ content/reference/functions/readtcp.markdown | 2 ++ content/reference/functions/readyaml.markdown | 2 ++ content/reference/functions/regarray.markdown | 2 ++ content/reference/functions/regcmp.markdown | 2 ++ content/reference/functions/regex_replace.markdown | 2 ++ content/reference/functions/regextract.markdown | 2 ++ content/reference/functions/registryvalue.markdown | 2 ++ content/reference/functions/regldap.markdown | 2 ++ content/reference/functions/regline.markdown | 2 ++ content/reference/functions/reglist.markdown | 2 ++ content/reference/functions/remoteclassesmatching.markdown | 2 ++ content/reference/functions/remotescalar.markdown | 2 ++ content/reference/functions/returnszero.markdown | 2 ++ content/reference/functions/reverse.markdown | 2 ++ content/reference/functions/rrange.markdown | 2 ++ content/reference/functions/selectservers.markdown | 2 ++ content/reference/functions/shuffle.markdown | 2 ++ content/reference/functions/some.markdown | 2 ++ content/reference/functions/sort.markdown | 2 ++ content/reference/functions/splayclass.markdown | 2 ++ content/reference/functions/splitstring.markdown | 2 ++ content/reference/functions/storejson.markdown | 2 ++ content/reference/functions/strcmp.markdown | 2 ++ content/reference/functions/strftime.markdown | 2 ++ content/reference/functions/string.markdown | 2 ++ content/reference/functions/string_downcase.markdown | 2 ++ content/reference/functions/string_head.markdown | 2 ++ content/reference/functions/string_length.markdown | 2 ++ content/reference/functions/string_mustache.markdown | 2 ++ content/reference/functions/string_replace.markdown | 2 ++ content/reference/functions/string_reverse.markdown | 2 ++ content/reference/functions/string_split.markdown | 2 ++ content/reference/functions/string_tail.markdown | 2 ++ content/reference/functions/string_trim.markdown | 2 ++ content/reference/functions/string_upcase.markdown | 2 ++ content/reference/functions/sublist.markdown | 2 ++ content/reference/functions/sum.markdown | 2 ++ content/reference/functions/sysctlvalue.markdown | 2 ++ content/reference/functions/translatepath.markdown | 2 ++ content/reference/functions/type.markdown | 2 ++ content/reference/functions/unique.markdown | 2 ++ content/reference/functions/url_get.markdown | 2 ++ content/reference/functions/usemodule.markdown | 2 ++ content/reference/functions/userexists.markdown | 2 ++ content/reference/functions/validdata.markdown | 2 ++ content/reference/functions/validjson.markdown | 2 ++ content/reference/functions/variablesmatching.markdown | 2 ++ content/reference/functions/variablesmatching_as_data.markdown | 2 ++ content/reference/functions/variance.markdown | 2 ++ content/reference/functions/version_compare.markdown | 2 ++ content/reference/language-concepts/_index.markdown | 2 ++ content/reference/language-concepts/augments.markdown | 2 ++ content/reference/language-concepts/bodies.markdown | 2 ++ content/reference/language-concepts/bundles.markdown | 2 ++ content/reference/language-concepts/classes.markdown | 2 ++ content/reference/language-concepts/loops.markdown | 2 ++ content/reference/language-concepts/modules/_index.markdown | 2 ++ .../language-concepts/modules/package-module-api.markdown | 2 ++ content/reference/language-concepts/namespaces.markdown | 2 ++ content/reference/language-concepts/normal-ordering.markdown | 2 ++ .../language-concepts/pattern-matching-and-referencing.markdown | 2 ++ content/reference/language-concepts/promises.markdown | 2 ++ content/reference/language-concepts/variables.markdown | 2 ++ content/reference/macros.markdown | 2 ++ content/reference/masterfiles-policy-framework/_index.markdown | 2 ++ .../cfe_internal-CFE_cfengine.markdown | 2 ++ .../cfe_internal-core-watchdog-watchdog.markdown | 2 ++ .../cfe_internal-core-watchdog.markdown | 2 ++ .../masterfiles-policy-framework/cfe_internal-core.markdown | 2 ++ .../cfe_internal-enterprise-federation-federation.markdown | 2 ++ .../cfe_internal-enterprise-federation.markdown | 2 ++ .../cfe_internal-enterprise.markdown | 2 ++ .../cfe_internal-recommendations.markdown | 2 ++ .../cfe_internal-update-cfe_internal_dc_workflow.markdown | 2 ++ ...internal-update-cfe_internal_update_from_repository.markdown | 2 ++ .../cfe_internal-update-lib.markdown | 2 ++ .../cfe_internal-update-systemd_units.markdown | 2 ++ .../cfe_internal-update-update_bins.markdown | 2 ++ .../cfe_internal-update-update_policy.markdown | 2 ++ .../cfe_internal-update-update_processes.markdown | 2 ++ .../masterfiles-policy-framework/cfe_internal-update.markdown | 2 ++ .../masterfiles-policy-framework/cfe_internal.markdown | 2 ++ .../masterfiles-policy-framework/controls-cf-hub.markdown | 2 ++ .../masterfiles-policy-framework/controls-cf_agent.markdown | 2 ++ .../masterfiles-policy-framework/controls-cf_execd.markdown | 2 ++ .../masterfiles-policy-framework/controls-cf_monitord.markdown | 2 ++ .../masterfiles-policy-framework/controls-cf_runagent.markdown | 2 ++ .../masterfiles-policy-framework/controls-cf_serverd.markdown | 2 ++ .../masterfiles-policy-framework/controls-def.markdown | 2 ++ .../masterfiles-policy-framework/controls-def_inputs.markdown | 2 ++ .../masterfiles-policy-framework/controls-reports.markdown | 2 ++ .../masterfiles-policy-framework/controls-update_def.markdown | 2 ++ .../controls-update_def_inputs.markdown | 2 ++ .../reference/masterfiles-policy-framework/controls.markdown | 2 ++ .../masterfiles-policy-framework/inventory-any.markdown | 2 ++ .../masterfiles-policy-framework/inventory-debian.markdown | 2 ++ .../masterfiles-policy-framework/inventory-freebsd.markdown | 2 ++ .../masterfiles-policy-framework/inventory-generic.markdown | 2 ++ .../masterfiles-policy-framework/inventory-linux.markdown | 2 ++ .../masterfiles-policy-framework/inventory-lsb.markdown | 2 ++ .../masterfiles-policy-framework/inventory-macos.markdown | 2 ++ .../masterfiles-policy-framework/inventory-os.markdown | 2 ++ .../masterfiles-policy-framework/inventory-redhat.markdown | 2 ++ .../masterfiles-policy-framework/inventory-suse.markdown | 2 ++ .../masterfiles-policy-framework/inventory-windows.markdown | 2 ++ .../reference/masterfiles-policy-framework/inventory.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-autorun.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-bundles.markdown | 2 ++ .../masterfiles-policy-framework/lib-cfe_internal.markdown | 2 ++ .../masterfiles-policy-framework/lib-cfe_internal_hub.markdown | 2 ++ .../lib-cfengine_enterprise_hub_ha.markdown | 2 ++ .../masterfiles-policy-framework/lib-commands.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-common.markdown | 2 ++ .../masterfiles-policy-framework/lib-databases.markdown | 2 ++ .../masterfiles-policy-framework/lib-edit_xml.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-event.markdown | 2 ++ .../masterfiles-policy-framework/lib-examples.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-feature.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-files.markdown | 2 ++ .../lib-guest_environments.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-monitor.markdown | 2 ++ .../masterfiles-policy-framework/lib-packages.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-paths.markdown | 2 ++ .../masterfiles-policy-framework/lib-processes.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-reports.markdown | 2 ++ .../masterfiles-policy-framework/lib-services.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-stdlib.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-storage.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-testing.markdown | 2 ++ .../reference/masterfiles-policy-framework/lib-users.markdown | 2 ++ content/reference/masterfiles-policy-framework/lib-vcs.markdown | 2 ++ content/reference/masterfiles-policy-framework/lib.markdown | 2 ++ .../masterfiles-policy-framework/modules-mustache.markdown | 2 ++ .../modules-packages-vendored.markdown | 2 ++ .../masterfiles-policy-framework/modules-packages.markdown | 2 ++ .../modules-promises-cfengine.py.markdown | 2 ++ .../modules-promises-cfengine.sh.markdown | 2 ++ .../masterfiles-policy-framework/modules-promises.markdown | 2 ++ content/reference/masterfiles-policy-framework/modules.markdown | 2 ++ .../reference/masterfiles-policy-framework/no-distrib.markdown | 2 ++ .../reference/masterfiles-policy-framework/promises.markdown | 2 ++ .../masterfiles-policy-framework/services-autorun.markdown | 2 ++ .../masterfiles-policy-framework/services-main.markdown | 2 ++ .../reference/masterfiles-policy-framework/services.markdown | 2 ++ .../standalone_self_upgrade.markdown | 2 ++ content/reference/masterfiles-policy-framework/update.markdown | 2 ++ content/reference/promise-types/_index.markdown | 2 ++ content/reference/promise-types/access.markdown | 2 ++ content/reference/promise-types/classes.markdown | 2 ++ content/reference/promise-types/commands.markdown | 2 ++ content/reference/promise-types/custom.markdown | 2 ++ content/reference/promise-types/databases.markdown | 2 ++ content/reference/promise-types/defaults.markdown | 2 ++ content/reference/promise-types/files/_index.markdown | 2 ++ content/reference/promise-types/files/edit_line/_index.markdown | 2 ++ .../promise-types/files/edit_line/delete_lines.markdown | 2 ++ .../promise-types/files/edit_line/field_edits.markdown | 2 ++ .../promise-types/files/edit_line/insert_lines.markdown | 2 ++ .../promise-types/files/edit_line/replace_patterns.markdown | 2 ++ content/reference/promise-types/files/edit_xml/_index.markdown | 2 ++ .../reference/promise-types/files/edit_xml/build_xpath.markdown | 2 ++ .../promise-types/files/edit_xml/delete_attribute.markdown | 2 ++ .../reference/promise-types/files/edit_xml/delete_text.markdown | 2 ++ .../reference/promise-types/files/edit_xml/delete_tree.markdown | 2 ++ .../reference/promise-types/files/edit_xml/insert_text.markdown | 2 ++ .../reference/promise-types/files/edit_xml/insert_tree.markdown | 2 ++ .../promise-types/files/edit_xml/set_attribute.markdown | 2 ++ .../reference/promise-types/files/edit_xml/set_text.markdown | 2 ++ content/reference/promise-types/guest_environments.markdown | 2 ++ content/reference/promise-types/measurements.markdown | 2 ++ content/reference/promise-types/meta.markdown | 2 ++ content/reference/promise-types/methods.markdown | 2 ++ content/reference/promise-types/packages-deprecated.markdown | 2 ++ content/reference/promise-types/packages.markdown | 2 ++ content/reference/promise-types/processes.markdown | 2 ++ content/reference/promise-types/reports.markdown | 2 ++ content/reference/promise-types/roles.markdown | 2 ++ content/reference/promise-types/services.markdown | 2 ++ content/reference/promise-types/storage.markdown | 2 ++ content/reference/promise-types/users.markdown | 2 ++ content/reference/promise-types/vars.markdown | 2 ++ content/reference/special-variables/_index.markdown | 2 ++ content/reference/special-variables/connection.markdown | 2 ++ content/reference/special-variables/const.markdown | 2 ++ content/reference/special-variables/def.markdown | 2 ++ content/reference/special-variables/edit.markdown | 2 ++ content/reference/special-variables/match.markdown | 2 ++ content/reference/special-variables/mon.markdown | 2 ++ content/reference/special-variables/sys.markdown | 2 ++ content/reference/special-variables/this.markdown | 2 ++ content/release-notes/_index.markdown | 2 ++ content/release-notes/known-issues.markdown | 2 ++ content/release-notes/legal-and-licenses.markdown | 2 ++ content/release-notes/supported-platforms.markdown | 2 ++ content/release-notes/whatsnew/_index.markdown | 2 ++ content/release-notes/whatsnew/changelog-core.markdown | 2 ++ content/release-notes/whatsnew/changelog-enterprise.markdown | 2 ++ .../whatsnew/changelog-masterfiles-policy-framework.markdown | 2 ++ content/resources/_index.markdown | 2 ++ content/resources/additional-topics/_index.markdown | 2 ++ content/resources/additional-topics/agility.markdown | 2 ++ .../resources/additional-topics/application-management.markdown | 2 ++ .../additional-topics/build-deploy-manage-audit.markdown | 2 ++ content/resources/additional-topics/change-management.markdown | 2 ++ content/resources/additional-topics/cloud-computing.markdown | 2 ++ .../resources/additional-topics/content-driven-policy.markdown | 2 ++ content/resources/additional-topics/devops.markdown | 2 ++ .../resources/additional-topics/distributed-scheduling.markdown | 2 ++ content/resources/additional-topics/file-content.markdown | 2 ++ content/resources/additional-topics/hierarchies.markdown | 2 ++ content/resources/additional-topics/iteration.markdown | 2 ++ content/resources/additional-topics/itil.markdown | 2 ++ content/resources/additional-topics/modularity.markdown | 2 ++ content/resources/additional-topics/open-nebula.markdown | 2 ++ content/resources/additional-topics/orchestration.markdown | 2 ++ content/resources/additional-topics/security.markdown | 2 ++ content/resources/additional-topics/stigs.markdown | 2 ++ content/resources/additional-topics/teamwork.markdown | 2 ++ content/resources/best-practices.markdown | 2 ++ content/resources/external-resources.markdown | 2 ++ content/resources/faq/_index.markdown | 2 ++ content/resources/faq/bootstrap-failed.markdown | 2 ++ content/resources/faq/debugging-slow-queries.markdown | 2 ++ content/resources/faq/enterprise-license.markdown | 2 ++ content/resources/faq/enterprise-report-collection.markdown | 2 ++ content/resources/faq/enterprise-report-filtering.markdown | 2 ++ content/resources/faq/enterprise.markdown | 2 ++ content/resources/faq/fhs.markdown | 2 ++ content/resources/faq/find-public-key-for-host-sha.markdown | 2 ++ content/resources/faq/fix-trust-after-ip-change.markdown | 2 ++ content/resources/faq/fix-undefined-body-error.markdown | 2 ++ content/resources/faq/integrate-custom-policy.markdown | 2 ++ content/resources/faq/manual-execution.markdown | 2 ++ content/resources/faq/mustache-templating.markdown | 2 ++ content/resources/faq/output-email.markdown | 2 ++ content/resources/faq/show-classes-and-vars.markdown | 2 ++ content/resources/faq/tuning-postgresql.markdown | 2 ++ content/resources/faq/unable-to-log-in-mission-portal.markdown | 2 ++ content/resources/faq/uninstall-reinstall.markdown | 2 ++ content/resources/faq/users.markdown | 2 ++ content/resources/faq/variables.markdown | 2 ++ content/resources/faq/what-did-cfengine-change.markdown | 2 ++ content/resources/faq/what-is-promise-locking.markdown | 2 ++ .../resources/faq/why-are-files-not-being-distributed.markdown | 2 ++ .../resources/faq/why-are-remote-agents-not-updating.markdown | 2 ++ content/resources/faq/why-knowledge-management.markdown | 2 ++ content/search.markdown | 2 ++ content/versions.markdown | 2 ++ content/web-ui/_index.markdown | 2 ++ content/web-ui/alerts-and-notifications.markdown | 2 ++ content/web-ui/custom-actions-for-alerts.markdown | 2 ++ content/web-ui/debugging-mission-portal.markdown | 2 ++ content/web-ui/enterprise-reporting/_index.markdown | 2 ++ .../enterprise-reporting/client-initiated-reporting.markdown | 2 ++ .../web-ui/enterprise-reporting/reporting-architecture.markdown | 2 ++ content/web-ui/enterprise-reporting/reporting_ui.markdown | 2 ++ .../enterprise-reporting/sql-queries-enterprise-api.markdown | 2 ++ content/web-ui/federated-reporting.markdown | 2 ++ content/web-ui/health.markdown | 2 ++ content/web-ui/hosts.markdown | 2 ++ content/web-ui/hub_administration/_index.markdown | 2 ++ content/web-ui/hub_administration/adjusting-schedules.markdown | 2 ++ content/web-ui/hub_administration/backup-and-restore.markdown | 2 ++ .../web-ui/hub_administration/custom-https-certificate.markdown | 2 ++ content/web-ui/hub_administration/custom-ldap-port.markdown | 2 ++ .../web-ui/hub_administration/custom-ldaps-certificate.markdown | 2 ++ .../web-ui/hub_administration/decommissioning-hosts.markdown | 2 ++ content/web-ui/hub_administration/enable-plain-http.markdown | 2 ++ .../web-ui/hub_administration/extending-mission-portal.markdown | 2 ++ .../web-ui/hub_administration/extending-query-builder.markdown | 2 ++ content/web-ui/hub_administration/lookup-license-info.markdown | 2 ++ content/web-ui/hub_administration/policy-deployment.markdown | 2 ++ .../web-ui/hub_administration/public-key-distribution.markdown | 2 ++ .../hub_administration/regenerate-self-signed-cert.markdown | 2 ++ content/web-ui/hub_administration/reinstall.markdown | 2 ++ content/web-ui/hub_administration/reset-admin-creds.markdown | 2 ++ content/web-ui/license.markdown | 2 ++ content/web-ui/measurements.markdown | 2 ++ content/web-ui/settings.markdown | 2 ++ 572 files changed, 1144 insertions(+) diff --git a/content/api/_index.markdown b/content/api/_index.markdown index 1115f9dd2..3e1e5d2bc 100644 --- a/content/api/_index.markdown +++ b/content/api/_index.markdown @@ -2,6 +2,8 @@ layout: default title: API sorting: 50 +aliases: + - "/api.html" --- The CFEngine Enterprise API allows HTTP clients to interact with the diff --git a/content/api/enterprise-api-examples/_index.markdown b/content/api/enterprise-api-examples/_index.markdown index cef678e45..aab3a3b7d 100644 --- a/content/api/enterprise-api-examples/_index.markdown +++ b/content/api/enterprise-api-examples/_index.markdown @@ -2,6 +2,8 @@ layout: default title: Enterprise API examples sorting: 6 +aliases: + - "/api-enterprise-api-examples.html" --- * [Check installation status][Checking status] diff --git a/content/api/enterprise-api-examples/browsing-host-information.markdown b/content/api/enterprise-api-examples/browsing-host-information.markdown index 92d07ddec..de7056ca7 100644 --- a/content/api/enterprise-api-examples/browsing-host-information.markdown +++ b/content/api/enterprise-api-examples/browsing-host-information.markdown @@ -2,6 +2,8 @@ layout: default title: Browsing host information sorting: 50 +aliases: + - "/api-enterprise-api-examples-browsing-host-information.html" --- A resource [/api/host][Host REST API#List hosts] is added as an alternative interface for browsing host diff --git a/content/api/enterprise-api-examples/changes-api-usage.markdown b/content/api/enterprise-api-examples/changes-api-usage.markdown index 299da06af..2cdf5fa3c 100644 --- a/content/api/enterprise-api-examples/changes-api-usage.markdown +++ b/content/api/enterprise-api-examples/changes-api-usage.markdown @@ -2,6 +2,8 @@ layout: default title: Tracking changes sorting: 50 +aliases: + - "/api-enterprise-api-examples-changes-api-usage.html" --- Changes REST API allows to track the changes made by cf-agent in the infrastructure. diff --git a/content/api/enterprise-api-examples/checking-status.markdown b/content/api/enterprise-api-examples/checking-status.markdown index 3c9d54bbd..64441edeb 100644 --- a/content/api/enterprise-api-examples/checking-status.markdown +++ b/content/api/enterprise-api-examples/checking-status.markdown @@ -2,6 +2,8 @@ layout: default title: Checking status sorting: 20 +aliases: + - "/api-enterprise-api-examples-checking-status.html" --- You can get basic info about the API by issuing [/api][Status and settings REST API#Get server status]. This status diff --git a/content/api/enterprise-api-examples/managing-settings.markdown b/content/api/enterprise-api-examples/managing-settings.markdown index e1d657627..cf1dd7c11 100644 --- a/content/api/enterprise-api-examples/managing-settings.markdown +++ b/content/api/enterprise-api-examples/managing-settings.markdown @@ -2,6 +2,8 @@ layout: default title: Managing settings sorting: 30 +aliases: + - "/api-enterprise-api-examples-managing-settings.html" --- Settings support two operations, **GET** (view settings) and **POST** diff --git a/content/api/enterprise-api-examples/managing-users-and-roles.markdown b/content/api/enterprise-api-examples/managing-users-and-roles.markdown index 04c446df8..34c7259d3 100644 --- a/content/api/enterprise-api-examples/managing-users-and-roles.markdown +++ b/content/api/enterprise-api-examples/managing-users-and-roles.markdown @@ -2,6 +2,8 @@ layout: default title: Managing users and roles sorting: 40 +aliases: + - "/api-enterprise-api-examples-managing-users-and-roles.html" --- Users and Roles determine who has access to what data from the API. diff --git a/content/api/enterprise-api-examples/sql-queries.markdown b/content/api/enterprise-api-examples/sql-queries.markdown index f72d6e9ed..49249f8d3 100644 --- a/content/api/enterprise-api-examples/sql-queries.markdown +++ b/content/api/enterprise-api-examples/sql-queries.markdown @@ -1,6 +1,8 @@ --- layout: default title: SQL query examples +aliases: + - "/api-enterprise-api-examples-sql-queries.html" --- ### Synchronous Example: Listing hostname and IP for Ubuntu hosts diff --git a/content/api/enterprise-api-ref/_index.markdown b/content/api/enterprise-api-ref/_index.markdown index 565bb4dae..47b6be83a 100644 --- a/content/api/enterprise-api-ref/_index.markdown +++ b/content/api/enterprise-api-ref/_index.markdown @@ -2,6 +2,8 @@ layout: default title: Enterprise API reference sorting: 70 +aliases: + - "/api-enterprise-api-ref.html" --- The Enterprise API is a conventional REST API in the sense that it has a diff --git a/content/api/enterprise-api-ref/actions-api.markdown b/content/api/enterprise-api-ref/actions-api.markdown index 420e5c10b..670d7b47f 100644 --- a/content/api/enterprise-api-ref/actions-api.markdown +++ b/content/api/enterprise-api-ref/actions-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: Actions API +aliases: + - "/api-enterprise-api-ref-actions-api.html" --- Actions API enables you to perform specific actions such a requesting report collection. diff --git a/content/api/enterprise-api-ref/build-api.markdown b/content/api/enterprise-api-ref/build-api.markdown index 329a30b25..82edd0be6 100644 --- a/content/api/enterprise-api-ref/build-api.markdown +++ b/content/api/enterprise-api-ref/build-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: Build API +aliases: + - "/api-enterprise-api-ref-build-api.html" --- The Build API enables you to easily manage policy projects and their respective CFEngine Build modules. diff --git a/content/api/enterprise-api-ref/changes.markdown b/content/api/enterprise-api-ref/changes.markdown index 2278e26e8..78a7aaa8e 100644 --- a/content/api/enterprise-api-ref/changes.markdown +++ b/content/api/enterprise-api-ref/changes.markdown @@ -1,6 +1,8 @@ --- layout: default title: Changes REST API +aliases: + - "/api-enterprise-api-ref-changes.html" --- **Changes API** allows to track changes performed by CFEngine agent in the infrastructure. diff --git a/content/api/enterprise-api-ref/cmdb-api.markdown b/content/api/enterprise-api-ref/cmdb-api.markdown index 1be7842d5..1026f7d8f 100644 --- a/content/api/enterprise-api-ref/cmdb-api.markdown +++ b/content/api/enterprise-api-ref/cmdb-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: CMDB API +aliases: + - "/api-enterprise-api-ref-cmdb-api.html" --- The configuration management database (CMDB) API enables you to manage classes and variables for specific hosts. diff --git a/content/api/enterprise-api-ref/export-import-api.markdown b/content/api/enterprise-api-ref/export-import-api.markdown index 24ce0e75c..42d18d1f4 100644 --- a/content/api/enterprise-api-ref/export-import-api.markdown +++ b/content/api/enterprise-api-ref/export-import-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: Import & export API +aliases: + - "/api-enterprise-api-ref-export-import-api.html" --- Import & export API provides users the ability to transfer Mission Portal data between hubs. diff --git a/content/api/enterprise-api-ref/export-import-compliance-report-api.markdown b/content/api/enterprise-api-ref/export-import-compliance-report-api.markdown index 1f8bbcb9a..0f87d4cfc 100644 --- a/content/api/enterprise-api-ref/export-import-compliance-report-api.markdown +++ b/content/api/enterprise-api-ref/export-import-compliance-report-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: Import & export compliance report API +aliases: + - "/api-enterprise-api-ref-export-import-compliance-report-api.html" --- This provides users the ability to transfer compliance reports between hubs or create reports from a JSON definition file. diff --git a/content/api/enterprise-api-ref/federated-reporting-api.markdown b/content/api/enterprise-api-ref/federated-reporting-api.markdown index a8ae8ad56..b5e01d468 100644 --- a/content/api/enterprise-api-ref/federated-reporting-api.markdown +++ b/content/api/enterprise-api-ref/federated-reporting-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: Federated reporting configuration API +aliases: + - "/api-enterprise-api-ref-federated-reporting-api.html" --- This API is used for configuring hubs so that a single hub can be used to report on any host connected to participating feeder hubs. diff --git a/content/api/enterprise-api-ref/file-changes.markdown b/content/api/enterprise-api-ref/file-changes.markdown index d9e51f19d..a5fb82bab 100644 --- a/content/api/enterprise-api-ref/file-changes.markdown +++ b/content/api/enterprise-api-ref/file-changes.markdown @@ -1,6 +1,8 @@ --- layout: default title: File changes API +aliases: + - "/api-enterprise-api-ref-file-changes.html" --- diff --git a/content/api/enterprise-api-ref/health-diagnostic.markdown b/content/api/enterprise-api-ref/health-diagnostic.markdown index e4e3a0271..dd8c5ad66 100644 --- a/content/api/enterprise-api-ref/health-diagnostic.markdown +++ b/content/api/enterprise-api-ref/health-diagnostic.markdown @@ -1,6 +1,8 @@ --- layout: default title: Health diagnostic API +aliases: + - "/api-enterprise-api-ref-health-diagnostic.html" --- This API provides access to health diagnostic information. diff --git a/content/api/enterprise-api-ref/host.markdown b/content/api/enterprise-api-ref/host.markdown index 165364d09..611b8b8a3 100644 --- a/content/api/enterprise-api-ref/host.markdown +++ b/content/api/enterprise-api-ref/host.markdown @@ -1,6 +1,8 @@ --- layout: default title: Host REST API +aliases: + - "/api-enterprise-api-ref-host.html" --- Host API allows to access host specific information. diff --git a/content/api/enterprise-api-ref/inventory.markdown b/content/api/enterprise-api-ref/inventory.markdown index 2008d1b1a..b18551f6e 100644 --- a/content/api/enterprise-api-ref/inventory.markdown +++ b/content/api/enterprise-api-ref/inventory.markdown @@ -1,6 +1,8 @@ --- layout: default title: Inventory API +aliases: + - "/api-enterprise-api-ref-inventory.html" --- Inventory API allows to access inventory reports and attributes dictionary. diff --git a/content/api/enterprise-api-ref/ldap-api.markdown b/content/api/enterprise-api-ref/ldap-api.markdown index da85e15c3..59f24c3ca 100644 --- a/content/api/enterprise-api-ref/ldap-api.markdown +++ b/content/api/enterprise-api-ref/ldap-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: LDAP authentication API +aliases: + - "/api-enterprise-api-ref-ldap-api.html" --- LDAP authentication API allows to check ldap user credentials and change LDAP settings. diff --git a/content/api/enterprise-api-ref/personal-groups.markdown b/content/api/enterprise-api-ref/personal-groups.markdown index 992552143..cd4b9a692 100644 --- a/content/api/enterprise-api-ref/personal-groups.markdown +++ b/content/api/enterprise-api-ref/personal-groups.markdown @@ -1,6 +1,8 @@ --- layout: default title: Personal groups API +aliases: + - "/api-enterprise-api-ref-personal-groups.html" --- The personal groups API enables creating host groups based on host filters (the same ones used in inventory reports). diff --git a/content/api/enterprise-api-ref/query.markdown b/content/api/enterprise-api-ref/query.markdown index 2409a556a..d5e741d52 100644 --- a/content/api/enterprise-api-ref/query.markdown +++ b/content/api/enterprise-api-ref/query.markdown @@ -1,6 +1,8 @@ --- layout: default title: Query REST API +aliases: + - "/api-enterprise-api-ref-query.html" --- In case of a need for full flexibility, Query API allow users to execute SQL queries on CFEngine Database. diff --git a/content/api/enterprise-api-ref/shared-groups.markdown b/content/api/enterprise-api-ref/shared-groups.markdown index e7a9062a3..79c2bd0ac 100644 --- a/content/api/enterprise-api-ref/shared-groups.markdown +++ b/content/api/enterprise-api-ref/shared-groups.markdown @@ -1,6 +1,8 @@ --- layout: default title: Shared groups API +aliases: + - "/api-enterprise-api-ref-shared-groups.html" --- The shared groups API enables creating host groups based on host filters (the same ones used in inventory) and assigning CMDB data to them. diff --git a/content/api/enterprise-api-ref/sql-schema/_index.markdown b/content/api/enterprise-api-ref/sql-schema/_index.markdown index 70d13447b..7ef27c3dc 100644 --- a/content/api/enterprise-api-ref/sql-schema/_index.markdown +++ b/content/api/enterprise-api-ref/sql-schema/_index.markdown @@ -1,6 +1,8 @@ --- layout: default title: SQL schema +aliases: + - "/api-enterprise-api-ref-sql-schema.html" --- CFEngine Enterprise uses multiple databases. diff --git a/content/api/enterprise-api-ref/sql-schema/cfdb.markdown b/content/api/enterprise-api-ref/sql-schema/cfdb.markdown index d0a58332e..7504d64cd 100644 --- a/content/api/enterprise-api-ref/sql-schema/cfdb.markdown +++ b/content/api/enterprise-api-ref/sql-schema/cfdb.markdown @@ -1,6 +1,8 @@ --- layout: default title: cfdb +aliases: + - "/api-enterprise-api-ref-sql-schema-cfdb.html" --- CFEngine allows standardized SQL `SELECT` queries to be used with [REST API][Query REST API#Execute SQL query]. diff --git a/content/api/enterprise-api-ref/sql-schema/cfmp.markdown b/content/api/enterprise-api-ref/sql-schema/cfmp.markdown index 67d5d289b..2c67360f3 100644 --- a/content/api/enterprise-api-ref/sql-schema/cfmp.markdown +++ b/content/api/enterprise-api-ref/sql-schema/cfmp.markdown @@ -1,6 +1,8 @@ --- layout: default title: cfmp +aliases: + - "/api-enterprise-api-ref-sql-schema-cfmp.html" --- This database contains Mission Portal related settings not processed by the API. diff --git a/content/api/enterprise-api-ref/sql-schema/cfsettings.markdown b/content/api/enterprise-api-ref/sql-schema/cfsettings.markdown index 7a3536ba9..d44ba883a 100644 --- a/content/api/enterprise-api-ref/sql-schema/cfsettings.markdown +++ b/content/api/enterprise-api-ref/sql-schema/cfsettings.markdown @@ -1,6 +1,8 @@ --- layout: default title: cfsettings +aliases: + - "/api-enterprise-api-ref-sql-schema-cfsettings.html" --- Settings used by Mission Portal APIs, no reported data. diff --git a/content/api/enterprise-api-ref/ssh-keys-api.markdown b/content/api/enterprise-api-ref/ssh-keys-api.markdown index f9fd80cca..0e4f8557d 100644 --- a/content/api/enterprise-api-ref/ssh-keys-api.markdown +++ b/content/api/enterprise-api-ref/ssh-keys-api.markdown @@ -1,6 +1,8 @@ --- layout: default title: SSH keys API +aliases: + - "/api-enterprise-api-ref-ssh-keys-api.html" --- The SSH keys API enables you to generate a key pair that can be used for authorization. diff --git a/content/api/enterprise-api-ref/status-settings.markdown b/content/api/enterprise-api-ref/status-settings.markdown index c6f2d5d9f..ff3361474 100644 --- a/content/api/enterprise-api-ref/status-settings.markdown +++ b/content/api/enterprise-api-ref/status-settings.markdown @@ -1,6 +1,8 @@ --- layout: default title: Status and settings REST API +aliases: + - "/api-enterprise-api-ref-status-settings.html" --- REST API for managing settings, checking hub status. diff --git a/content/api/enterprise-api-ref/two-factor-authentication.markdown b/content/api/enterprise-api-ref/two-factor-authentication.markdown index 700f9da1a..01675336c 100644 --- a/content/api/enterprise-api-ref/two-factor-authentication.markdown +++ b/content/api/enterprise-api-ref/two-factor-authentication.markdown @@ -1,6 +1,8 @@ --- layout: default title: Two-factor authentication API +aliases: + - "/api-enterprise-api-ref-two-factor-authentication.html" --- The Two-factor authentication API enables users to add an extra layer of security to their accounts by requiring a TOTP (time-based one-time password) in addition to their primary credentials. diff --git a/content/api/enterprise-api-ref/users-rbac.markdown b/content/api/enterprise-api-ref/users-rbac.markdown index d955b260a..bb08139c0 100644 --- a/content/api/enterprise-api-ref/users-rbac.markdown +++ b/content/api/enterprise-api-ref/users-rbac.markdown @@ -1,6 +1,8 @@ --- layout: default title: Users and access-control REST API +aliases: + - "/api-enterprise-api-ref-users-rbac.html" --- This REST API allows to manage users allowed to use Mission Portal as also Role Based Access Control settings. diff --git a/content/api/enterprise-api-ref/vcs-settings.markdown b/content/api/enterprise-api-ref/vcs-settings.markdown index 0344e0bbb..475af4e96 100644 --- a/content/api/enterprise-api-ref/vcs-settings.markdown +++ b/content/api/enterprise-api-ref/vcs-settings.markdown @@ -1,6 +1,8 @@ --- layout: default title: VCS settings API +aliases: + - "/api-enterprise-api-ref-vcs-settings.html" --- VCS API for managing version control repository settings. diff --git a/content/api/enterprise-api-ref/web-rbac.markdown b/content/api/enterprise-api-ref/web-rbac.markdown index bb39d99cd..a95563305 100644 --- a/content/api/enterprise-api-ref/web-rbac.markdown +++ b/content/api/enterprise-api-ref/web-rbac.markdown @@ -1,6 +1,8 @@ --- layout: default title: Web RBAC API +aliases: + - "/api-enterprise-api-ref-web-rbac.html" --- Web RBAC API for managing role based access control settings. diff --git a/content/enterprise-cfengine-guide/_index.markdown b/content/enterprise-cfengine-guide/_index.markdown index 1aa9a900c..eba0f645c 100644 --- a/content/enterprise-cfengine-guide/_index.markdown +++ b/content/enterprise-cfengine-guide/_index.markdown @@ -3,6 +3,8 @@ layout: default title: CFEngine Enterprise published: false sorting: 3 +aliases: + - "/enterprise-cfengine-guide.html" --- CFEngine Enterprise is an IT automation platform that uses a model-based approach to manage your infrastructure, and applications at WebScale while providing best-in-class scalability, security, enterprise-wide visibility and control. diff --git a/content/enterprise-cfengine-guide/install-get-started.markdown b/content/enterprise-cfengine-guide/install-get-started.markdown index 2e10b945e..8c81053b8 100644 --- a/content/enterprise-cfengine-guide/install-get-started.markdown +++ b/content/enterprise-cfengine-guide/install-get-started.markdown @@ -3,6 +3,8 @@ layout: default title: Install and get started published: false sorting: 10 +aliases: + - "/enterprise-cfengine-guide-install-get-started.html" --- diff --git a/content/reference/components/cf-promises.markdown b/content/reference/components/cf-promises.markdown index f0e70bf17..deb660e14 100644 --- a/content/reference/components/cf-promises.markdown +++ b/content/reference/components/cf-promises.markdown @@ -25,4 +25,4 @@ are not evaluated prematurely (as you would expect). ## Command reference -[%CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$)%] +{{< CFEngine_include_snippet(cf-promises.help, [\s]*--[a-z], ^$) >}} diff --git a/content/reference/components/cf-reactor.markdown b/content/reference/components/cf-reactor.markdown index b5843d6b4..d0b67ab45 100644 --- a/content/reference/components/cf-reactor.markdown +++ b/content/reference/components/cf-reactor.markdown @@ -27,4 +27,4 @@ refreshes the CMDB data file (`host_specific.json`) for the particular host. ## Command reference -[%CFEngine_include_snippet(cf-reactor.help, [\s]*--[a-z], ^$)%] +{{< CFEngine_include_snippet(cf-reactor.help, [\s]*--[a-z], ^$) >}} diff --git a/content/reference/components/cf-runagent.markdown b/content/reference/components/cf-runagent.markdown index 04d1663da..2ef23bad2 100644 --- a/content/reference/components/cf-runagent.markdown +++ b/content/reference/components/cf-runagent.markdown @@ -26,7 +26,7 @@ matching the bundle names. ## Command reference -[%CFEngine_include_snippet(cf-runagent.help, [\s]*--[a-z], ^$)%] +{{< CFEngine_include_snippet(cf-runagent.help, [\s]*--[a-z], ^$) >}} **See also:** [bundle resource_type in server access promises][access#resource_type], [cfruncommand in body server control][cf-serverd#cfruncommand] diff --git a/content/reference/components/cf-secret.markdown b/content/reference/components/cf-secret.markdown index 0309136cb..e47eb2559 100644 --- a/content/reference/components/cf-secret.markdown +++ b/content/reference/components/cf-secret.markdown @@ -13,7 +13,7 @@ Files can be encrypted for one or more public keys. A matching private key is re ## Command reference -[%CFEngine_include_snippet(cf-secret.help, [\s]*--[a-z], ^$)%] +{{< CFEngine_include_snippet(cf-secret.help, [\s]*--[a-z], ^$) >}} ## Example encrypting and decrypting data @@ -70,11 +70,11 @@ No difference **Policy:** -[%CFEngine_include_example(cf-secret.cf, #\+begin_src\s+cfengine3\s*, .*end_src)%] +{{< CFEngine_include_example(cf-secret.cf, #\+begin_src\s+cfengine3\s*, .*end_src) >}} **Example Output:** -[%CFEngine_include_example(cf-secret.cf, #\+begin_src\s+static_example_output\s*, .*end_src)%] +{{< CFEngine_include_example(cf-secret.cf, #\+begin_src\s+static_example_output\s*, .*end_src) >}} **History:** diff --git a/content/reference/components/cf-serverd.markdown b/content/reference/components/cf-serverd.markdown index 278a8bd21..aa9883e2a 100644 --- a/content/reference/components/cf-serverd.markdown +++ b/content/reference/components/cf-serverd.markdown @@ -33,7 +33,7 @@ affected by `common` and `server` control bodies. ## Command reference -[%CFEngine_include_snippet(cf-serverd.help, [\s]*--[a-z], ^$)%] +{{< CFEngine_include_snippet(cf-serverd.help, [\s]*--[a-z], ^$) >}} ## Control promises @@ -139,7 +139,7 @@ allowlegacyconnects => { } In CFEngine >= 3.9, legacy protocol is disallowed by default, and you have to specify a list of hosts allowed to use the legacy protocol. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** [`protocol_version`][Components#protocol_version] @@ -149,7 +149,7 @@ specify a list of hosts allowed to use the legacy protocol. **Description:** List of TLS ciphers the server accepts both **incoming** and **outgoing** (in the case of client initiated reporting with CFEngine Enterprise) connections using `cf-serverd`. For a list of possible ciphers, see man page for "openssl ciphers". -[%CFEngine_promise_attribute(AES256-GCM-SHA384:AES256-SHA)%] +{{< CFEngine_promise_attribute(AES256-GCM-SHA384:AES256-SHA) >}} **Example:** @@ -181,7 +181,7 @@ this does not do anything as the classic protocol does not support TLS ciphers. **Description:** Minimum TLS version allowed for both **incoming** and **outgoing** (in the case of client initiated reporting with CFEngine Enterprise) connections using `cf-serverd`. -[%CFEngine_promise_attribute(1.0)%] +{{< CFEngine_promise_attribute(1.0) >}} **Example:** diff --git a/content/reference/components/cf-support.markdown b/content/reference/components/cf-support.markdown index 2e7da29a1..2653adbec 100644 --- a/content/reference/components/cf-support.markdown +++ b/content/reference/components/cf-support.markdown @@ -13,7 +13,7 @@ The utility will prompt for an optional support ticket number as well as prompt ## Command reference -[%CFEngine_include_snippet(cf-support.help, [\s]*--[a-z], ^$)%] +{{< CFEngine_include_snippet(cf-support.help, [\s]*--[a-z], ^$) >}} ## History diff --git a/content/reference/functions/TEMPLATE b/content/reference/functions/TEMPLATE index 9d8d703d3..fba9189f0 100644 --- a/content/reference/functions/TEMPLATE +++ b/content/reference/functions/TEMPLATE @@ -5,13 +5,13 @@ published: false tags: [reference, functions, more, tags] --- -[%CFEngine_function_prototype(arguments, here)%] +{{< CFEngine_function_prototype(arguments, here) >}} **Description:** Brief description of function. **Return type:** `data|int|real|string|(i|r|s)list|class|(i|r)range|` -[%CFEngine_function_attributes(arguments, here)%] +{{< CFEngine_function_attributes(arguments, here) >}} Write a detailed description here. @@ -19,15 +19,15 @@ Write a detailed description here. The whole thing: -[%CFEngine_include_snippet(type.cf)%] +{{< CFEngine_include_snippet(type.cf) >}} Or, selected sections: -[%CFEngine_include_snippet(type.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(type.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(type.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(type.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** diff --git a/content/reference/functions/_index.markdown b/content/reference/functions/_index.markdown index b61fe9885..aa689c48f 100644 --- a/content/reference/functions/_index.markdown +++ b/content/reference/functions/_index.markdown @@ -13,7 +13,7 @@ take an arbitrary amount of arguments. They can return scalar (string|int|real|bool), list (slist, ilist, rlist) and data values: -[%CFEngine_include_example(function-return-types.cf)%] +{{< CFEngine_include_example(function-return-types.cf) >}} ### Boolean return type @@ -196,4 +196,4 @@ wants. There are a large number of functions built into CFEngine. The following tables might make it easier for you to find the function you need. -[%CFEngine_function_table()%] +{{< CFEngine_function_table() >}} diff --git a/content/reference/functions/accessedbefore.markdown b/content/reference/functions/accessedbefore.markdown index 488e69a90..4099c7162 100644 --- a/content/reference/functions/accessedbefore.markdown +++ b/content/reference/functions/accessedbefore.markdown @@ -5,26 +5,26 @@ aliases: - "/reference-functions-accessedbefore.html" --- -[%CFEngine_function_prototype(newer,older)%] +{{< CFEngine_function_prototype(newer,older) >}} **Description:** Compares the `atime` fields of two files. Return true if `newer` was accessed before `older`. -[%CFEngine_function_attributes(newer, older)%] +{{< CFEngine_function_attributes(newer, older) >}} **Example:** Prepare: -[%CFEngine_include_snippet(accessedbefore.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(accessedbefore.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(accessedbefore.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(accessedbefore.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(accessedbefore.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(accessedbefore.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `changedbefore()`, `isnewerthan()` diff --git a/content/reference/functions/accumulated.markdown b/content/reference/functions/accumulated.markdown index 726056960..cf8a81699 100644 --- a/content/reference/functions/accumulated.markdown +++ b/content/reference/functions/accumulated.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-accumulated.html" --- -[%CFEngine_function_prototype(years, months, days, hours, minutes, seconds)%] +{{< CFEngine_function_prototype(years, months, days, hours, minutes, seconds) >}} **Description:** Convert an accumulated amount of time into a system representation. diff --git a/content/reference/functions/ago.markdown b/content/reference/functions/ago.markdown index 300d0e160..d4a0b81ac 100644 --- a/content/reference/functions/ago.markdown +++ b/content/reference/functions/ago.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-ago.html" --- -[%CFEngine_function_prototype(years, months, days, hours, minutes, seconds)%] +{{< CFEngine_function_prototype(years, months, days, hours, minutes, seconds) >}} **Description:** Convert a time relative to now to an integer system representation. @@ -45,11 +45,11 @@ Seconds of runtime **Example:** -[%CFEngine_include_snippet(ago.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(ago.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(ago.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(ago.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** diff --git a/content/reference/functions/and.markdown b/content/reference/functions/and.markdown index 0fadb1420..e07736171 100644 --- a/content/reference/functions/and.markdown +++ b/content/reference/functions/and.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-and.html" --- -[%CFEngine_function_prototype(...)%] +{{< CFEngine_function_prototype(...) >}} **Description:** Returns `any` if all arguments evaluate to true and `!any` if any argument evaluates to false. diff --git a/content/reference/functions/basename.markdown b/content/reference/functions/basename.markdown index b2732a0a6..1eae4c744 100644 --- a/content/reference/functions/basename.markdown +++ b/content/reference/functions/basename.markdown @@ -5,17 +5,17 @@ aliases: - "/reference-functions-basename.html" --- -[%CFEngine_function_prototype(filename, optional_extension)%] +{{< CFEngine_function_prototype(filename, optional_extension) >}} **Description:** Retrieves the basename of a filename. This function implements the same behavior of basename program on Unix and Unix-like operating systems. -[%CFEngine_function_attributes(filename, optional_extension)%] +{{< CFEngine_function_attributes(filename, optional_extension) >}} **Example:** -[%CFEngine_include_example(basename.cf)%] +{{< CFEngine_include_example(basename.cf) >}} **History:** diff --git a/content/reference/functions/bundlesmatching.markdown b/content/reference/functions/bundlesmatching.markdown index abec14ee2..a3f4207c7 100644 --- a/content/reference/functions/bundlesmatching.markdown +++ b/content/reference/functions/bundlesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-bundlesmatching.html" --- -[%CFEngine_function_prototype(name, tag1, tag2, ...)%] +{{< CFEngine_function_prototype(name, tag1, tag2, ...) >}} **Description:** Return the list of defined bundles matching `name` and any tags given. Both bundlename and tags are regular expressions. `name` is @@ -25,14 +25,14 @@ to do dynamic inputs and a dynamic bundle call chain. The dynamic chain is constrained by an explicit regular expression to avoid accidental or intentional running of unwanted bundles. -[%CFEngine_function_attributes(name, tag1, tag2, ...)%] +{{< CFEngine_function_attributes(name, tag1, tag2, ...) >}} **Example:** -[%CFEngine_include_snippet(bundlesmatching.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(bundlesmatching.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(bundlesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(bundlesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`findfiles()`][findfiles]. diff --git a/content/reference/functions/bundlestate.markdown b/content/reference/functions/bundlestate.markdown index c6e13c60b..edd09c0ad 100644 --- a/content/reference/functions/bundlestate.markdown +++ b/content/reference/functions/bundlestate.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-bundlestate.html" --- -[%CFEngine_function_prototype(bundlename)%] +{{< CFEngine_function_prototype(bundlename) >}} **Description:** Returns the current evaluation data state for bundle `bundlename`. @@ -22,15 +22,15 @@ The namespace of the bundle should **not** be included if it's in the that). But if the bundle is in another namespace, you must prefix the name with the namespace in the normal `mynamespace:mybundle` fashion. -[%CFEngine_function_attributes(bundlename)%] +{{< CFEngine_function_attributes(bundlename) >}} **Example:** -[%CFEngine_include_snippet(bundlestate.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(bundlestate.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(bundlestate.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(bundlestate.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `getindices()`, `classesmatching()`, `variablesmatching()`, `mergedata()`, [template_method][files#template_method], `mustache`, `inline_mustache`, `datastate()` diff --git a/content/reference/functions/callstack_callers.markdown b/content/reference/functions/callstack_callers.markdown index d90fceb09..5fec77df6 100644 --- a/content/reference/functions/callstack_callers.markdown +++ b/content/reference/functions/callstack_callers.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-callstack_callers.html" --- -[%CFEngine_function_prototype()%] +{{< CFEngine_function_prototype() >}} **Description:** Return the call stack for the current promise. -[%CFEngine_function_attributes()%] +{{< CFEngine_function_attributes() >}} This is a call stack inspection function and the specific content may be tied to a specific CFEngine version. Using it requires writing code that takes the diff --git a/content/reference/functions/callstack_promisers.markdown b/content/reference/functions/callstack_promisers.markdown index 8ebc20e3c..08eb9c99b 100644 --- a/content/reference/functions/callstack_promisers.markdown +++ b/content/reference/functions/callstack_promisers.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-callstack_promisers.html" --- -[%CFEngine_function_prototype()%] +{{< CFEngine_function_prototype() >}} **Description:** Return the promisers along the call stack for the current promise. -[%CFEngine_function_attributes()%] +{{< CFEngine_function_attributes() >}} This is a call stack inspection function and the specific content may be tied to a specific CFEngine version. Using it requires writing code that takes the diff --git a/content/reference/functions/canonify.markdown b/content/reference/functions/canonify.markdown index e255c267d..484cf3efb 100644 --- a/content/reference/functions/canonify.markdown +++ b/content/reference/functions/canonify.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-canonify.html" --- -[%CFEngine_function_prototype(text)%] +{{< CFEngine_function_prototype(text) >}} **Description:** Convert an arbitrary string `text` into a legal class name. This function turns arbitrary text into class data. -[%CFEngine_function_attributes(text)%] +{{< CFEngine_function_attributes(text) >}} **Example:** -[%CFEngine_include_snippet(canonify.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(canonify.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(canonify.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(canonify.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [classify()][classify], `canonifyuniquely()`. diff --git a/content/reference/functions/canonifyuniquely.markdown b/content/reference/functions/canonifyuniquely.markdown index b4f62b30f..a08f75615 100644 --- a/content/reference/functions/canonifyuniquely.markdown +++ b/content/reference/functions/canonifyuniquely.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-canonifyuniquely.html" --- -[%CFEngine_function_prototype(text)%] +{{< CFEngine_function_prototype(text) >}} **Description:** Convert an arbitrary string `text` into a unique legal class name. @@ -18,7 +18,7 @@ A common use case is when you need unique array keys for each file in a list, but files in the list may have the same name when `canonify`-ed. -[%CFEngine_function_attributes(text)%] +{{< CFEngine_function_attributes(text) >}} **Example:** diff --git a/content/reference/functions/cf_version_after.markdown b/content/reference/functions/cf_version_after.markdown index 10830d3c5..ae7a7ab2e 100644 --- a/content/reference/functions/cf_version_after.markdown +++ b/content/reference/functions/cf_version_after.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-cf_version_after.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Returns `true` if local CFEngine version is newer than specified `string`. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** -[%CFEngine_include_snippet(cf_version_after.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_after.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(cf_version_after.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_after.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `version_compare()`, `cf_version_maximum()`, `cf_version_minimum()`, `cf_version_before()`, `cf_version_at()`, `cf_version_between()`. diff --git a/content/reference/functions/cf_version_at.markdown b/content/reference/functions/cf_version_at.markdown index d3b2b4383..df36147c4 100644 --- a/content/reference/functions/cf_version_at.markdown +++ b/content/reference/functions/cf_version_at.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-cf_version_at.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Returns `true` if local CFEngine version is the same as specified `string`. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** -[%CFEngine_include_snippet(cf_version_at.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_at.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(cf_version_at.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_at.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `version_compare()`, `cf_version_maximum()`, `cf_version_minimum()`, `cf_version_after()`, `cf_version_before()`, `cf_version_between()`. diff --git a/content/reference/functions/cf_version_before.markdown b/content/reference/functions/cf_version_before.markdown index ee20020ce..d8a84a6ad 100644 --- a/content/reference/functions/cf_version_before.markdown +++ b/content/reference/functions/cf_version_before.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-cf_version_before.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Returns `true` if local CFEngine version is older than specified `string`. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** -[%CFEngine_include_snippet(cf_version_before.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_before.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(cf_version_before.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_before.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `version_compare()`, `cf_version_maximum()`, `cf_version_minimum()`, `cf_version_after()`, `cf_version_at()`, `cf_version_between()`. diff --git a/content/reference/functions/cf_version_between.markdown b/content/reference/functions/cf_version_between.markdown index 906c13786..c66d7d8f2 100644 --- a/content/reference/functions/cf_version_between.markdown +++ b/content/reference/functions/cf_version_between.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-cf_version_between.html" --- -[%CFEngine_function_prototype(string, string)%] +{{< CFEngine_function_prototype(string, string) >}} **Description:** Returns `true` if local CFEngine version is between the first `string` and the second `string`. This function is inclusive. -[%CFEngine_function_attributes(string, string)%] +{{< CFEngine_function_attributes(string, string) >}} **Example:** -[%CFEngine_include_snippet(cf_version_between.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_between.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(cf_version_between.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_between.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `version_compare()`, `cf_version_maximum()`, `cf_version_minimum()`, `cf_version_after()`, `cf_version_before()`, `cf_version_at()`. diff --git a/content/reference/functions/cf_version_maximum.markdown b/content/reference/functions/cf_version_maximum.markdown index 4243537f2..654b9c789 100644 --- a/content/reference/functions/cf_version_maximum.markdown +++ b/content/reference/functions/cf_version_maximum.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-cf_version_maximum.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Returns `true` if local CFEngine version is the same or older than specified `string`. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** -[%CFEngine_include_snippet(cf_version_maximum.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_maximum.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(cf_version_maximum.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_maximum.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `version_compare()`, `cf_version_minimum()`, `cf_version_after()`, `cf_version_before()`, `cf_version_at()`, `cf_version_between()`. diff --git a/content/reference/functions/cf_version_minimum.markdown b/content/reference/functions/cf_version_minimum.markdown index 87ddf2f97..d9d8d772b 100644 --- a/content/reference/functions/cf_version_minimum.markdown +++ b/content/reference/functions/cf_version_minimum.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-cf_version_minimum.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Returns `true` if local CFEngine version is newer than or equal to specified `string`. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** -[%CFEngine_include_snippet(cf_version_minimum.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_minimum.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(cf_version_minimum.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(cf_version_minimum.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `version_compare()`, `cf_version_maximum()`, `cf_version_after()`, `cf_version_before()`, `cf_version_at()`, `cf_version_between()`. diff --git a/content/reference/functions/changedbefore.markdown b/content/reference/functions/changedbefore.markdown index be9c2bec3..5c7b5524c 100644 --- a/content/reference/functions/changedbefore.markdown +++ b/content/reference/functions/changedbefore.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-changedbefore.html" --- -[%CFEngine_function_prototype(newer,older)%] +{{< CFEngine_function_prototype(newer,older) >}} **Description:** Compares the `ctime` fields of two files. @@ -15,7 +15,7 @@ Change times include both file permissions and file contents. Comparisons like this are normally used for updating files (like the 'make' command). -[%CFEngine_function_attributes(newer, older)%] +{{< CFEngine_function_attributes(newer, older) >}} **Example:** diff --git a/content/reference/functions/classesmatching.markdown b/content/reference/functions/classesmatching.markdown index e195b92a5..6c2ea8895 100644 --- a/content/reference/functions/classesmatching.markdown +++ b/content/reference/functions/classesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-classesmatching.html" --- -[%CFEngine_function_prototype(name, tag1, tag2, ...)%] +{{< CFEngine_function_prototype(name, tag1, tag2, ...) >}} **Description:** Return the list of set classes matching `name` and any tags given. Both `name` and tags are regular expressions. `name` is required, tags @@ -21,16 +21,16 @@ using the [`meta`][Promise types#meta] attribute. If no classes match `name` and any tags given then an empty list is returned. -[%CFEngine_function_attributes(name, tag1, tag2, ...)%] +{{< CFEngine_function_attributes(name, tag1, tag2, ...) >}} **Example:** -[%CFEngine_include_snippet(classesmatching.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(classesmatching.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(classesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(classesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [variablesmatching()][variablesmatching], [bundlesmatching()][bundlesmatching], [classes defined via augments][Augments#classes], [classmatch()][classmatch], [countclassesmatching()][countclassesmatching] diff --git a/content/reference/functions/classfiltercsv.markdown b/content/reference/functions/classfiltercsv.markdown index a2ef33117..183283e2a 100644 --- a/content/reference/functions/classfiltercsv.markdown +++ b/content/reference/functions/classfiltercsv.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-classfiltercsv.html" --- -[%CFEngine_function_prototype(filename, has_header, class_column, optional_sort_column)%] +{{< CFEngine_function_prototype(filename, has_header, class_column, optional_sort_column) >}} **Description:** Parses CSV data from an [RFC 4180](http://www.ietf.org/rfc/rfc4180.txt) compliant file `filename` (`CRLF` line endings required), and returns a data variable that is @@ -18,21 +18,21 @@ given column. Both `class_column` and `optional_sort_column` must be integer indices starting from `0`, and must be at most the total amount of columns minus `1`. -[%CFEngine_function_attributes(filename, has_header, class_column, optional_sort_column)%] +{{< CFEngine_function_attributes(filename, has_header, class_column, optional_sort_column) >}} **Example:** **Prepare CSV:** -[%CFEngine_include_snippet(classfiltercsv.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(classfiltercsv.cf, #\+begin_src prep, .*end_src) >}} **Policy:** -[%CFEngine_include_snippet(classfiltercsv.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(classfiltercsv.cf, #\+begin_src cfengine3, .*end_src) >}} **Output:** -[%CFEngine_include_snippet(classfiltercsv.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(classfiltercsv.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/classify.markdown b/content/reference/functions/classify.markdown index 4b75a16f0..83b43d007 100644 --- a/content/reference/functions/classify.markdown +++ b/content/reference/functions/classify.markdown @@ -5,14 +5,14 @@ aliases: - "/reference-functions-classify.html" --- -[%CFEngine_function_prototype(text)%] +{{< CFEngine_function_prototype(text) >}} **Description:** Returns whether the canonicalization of `text` is a currently set class. This is useful for transforming variables into classes. -[%CFEngine_function_attributes(text)%] +{{< CFEngine_function_attributes(text) >}} **Example:** diff --git a/content/reference/functions/classmatch.markdown b/content/reference/functions/classmatch.markdown index 17b66a3ee..582dfee91 100644 --- a/content/reference/functions/classmatch.markdown +++ b/content/reference/functions/classmatch.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-classmatch.html" --- -[%CFEngine_function_prototype(regex, tag1, tag2, ...)%] +{{< CFEngine_function_prototype(regex, tag1, tag2, ...) >}} **Description:** Tests whether `regex` matches any currently set class. @@ -14,14 +14,14 @@ currently defined class, otherwise returns false. You can optionally restrict the search by tags, which you can list after the regular expression. -[%CFEngine_function_attributes(regex, tag1, tag2, ...)%] +{{< CFEngine_function_attributes(regex, tag1, tag2, ...) >}} **Example:** -[%CFEngine_include_snippet(classmatch.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(classmatch.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(classmatch.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(classmatch.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [canonify()][canonify], [classify()][classify], [classesmatching()][classesmatching], [classes defined via augments][Augments#classes], [countclassesmatching()][countclassesmatching] diff --git a/content/reference/functions/concat.markdown b/content/reference/functions/concat.markdown index 84a328066..2de48bf18 100644 --- a/content/reference/functions/concat.markdown +++ b/content/reference/functions/concat.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-concat.html" --- -[%CFEngine_function_prototype(...)%] +{{< CFEngine_function_prototype(...) >}} **Description:** Concatenates all arguments into a string. diff --git a/content/reference/functions/countclassesmatching.markdown b/content/reference/functions/countclassesmatching.markdown index b59660098..969cc4fc3 100644 --- a/content/reference/functions/countclassesmatching.markdown +++ b/content/reference/functions/countclassesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-countclassesmatching.html" --- -[%CFEngine_function_prototype(regex, tag1, tag2, ...)%] +{{< CFEngine_function_prototype(regex, tag1, tag2, ...) >}} **Description:** Count the number of defined classes matching `regex`. @@ -15,14 +15,14 @@ of classes matched. You can optionally restrict the search by tags, which you can list after the regular expression. -[%CFEngine_function_attributes(regex, tag1, tag2, ...)%] +{{< CFEngine_function_attributes(regex, tag1, tag2, ...) >}} **Example:** -[%CFEngine_include_snippet(countclassesmatching.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(countclassesmatching.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(countclassesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(countclassesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [classes defined via augments][Augments#classes], [classmatch()][classmatch], [classesmatching()][classesmatching] diff --git a/content/reference/functions/countlinesmatching.markdown b/content/reference/functions/countlinesmatching.markdown index 92ece0048..5075c46ec 100644 --- a/content/reference/functions/countlinesmatching.markdown +++ b/content/reference/functions/countlinesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-countlinesmatching.html" --- -[%CFEngine_function_prototype(regex, filename)%] +{{< CFEngine_function_prototype(regex, filename) >}} **Description:** Count the number of lines in file `filename` matching `regex`. @@ -14,12 +14,12 @@ This function matches lines in the named file, using an [anchored][anchored] regular expression that should match the whole line, and returns the number of lines matched. -[%CFEngine_function_attributes(regex, filename)%] +{{< CFEngine_function_attributes(regex, filename) >}} **Example:** -[%CFEngine_include_snippet(countlinesmatching.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(countlinesmatching.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(countlinesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(countlinesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/data_expand.markdown b/content/reference/functions/data_expand.markdown index 6edbed42a..f693a88a0 100644 --- a/content/reference/functions/data_expand.markdown +++ b/content/reference/functions/data_expand.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-data_expand.html" --- -[%CFEngine_function_prototype(data_container)%] +{{< CFEngine_function_prototype(data_container) >}} **Description:** Transforms a data container to expand all variable references. @@ -21,21 +21,21 @@ expanded. This function is chiefly useful if you want to read data from an external source and it can contain variable references. -[%CFEngine_function_attributes(data_container)%] +{{< CFEngine_function_attributes(data_container) >}} **Example:** Prepare to run the example policy: -[%CFEngine_include_snippet(data_expand.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(data_expand.cf, #\+begin_src prep, .*end_src) >}} Policy: -[%CFEngine_include_snippet(data_expand.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(data_expand.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(data_expand.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(data_expand.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/data_readstringarray.markdown b/content/reference/functions/data_readstringarray.markdown index 98e31fb5a..110aa3783 100644 --- a/content/reference/functions/data_readstringarray.markdown +++ b/content/reference/functions/data_readstringarray.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-data_readstringarray.html" --- -[%CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes) >}} **Description:** Returns a data container (map) with up to `maxentries`-1 fields from the first `maxbytes` bytes of file @@ -19,21 +19,21 @@ The `comment` field is a multiline regular expression and will strip out unwanted patterns from the file being read, leaving unstripped characters to be split into fields. Using the empty string (`""`) indicates no comments. -[%CFEngine_function_attributes(filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_attributes(filename, comment, split, maxentries, maxbytes) >}} **Example:** Prepare: -[%CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `data_readstringarrayidx()`, `data` diff --git a/content/reference/functions/data_readstringarrayidx.markdown b/content/reference/functions/data_readstringarrayidx.markdown index 8a5bcac22..6dbe0795c 100644 --- a/content/reference/functions/data_readstringarrayidx.markdown +++ b/content/reference/functions/data_readstringarrayidx.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-data_readstringarrayidx.html" --- -[%CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes) >}} **Description:** Returns a data container (array) with up to `maxentries` fields from the first `maxbytes` bytes of file `filename`. @@ -17,21 +17,21 @@ non-identifiers at first field (e.g. duplicates or names with spaces), unlike The `comment` field will strip out unwanted patterns from the file being read, leaving unstripped characters to be split into fields. Using the empty string (`""`) indicates no comments. -[%CFEngine_function_attributes(filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_attributes(filename, comment, split, maxentries, maxbytes) >}} **Example:** Prepare: -[%CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(data_readstringarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `data_readstringarray()`, `data` diff --git a/content/reference/functions/data_regextract.markdown b/content/reference/functions/data_regextract.markdown index 6f9719b37..cb43c19eb 100644 --- a/content/reference/functions/data_regextract.markdown +++ b/content/reference/functions/data_regextract.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-data_regextract.html" --- -[%CFEngine_function_prototype(regex, string)%] +{{< CFEngine_function_prototype(regex, string) >}} **Description:** Returns a data container filled with backreferences and named captures if the *multiline* [anchored][anchored] `regex` matches the @@ -38,15 +38,15 @@ PCRE named captures are described in http://pcre.org/pcre.txt and several syntax Since the regular expression is run with /dotall/ and /multiline/ modes, to match the end of a line, use ```[^\n]*``` instead of ```$```. -[%CFEngine_function_attributes(regex, string)%] +{{< CFEngine_function_attributes(regex, string) >}} **Example:** -[%CFEngine_include_snippet(data_regextract.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(data_regextract.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(data_regextract.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(data_regextract.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/data_sysctlvalues.markdown b/content/reference/functions/data_sysctlvalues.markdown index 796c0e168..808272478 100644 --- a/content/reference/functions/data_sysctlvalues.markdown +++ b/content/reference/functions/data_sysctlvalues.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-data_sysctlvalues.html" --- -[%CFEngine_function_prototype()%] +{{< CFEngine_function_prototype() >}} **Description:** Returns all sysctl values using `/proc/sys`. -[%CFEngine_function_attributes()%] +{{< CFEngine_function_attributes() >}} **Example:** Policy: -[%CFEngine_include_example(data_sysctlvalues.cf, #\+begin_src\s+cfengine3, .*end_src)%] +{{< CFEngine_include_example(data_sysctlvalues.cf, #\+begin_src\s+cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(data_sysctlvalues.cf, #\+begin_src\s+mock_example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(data_sysctlvalues.cf, #\+begin_src\s+mock_example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/datastate.markdown b/content/reference/functions/datastate.markdown index 4639b87c1..27fc28f4b 100644 --- a/content/reference/functions/datastate.markdown +++ b/content/reference/functions/datastate.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-datastate.html" --- -[%CFEngine_function_prototype()%] +{{< CFEngine_function_prototype() >}} **Description:** Returns the current evaluation data state. @@ -23,15 +23,15 @@ clearer. Mustache templates (see [template_method][files#template_method]), if not given a `template_data`, will use the output of `datastate()` as their input. -[%CFEngine_function_attributes()%] +{{< CFEngine_function_attributes() >}} **Example:** -[%CFEngine_include_snippet(datastate.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(datastate.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(datastate.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(datastate.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `getindices()`, `classesmatching()`, `variablesmatching()`, `mergedata()`, [template_method][files#template_method], `mustache`, `inline_mustache`, `bundlestate()` diff --git a/content/reference/functions/difference.markdown b/content/reference/functions/difference.markdown index 01e89d4a2..192e6141a 100644 --- a/content/reference/functions/difference.markdown +++ b/content/reference/functions/difference.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-difference.html" --- -[%CFEngine_function_prototype(list1, list2)%] +{{< CFEngine_function_prototype(list1, list2) >}} **Description:** Returns the unique elements in `list1` that are not in `list2`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list1, list2)%] +{{< CFEngine_function_attributes(list1, list2) >}} **Example:** -[%CFEngine_include_snippet(difference.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(difference.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(difference.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(difference.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/dirname.markdown b/content/reference/functions/dirname.markdown index 23c150388..daac414d7 100644 --- a/content/reference/functions/dirname.markdown +++ b/content/reference/functions/dirname.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-dirname.html" --- -[%CFEngine_function_prototype(path)%] +{{< CFEngine_function_prototype(path) >}} **Description:** Return the parent directory name for given `path`. This function returns the directory name for `path`. If `path` is a directory, then the name of its parent directory is returned. -[%CFEngine_function_attributes(path)%] +{{< CFEngine_function_attributes(path) >}} **Example:** -[%CFEngine_include_snippet(dirname.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(dirname.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(dirname.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(dirname.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/diskfree.markdown b/content/reference/functions/diskfree.markdown index bbaace20b..064835245 100644 --- a/content/reference/functions/diskfree.markdown +++ b/content/reference/functions/diskfree.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-diskfree.html" --- -[%CFEngine_function_prototype(path)%] +{{< CFEngine_function_prototype(path) >}} **Descriptions**: Return the free space (in KB) available on the current partition of `path`. If `path` is not found, this function returns 0. -[%CFEngine_function_attributes(path)%] +{{< CFEngine_function_attributes(path) >}} **Example:** -[%CFEngine_include_snippet(diskfree.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(diskfree.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(diskfree.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(diskfree.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/escape.markdown b/content/reference/functions/escape.markdown index e740aa287..980a0f8c5 100644 --- a/content/reference/functions/escape.markdown +++ b/content/reference/functions/escape.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-escape.html" --- -[%CFEngine_function_prototype(text)%] +{{< CFEngine_function_prototype(text) >}} **Description:** Escape regular expression characters in `text`. @@ -14,16 +14,16 @@ expression is required, but the literal string contains special characters. The function simply 'escapes' all the regular expression characters, so that you do not have to. -[%CFEngine_function_attributes(path)%] +{{< CFEngine_function_attributes(path) >}} **Example:** -[%CFEngine_include_snippet(escape.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(escape.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(escape.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(escape.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} In this example, the string "192.168.2.1" is "escaped" to be equivalent to "192\\.168\\.2\\.1", because without the backslashes, the regular expression diff --git a/content/reference/functions/eval.markdown b/content/reference/functions/eval.markdown index fe2d3eb45..1f9ecb025 100644 --- a/content/reference/functions/eval.markdown +++ b/content/reference/functions/eval.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-eval.html" --- -[%CFEngine_function_prototype(expression, mode, options)%] +{{< CFEngine_function_prototype(expression, mode, options) >}} **Description:** Returns `expression` evaluated according to `mode` and `options`. Currently only the `math` and `class` modes with @@ -75,11 +75,11 @@ The following functions can be used, with parentheses: - `abs`: absolute value - `step`: 0 if the argument is negative, 1 otherwise -[%CFEngine_function_attributes(expression, mode, options)%] +{{< CFEngine_function_attributes(expression, mode, options) >}} **Example:** -[%CFEngine_include_example(eval.cf)%] +{{< CFEngine_include_example(eval.cf) >}} **History:** diff --git a/content/reference/functions/every.markdown b/content/reference/functions/every.markdown index 6c36fd97c..008959ca3 100644 --- a/content/reference/functions/every.markdown +++ b/content/reference/functions/every.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-every.html" --- -[%CFEngine_function_prototype(regex, list)%] +{{< CFEngine_function_prototype(regex, list) >}} **Description:** Returns whether every element in the variable `list` matches the [unanchored][unanchored] `regex`. @@ -22,11 +22,11 @@ list. **Example:** -[%CFEngine_include_snippet(every.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(every.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(every.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(every.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/execresult.markdown b/content/reference/functions/execresult.markdown index f1898c92f..fb02dd57d 100644 --- a/content/reference/functions/execresult.markdown +++ b/content/reference/functions/execresult.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-execresult.html" --- -[%CFEngine_function_prototype(command, shell, output)%] +{{< CFEngine_function_prototype(command, shell, output) >}} **Description:** Execute `command` and return output (both `stdout` and `stderr`) as `string`. @@ -20,20 +20,20 @@ potential security issue. The optional `output` argument allows you to select which output will be included, betweeen `stdout`, `stderr`, or `both`. The default is `both`. -[%CFEngine_function_attributes(command, shell, output)%] +{{< CFEngine_function_attributes(command, shell, output) >}} **Example:** Prepare: -[%CFEngine_include_snippet(execresult.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(execresult.cf, #\+begin_src prep, .*end_src) >}} Policy: -[%CFEngine_include_snippet(execresult.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(execresult.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(execresult.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(execresult.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** you should never use this function to execute commands that make changes to the system, or perform lengthy computations. Such an diff --git a/content/reference/functions/execresult_as_data.markdown b/content/reference/functions/execresult_as_data.markdown index d93cb6159..4b27b4ce4 100644 --- a/content/reference/functions/execresult_as_data.markdown +++ b/content/reference/functions/execresult_as_data.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-execresult_as_data.html" --- -[%CFEngine_function_prototype(command, shell, output)%] +{{< CFEngine_function_prototype(command, shell, output) >}} **Description:** Execute `command` and return a data container including command output and exit code. @@ -13,17 +13,17 @@ Functions in the same way as [`execresult()`][execresult], and takes the same pa Unlike [`execresult()`][execresult], and [`returnszero()`][returnszero], this function allows you to test, store, or inspect both exit code and output from the same command execution. -[%CFEngine_function_attributes(command, shell, output)%] +{{< CFEngine_function_attributes(command, shell, output) >}} **Example:** Policy: -[%CFEngine_include_snippet(execresult_as_data.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(execresult_as_data.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(execresult_as_data.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(execresult_as_data.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** you should never use this function to execute commands that make changes to the system, or perform lengthy computations. Consider using diff --git a/content/reference/functions/expandrange.markdown b/content/reference/functions/expandrange.markdown index e8f58eb21..c3faba7fd 100644 --- a/content/reference/functions/expandrange.markdown +++ b/content/reference/functions/expandrange.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-expandrange.html" --- -[%CFEngine_function_prototype(string_template, stepsize)%] +{{< CFEngine_function_prototype(string_template, stepsize) >}} **Description:** Generates a list based on an ordered list of numbers selected from a range of integers, in steps specified by the second argument. @@ -15,7 +15,7 @@ be represented as regular expressions. The list of strings is composed from the in the first argument, and a numerical range in square brackets is replaced by successive numbers from the range. -[%CFEngine_function_attributes(string_template, stepsize)%] +{{< CFEngine_function_attributes(string_template, stepsize) >}} ```cf3 vars: diff --git a/content/reference/functions/file_hash.markdown b/content/reference/functions/file_hash.markdown index a7804e9fd..7d0cf9598 100644 --- a/content/reference/functions/file_hash.markdown +++ b/content/reference/functions/file_hash.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-file_hash.html" --- -[%CFEngine_function_prototype(file, algorithm)%] +{{< CFEngine_function_prototype(file, algorithm) >}} **Description:** Return the hash of `file` using the hash `algorithm`. @@ -17,21 +17,21 @@ to get the same answer from this function as you would from every other tool, since it depends on how whitespace and end of file characters are handled. -[%CFEngine_function_attributes(file, algorithm)%] +{{< CFEngine_function_attributes(file, algorithm) >}} **Example:** Prepare: -[%CFEngine_include_snippet(filestat.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(filestat.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(file_hash.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(file_hash.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(file_hash.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(file_hash.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.7.0 diff --git a/content/reference/functions/fileexists.markdown b/content/reference/functions/fileexists.markdown index 210fa7131..a536e6ca2 100644 --- a/content/reference/functions/fileexists.markdown +++ b/content/reference/functions/fileexists.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-fileexists.html" --- -[%CFEngine_function_prototype(filename)%] +{{< CFEngine_function_prototype(filename) >}} **Description:** Returns whether the file `filename` can be accessed. @@ -20,14 +20,14 @@ this function to return true. link target exists. Alternatively use `test` with `returnszero()`, for example `returnszero("/bin/test -f myfile")`. -[%CFEngine_function_attributes(filename)%] +{{< CFEngine_function_attributes(filename) >}} **Example:** -[%CFEngine_include_snippet(fileexists.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(fileexists.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(fileexists.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(fileexists.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `filestat()`, `isdir()`, `islink()`, `isplain()`, `returnszero()` diff --git a/content/reference/functions/filesexist.markdown b/content/reference/functions/filesexist.markdown index e00351dc6..c8b49cd4b 100644 --- a/content/reference/functions/filesexist.markdown +++ b/content/reference/functions/filesexist.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-filesexist.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Returns whether all the files in `list` can be accessed. @@ -21,11 +21,11 @@ this function to return true. **Example:** -[%CFEngine_include_snippet(filesexist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(filesexist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(filesexist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(filesexist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.12. diff --git a/content/reference/functions/filesize.markdown b/content/reference/functions/filesize.markdown index f297b787e..4ae5c0b11 100644 --- a/content/reference/functions/filesize.markdown +++ b/content/reference/functions/filesize.markdown @@ -5,23 +5,23 @@ aliases: - "/reference-functions-filesize.html" --- -[%CFEngine_function_prototype(filename)%] +{{< CFEngine_function_prototype(filename) >}} **Description:** Returns the size of the file `filename` in bytes. If the file object does not exist, the function call fails and the variable does not expand. -[%CFEngine_function_attributes(filename)%] +{{< CFEngine_function_attributes(filename) >}} **Example:** Run: -[%CFEngine_include_snippet(filesize.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(filesize.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(filesize.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(filesize.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.3, Nova 2.0.2 (2010). diff --git a/content/reference/functions/filestat.markdown b/content/reference/functions/filestat.markdown index 6724ea121..51581ce90 100644 --- a/content/reference/functions/filestat.markdown +++ b/content/reference/functions/filestat.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-filestat.html" --- -[%CFEngine_function_prototype(filename, field)%] +{{< CFEngine_function_prototype(filename, field) >}} **Description:** Returns the requested file field `field` for the file object `filename`. @@ -47,15 +47,15 @@ On SELinux, the contexts are the same as what you see with `ls -Z`. Prepare: -[%CFEngine_include_snippet(filestat.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(filestat.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(filestat.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(filestat.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(filestat.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(filestat.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/filter.markdown b/content/reference/functions/filter.markdown index 56e55df82..d11ef3473 100644 --- a/content/reference/functions/filter.markdown +++ b/content/reference/functions/filter.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-filter.html" --- -[%CFEngine_function_prototype(filter, list, is_regex, invert, max_return)%] +{{< CFEngine_function_prototype(filter, list, is_regex, invert, max_return) >}} **Description:** Transforms a list or data container into a list subset thereof. @@ -33,11 +33,11 @@ Invert filter. **Example:** -[%CFEngine_include_snippet(filter.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(filter.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(filter.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(filter.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/findfiles.markdown b/content/reference/functions/findfiles.markdown index 4bf36060a..06b26ff62 100644 --- a/content/reference/functions/findfiles.markdown +++ b/content/reference/functions/findfiles.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-findfiles.html" --- -[%CFEngine_function_prototype(glob1, glob2, ...)%] +{{< CFEngine_function_prototype(glob1, glob2, ...) >}} **Description:** Return the list of files that match any of the given glob patterns. @@ -33,10 +33,10 @@ allows you to do dynamic inputs and a dynamic bundle call chain. **Example:** -[%CFEngine_include_snippet(findfiles.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(findfiles.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(findfiles.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(findfiles.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`bundlesmatching()`][bundlesmatching], [`findfiles_up()`][findfiles_up]. diff --git a/content/reference/functions/findfiles_up.markdown b/content/reference/functions/findfiles_up.markdown index 63af97d93..138d890c0 100644 --- a/content/reference/functions/findfiles_up.markdown +++ b/content/reference/functions/findfiles_up.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-findfiles_up.html" --- -[%CFEngine_function_prototype(path, glob, level)%] +{{< CFEngine_function_prototype(path, glob, level) >}} **Description:** Return a data array of files that match a given glob pattern by searching up the directory tree. @@ -36,15 +36,15 @@ deep. **History:** - Brace expression (i.e., `{foo,bar}`) and negative bracket expressions (i.e., `[!abc]`) were introduced in 3.24. -[%CFEngine_function_attributes(path, glob, level)%] +{{< CFEngine_function_attributes(path, glob, level) >}} **Example:** -[%CFEngine_include_snippet(findfiles_up.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(findfiles_up.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(findfiles_up.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(findfiles_up.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in 3.18. diff --git a/content/reference/functions/findprocesses.markdown b/content/reference/functions/findprocesses.markdown index c1a5d4267..6e0c9ee0a 100644 --- a/content/reference/functions/findprocesses.markdown +++ b/content/reference/functions/findprocesses.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-findprocesses.html" --- -[%CFEngine_function_prototype(regex)%] +{{< CFEngine_function_prototype(regex) >}} **Description:** Return the list of processes that match the given regular expression `regex`. @@ -15,7 +15,7 @@ table. Use `.*sherlock.*` to find all the processes that match `sherlock`. Use `.*\bsherlock\b.*` to exclude partial matches like `sherlock123` (`\b` matches a word boundary). -[%CFEngine_function_attributes(regex)%] +{{< CFEngine_function_attributes(regex) >}} The returned data container is a list of key-value maps. Each one is guaranteed to have the key `pid` with the process ID. The key `line` diff --git a/content/reference/functions/format.markdown b/content/reference/functions/format.markdown index 019176e5a..cfa5aa6ad 100644 --- a/content/reference/functions/format.markdown +++ b/content/reference/functions/format.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-format.html" --- -[%CFEngine_function_prototype(string, ...)%] +{{< CFEngine_function_prototype(string, ...) >}} **Description:** Applies sprintf-style formatting to a given `string`. @@ -23,11 +23,11 @@ format *specifier* contains the *modifiers* `hLqjzt`; or if any format **Example:** -[%CFEngine_include_snippet(format.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(format.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(format.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(format.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Note:** the underlying `sprintf` system call may behave differently on some platforms for some formats. Test carefully. For example, the format `%08s` will use spaces to fill the string up to 8 characters on libc platforms, but on Darwin (Mac OS X) it will use zeroes. According to [SUSv4](http://pubs.opengroup.org/onlinepubs/9699919799/functions/sprintf.html) the behavior is undefined for this specific case. diff --git a/content/reference/functions/getclassmetatags.markdown b/content/reference/functions/getclassmetatags.markdown index 83505e52b..405dc79a0 100644 --- a/content/reference/functions/getclassmetatags.markdown +++ b/content/reference/functions/getclassmetatags.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-getclassmetatags.html" --- -[%CFEngine_function_prototype(classname, optional_tag)%] +{{< CFEngine_function_prototype(classname, optional_tag) >}} **Description:** Returns the list of [`meta`][Promise types#meta] tags for class `classname`. -[%CFEngine_function_attributes(classname, optional_tag)%] +{{< CFEngine_function_attributes(classname, optional_tag) >}} The `optional_tag` can be used to look up a specific tag's value. If you format your tags like `meta => { "mykey=myvalue1", "mykey=myvalue2"}` then the @@ -18,11 +18,11 @@ your tags like `meta => { "mykey=myvalue1", "mykey=myvalue2"}` then the **Example:** -[%CFEngine_include_snippet(getclassmetatags.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getclassmetatags.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getclassmetatags.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getclassmetatags.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/getenv.markdown b/content/reference/functions/getenv.markdown index 6daf5fc37..f55891aa7 100644 --- a/content/reference/functions/getenv.markdown +++ b/content/reference/functions/getenv.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-getenv.html" --- -[%CFEngine_function_prototype(variable, maxlength)%] +{{< CFEngine_function_prototype(variable, maxlength) >}} **Description:** Return the environment variable `variable`, truncated at `maxlength` characters @@ -15,15 +15,15 @@ Returns an empty string if the environment variable is not defined. lead to security issues. Choose a reasonable value based on the environment variable you are querying. -[%CFEngine_function_attributes(variable, maxlength)%] +{{< CFEngine_function_attributes(variable, maxlength) >}} **Example:** -[%CFEngine_include_snippet(getenv.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getenv.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getenv.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getenv.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/getfields.markdown b/content/reference/functions/getfields.markdown index 5938727f7..083b872d9 100644 --- a/content/reference/functions/getfields.markdown +++ b/content/reference/functions/getfields.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-getfields.html" --- -[%CFEngine_function_prototype(regex, filename, split, array_lval)%] +{{< CFEngine_function_prototype(regex, filename, split, array_lval) >}} **Description:** Fill `array_lval` with fields in the lines from file `filename` that match `regex`, split on `split`. @@ -36,11 +36,11 @@ The base name of the array that returns the values. **Example:** -[%CFEngine_include_snippet(getfields.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getfields.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getfields.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getfields.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** This function matches lines (using a regular expression) in the named diff --git a/content/reference/functions/getgid.markdown b/content/reference/functions/getgid.markdown index b21349be7..40d163413 100644 --- a/content/reference/functions/getgid.markdown +++ b/content/reference/functions/getgid.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-getgid.html" --- -[%CFEngine_function_prototype(groupname)%] +{{< CFEngine_function_prototype(groupname) >}} **Description:** Return the integer group id of the group `groupname` on this host. @@ -13,15 +13,15 @@ host. If the named group does not exist, the function will fail and the variable will not be defined. -[%CFEngine_function_attributes(groupname)%] +{{< CFEngine_function_attributes(groupname) >}} **Example:** -[%CFEngine_include_snippet(getgid.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getgid.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getgid.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getgid.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** On Windows, which does not support group ids, the variable will not be diff --git a/content/reference/functions/getindices.markdown b/content/reference/functions/getindices.markdown index 79936a333..540801339 100644 --- a/content/reference/functions/getindices.markdown +++ b/content/reference/functions/getindices.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-getindices.html" --- -[%CFEngine_function_prototype(varref)%] +{{< CFEngine_function_prototype(varref) >}} **Description:** Returns the list of keys in `varref` which can be the name of an array or container. @@ -29,15 +29,15 @@ variable. values. For each such `i` you can then ask for `getindices("varref[i]")` to get a list of the `j` values (and so on, for higher levels of indexing). -[%CFEngine_function_attributes(varref)%] +{{< CFEngine_function_attributes(varref) >}} **Example:** -[%CFEngine_include_snippet(getindices.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getindices.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getindices.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getindices.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** diff --git a/content/reference/functions/getuid.markdown b/content/reference/functions/getuid.markdown index b85930b45..8fd83204c 100644 --- a/content/reference/functions/getuid.markdown +++ b/content/reference/functions/getuid.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-getuid.html" --- -[%CFEngine_function_prototype(username)%] +{{< CFEngine_function_prototype(username) >}} **Description:** Return the integer user id of the named user on this host If the named user is not registered the variable will not be defined. -[%CFEngine_function_attributes(username)%] +{{< CFEngine_function_attributes(username) >}} **Example:** -[%CFEngine_include_snippet(getuid.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getuid.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getuid.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getuid.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** On Windows, which does not support user ids, the variable will not be defined. diff --git a/content/reference/functions/getuserinfo.markdown b/content/reference/functions/getuserinfo.markdown index 0d25d9aeb..9f710e04f 100644 --- a/content/reference/functions/getuserinfo.markdown +++ b/content/reference/functions/getuserinfo.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-getuserinfo.html" --- -[%CFEngine_function_prototype(optional_uidorname)%] +{{< CFEngine_function_prototype(optional_uidorname) >}} **Description:** Return information about the current user or any other, looked up by user ID (UID) or user name. @@ -18,11 +18,11 @@ LDAP, for instance). On platforms that don't support these POSIX functions, the function simply fails. -[%CFEngine_function_attributes(optional_uidorname)%] +{{< CFEngine_function_attributes(optional_uidorname) >}} **Example:** -[%CFEngine_include_snippet(getuserinfo.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getuserinfo.cf, #\+begin_src cfengine3, .*end_src) >}} **Typical Results:** diff --git a/content/reference/functions/getusers.markdown b/content/reference/functions/getusers.markdown index fcd4749ee..40b3e3055 100644 --- a/content/reference/functions/getusers.markdown +++ b/content/reference/functions/getusers.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-getusers.html" --- -[%CFEngine_function_prototype(exclude_names, exclude_ids)%] +{{< CFEngine_function_prototype(exclude_names, exclude_ids) >}} **Description:** Returns a list of all users defined, except those names in the comma separated string of `exclude_names` and the comma separated string of uids in `exclude_ids` -[%CFEngine_function_attributes(exclude_names, exclude_ids)%] +{{< CFEngine_function_attributes(exclude_names, exclude_ids) >}} **Example:** -[%CFEngine_include_snippet(getusers.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getusers.cf, #\+begin_src cfengine3, .*end_src) >}} **Output:** -[%CFEngine_include_snippet(getusers.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getusers.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/getvalues.markdown b/content/reference/functions/getvalues.markdown index 5253d9afc..74ab48dbf 100644 --- a/content/reference/functions/getvalues.markdown +++ b/content/reference/functions/getvalues.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-getvalues.html" --- -[%CFEngine_function_prototype(varref)%] +{{< CFEngine_function_prototype(varref) >}} **Description:** Returns the list of values in `varref` which can be the name of an array or container. @@ -26,15 +26,15 @@ look at the values of `d[k]`, not at the top level of `d`. Make sure you specify the correct scope when supplying the name of the variable. -[%CFEngine_function_attributes(varref)%] +{{< CFEngine_function_attributes(varref) >}} **Example:** -[%CFEngine_include_snippet(getvalues.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getvalues.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getvalues.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getvalues.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/getvariablemetatags.markdown b/content/reference/functions/getvariablemetatags.markdown index 3e39dc2db..0ab97bd41 100644 --- a/content/reference/functions/getvariablemetatags.markdown +++ b/content/reference/functions/getvariablemetatags.markdown @@ -5,14 +5,14 @@ aliases: - "/reference-functions-getvariablemetatags.html" --- -[%CFEngine_function_prototype(varname, optional_tag)%] +{{< CFEngine_function_prototype(varname, optional_tag) >}} **Description:** Returns the list of [`meta`][Promise types#meta] tags for variable `varname`. Make sure you specify the correct scope when supplying the name of the variable. -[%CFEngine_function_attributes(varname, optional_tag)%] +{{< CFEngine_function_attributes(varname, optional_tag) >}} The `optional_tag` can be used to look up a specific tag's value. If you format your tags like `meta => { "mykey=myvalue1", "mykey=myvalue2"}` then the @@ -21,11 +21,11 @@ your tags like `meta => { "mykey=myvalue1", "mykey=myvalue2"}` then the **Example:** -[%CFEngine_include_snippet(getvariablemetatags.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(getvariablemetatags.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(getvariablemetatags.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(getvariablemetatags.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/grep.markdown b/content/reference/functions/grep.markdown index fb63618cb..aaf92997a 100644 --- a/content/reference/functions/grep.markdown +++ b/content/reference/functions/grep.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-grep.html" --- -[%CFEngine_function_prototype(regex, list)%] +{{< CFEngine_function_prototype(regex, list) >}} **Description:** Returns the sub-list if items in `list` matching the [anchored][anchored] regular expression `regex`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(regex, list)%] +{{< CFEngine_function_attributes(regex, list) >}} **Example:** -[%CFEngine_include_snippet(grep.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(grep.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(grep.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(grep.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/groupexists.markdown b/content/reference/functions/groupexists.markdown index 0250d0f65..36ba1fdbb 100644 --- a/content/reference/functions/groupexists.markdown +++ b/content/reference/functions/groupexists.markdown @@ -5,18 +5,18 @@ aliases: - "/reference-functions-groupexists.html" --- -[%CFEngine_function_prototype(group)%] +{{< CFEngine_function_prototype(group) >}} **Description:** Returns whether a group `group` exists on this host. The group may be specified by name or identifier. -[%CFEngine_function_attributes(group)%] +{{< CFEngine_function_attributes(group) >}} **Example:** -[%CFEngine_include_snippet(groupexists.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(groupexists.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(groupexists.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(groupexists.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/hash.markdown b/content/reference/functions/hash.markdown index 21178688c..19866b60e 100644 --- a/content/reference/functions/hash.markdown +++ b/content/reference/functions/hash.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-hash.html" --- -[%CFEngine_function_prototype(input, algorithm)%] +{{< CFEngine_function_prototype(input, algorithm) >}} **Description:** Return the hash of `input` using the hash `algorithm`. @@ -14,14 +14,14 @@ to get the same answer from this function as you would from every other tool, since it depends on how whitespace and end of file characters are handled. -[%CFEngine_function_attributes(input, algorithm)%] +{{< CFEngine_function_attributes(input, algorithm) >}} **Example:** -[%CFEngine_include_snippet(hash.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(hash.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(hash.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(hash.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `file_hash()` diff --git a/content/reference/functions/hash_to_int.markdown b/content/reference/functions/hash_to_int.markdown index 0c05ed1d1..565483393 100644 --- a/content/reference/functions/hash_to_int.markdown +++ b/content/reference/functions/hash_to_int.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-hash_to_int.html" --- -[%CFEngine_function_prototype( lower, upper, string )%] +{{< CFEngine_function_prototype( lower, upper, string ) >}} **Description:** Generates an integer between `lower` and `upper` range based on hash of `string`. @@ -21,11 +21,11 @@ directly. **Example:** -[%CFEngine_include_snippet(hash_to_int.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(hash_to_int.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(hash_to_int.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(hash_to_int.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** diff --git a/content/reference/functions/hashmatch.markdown b/content/reference/functions/hashmatch.markdown index 846f8569d..ef0a4df27 100644 --- a/content/reference/functions/hashmatch.markdown +++ b/content/reference/functions/hashmatch.markdown @@ -5,14 +5,14 @@ aliases: - "/reference-functions-hashmatch.html" --- -[%CFEngine_function_prototype(filename, algorithm, hash)%] +{{< CFEngine_function_prototype(filename, algorithm, hash) >}} **Description:** Compute the hash of file `filename` using the hash `algorithm` and test if it matches `hash`. This function may be used to determine whether a system has a particular version of a binary file (e.g. software patch). -[%CFEngine_function_attributes(filename, algorithm, hash)%] +{{< CFEngine_function_attributes(filename, algorithm, hash) >}} `hash` is an ASCII representation of the hash for comparison. diff --git a/content/reference/functions/host2ip.markdown b/content/reference/functions/host2ip.markdown index 198f26d2c..2ef4bb579 100644 --- a/content/reference/functions/host2ip.markdown +++ b/content/reference/functions/host2ip.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-host2ip.html" --- -[%CFEngine_function_prototype(hostname)%] +{{< CFEngine_function_prototype(hostname) >}} **Description:** Returns the primary name-service IP address for the named host `hostname`. If resolution fails, the input `hostname` is returned (for compatibility reasons). @@ -17,7 +17,7 @@ lookup procedure for a name, so it mimics internal processes and can therefore be used not only to cache multiple lookups in the configuration, but to debug the behavior of the resolver. -[%CFEngine_function_attributes(hostname)%] +{{< CFEngine_function_attributes(hostname) >}} **Example:** diff --git a/content/reference/functions/hostinnetgroup.markdown b/content/reference/functions/hostinnetgroup.markdown index c1152eb7b..fa9de8de2 100644 --- a/content/reference/functions/hostinnetgroup.markdown +++ b/content/reference/functions/hostinnetgroup.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-hostinnetgroup.html" --- -[%CFEngine_function_prototype(netgroup)%] +{{< CFEngine_function_prototype(netgroup) >}} **Description:** True if the current host is in the named `netgroup`. -[%CFEngine_function_attributes(netgroup)%] +{{< CFEngine_function_attributes(netgroup) >}} **Example:** diff --git a/content/reference/functions/hostrange.markdown b/content/reference/functions/hostrange.markdown index d6f501c7e..637f8aa3c 100644 --- a/content/reference/functions/hostrange.markdown +++ b/content/reference/functions/hostrange.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-hostrange.html" --- -[%CFEngine_function_prototype(prefix, range)%] +{{< CFEngine_function_prototype(prefix, range) >}} **Description:** Returns whether the unqualified name of the current host lies in the `range` of enumerated hostnames specified with `prefix`. @@ -20,12 +20,12 @@ numeric part of the unqualified host name and string comparison of `prefix` (lowercase) with the part of the unqualified host name until the last numeric part. -[%CFEngine_function_attributes(prefix, range)%] +{{< CFEngine_function_attributes(prefix, range) >}} **Example:** -[%CFEngine_include_example(hostrange.cf, #\+begin_src\s+cfengine3\s*, .*end_src)%] +{{< CFEngine_include_example(hostrange.cf, #\+begin_src\s+cfengine3\s*, .*end_src) >}} **Example Output:** -[%CFEngine_include_example(hostrange.cf, #\+begin_src\s+static_example_output\s*, .*end_src)%] +{{< CFEngine_include_example(hostrange.cf, #\+begin_src\s+static_example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/hostsseen.markdown b/content/reference/functions/hostsseen.markdown index db69f14b5..10db8be2f 100644 --- a/content/reference/functions/hostsseen.markdown +++ b/content/reference/functions/hostsseen.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-hostsseen.html" --- -[%CFEngine_function_prototype(horizon, seen, field)%] +{{< CFEngine_function_prototype(horizon, seen, field) >}} **Description:** Returns a list with the information `field` of hosts that were seen or not seen within the last `horizon` hours up to `lastseenexpireafter`. @@ -15,7 +15,7 @@ within the number of hours specified in `horizon`. The argument `seen` may be lastseen or notseen, the latter selecting all hosts not observed to have connected within the specified time. -[%CFEngine_function_attributes(horizon, seen, field)%] +{{< CFEngine_function_attributes(horizon, seen, field) >}} **Example:** diff --git a/content/reference/functions/hostswithclass.markdown b/content/reference/functions/hostswithclass.markdown index 7d2c48cca..8aaeab1fc 100644 --- a/content/reference/functions/hostswithclass.markdown +++ b/content/reference/functions/hostswithclass.markdown @@ -7,7 +7,7 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(class, field)%] +{{< CFEngine_function_prototype(class, field) >}} **Description:** Returns a list from the CFEngine Database with the information `field` of hosts on which `classs` is set. @@ -19,7 +19,7 @@ hostnames or ip-addresses of hosts that have a given class. configuration files for (classes of) hosts. Hosts are selected based on the classes set during the most recently collected agent run. -[%CFEngine_function_attributes(class, field)%] +{{< CFEngine_function_attributes(class, field) >}} **Example:** diff --git a/content/reference/functions/hubknowledge.markdown b/content/reference/functions/hubknowledge.markdown index 95e619c5b..9724e1992 100644 --- a/content/reference/functions/hubknowledge.markdown +++ b/content/reference/functions/hubknowledge.markdown @@ -7,7 +7,7 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(id)%] +{{< CFEngine_function_prototype(id) >}} **Description:** Read global knowledge from the CFEngine Database host by `id`. @@ -30,7 +30,7 @@ channel are generated automatically by discovery, unlike `remotescalar` which accesses user defined data. -[%CFEngine_function_attributes(id)%] +{{< CFEngine_function_attributes(id) >}} **Example:** diff --git a/content/reference/functions/ifelse.markdown b/content/reference/functions/ifelse.markdown index 7789fd8a5..612d4c063 100644 --- a/content/reference/functions/ifelse.markdown +++ b/content/reference/functions/ifelse.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-ifelse.html" --- -[%CFEngine_function_prototype(...)%] +{{< CFEngine_function_prototype(...) >}} **Description:** Evaluate each pair of arguments up to the last one as a (`class`, `value`) tuple, returning `value` if `class` is set. diff --git a/content/reference/functions/int.markdown b/content/reference/functions/int.markdown index df05f4c69..a03dd1779 100644 --- a/content/reference/functions/int.markdown +++ b/content/reference/functions/int.markdown @@ -5,17 +5,17 @@ aliases: - "/reference-functions-int.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Convert numeric string to int. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} If `string` represents a floating point number then the decimals are *truncated*. **Example:** -[%CFEngine_include_example(int.cf)%] +{{< CFEngine_include_example(int.cf) >}} **See also:** [`string()`][string] diff --git a/content/reference/functions/intersection.markdown b/content/reference/functions/intersection.markdown index 661c2e125..38d9c5b00 100644 --- a/content/reference/functions/intersection.markdown +++ b/content/reference/functions/intersection.markdown @@ -5,20 +5,20 @@ aliases: - "/reference-functions-intersection.html" --- -[%CFEngine_function_prototype(list1, list2)%] +{{< CFEngine_function_prototype(list1, list2) >}} **Description:** Returns the unique elements in list1 that are also in list2. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list1, list2)%] +{{< CFEngine_function_attributes(list1, list2) >}} **Example:** -[%CFEngine_include_snippet(intersection.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(intersection.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(intersection.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(intersection.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [About collecting functions][Functions#collecting functions], `difference()`. diff --git a/content/reference/functions/ip2host.markdown b/content/reference/functions/ip2host.markdown index e14cfc597..91d42a4e6 100644 --- a/content/reference/functions/ip2host.markdown +++ b/content/reference/functions/ip2host.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-ip2host.html" --- -[%CFEngine_function_prototype(ip)%] +{{< CFEngine_function_prototype(ip) >}} **Description:** Returns the primary name-service host name for the IP address `ip`. @@ -17,15 +17,15 @@ if supported by the resolver library. Note that DNS lookups may take time and thus cause CFEngine agents to wait for responses, slowing their progress significantly. -[%CFEngine_function_attributes(ip)%] +{{< CFEngine_function_attributes(ip) >}} **Example:** -[%CFEngine_include_snippet(ip2host.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(ip2host.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(ip2host.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(ip2host.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `host2ip()`, `iprange()`, `isipinsubnet()` diff --git a/content/reference/functions/iprange.markdown b/content/reference/functions/iprange.markdown index b0b3db3b6..53ecfac90 100644 --- a/content/reference/functions/iprange.markdown +++ b/content/reference/functions/iprange.markdown @@ -5,14 +5,14 @@ aliases: - "/reference-functions-iprange.html" --- -[%CFEngine_function_prototype(range, optional_interface)%] +{{< CFEngine_function_prototype(range, optional_interface) >}} **Description:** Returns whether the current host lies in the range of IP addresses specified, optionally checking only `interface`. Pattern matching based on IP addresses. -[%CFEngine_function_attributes(range, optional_interface)%] +{{< CFEngine_function_attributes(range, optional_interface) >}} **Example:** diff --git a/content/reference/functions/irange.markdown b/content/reference/functions/irange.markdown index cf9637cd8..03e2753d6 100644 --- a/content/reference/functions/irange.markdown +++ b/content/reference/functions/irange.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-irange.html" --- -[%CFEngine_function_prototype(arg1, arg2)%] +{{< CFEngine_function_prototype(arg1, arg2) >}} **Description:** Define a range of integer values for CFEngine internal use. @@ -14,7 +14,7 @@ generally interchangeably say `"1,10"` or `irange("1","10")`. However, if you want to create a range of dates or times, you must use `irange()` if you also use the functions `ago()`, `now()`, `accumulated()`, etc. -[%CFEngine_function_attributes(arg1, arg2)%] +{{< CFEngine_function_attributes(arg1, arg2) >}} **Example:** diff --git a/content/reference/functions/isdir.markdown b/content/reference/functions/isdir.markdown index 0854baebe..1ec2c04ae 100644 --- a/content/reference/functions/isdir.markdown +++ b/content/reference/functions/isdir.markdown @@ -5,20 +5,20 @@ aliases: - "/reference-functions-isdir.html" --- -[%CFEngine_function_prototype(filename)%] +{{< CFEngine_function_prototype(filename) >}} **Description:** Returns whether the named object `filename` is a directory. The CFEngine process must have access to `filename` in order for this to work. -[%CFEngine_function_attributes(filename)%] +{{< CFEngine_function_attributes(filename) >}} **Example:** -[%CFEngine_include_snippet(isdir.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isdir.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isdir.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isdir.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `fileexists()`, `filestat()`, `islink()`, `isplain()`, `returnszero()` diff --git a/content/reference/functions/isexecutable.markdown b/content/reference/functions/isexecutable.markdown index e8a115a60..a8fbea3ee 100644 --- a/content/reference/functions/isexecutable.markdown +++ b/content/reference/functions/isexecutable.markdown @@ -5,18 +5,18 @@ aliases: - "/reference-functions-isexecutable.html" --- -[%CFEngine_function_prototype(filename)%] +{{< CFEngine_function_prototype(filename) >}} **Description:** Returns whether the named object `filename` has execution rights for the current user. -[%CFEngine_function_attributes(filename)%] +{{< CFEngine_function_attributes(filename) >}} **Example:** -[%CFEngine_include_snippet(isexecutable.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isexecutable.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isexecutable.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isexecutable.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.0b1,Nova 2.0.0b1 (2010) diff --git a/content/reference/functions/isgreaterthan.markdown b/content/reference/functions/isgreaterthan.markdown index 65a3fd419..deea5f67c 100644 --- a/content/reference/functions/isgreaterthan.markdown +++ b/content/reference/functions/isgreaterthan.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-isgreaterthan.html" --- -[%CFEngine_function_prototype(value1, value2)%] +{{< CFEngine_function_prototype(value1, value2) >}} **Description:** Returns whether `value1` is greater than `value2`. The comparison is made numerically if possible. If the values are strings, the comparison is lexical (based on C's strcmp()). -[%CFEngine_function_attributes(value1, value2)%] +{{< CFEngine_function_attributes(value1, value2) >}} **Example:** -[%CFEngine_include_snippet(isgreaterthan.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isgreaterthan.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isgreaterthan.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isgreaterthan.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/isipinsubnet.markdown b/content/reference/functions/isipinsubnet.markdown index d695282c3..038d64f9e 100644 --- a/content/reference/functions/isipinsubnet.markdown +++ b/content/reference/functions/isipinsubnet.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-isipinsubnet.html" --- -[%CFEngine_function_prototype(range, ip_address1, ip_address2, ...)%] +{{< CFEngine_function_prototype(range, ip_address1, ip_address2, ...) >}} **Description:** Returns whether the given `range` contains any of the following IP addresses. -[%CFEngine_function_attributes(range, ip_address1, ip_address2, ...)%] +{{< CFEngine_function_attributes(range, ip_address1, ip_address2, ...) >}} **Example:** Run: -[%CFEngine_include_snippet(isipinsubnet.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isipinsubnet.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isipinsubnet.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isipinsubnet.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `iprange()`, `host2ip()`, `ip2host()` diff --git a/content/reference/functions/islessthan.markdown b/content/reference/functions/islessthan.markdown index 419bd402e..cb3921bbe 100644 --- a/content/reference/functions/islessthan.markdown +++ b/content/reference/functions/islessthan.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-islessthan.html" --- -[%CFEngine_function_prototype(value1, value2)%] +{{< CFEngine_function_prototype(value1, value2) >}} **Description:** Returns whether `value1` is less than `value2`. The comparison is made numerically if possible. If the values are strings, the comparison is lexical (based on C's strcmp()). -[%CFEngine_function_attributes(value1, value2)%] +{{< CFEngine_function_attributes(value1, value2) >}} **Example:** -[%CFEngine_include_snippet(islessthan.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(islessthan.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(islessthan.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(islessthan.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`isgreaterthan()`][isgreaterthan]. diff --git a/content/reference/functions/islink.markdown b/content/reference/functions/islink.markdown index 8e713e481..8d7f64353 100644 --- a/content/reference/functions/islink.markdown +++ b/content/reference/functions/islink.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-islink.html" --- -[%CFEngine_function_prototype(filename)%] +{{< CFEngine_function_prototype(filename) >}} **Description:** Returns whether the named object `filename` is a symbolic link. @@ -21,20 +21,20 @@ be detected using this function. expected target, and check if the link target exists. Alternatively use `test` with `returnszero()`, for example `returnszero("/bin/test -f myfile")`. -[%CFEngine_function_attributes(filename)%] +{{< CFEngine_function_attributes(filename) >}} **Example:** Prepare: -[%CFEngine_include_snippet(islink.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(islink.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(islink.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(islink.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(islink.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(islink.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `fileexists()`, `filestat()`, `isdir()`, `isplain()`, `returnszero()` diff --git a/content/reference/functions/isnewerthan.markdown b/content/reference/functions/isnewerthan.markdown index 71147aa93..ad6470487 100644 --- a/content/reference/functions/isnewerthan.markdown +++ b/content/reference/functions/isnewerthan.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-isnewerthan.html" --- -[%CFEngine_function_prototype(newer, older)%] +{{< CFEngine_function_prototype(newer, older) >}} **Description:** Returns whether the file `newer` is newer (modified later) than the file `older`. @@ -13,20 +13,20 @@ than the file `older`. This function compares the modification time (mtime) of the files, referring to changes of content only. -[%CFEngine_function_attributes(newer, older)%] +{{< CFEngine_function_attributes(newer, older) >}} **Example:** Prepare: -[%CFEngine_include_snippet(isnewerthan.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(isnewerthan.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(isnewerthan.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isnewerthan.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isnewerthan.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isnewerthan.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `accessedbefore()`, `changedbefore()` diff --git a/content/reference/functions/isplain.markdown b/content/reference/functions/isplain.markdown index f2ee4297b..9e652631b 100644 --- a/content/reference/functions/isplain.markdown +++ b/content/reference/functions/isplain.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-isplain.html" --- -[%CFEngine_function_prototype(filename)%] +{{< CFEngine_function_prototype(filename) >}} **Description:** Returns whether the named object `filename` is a plain/regular file. -[%CFEngine_function_attributes(filename)%] +{{< CFEngine_function_attributes(filename) >}} **Example:** -[%CFEngine_include_snippet(isplain.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isplain.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isplain.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isplain.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `fileexists()`, `filestat()`, `isdir()`, `islink()`, `returnszero()` diff --git a/content/reference/functions/isreadable.markdown b/content/reference/functions/isreadable.markdown index 50b4b7f0e..571fb846f 100644 --- a/content/reference/functions/isreadable.markdown +++ b/content/reference/functions/isreadable.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-isreadable.html" --- -[%CFEngine_function_prototype(path, timeout)%] +{{< CFEngine_function_prototype(path, timeout) >}} **Description:** Check if a file is readable. @@ -40,11 +40,11 @@ penalty. **Example:** -[%CFEngine_include_snippet(isreadable.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isreadable.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isreadable.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isreadable.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in 3.22. diff --git a/content/reference/functions/isvariable.markdown b/content/reference/functions/isvariable.markdown index 6dd97a9db..c6d1fea49 100644 --- a/content/reference/functions/isvariable.markdown +++ b/content/reference/functions/isvariable.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-isvariable.html" --- -[%CFEngine_function_prototype(var)%] +{{< CFEngine_function_prototype(var) >}} **Description:** Returns whether a variable named `var` is defined. @@ -14,12 +14,12 @@ The variable need only exist. This says nothing about its value. Use are also checked, so this is a way to check if a classic CFEngine array or a data container has a specific key or element. -[%CFEngine_function_attributes(var)%] +{{< CFEngine_function_attributes(var) >}} **Example:** -[%CFEngine_include_snippet(isvariable.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(isvariable.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(isvariable.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(isvariable.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/join.markdown b/content/reference/functions/join.markdown index 721a79d68..9b8567f71 100644 --- a/content/reference/functions/join.markdown +++ b/content/reference/functions/join.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-join.html" --- -[%CFEngine_function_prototype(glue, list)%] +{{< CFEngine_function_prototype(glue, list) >}} **Description:** Join the items of `list` into a string, using the conjunction in `glue`. @@ -14,15 +14,15 @@ join string in first argument. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(glue, list)%] +{{< CFEngine_function_attributes(glue, list) >}} **Example:** -[%CFEngine_include_snippet(join.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(join.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(join.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(join.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/lastnode.markdown b/content/reference/functions/lastnode.markdown index 7a6c09d71..cde30b5f8 100644 --- a/content/reference/functions/lastnode.markdown +++ b/content/reference/functions/lastnode.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-lastnode.html" --- -[%CFEngine_function_prototype(string, separator)%] +{{< CFEngine_function_prototype(string, separator) >}} **Description:** Returns the part of `string` after the last `separator`. @@ -13,15 +13,15 @@ This function returns the final node in a chain, given a regular expression to split on. This is mainly useful for finding leaf-names of files, from a fully qualified path name. -[%CFEngine_function_attributes(string, separator)%] +{{< CFEngine_function_attributes(string, separator) >}} **Example:** -[%CFEngine_include_snippet(lastnode.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(lastnode.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(lastnode.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(lastnode.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`filestat()`][filestat], [`dirname()`][dirname], [`splitstring()`][splitstring]. diff --git a/content/reference/functions/laterthan.markdown b/content/reference/functions/laterthan.markdown index 2dc676eb9..da8667cb1 100644 --- a/content/reference/functions/laterthan.markdown +++ b/content/reference/functions/laterthan.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-laterthan.html" --- -[%CFEngine_function_prototype(year, month, day, hour, minute, second)%] +{{< CFEngine_function_prototype(year, month, day, hour, minute, second) >}} **Description:** Returns whether the current time is later than the given date and time. @@ -13,7 +13,7 @@ date and time. The specified date/time is an absolute date in the local timezone. Note that, unlike some other functions, the month argument is 1-based (i.e. 1 corresponds to January). -[%CFEngine_function_attributes(year, month, day, hour, minute, second)%] +{{< CFEngine_function_attributes(year, month, day, hour, minute, second) >}} **Example:** diff --git a/content/reference/functions/ldaparray.markdown b/content/reference/functions/ldaparray.markdown index 2b696ca44..fad3a850d 100644 --- a/content/reference/functions/ldaparray.markdown +++ b/content/reference/functions/ldaparray.markdown @@ -7,7 +7,7 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(array, uri, dn, filter, scope, security)%] +{{< CFEngine_function_prototype(array, uri, dn, filter, scope, security) >}} **Description:** Fills `array` with the entire LDAP record, and returns whether there was a match for the search. @@ -16,7 +16,7 @@ This function retrieves an entire record with all elements and populates an associative array with the entries. It returns a class that is true if there was a match for the search, and false if nothing was retrieved. -[%CFEngine_function_attributes(array, uri, dn, filter, scope, security)%] +{{< CFEngine_function_attributes(array, uri, dn, filter, scope, security) >}} `dn` specifies the distinguished name, an ldap formatted name built from components, e.g. "dc=cfengine,dc=com". `filter` is an ldap search, e.g. diff --git a/content/reference/functions/ldaplist.markdown b/content/reference/functions/ldaplist.markdown index 6609748b8..30ec01695 100644 --- a/content/reference/functions/ldaplist.markdown +++ b/content/reference/functions/ldaplist.markdown @@ -7,14 +7,14 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(uri, dn, filter, record, scope, security)%] +{{< CFEngine_function_prototype(uri, dn, filter, record, scope, security) >}} **Description:** Returns a list with all named values from multiple ldap records. This function retrieves a single field from all matching LDAP records identified by the search parameters. -[%CFEngine_function_attributes(uri, dn, filter, record, scope, security)%] +{{< CFEngine_function_attributes(uri, dn, filter, record, scope, security) >}} `dn` specifies the distinguished name, an ldap formatted name built from components, e.g. "dc=cfengine,dc=com". `filter` is an ldap search, e.g. diff --git a/content/reference/functions/ldapvalue.markdown b/content/reference/functions/ldapvalue.markdown index d90f2f9a6..e34772748 100644 --- a/content/reference/functions/ldapvalue.markdown +++ b/content/reference/functions/ldapvalue.markdown @@ -7,14 +7,14 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(uri, dn, filter, record, scope, security)%] +{{< CFEngine_function_prototype(uri, dn, filter, record, scope, security) >}} **Description:** Returns the first matching named value from ldap. This function retrieves a single field from a single LDAP record identified by the search parameters. The first matching value it taken. -[%CFEngine_function_attributes(uri, dn, filter, record, scope, security)%] +{{< CFEngine_function_attributes(uri, dn, filter, record, scope, security) >}} `dn` specifies the distinguished name, an ldap formatted name built from components, e.g. "dc=cfengine,dc=com". `filter` is an ldap search, e.g. diff --git a/content/reference/functions/length.markdown b/content/reference/functions/length.markdown index 4461f8807..cd59bd158 100644 --- a/content/reference/functions/length.markdown +++ b/content/reference/functions/length.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-length.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Returns the length of `list`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list)%] +{{< CFEngine_function_attributes(list) >}} **Example:** -[%CFEngine_include_snippet(length.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(length.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(length.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(length.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/lsdir.markdown b/content/reference/functions/lsdir.markdown index 46a3aaf32..8eee5d718 100644 --- a/content/reference/functions/lsdir.markdown +++ b/content/reference/functions/lsdir.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-lsdir.html" --- -[%CFEngine_function_prototype(path, regex, include_base)%] +{{< CFEngine_function_prototype(path, regex, include_base) >}} **Description:** Returns a list of files in the directory `path` matching the regular expression `regex`. If `include_base` is true, full paths are returned, otherwise only names relative to the directory are returned. -[%CFEngine_function_attributes(path, regex, include_base)%] +{{< CFEngine_function_attributes(path, regex, include_base) >}} **Example:** -[%CFEngine_include_snippet(lsdir.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(lsdir.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(lsdir.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(lsdir.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Tips:** diff --git a/content/reference/functions/makerule.markdown b/content/reference/functions/makerule.markdown index 2c52ab5eb..16b8806aa 100644 --- a/content/reference/functions/makerule.markdown +++ b/content/reference/functions/makerule.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-makerule.html" --- -[%CFEngine_function_prototype(target, sources)%] +{{< CFEngine_function_prototype(target, sources) >}} **Description:** Evaluates whether a `target` file needs to be built or rebuilt from one or more `sources` files. @@ -29,7 +29,7 @@ The makerule function emulates the same semantics and sets a class if the target needs to be built or rebuit, i.e. if the top line of an equivalent makefile is true. -[%CFEngine_function_attributes(target, sources)%] +{{< CFEngine_function_attributes(target, sources) >}} The `sources` argument may be either a scalar (indicating a single source) or a list reference or a data container. If the `sources` diff --git a/content/reference/functions/maparray.markdown b/content/reference/functions/maparray.markdown index 500ffadb6..bedc0c637 100644 --- a/content/reference/functions/maparray.markdown +++ b/content/reference/functions/maparray.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-maparray.html" --- -[%CFEngine_function_prototype(pattern, array_or_container)%] +{{< CFEngine_function_prototype(pattern, array_or_container) >}} **Description:** Returns a list with each `array_or_container` element modified by a `pattern`. @@ -28,15 +28,15 @@ value (implicit looping). The order of the array keys is not guaranteed. Use the `sort` function if you need order in the resulting output. -[%CFEngine_function_attributes(pattern, array_or_container)%] +{{< CFEngine_function_attributes(pattern, array_or_container) >}} **Example:** -[%CFEngine_include_snippet(maparray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(maparray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(maparray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(maparray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. The delayed evaluation behavior was introduced in 3.10. diff --git a/content/reference/functions/mapdata.markdown b/content/reference/functions/mapdata.markdown index 6536cc3c9..584579907 100644 --- a/content/reference/functions/mapdata.markdown +++ b/content/reference/functions/mapdata.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-mapdata.html" --- -[%CFEngine_function_prototype(interpretation, pattern, array_or_container)%] +{{< CFEngine_function_prototype(interpretation, pattern, array_or_container) >}} **Description:** Returns a data container holding a JSON array. The array is a map across each element of `array_or_container`, modified by @@ -29,15 +29,15 @@ the example below for an illustration. The order of the keys is not guaranteed. Use the `sort()` function if you need order in the resulting output. -[%CFEngine_function_attributes(interpretation, pattern, array_or_container)%] +{{< CFEngine_function_attributes(interpretation, pattern, array_or_container) >}} **Example:** -[%CFEngine_include_snippet(mapdata.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(mapdata.cf, #\+begin_src cfengine3, .*end_src) >}} Output: (when `show_example` is defined) -[%CFEngine_include_snippet(mapdata.cf, #\+begin_src\s+show_example_example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(mapdata.cf, #\+begin_src\s+show_example_example_output\s*, .*end_src) >}} **json_pipe** @@ -54,11 +54,11 @@ power for advanced cases where the built-in CFEngine functions are not enough. **Example with json_pipe:** -[%CFEngine_include_snippet(mapdata_jsonpipe.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(mapdata_jsonpipe.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(mapdata_jsonpipe.cf, #\+begin_src\s+output\s*, .*end_src)%] +{{< CFEngine_include_snippet(mapdata_jsonpipe.cf, #\+begin_src\s+output\s*, .*end_src) >}} **History:** Was introduced in 3.7.0. `canonify` mode was introduced in 3.9.0. The [collecting function][Functions#collecting functions] behavior was added in 3.9. The `json_pipe` mode was added in 3.9. The delayed evaluation behavior was introduced in 3.10. diff --git a/content/reference/functions/maplist.markdown b/content/reference/functions/maplist.markdown index af732ca19..2e1fc6967 100644 --- a/content/reference/functions/maplist.markdown +++ b/content/reference/functions/maplist.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-maplist.html" --- -[%CFEngine_function_prototype(pattern, list)%] +{{< CFEngine_function_prototype(pattern, list) >}} **Description:** Return a list with each element in `list` modified by a pattern. @@ -18,15 +18,15 @@ The `$(this)` variable expands to the currently processed entry from `list`. This is essentially like the map() function in Perl, and applies to lists. -[%CFEngine_function_attributes(pattern, list)%] +{{< CFEngine_function_attributes(pattern, list) >}} **Example:** -[%CFEngine_include_snippet(maplist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(maplist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(maplist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(maplist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in 3.3.0, Nova 2.2.0 (2011). The [collecting function][Functions#collecting functions] behavior was added in 3.9. The delayed evaluation behavior was introduced in 3.10. diff --git a/content/reference/functions/max.markdown b/content/reference/functions/max.markdown index 248568bec..a1364aae5 100644 --- a/content/reference/functions/max.markdown +++ b/content/reference/functions/max.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-max.html" --- -[%CFEngine_function_prototype(list, sortmode)%] +{{< CFEngine_function_prototype(list, sortmode) >}} **Description:** Return the maximum of the items in `list` according to `sortmode` (same sort modes as in `sort()`). [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list, sortmode)%] +{{< CFEngine_function_attributes(list, sortmode) >}} **Example:** -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.6.0 (2014). `canonify` mode was introduced in 3.9.0. The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/mean.markdown b/content/reference/functions/mean.markdown index a700dd3c3..a59be69e4 100644 --- a/content/reference/functions/mean.markdown +++ b/content/reference/functions/mean.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-mean.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Return the mean of the numbers in `list`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list)%] +{{< CFEngine_function_attributes(list) >}} **Example:** -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.6.0 (2014). The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/mergedata.markdown b/content/reference/functions/mergedata.markdown index 65b10030a..a180d7d07 100644 --- a/content/reference/functions/mergedata.markdown +++ b/content/reference/functions/mergedata.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-mergedata.html" --- -[%CFEngine_function_prototype(one, two, etc)%] +{{< CFEngine_function_prototype(one, two, etc) >}} **Description:** Returns the merger of any named data containers or lists. Can also wrap and unwrap data containers. @@ -32,23 +32,23 @@ traditional list and array data types in CFEngine. - true and false are reserved bare values - In the event of key collision the *last* key merged wins -[%CFEngine_function_attributes()%] +{{< CFEngine_function_attributes() >}} **Example:** -[%CFEngine_include_snippet(mergedata.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(mergedata.cf, #\+begin_src cfengine3, .*end_src) >}} **Output:** -[%CFEngine_include_snippet(mergedata.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(mergedata.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Example:** -[%CFEngine_include_snippet(mergedata-last-key-wins.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(mergedata-last-key-wins.cf, #\+begin_src cfengine3, .*end_src) >}} **Output:** -[%CFEngine_include_snippet(mergedata-last-key-wins.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(mergedata-last-key-wins.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** diff --git a/content/reference/functions/min.markdown b/content/reference/functions/min.markdown index d8f3b6ed5..4a98c40f2 100644 --- a/content/reference/functions/min.markdown +++ b/content/reference/functions/min.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-min.html" --- -[%CFEngine_function_prototype(list, sortmode)%] +{{< CFEngine_function_prototype(list, sortmode) >}} **Description:** Return the minimum of the items in `list` according to `sortmode` (same sort modes as in `sort()`). [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list, sortmode)%] +{{< CFEngine_function_attributes(list, sortmode) >}} **Example:** -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.6.0 (2014). The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/network_connections.markdown b/content/reference/functions/network_connections.markdown index af355ae2c..a2e735334 100644 --- a/content/reference/functions/network_connections.markdown +++ b/content/reference/functions/network_connections.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-network_connections.html" --- -[%CFEngine_function_prototype()%] +{{< CFEngine_function_prototype() >}} **Description:** Return the list of current network connections. -[%CFEngine_function_attributes()%] +{{< CFEngine_function_attributes() >}} The returned data container has four keys: diff --git a/content/reference/functions/none.markdown b/content/reference/functions/none.markdown index 15d28bfb2..cab678d62 100644 --- a/content/reference/functions/none.markdown +++ b/content/reference/functions/none.markdown @@ -5,24 +5,24 @@ aliases: - "/reference-functions-none.html" --- -[%CFEngine_function_prototype(regex, list)%] +{{< CFEngine_function_prototype(regex, list) >}} **Description:** Returns whether no element in `list` matches the regular expression `regex`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(regex, list)%] +{{< CFEngine_function_attributes(regex, list) >}} The regular expression is [unanchored][unanchored]. **Example:** -[%CFEngine_include_snippet(none.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(none.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(none.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(none.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/not.markdown b/content/reference/functions/not.markdown index 4f99679ad..c35f8a40c 100644 --- a/content/reference/functions/not.markdown +++ b/content/reference/functions/not.markdown @@ -5,12 +5,12 @@ aliases: - "/reference-functions-not.html" --- -[%CFEngine_function_prototype(expression)%] +{{< CFEngine_function_prototype(expression) >}} **Description:** Returns `any` if all arguments evaluate to false and `!any` if any argument evaluates to true. -[%CFEngine_function_attributes(expression)%] +{{< CFEngine_function_attributes(expression) >}} **Argument Descriptions:** diff --git a/content/reference/functions/now.markdown b/content/reference/functions/now.markdown index 31b2956bc..7a4fcd9b8 100644 --- a/content/reference/functions/now.markdown +++ b/content/reference/functions/now.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-now.html" --- -[%CFEngine_function_prototype()%] +{{< CFEngine_function_prototype() >}} **Description:** Return the time at which this agent run started in system representation. @@ -77,7 +77,7 @@ body file_select pdf_modified_within_last_year `processes` type promises using ```process_select``` can use this function to select processes based on relative execution time. -[%CFEngine_include_example(processes_define_class_based_on_process_runtime.cf)%] +{{< CFEngine_include_example(processes_define_class_based_on_process_runtime.cf) >}} **See also:** diff --git a/content/reference/functions/nth.markdown b/content/reference/functions/nth.markdown index 57da0311c..9bd009ea9 100644 --- a/content/reference/functions/nth.markdown +++ b/content/reference/functions/nth.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-nth.html" --- -[%CFEngine_function_prototype(list_or_container, position_or_key)%] +{{< CFEngine_function_prototype(list_or_container, position_or_key) >}} **Description:** Returns the element of `list_or_container` at zero-based `position_or_key`. @@ -25,15 +25,15 @@ Since 3.15, Nth supports negative indices when indexing lists, starting from the other end of the list. With a `position_or_key` of `-1`, you will get `4` from the list `[1,2,3,4]`. -[%CFEngine_function_attributes(list_or_container, position_or_key)%] +{{< CFEngine_function_attributes(list_or_container, position_or_key) >}} **Example:** -[%CFEngine_include_snippet(nth.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(nth.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(nth.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(nth.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/on.markdown b/content/reference/functions/on.markdown index e0fd8f0f6..c811a6bf2 100644 --- a/content/reference/functions/on.markdown +++ b/content/reference/functions/on.markdown @@ -5,13 +5,13 @@ aliases: - "/reference-functions-on.html" --- -[%CFEngine_function_prototype(year, month, day, hour, minute, second)%] +{{< CFEngine_function_prototype(year, month, day, hour, minute, second) >}} **Description:** Returns the specified date/time in integer system representation. The specified date/time is an absolute date in the local timezone. -[%CFEngine_function_attributes(year, month, day, hour, minute, second)%] +{{< CFEngine_function_attributes(year, month, day, hour, minute, second) >}} **Example:** diff --git a/content/reference/functions/or.markdown b/content/reference/functions/or.markdown index a561bf8e8..258cdf1f3 100644 --- a/content/reference/functions/or.markdown +++ b/content/reference/functions/or.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-or.html" --- -[%CFEngine_function_prototype(...)%] +{{< CFEngine_function_prototype(...) >}} **Description:** Returns `any` if any argument evaluates to true and `!any` if any argument evaluates to false. diff --git a/content/reference/functions/packagesmatching.markdown b/content/reference/functions/packagesmatching.markdown index 53e0502ef..93aa8a9c7 100644 --- a/content/reference/functions/packagesmatching.markdown +++ b/content/reference/functions/packagesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-packagesmatching.html" --- -[%CFEngine_function_prototype(package_regex, version_regex, arch_regex, method_regex)%] +{{< CFEngine_function_prototype(package_regex, version_regex, arch_regex, method_regex) >}} **Description:** Return a data container with the list of installed packages matching the parameters. @@ -27,7 +27,7 @@ this: ] ``` -[%CFEngine_function_attributes(package_regex, version_regex, arch_regex, method_regex)%] +{{< CFEngine_function_attributes(package_regex, version_regex, arch_regex, method_regex) >}} **IMPORTANT:** The data source used when querying depends on policy configuration. When `package_inventory` in `body common control` is configured, CFEngine will record the packages installed and the package updates available for the configured package modules. @@ -44,7 +44,7 @@ The following code extracts just the package names, then looks for some desired packages, and finally reports if they are installed. -[%CFEngine_include_example(packagesmatching.cf)%] +{{< CFEngine_include_example(packagesmatching.cf) >}} **Refresh rules:** diff --git a/content/reference/functions/packageupdatesmatching.markdown b/content/reference/functions/packageupdatesmatching.markdown index 228251cf8..f3f13f38f 100644 --- a/content/reference/functions/packageupdatesmatching.markdown +++ b/content/reference/functions/packageupdatesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-packageupdatesmatching.html" --- -[%CFEngine_function_prototype(package_regex, version_regex, arch_regex, method_regex)%] +{{< CFEngine_function_prototype(package_regex, version_regex, arch_regex, method_regex) >}} **Description:** Return a data container with the list of available packages matching the parameters. @@ -27,7 +27,7 @@ this: ] ``` -[%CFEngine_function_attributes(package_regex, version_regex, arch_regex, method_regex)%] +{{< CFEngine_function_attributes(package_regex, version_regex, arch_regex, method_regex) >}} **IMPORTANT:** The data source used when querying depends on policy configuration. When `package_inventory` in `body common control` is configured, CFEngine will record the packages installed and the package updates available for the configured package modules. diff --git a/content/reference/functions/parseintarray.markdown b/content/reference/functions/parseintarray.markdown index eb2e381f6..c549cffed 100644 --- a/content/reference/functions/parseintarray.markdown +++ b/content/reference/functions/parseintarray.markdown @@ -32,11 +32,11 @@ split into fields. Using the empty string (`""`) indicates no comments. **Example:** -[%CFEngine_include_snippet(parseintarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(parseintarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(parseintarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(parseintarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.5a1, Nova 2.1.0 (2011** diff --git a/content/reference/functions/parsejson.markdown b/content/reference/functions/parsejson.markdown index 16b9360c9..a37650f80 100644 --- a/content/reference/functions/parsejson.markdown +++ b/content/reference/functions/parsejson.markdown @@ -5,12 +5,12 @@ aliases: - "/reference-functions-parsejson.html" --- -[%CFEngine_function_prototype(json_data)%] +{{< CFEngine_function_prototype(json_data) >}} **Description:** Parses JSON data directly from an inlined string and returns the result as a `data` variable -[%CFEngine_function_attributes(json_data)%] +{{< CFEngine_function_attributes(json_data) >}} Please note that because JSON uses double quotes, it's usually most convenient to use single quotes for the string (CFEngine allows both diff --git a/content/reference/functions/parserealarray.markdown b/content/reference/functions/parserealarray.markdown index a713bbf53..474d815e1 100644 --- a/content/reference/functions/parserealarray.markdown +++ b/content/reference/functions/parserealarray.markdown @@ -33,11 +33,11 @@ split into fields. Using the empty string (`""`) indicates no comments. **Example:** -[%CFEngine_include_snippet(parserealarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(parserealarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(parserealarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(parserealarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.5a1, Nova 2.1.0 (2011) diff --git a/content/reference/functions/parsestringarray.markdown b/content/reference/functions/parsestringarray.markdown index 8a95036b6..56aa2b5ed 100644 --- a/content/reference/functions/parsestringarray.markdown +++ b/content/reference/functions/parsestringarray.markdown @@ -33,11 +33,11 @@ split into fields. Using the empty string (`""`) indicates no comments. **Example:** -[%CFEngine_include_snippet(parsestringarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(parsestringarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(parsestringarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(parsestringarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.5a1, Nova 2.1.0 (2011) diff --git a/content/reference/functions/parsestringarrayidx.markdown b/content/reference/functions/parsestringarrayidx.markdown index bcaf1fc22..22d41d086 100644 --- a/content/reference/functions/parsestringarrayidx.markdown +++ b/content/reference/functions/parsestringarrayidx.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-parsestringarrayidx.html" --- -[%CFEngine_function_prototype(array, input, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_prototype(array, input, comment, split, maxentries, maxbytes) >}} **Description:** Populates the two-dimensional array `array` with up to `maxentries` fields from the first `maxbytes` bytes of the string `input`. @@ -17,14 +17,14 @@ The `comment` field is a multiline regular expression and will strip out unwanted patterns from the file being read, leaving unstripped characters to be split into fields. Using the empty string (`""`) indicates no comments. -[%CFEngine_function_attributes(array, input, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_attributes(array, input, comment, split, maxentries, maxbytes) >}} **Example:** -[%CFEngine_include_snippet(parsestringarrayidx.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(parsestringarrayidx.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(parsestringarrayidx.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(parsestringarrayidx.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.5, Nova 2.1.0 (2011) diff --git a/content/reference/functions/parseyaml.markdown b/content/reference/functions/parseyaml.markdown index 7b01bf450..138a4ea52 100644 --- a/content/reference/functions/parseyaml.markdown +++ b/content/reference/functions/parseyaml.markdown @@ -5,12 +5,12 @@ aliases: - "/reference-functions-parseyaml.html" --- -[%CFEngine_function_prototype(yaml_data)%] +{{< CFEngine_function_prototype(yaml_data) >}} **Description:** Parses YAML data directly from an inlined string and returns the result as a `data` variable -[%CFEngine_function_attributes(yaml_data)%] +{{< CFEngine_function_attributes(yaml_data) >}} Please note that it's usually most convenient to use single quotes for the string (CFEngine allows both types of quotes around a string). diff --git a/content/reference/functions/peerleader.markdown b/content/reference/functions/peerleader.markdown index efc8af2a0..a17d4232f 100644 --- a/content/reference/functions/peerleader.markdown +++ b/content/reference/functions/peerleader.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-peerleader.html" --- -[%CFEngine_function_prototype(filename, regex, groupsize)%] +{{< CFEngine_function_prototype(filename, regex, groupsize) >}} **Description:** Returns the current host's partition peer leader. @@ -38,7 +38,7 @@ fails otherwise. If the current host name (fully qualified or unqualified) is the peer leader, the string `localhost` is used instead of the host name. -[%CFEngine_function_attributes(filename, regex, groupsize)%] +{{< CFEngine_function_attributes(filename, regex, groupsize) >}} `groupsize` must be between 2 and 64 to avoid nonsensical promises. @@ -46,12 +46,12 @@ leader, the string `localhost` is used instead of the host name. Prepare: -[%CFEngine_include_snippet(peerleader.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(peerleader.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(peerleader.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(peerleader.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(peerleader.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(peerleader.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/peerleaders.markdown b/content/reference/functions/peerleaders.markdown index 030f6ae5e..df4544ee7 100644 --- a/content/reference/functions/peerleaders.markdown +++ b/content/reference/functions/peerleaders.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-peerleaders.html" --- -[%CFEngine_function_prototype(filename, regex, groupsize)%] +{{< CFEngine_function_prototype(filename, regex, groupsize) >}} **Description:** Returns a list of partition peer leaders from a file of host names. @@ -35,7 +35,7 @@ The `comment` field is a multiline regular expression and will strip out unwanted patterns from the file being read, leaving unstripped characters to be split into fields. Using the empty string (`""`) indicates no comments. -[%CFEngine_function_attributes(filename, regex, groupsize)%] +{{< CFEngine_function_attributes(filename, regex, groupsize) >}} `groupsize` must be between 2 and 64 to avoid nonsensical promises. @@ -43,12 +43,12 @@ split into fields. Using the empty string (`""`) indicates no comments. Prepare: -[%CFEngine_include_snippet(peerleaders.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(peerleaders.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(peerleaders.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(peerleaders.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(peerleaders.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(peerleaders.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/peers.markdown b/content/reference/functions/peers.markdown index 16aefc16c..96bdbcc4a 100644 --- a/content/reference/functions/peers.markdown +++ b/content/reference/functions/peers.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-peers.html" --- -[%CFEngine_function_prototype(filename, regex, groupsize)%] +{{< CFEngine_function_prototype(filename, regex, groupsize) >}} **Description:** Returns the current host's partition peers (excluding it). @@ -35,7 +35,7 @@ The current host (unqualified or fully qualified) should belong to this file if it is expected to interact with the others. The function returns an empty list otherwise. -[%CFEngine_function_attributes(filename, regex, groupsize)%] +{{< CFEngine_function_attributes(filename, regex, groupsize) >}} `groupsize` must be between 2 and 64 to avoid nonsensical promises. @@ -43,12 +43,12 @@ returns an empty list otherwise. Prepare: -[%CFEngine_include_snippet(peers.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(peers.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(peers.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(peers.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(peers.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(peers.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/processexists.markdown b/content/reference/functions/processexists.markdown index 5efc7a46b..c0bec1525 100644 --- a/content/reference/functions/processexists.markdown +++ b/content/reference/functions/processexists.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-processexists.html" --- -[%CFEngine_function_prototype(regex)%] +{{< CFEngine_function_prototype(regex) >}} **Description:** Return whether a process matches the given [anchored][anchored] regular expression `regex`. @@ -15,7 +15,7 @@ table. Use `.*sherlock.*` to find all the processes that match `sherlock`. Use `.*\bsherlock\b.*` to exclude partial matches like `sherlock123` (`\b` matches a word boundary). -[%CFEngine_function_attributes(regex)%] +{{< CFEngine_function_attributes(regex) >}} The process table is usually obtained with something like `ps -eo user,pid,ppid,pgid,%cpu,%mem,vsize,ni,rss,stat,nlwp,stime,time,args`, and the diff --git a/content/reference/functions/product.markdown b/content/reference/functions/product.markdown index 12ea9a1fa..84e32c833 100644 --- a/content/reference/functions/product.markdown +++ b/content/reference/functions/product.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-product.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Returns the product of the reals in `list`. @@ -15,15 +15,15 @@ collect summary information from a source external to CFEngine. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list)%] +{{< CFEngine_function_attributes(list) >}} **Example:** -[%CFEngine_include_snippet(product.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(product.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(product.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(product.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.1.0b1,Nova 2.0.0b1 (2010). The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/randomint.markdown b/content/reference/functions/randomint.markdown index 3b0d96375..8faf78a05 100644 --- a/content/reference/functions/randomint.markdown +++ b/content/reference/functions/randomint.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-randomint.html" --- -[%CFEngine_function_prototype(lower, upper)%] +{{< CFEngine_function_prototype(lower, upper) >}} **Description:** Returns a random integer between `lower` and *up to but not including* `upper`. @@ -20,12 +20,12 @@ context class expression as shown in the example. **NOTE:** The randomness produced by randomint is not safe for cryptographic usage. -[%CFEngine_function_attributes(lower, upper)%] +{{< CFEngine_function_attributes(lower, upper) >}} **Example:** -[%CFEngine_include_snippet(randomint.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(randomint.cf, #\+begin_src cfengine3, .*end_src) >}} Output: (when `show_random` is defined) -[%CFEngine_include_snippet(randomint.cf, #\+begin_src\s+show_random_example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(randomint.cf, #\+begin_src\s+show_random_example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/read_module_protocol.markdown b/content/reference/functions/read_module_protocol.markdown index 737bed8fc..fe96dd972 100644 --- a/content/reference/functions/read_module_protocol.markdown +++ b/content/reference/functions/read_module_protocol.markdown @@ -5,17 +5,17 @@ aliases: - "/reference-functions-read_module_protocol.html" --- -[%CFEngine_function_prototype(file_path)%] +{{< CFEngine_function_prototype(file_path) >}} **Description:** Interprets `file_path` as module protocol output. This function is useful for reducing overhead by caching and then reading module protocol results from a file. -[%CFEngine_function_attributes(file_path)%] +{{< CFEngine_function_attributes(file_path) >}} **Example:** -[%CFEngine_include_example(read_module_protocol.cf)%] +{{< CFEngine_include_example(read_module_protocol.cf) >}} **See also:** [usemodule()][usemodule], [Module Protocol][commands#module] diff --git a/content/reference/functions/readcsv.markdown b/content/reference/functions/readcsv.markdown index cf91d2980..d055a5c7a 100644 --- a/content/reference/functions/readcsv.markdown +++ b/content/reference/functions/readcsv.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-readcsv.html" --- -[%CFEngine_function_prototype(filename, optional_maxbytes)%] +{{< CFEngine_function_prototype(filename, optional_maxbytes) >}} **Description:** Parses CSV data from the file `filename` and returns the result as a `data` variable. @@ -21,21 +21,21 @@ The returned data is in the same format as `data_readstringarrayidx()`, that is, a data container that holds a JSON array of JSON arrays. -[%CFEngine_function_attributes(filename, optional_maxbytes)%] +{{< CFEngine_function_attributes(filename, optional_maxbytes) >}} **Example:** Prepare: -[%CFEngine_include_snippet(readcsv.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readcsv.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readcsv.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readcsv.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readcsv.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readcsv.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Note:** CSV files formatted according to RFC 4180 must end with the `CRLF` sequence. Thus a text file created on Unix with standard Unix tools diff --git a/content/reference/functions/readdata.markdown b/content/reference/functions/readdata.markdown index 4997e0fa7..26c536edc 100644 --- a/content/reference/functions/readdata.markdown +++ b/content/reference/functions/readdata.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-readdata.html" --- -[%CFEngine_function_prototype(filename, filetype)%] +{{< CFEngine_function_prototype(filename, filetype) >}} **Description:** Parses CSV, JSON, or YAML data from file `filename` and returns the result as a `data` variable. @@ -19,21 +19,21 @@ this function behaves like `readcsv()`, `readjson()`, `readyaml()` or `readenvfi These functions have an optional parameter `maxbytes` (default: `inf`). `maxbytes` can not be set using `readdata()`, if needed use one of the mentioned functions instead. -[%CFEngine_function_attributes(filename, filetype)%] +{{< CFEngine_function_attributes(filename, filetype) >}} **Example:** Prepare: -[%CFEngine_include_snippet(readdata.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readdata.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readdata.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readdata.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readdata.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readdata.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`data_expand()`][data_expand], `readcsv()`, `readyaml()`, `readjson()`, `readenvfile()`, `validdata()`, `data` documentation. diff --git a/content/reference/functions/readenvfile.markdown b/content/reference/functions/readenvfile.markdown index 0021ff0a6..ad032881a 100644 --- a/content/reference/functions/readenvfile.markdown +++ b/content/reference/functions/readenvfile.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-readenvfile.html" --- -[%CFEngine_function_prototype(filename, optional_maxbytes)%] +{{< CFEngine_function_prototype(filename, optional_maxbytes) >}} **Description:** Parses key-value pairs from the file `filename` in env file format (`man os-release`). @@ -14,7 +14,7 @@ Keys and values are interpreted as strings. `maxbytes` is optional, if specified, only the first `maxbytes` bytes are read from `filename`. [Details of the os-release/env file format on freedesktop.org](https://www.freedesktop.org/software/systemd/man/os-release.html) -[%CFEngine_function_attributes(filename, otpional_maxbytes)%] +{{< CFEngine_function_attributes(filename, otpional_maxbytes) >}} **Syntax example:** @@ -28,15 +28,15 @@ vars: Prepare: -[%CFEngine_include_snippet(readenvfile.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readenvfile.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readenvfile.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readenvfile.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readenvfile.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readenvfile.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** This function is used internally to load `/etc/os-release` into `sys.os_release`. diff --git a/content/reference/functions/readfile.markdown b/content/reference/functions/readfile.markdown index cd7f3236d..fc9eee41e 100644 --- a/content/reference/functions/readfile.markdown +++ b/content/reference/functions/readfile.markdown @@ -5,28 +5,28 @@ aliases: - "/reference-functions-readfile.html" --- -[%CFEngine_function_prototype(filename, optional_maxbytes)%] +{{< CFEngine_function_prototype(filename, optional_maxbytes) >}} **Description:** Returns the first `maxbytes` bytes from file `filename`. `maxbytes` is optional, if specified, only the first `maxbytes` bytes are read from `filename`. When `maxbytes` is `0`, `inf` or not specified, the whole file will be read (but see **Notes** below). -[%CFEngine_function_attributes(filename, optional_maxbytes)%] +{{< CFEngine_function_attributes(filename, optional_maxbytes) >}} **Example:** Prepare: -[%CFEngine_include_snippet(readfile.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readfile.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readfile.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readfile.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readfile.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readfile.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/functions/readintarray.markdown b/content/reference/functions/readintarray.markdown index be7b49388..1c5532be8 100644 --- a/content/reference/functions/readintarray.markdown +++ b/content/reference/functions/readintarray.markdown @@ -38,14 +38,14 @@ lines matched. Prepare: -[%CFEngine_include_snippet(readintarray.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readintarray.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readintarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readintarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readintarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readintarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`readstringarray()`][readstringarray], [`readrealarray()`][readrealarray], [`parseintarray()`][parseintarray], [`parserealarray()`][parserealarray], [`parsestringarray()`][parsestringarray] diff --git a/content/reference/functions/readintlist.markdown b/content/reference/functions/readintlist.markdown index 69bf5d48a..08e3e7d49 100644 --- a/content/reference/functions/readintlist.markdown +++ b/content/reference/functions/readintlist.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-readintlist.html" --- -[%CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_prototype(filename, comment, split, maxentries, maxbytes) >}} **Description:** Splits the file `filename` into separated values and returns the list. @@ -14,21 +14,21 @@ The `comment` field is a multiline regular expression and will strip out unwanted patterns from the file being read, leaving unstripped characters to be split into fields. Using the empty string (`""`) indicates no comments. -[%CFEngine_function_attributes(filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_attributes(filename, comment, split, maxentries, maxbytes) >}} **Example:** Prepare: -[%CFEngine_include_snippet(readintlist.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readintlist.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readintlist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readintlist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readintlist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readintlist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`readstringlist()`][readstringlist], [`readreallist()`][readreallist] diff --git a/content/reference/functions/readjson.markdown b/content/reference/functions/readjson.markdown index addbd66a8..fe7552c2e 100644 --- a/content/reference/functions/readjson.markdown +++ b/content/reference/functions/readjson.markdown @@ -5,13 +5,13 @@ aliases: - "/reference-functions-readjson.html" --- -[%CFEngine_function_prototype(filename, optional_maxbytes)%] +{{< CFEngine_function_prototype(filename, optional_maxbytes) >}} **Description:** Parses JSON data from the file `filename` and returns the result as a `data` variable. `maxbytes` is optional, if specified, only the first `maxbytes` bytes are read from `filename`. -[%CFEngine_function_attributes(filename, optional_maxbytes)%] +{{< CFEngine_function_attributes(filename, optional_maxbytes) >}} **Example:** diff --git a/content/reference/functions/readrealarray.markdown b/content/reference/functions/readrealarray.markdown index 6a01c8c01..8d65c5457 100644 --- a/content/reference/functions/readrealarray.markdown +++ b/content/reference/functions/readrealarray.markdown @@ -114,14 +114,14 @@ array_name[games][6] /bin/bash ``` Prepare: -[%CFEngine_include_snippet(readrealarray.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readrealarray.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readrealarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readrealarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readrealarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readrealarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`readstringarray()`][readstringarray], [`readintarray()`][readintarray], [`parserealarray()`][parserealarray], [`parserealarray()`][parserealarray], [`parsestringarray()`][parsestringarray] diff --git a/content/reference/functions/readreallist.markdown b/content/reference/functions/readreallist.markdown index 0155e3058..bf9aad581 100644 --- a/content/reference/functions/readreallist.markdown +++ b/content/reference/functions/readreallist.markdown @@ -29,15 +29,15 @@ split into fields. Using the empty string (`""`) indicates no comments. Prepare: -[%CFEngine_include_snippet(readreallist.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readreallist.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readreallist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readreallist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readreallist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readreallist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`readstringlist()`][readstringlist], [`readintlist()`][readintlist] diff --git a/content/reference/functions/readstringarray.markdown b/content/reference/functions/readstringarray.markdown index ddc085117..281e33501 100644 --- a/content/reference/functions/readstringarray.markdown +++ b/content/reference/functions/readstringarray.markdown @@ -114,14 +114,14 @@ array_name[games][6] /bin/bash ``` Prepare: -[%CFEngine_include_snippet(readrealarray.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readrealarray.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readrealarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readrealarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readrealarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readrealarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`readrealarray()`][readrealarray], [`readintarray()`][readintarray], [`parserealarray()`][parserealarray], [`parserealarray()`][parserealarray], [`parsestringarray()`][parsestringarray] diff --git a/content/reference/functions/readstringarrayidx.markdown b/content/reference/functions/readstringarrayidx.markdown index 2a84bdaba..1a22f56ec 100644 --- a/content/reference/functions/readstringarrayidx.markdown +++ b/content/reference/functions/readstringarrayidx.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-readstringarrayidx.html" --- -[%CFEngine_function_prototype(array, filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_prototype(array, filename, comment, split, maxentries, maxbytes) >}} **Description:** Populates the two-dimensional array `array` with up to `maxentries` fields from the first `maxbytes` bytes of file `filename`. @@ -24,7 +24,7 @@ matched). If you only want the fields in the first matching line (e.g., to mimic the behavior of the *getpwnam(3)* on the file `/etc/passwd`), use `getfields()`, instead. -[%CFEngine_function_attributes(array, filename, comment, split, maxentries, maxbytes)%] +{{< CFEngine_function_attributes(array, filename, comment, split, maxentries, maxbytes) >}} **Example:** diff --git a/content/reference/functions/readstringlist.markdown b/content/reference/functions/readstringlist.markdown index 2d7cfd670..aa27f49cf 100644 --- a/content/reference/functions/readstringlist.markdown +++ b/content/reference/functions/readstringlist.markdown @@ -29,15 +29,15 @@ split into fields. Using the empty string (`""`) indicates no comments. Prepare: -[%CFEngine_include_snippet(readstringlist.cf, #\+begin_src prep, .*end_src)%] +{{< CFEngine_include_snippet(readstringlist.cf, #\+begin_src prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(readstringlist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readstringlist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(readstringlist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(readstringlist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [`readintlist()`][readintlist], [`readreallist()`][readreallist] diff --git a/content/reference/functions/readtcp.markdown b/content/reference/functions/readtcp.markdown index 594804f94..eedec36a0 100644 --- a/content/reference/functions/readtcp.markdown +++ b/content/reference/functions/readtcp.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-readtcp.html" --- -[%CFEngine_function_prototype(hostnameip, port, sendstring, maxbytes)%] +{{< CFEngine_function_prototype(hostnameip, port, sendstring, maxbytes) >}} **Description:** Connects to tcp ```port``` of `hostnameip`, sends `sendstring`, reads at most `maxbytes` from the response and returns those. @@ -18,11 +18,11 @@ Not all Unix TCP read operations respond to signals for interruption, so poorly formed requests can block the `cf-agent` process. Always test TCP connections fully before deploying. -[%CFEngine_function_attributes(host, port, sendstring, maxbytes)%] +{{< CFEngine_function_attributes(host, port, sendstring, maxbytes) >}} **Example:** -[%CFEngine_include_snippet(readtcp.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(readtcp.cf, #\+begin_src cfengine3, .*end_src) >}} Output: diff --git a/content/reference/functions/readyaml.markdown b/content/reference/functions/readyaml.markdown index 2abf38e4d..f5c81d840 100644 --- a/content/reference/functions/readyaml.markdown +++ b/content/reference/functions/readyaml.markdown @@ -5,13 +5,13 @@ aliases: - "/reference-functions-readyaml.html" --- -[%CFEngine_function_prototype(filename, optional_maxbytes)%] +{{< CFEngine_function_prototype(filename, optional_maxbytes) >}} **Description:** Parses YAML data from the file `filename` and returns the result as a `data` variable. `maxbytes` is optional, if specified, only the first `maxbytes` bytes are read from `filename`. -[%CFEngine_function_attributes(filename, optional_maxbytes)%] +{{< CFEngine_function_attributes(filename, optional_maxbytes) >}} **Example:** diff --git a/content/reference/functions/regarray.markdown b/content/reference/functions/regarray.markdown index 0f7838ed0..855595516 100644 --- a/content/reference/functions/regarray.markdown +++ b/content/reference/functions/regarray.markdown @@ -5,17 +5,17 @@ aliases: - "/reference-functions-regarray.html" --- -[%CFEngine_function_prototype(array, regex)%] +{{< CFEngine_function_prototype(array, regex) >}} **Description:** Returns whether `array` contains elements matching the [anchored][anchored]regular expression `regex`. -[%CFEngine_function_attributes(array, regex)%] +{{< CFEngine_function_attributes(array, regex) >}} **Example:** -[%CFEngine_include_snippet(regarray.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(regarray.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(regarray.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(regarray.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/regcmp.markdown b/content/reference/functions/regcmp.markdown index bb9e3f9b5..c5e19179f 100644 --- a/content/reference/functions/regcmp.markdown +++ b/content/reference/functions/regcmp.markdown @@ -5,20 +5,20 @@ aliases: - "/reference-functions-regcmp.html" --- -[%CFEngine_function_prototype(regex, string)%] +{{< CFEngine_function_prototype(regex, string) >}} **Description:** Returns whether the [anchored][anchored] regular expression `regex` matches the `string.` -[%CFEngine_function_attributes(regex, string)%] +{{< CFEngine_function_attributes(regex, string) >}} **Example:** -[%CFEngine_include_snippet(regcmp.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(regcmp.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(regcmp.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(regcmp.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} If the string contains multiple lines, then it is necessary to code these explicitly, as regular expressions do not normally match the end of line diff --git a/content/reference/functions/regex_replace.markdown b/content/reference/functions/regex_replace.markdown index e2b586876..2be9bd2e5 100644 --- a/content/reference/functions/regex_replace.markdown +++ b/content/reference/functions/regex_replace.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-regex_replace.html" --- -[%CFEngine_function_prototype(string, regex, replacement, options)%] +{{< CFEngine_function_prototype(string, regex, replacement, options) >}} **Description:** In a given string, replaces a regular expression with something else. -[%CFEngine_function_attributes(string, regex, replacement, options)%] +{{< CFEngine_function_attributes(string, regex, replacement, options) >}} The supported options are single letters you place in the `options` string in any order. Consult http://pcre.org/pcre.txt for the exact @@ -35,11 +35,11 @@ regex match. `$&` holds the entire regex match. **Example:** -[%CFEngine_include_snippet(regex_replace.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(regex_replace.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(regex_replace.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(regex_replace.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.8.0 (2015) diff --git a/content/reference/functions/regextract.markdown b/content/reference/functions/regextract.markdown index a97aae90f..5f5e3c7ee 100644 --- a/content/reference/functions/regextract.markdown +++ b/content/reference/functions/regextract.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-regextract.html" --- -[%CFEngine_function_prototype(regex, string, backref)%] +{{< CFEngine_function_prototype(regex, string, backref) >}} **Description:** Returns whether the [anchored][anchored] `regex` matches the `string`, and fills the array `backref` with back-references. @@ -21,14 +21,14 @@ $(backref[0]) = entire string $(backref[1]) = back reference 1, etc ``` -[%CFEngine_function_attributes(regex, string, backref)%] +{{< CFEngine_function_attributes(regex, string, backref) >}} **Example:** -[%CFEngine_include_snippet(regextract.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(regextract.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(regextract.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(regextract.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `data_regextract()` `regex_replace()` diff --git a/content/reference/functions/registryvalue.markdown b/content/reference/functions/registryvalue.markdown index 1e4f4e085..a2d96574e 100644 --- a/content/reference/functions/registryvalue.markdown +++ b/content/reference/functions/registryvalue.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-registryvalue.html" --- -[%CFEngine_function_prototype(key, valueid)%] +{{< CFEngine_function_prototype(key, valueid) >}} **Description:** Returns the value of `valueid` in the Windows registry key `key`. @@ -13,15 +13,15 @@ aliases: This function applies only to Windows-based systems. The value is parsed as a string. -[%CFEngine_function_attributes(key, valueid)%] +{{< CFEngine_function_attributes(key, valueid) >}} **Example:** -[%CFEngine_include_snippet(registryvalue.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(registryvalue.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(registryvalue.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(registryvalue.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** Currently values of type `REG_SZ` (string), `REG_EXPAND_SZ` (expandable string) and `REG_DWORD` (double word) are supported. diff --git a/content/reference/functions/regldap.markdown b/content/reference/functions/regldap.markdown index 67ddaa6c0..7c7782451 100644 --- a/content/reference/functions/regldap.markdown +++ b/content/reference/functions/regldap.markdown @@ -7,7 +7,7 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(uri, dn, filter, record, scope, regex, security)%] +{{< CFEngine_function_prototype(uri, dn, filter, record, scope, regex, security) >}} **Description:** Returns whether the regular expression `regex` matches a value item in the LDAP search. @@ -16,7 +16,7 @@ This function retrieves a single field from all matching LDAP records identified by the search parameters and compares it to the regular expression `regex`. -[%CFEngine_function_attributes(uri, dn, filter, record, scope, regex, security)%] +{{< CFEngine_function_attributes(uri, dn, filter, record, scope, regex, security) >}} `dn` specifies the distinguished name, an ldap formatted name built from components, e.g. "dc=cfengine,dc=com". `filter` is an ldap search, e.g. diff --git a/content/reference/functions/regline.markdown b/content/reference/functions/regline.markdown index 294729d01..9cf5159bb 100644 --- a/content/reference/functions/regline.markdown +++ b/content/reference/functions/regline.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-regline.html" --- -[%CFEngine_function_prototype(regex, filename)%] +{{< CFEngine_function_prototype(regex, filename) >}} **Description:** Returns whether the [anchored][anchored] regular expression `regex` matches a line in file `filename`. @@ -13,15 +13,15 @@ aliases: Note that `regex` must match an entire line of the file in order to give a true result. -[%CFEngine_function_attributes(regex, filename)%] +{{< CFEngine_function_attributes(regex, filename) >}} **Examples:** This example shows a way to determine if IPV4 forwarding is enabled or not. -[%CFEngine_include_snippet(regline.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(regline.cf, #\+begin_src cfengine3, .*end_src) >}} -[%CFEngine_include_snippet(regline.cf, #\+begin_src\s+random_example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(regline.cf, #\+begin_src\s+random_example_output\s*, .*end_src) >}} For `edit_line` applications it may be useful to set a class for detecting the presence of a string that does not exactly match one being inserted. For diff --git a/content/reference/functions/reglist.markdown b/content/reference/functions/reglist.markdown index 1d66bf999..6d3b9e6c2 100644 --- a/content/reference/functions/reglist.markdown +++ b/content/reference/functions/reglist.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-reglist.html" --- -[%CFEngine_function_prototype(list, regex)%] +{{< CFEngine_function_prototype(list, regex) >}} **Description:** Returns whether the [anchored][anchored] regular expression `regex` matches any item in `list`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list, regex)%] +{{< CFEngine_function_attributes(list, regex) >}} **Example:** -[%CFEngine_include_snippet(reglist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(reglist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(reglist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(reglist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} In the example above, the IP address in `$(sys.ipv4[eth0])` must be `escape`d, so that the (.) characters in the IP address are not interpreted as the diff --git a/content/reference/functions/remoteclassesmatching.markdown b/content/reference/functions/remoteclassesmatching.markdown index 3e0d41b4d..d3bf4b34a 100644 --- a/content/reference/functions/remoteclassesmatching.markdown +++ b/content/reference/functions/remoteclassesmatching.markdown @@ -7,7 +7,7 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(regex, server, encrypt, prefix)%] +{{< CFEngine_function_prototype(regex, server, encrypt, prefix) >}} **Description:** Reads persistent classes matching regular expression `regex` from a remote CFEngine server `server` and adds them into local context with @@ -20,7 +20,7 @@ This function contacts a remote `cf-serverd` and requests access to defined *persistent classes* on that system. Access must be granted by making an `access` promise with `resource_type` set to `context`. -[%CFEngine_function_attributes(regex, server, encrypt, prefix)%] +{{< CFEngine_function_attributes(regex, server, encrypt, prefix) >}} **Example:** diff --git a/content/reference/functions/remotescalar.markdown b/content/reference/functions/remotescalar.markdown index 9e388aa76..a704c8544 100644 --- a/content/reference/functions/remotescalar.markdown +++ b/content/reference/functions/remotescalar.markdown @@ -7,7 +7,7 @@ aliases: **This function is only available in CFEngine Enterprise.** -[%CFEngine_function_prototype(id, server, encrypt)%] +{{< CFEngine_function_prototype(id, server, encrypt) >}} **Description:** Returns a scalar value identified by `id` from a remote CFEngine `server`. Communication is encrytped depending on ```encrypt```. @@ -28,7 +28,7 @@ needed to resolve the absence of a value can lead to undesirable behavior. As a general rule, users are recommended to refrain from relying on the availability of network resources. -[%CFEngine_function_attributes(id, server, encrypt)%] +{{< CFEngine_function_attributes(id, server, encrypt) >}} **Example:** diff --git a/content/reference/functions/returnszero.markdown b/content/reference/functions/returnszero.markdown index c77c61271..4649f66bd 100644 --- a/content/reference/functions/returnszero.markdown +++ b/content/reference/functions/returnszero.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-returnszero.html" --- -[%CFEngine_function_prototype(command, shell)%] +{{< CFEngine_function_prototype(command, shell) >}} **Description:** Runs `command` and returns whether it has returned with exit status zero. @@ -13,15 +13,15 @@ status zero. This is the complement of `execresult()`, but it returns a class result rather than the output of the command. -[%CFEngine_function_attributes(command, shell)%] +{{< CFEngine_function_attributes(command, shell) >}} **Example:** -[%CFEngine_include_snippet(returnszero.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(returnszero.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(returnszero.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(returnszero.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** you should never use this function to execute commands that make changes to the system, or perform lengthy computations. Such an diff --git a/content/reference/functions/reverse.markdown b/content/reference/functions/reverse.markdown index 97b3b3fb2..93c80f844 100644 --- a/content/reference/functions/reverse.markdown +++ b/content/reference/functions/reverse.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-reverse.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Reverses a list. @@ -21,11 +21,11 @@ This is a simple function to reverse a list. **Example:** -[%CFEngine_include_snippet(reverse.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(reverse.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(reverse.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(reverse.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/rrange.markdown b/content/reference/functions/rrange.markdown index a86b11359..73b5c73ff 100644 --- a/content/reference/functions/rrange.markdown +++ b/content/reference/functions/rrange.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-rrange.html" --- -[%CFEngine_function_prototype(arg1, arg2)%] +{{< CFEngine_function_prototype(arg1, arg2) >}} **Description:** Define a range of real numbers for CFEngine internal use. -[%CFEngine_function_attributes(arg1, arg2)%] +{{< CFEngine_function_attributes(arg1, arg2) >}} **Notes:** This is not yet used. diff --git a/content/reference/functions/selectservers.markdown b/content/reference/functions/selectservers.markdown index 532e6d16f..63357e6ac 100644 --- a/content/reference/functions/selectservers.markdown +++ b/content/reference/functions/selectservers.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-selectservers.html" --- -[%CFEngine_function_prototype(hostlist, port, query, regex, maxbytes, array)%] +{{< CFEngine_function_prototype(hostlist, port, query, regex, maxbytes, array) >}} **Description:** Returns the number of tcp servers from `hostlist` which respond with a reply matching `regex` to a `query` send to ```port```, and @@ -19,7 +19,7 @@ This function allows discovery of all the TCP ports that are active and functioning from an ordered list, and builds an array of their names. This allows maintaining a list of pretested failover alternatives. -[%CFEngine_function_attributes(hostlist, port, query, regex, maxbyes, array)%] +{{< CFEngine_function_attributes(hostlist, port, query, regex, maxbyes, array) >}} **Example:** diff --git a/content/reference/functions/shuffle.markdown b/content/reference/functions/shuffle.markdown index 89646c391..75821d568 100644 --- a/content/reference/functions/shuffle.markdown +++ b/content/reference/functions/shuffle.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-shuffle.html" --- -[%CFEngine_function_prototype(list, seed)%] +{{< CFEngine_function_prototype(list, seed) >}} **Description:** Return `list` shuffled with `seed`. @@ -14,15 +14,15 @@ aliases: The same seed will produce the same shuffle every time. For a random shuffle, provide a random seed with the `randomint` function. -[%CFEngine_function_attributes(list, seed)%] +{{< CFEngine_function_attributes(list, seed) >}} **Example:** -[%CFEngine_include_snippet(shuffle.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(shuffle.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(shuffle.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(shuffle.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/some.markdown b/content/reference/functions/some.markdown index fd53bb68b..e5c80c2c4 100644 --- a/content/reference/functions/some.markdown +++ b/content/reference/functions/some.markdown @@ -5,14 +5,14 @@ aliases: - "/reference-functions-some.html" --- -[%CFEngine_function_prototype(regex, list)%] +{{< CFEngine_function_prototype(regex, list) >}} **Description:** Return whether any element of `list` matches the [Unanchored][unanchored] regular expression `regex`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(regex, list)%] +{{< CFEngine_function_attributes(regex, list) >}} `some()` will return as soon as any element matches. @@ -23,11 +23,11 @@ possible, that is better than using `length()` or `every()` or **Example:** -[%CFEngine_include_snippet(some.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(some.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(some.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(some.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/sort.markdown b/content/reference/functions/sort.markdown index e86b60001..f1b73bd0b 100644 --- a/content/reference/functions/sort.markdown +++ b/content/reference/functions/sort.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-sort.html" --- -[%CFEngine_function_prototype(list, mode)%] +{{< CFEngine_function_prototype(list, mode) >}} **Description:** Returns `list` sorted according to `mode`. @@ -18,11 +18,11 @@ action. `mode` is optional, and defaults to `lex`. Note IPv6 addresses can not use uppercase hexadecimal characters (`A-Z`) but must use lowercase (`a-z`) instead. -[%CFEngine_function_attributes(list, mode)%] +{{< CFEngine_function_attributes(list, mode) >}} **Example:** -[%CFEngine_include_snippet(sort.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(sort.cf, #\+begin_src cfengine3, .*end_src) >}} Output: diff --git a/content/reference/functions/splayclass.markdown b/content/reference/functions/splayclass.markdown index 536e1eb19..6eaaa02d6 100644 --- a/content/reference/functions/splayclass.markdown +++ b/content/reference/functions/splayclass.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-splayclass.html" --- -[%CFEngine_function_prototype(input, policy)%] +{{< CFEngine_function_prototype(input, policy) >}} **Description:** Returns whether `input`'s time-slot has arrived, according to a ```policy```. @@ -19,7 +19,7 @@ This function may be used to distribute a task, typically on multiple hosts, in The function is similar to the `splaytime` feature in `cf-execd`, except that it allows you to base the decision on any string-criterion on a given host. -[%CFEngine_function_attributes(input, policy)%] +{{< CFEngine_function_attributes(input, policy) >}} The variation in `input` determines how effectively CFEngine will be able to distribute tasks. CFEngine instances with the same `input` will yield a true diff --git a/content/reference/functions/splitstring.markdown b/content/reference/functions/splitstring.markdown index 219a4d1b0..02bcc8a9a 100644 --- a/content/reference/functions/splitstring.markdown +++ b/content/reference/functions/splitstring.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-splitstring.html" --- -[%CFEngine_function_prototype(string, regex, maxent)%] +{{< CFEngine_function_prototype(string, regex, maxent) >}} **Description:** Splits `string` into at most `maxent` substrings wherever `regex` occurs, and returns the list with those strings. @@ -15,15 +15,15 @@ The regular expression is [unanchored][unanchored]. If the maximum number of substrings is insufficient to accommodate all the entries, the rest of the un-split string is thrown away. -[%CFEngine_function_attributes(string, regex, maxent)%] +{{< CFEngine_function_attributes(string, regex, maxent) >}} **Example:** -[%CFEngine_include_snippet(splitstring.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(splitstring.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(splitstring.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(splitstring.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Deprecated in CFEngine 3.6 in favor of `string_split` diff --git a/content/reference/functions/storejson.markdown b/content/reference/functions/storejson.markdown index 0deb0477c..82fa54c47 100644 --- a/content/reference/functions/storejson.markdown +++ b/content/reference/functions/storejson.markdown @@ -5,17 +5,17 @@ aliases: - "/reference-functions-storejson.html" --- -[%CFEngine_function_prototype(data_container)%] +{{< CFEngine_function_prototype(data_container) >}} **Description:** Converts a data container to a JSON string. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(data_container)%] +{{< CFEngine_function_attributes(data_container) >}} **Example:** -[%CFEngine_include_example(storejson.cf)%] +{{< CFEngine_include_example(storejson.cf) >}} **History:** diff --git a/content/reference/functions/strcmp.markdown b/content/reference/functions/strcmp.markdown index 5adca394e..0836f535e 100644 --- a/content/reference/functions/strcmp.markdown +++ b/content/reference/functions/strcmp.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-strcmp.html" --- -[%CFEngine_function_prototype(string1, string2)%] +{{< CFEngine_function_prototype(string1, string2) >}} **Description:** Returns whether the two strings `string1` and `string2` match exactly. -[%CFEngine_function_attributes(string1, string2)%] +{{< CFEngine_function_attributes(string1, string2) >}} **Example:** -[%CFEngine_include_snippet(strcmp.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(strcmp.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(strcmp.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(strcmp.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `regcmp()`, `regline()` diff --git a/content/reference/functions/strftime.markdown b/content/reference/functions/strftime.markdown index 510ff7bf0..ff32fa5c4 100644 --- a/content/reference/functions/strftime.markdown +++ b/content/reference/functions/strftime.markdown @@ -5,12 +5,12 @@ aliases: - "/reference-functions-strftime.html" --- -[%CFEngine_function_prototype(mode, template, time)%] +{{< CFEngine_function_prototype(mode, template, time) >}} **Description:** Interprets a time and date format string at a particular point in GMT or local time using Unix epoch time. -[%CFEngine_function_attributes(mode, template, time)%] +{{< CFEngine_function_attributes(mode, template, time) >}} The `mode` is either `gmtime` (to get GMT times and dates) or `localtime` (to get times and dates according to the local @@ -21,11 +21,11 @@ are specialized for printing components of the date and time according to the sy **Example:** -[%CFEngine_include_snippet(strftime.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(strftime.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(strftime.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(strftime.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** Note that `strftime` is a standard C function and you should consult its diff --git a/content/reference/functions/string.markdown b/content/reference/functions/string.markdown index bd7c40225..60bb54b66 100644 --- a/content/reference/functions/string.markdown +++ b/content/reference/functions/string.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-string.html" --- -[%CFEngine_function_prototype(arg)%] +{{< CFEngine_function_prototype(arg) >}} **Description:** Convert `arg` to string. -[%CFEngine_function_attributes(arg)%] +{{< CFEngine_function_attributes(arg) >}} If `arg` is a container reference it will be serialized to a string. The reference must be indicated with `@(some_container)`. @@ -17,7 +17,7 @@ Strings are *not* interpreted as references. **Example:** -[%CFEngine_include_example(string.cf)%] +{{< CFEngine_include_example(string.cf) >}} **See also:** [`int()`][int] diff --git a/content/reference/functions/string_downcase.markdown b/content/reference/functions/string_downcase.markdown index 4e5c52eda..6edc2742b 100644 --- a/content/reference/functions/string_downcase.markdown +++ b/content/reference/functions/string_downcase.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-string_downcase.html" --- -[%CFEngine_function_prototype(data)%] +{{< CFEngine_function_prototype(data) >}} **Description:** Returns `data` in lower case. -[%CFEngine_function_attributes(data)%] +{{< CFEngine_function_attributes(data) >}} **Example:** -[%CFEngine_include_snippet(string_downcase.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_downcase.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_downcase.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_downcase.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6 diff --git a/content/reference/functions/string_head.markdown b/content/reference/functions/string_head.markdown index 06c9d13d5..d8039780f 100644 --- a/content/reference/functions/string_head.markdown +++ b/content/reference/functions/string_head.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-string_head.html" --- -[%CFEngine_function_prototype(data, max)%] +{{< CFEngine_function_prototype(data, max) >}} **Description:** Returns the first `max` bytes of `data`. If `max` is negative, then everything but the last `max` bytes is returned. -[%CFEngine_function_attributes(data, max)%] +{{< CFEngine_function_attributes(data, max) >}} **Example:** -[%CFEngine_include_snippet(string_head.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_head.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_head.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_head.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6 diff --git a/content/reference/functions/string_length.markdown b/content/reference/functions/string_length.markdown index b6cf3cbf4..545bfe223 100644 --- a/content/reference/functions/string_length.markdown +++ b/content/reference/functions/string_length.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-string_length.html" --- -[%CFEngine_function_prototype(data)%] +{{< CFEngine_function_prototype(data) >}} **Description:** Returns the byte length of `data`. -[%CFEngine_function_attributes(data)%] +{{< CFEngine_function_attributes(data) >}} **Example:** -[%CFEngine_include_snippet(string_length.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_length.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_length.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_length.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6 diff --git a/content/reference/functions/string_mustache.markdown b/content/reference/functions/string_mustache.markdown index fa304e0e7..9442256ac 100644 --- a/content/reference/functions/string_mustache.markdown +++ b/content/reference/functions/string_mustache.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-string_mustache.html" --- -[%CFEngine_function_prototype(template_string, optional_data_container)%] +{{< CFEngine_function_prototype(template_string, optional_data_container) >}} **Description:** Formats a Mustache string template into a string, using either the system `datastate()` or an explicitly provided data container. The usual Mustache facilities like conditional evaluation and loops are available, see the example below. -[%CFEngine_function_attributes(template_string, optional_data_container)%] +{{< CFEngine_function_attributes(template_string, optional_data_container) >}} **Example:** -[%CFEngine_include_snippet(string_mustache.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_mustache.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_mustache.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_mustache.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.7 diff --git a/content/reference/functions/string_replace.markdown b/content/reference/functions/string_replace.markdown index 06cc375a8..07c50e8e7 100644 --- a/content/reference/functions/string_replace.markdown +++ b/content/reference/functions/string_replace.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-string_replace.html" --- -[%CFEngine_function_prototype(string, match, replacement)%] +{{< CFEngine_function_prototype(string, match, replacement) >}} **Description:** In a given string, replaces a substring with another string. -[%CFEngine_function_attributes(string, match, replacement)%] +{{< CFEngine_function_attributes(string, match, replacement) >}} Reads a string from left to right, replacing the occurences of the second argument with the third argument in order. @@ -21,11 +21,11 @@ advanced replace functionality, check out `regex_replace()`. **Example:** -[%CFEngine_include_snippet(string_replace.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_replace.cf, #\+begin_src cfengine3, .*end_src) >}} **Output:** -[%CFEngine_include_snippet(string_replace.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_replace.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in 3.12.1 (2018) as a simpler version of `regex_replace()` diff --git a/content/reference/functions/string_reverse.markdown b/content/reference/functions/string_reverse.markdown index 0f194adda..93f9d09e1 100644 --- a/content/reference/functions/string_reverse.markdown +++ b/content/reference/functions/string_reverse.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-string_reverse.html" --- -[%CFEngine_function_prototype(data)%] +{{< CFEngine_function_prototype(data) >}} **Description:** Returns `data` reversed. -[%CFEngine_function_attributes(data)%] +{{< CFEngine_function_attributes(data) >}} **Example:** -[%CFEngine_include_snippet(string_reverse.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_reverse.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_reverse.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_reverse.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6 diff --git a/content/reference/functions/string_split.markdown b/content/reference/functions/string_split.markdown index 76ce7cc1c..64c2ce6c9 100644 --- a/content/reference/functions/string_split.markdown +++ b/content/reference/functions/string_split.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-string_split.html" --- -[%CFEngine_function_prototype(string, regex, maxent)%] +{{< CFEngine_function_prototype(string, regex, maxent) >}} **Description:** Splits `string` into at most `maxent` substrings wherever `regex` occurs, and returns the list with those strings. @@ -18,15 +18,15 @@ last one will contain the rest of the string starting with the `maxent-1`-th delimiter. This is standard behavior in many languages like Perl or Ruby, and different from the `splitstring()` behavior. -[%CFEngine_function_attributes(string, regex, maxent)%] +{{< CFEngine_function_attributes(string, regex, maxent) >}} **Example:** -[%CFEngine_include_snippet(string_split.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_split.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_split.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_split.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6; deprecates `splitstring()`. diff --git a/content/reference/functions/string_tail.markdown b/content/reference/functions/string_tail.markdown index a1806a2ed..5a1ecf665 100644 --- a/content/reference/functions/string_tail.markdown +++ b/content/reference/functions/string_tail.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-string_tail.html" --- -[%CFEngine_function_prototype(data, max)%] +{{< CFEngine_function_prototype(data, max) >}} **Description:** Returns the last `max` bytes of `data`. If `max` is negative, then everything but the first `max` bytes is returned. -[%CFEngine_function_attributes(data, max)%] +{{< CFEngine_function_attributes(data, max) >}} **Example:** -[%CFEngine_include_snippet(string_tail.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_tail.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_tail.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_tail.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6 diff --git a/content/reference/functions/string_trim.markdown b/content/reference/functions/string_trim.markdown index 91a6a26e8..6e6b41b2c 100644 --- a/content/reference/functions/string_trim.markdown +++ b/content/reference/functions/string_trim.markdown @@ -5,15 +5,15 @@ aliases: - "/reference-functions-string_trim.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Trim whitespace from beginning and end of `string`. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** -[%CFEngine_include_example(string_trim.cf)%] +{{< CFEngine_include_example(string_trim.cf) >}} **History:** Introduced in CFEngine 3.16 diff --git a/content/reference/functions/string_upcase.markdown b/content/reference/functions/string_upcase.markdown index 077b6bf9a..7b7e7c245 100644 --- a/content/reference/functions/string_upcase.markdown +++ b/content/reference/functions/string_upcase.markdown @@ -5,19 +5,19 @@ aliases: - "/reference-functions-string_upcase.html" --- -[%CFEngine_function_prototype(data)%] +{{< CFEngine_function_prototype(data) >}} **Description:** Returns `data` in uppercase. -[%CFEngine_function_attributes(data)%] +{{< CFEngine_function_attributes(data) >}} **Example:** -[%CFEngine_include_snippet(string_upcase.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(string_upcase.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(string_upcase.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(string_upcase.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Introduced in CFEngine 3.6 diff --git a/content/reference/functions/sublist.markdown b/content/reference/functions/sublist.markdown index 6a376ab60..a38b305eb 100644 --- a/content/reference/functions/sublist.markdown +++ b/content/reference/functions/sublist.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-sublist.html" --- -[%CFEngine_function_prototype(list, head_or_tail, max_elements)%] +{{< CFEngine_function_prototype(list, head_or_tail, max_elements) >}} **Description:** Returns list of up to `max_elements` of `list`, obtained from head or tail depending on `head_or_tail`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list, head_or_tail, max_elements)%] +{{< CFEngine_function_attributes(list, head_or_tail, max_elements) >}} **Example:** -[%CFEngine_include_snippet(sublist.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(sublist.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(sublist.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(sublist.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/sum.markdown b/content/reference/functions/sum.markdown index a8c1b1e8f..9f3d1a726 100644 --- a/content/reference/functions/sum.markdown +++ b/content/reference/functions/sum.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-sum.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Return the sum of the reals in `list`. @@ -15,15 +15,15 @@ This function might be used for simple ring computation. Of course, you could easily combine `sum` with `readstringarray` or `readreallist` etc., to collect summary information from a source external to CFEngine. -[%CFEngine_function_attributes(list)%] +{{< CFEngine_function_attributes(list) >}} **Example:** -[%CFEngine_include_snippet(sum.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(sum.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(sum.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(sum.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} Because `$(six)` and `$(zero)` are both real numbers, the report that is generated will be: diff --git a/content/reference/functions/sysctlvalue.markdown b/content/reference/functions/sysctlvalue.markdown index f11c99022..a46ed07a4 100644 --- a/content/reference/functions/sysctlvalue.markdown +++ b/content/reference/functions/sysctlvalue.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-sysctlvalue.html" --- -[%CFEngine_function_prototype(key)%] +{{< CFEngine_function_prototype(key) >}} **Description:** Returns the sysctl value of `key` using `/proc/sys`. -[%CFEngine_function_attributes(key)%] +{{< CFEngine_function_attributes(key) >}} **Example:** diff --git a/content/reference/functions/translatepath.markdown b/content/reference/functions/translatepath.markdown index 818ae73fe..5459ba2bf 100644 --- a/content/reference/functions/translatepath.markdown +++ b/content/reference/functions/translatepath.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-translatepath.html" --- -[%CFEngine_function_prototype(path)%] +{{< CFEngine_function_prototype(path) >}} **Description:** Translate separators in `path` from Unix style to the host's native style and returns the result. @@ -15,15 +15,15 @@ these to the native format for path separators on the host. For example translatepath("a/b/c") would yield "a/b/c" on Unix platforms, but "a\\b\\c" on Windows. -[%CFEngine_function_attributes(path)%] +{{< CFEngine_function_attributes(path) >}} **Example:** -[%CFEngine_include_snippet(translatepath.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(translatepath.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(translatepath.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(translatepath.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** Be careful when using this function in combination with regular expressions, since backslash is also used as escape character in diff --git a/content/reference/functions/type.markdown b/content/reference/functions/type.markdown index 15543d9f9..74c696805 100644 --- a/content/reference/functions/type.markdown +++ b/content/reference/functions/type.markdown @@ -5,11 +5,11 @@ aliases: - "/reference-functions-type.html" --- -[%CFEngine_function_prototype(var, detail)%] +{{< CFEngine_function_prototype(var, detail) >}} **Description:** Returns a variables type description. -[%CFEngine_function_attributes(var, detail)%] +{{< CFEngine_function_attributes(var, detail) >}} This function returns a variables type description as a string. The function expects a variable identifier as the first argument `var`. An optional second @@ -59,11 +59,11 @@ with different combinations of the arguments `type` and `detail`. **Example:** -[%CFEngine_include_snippet(type.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(type.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(type.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(type.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** diff --git a/content/reference/functions/unique.markdown b/content/reference/functions/unique.markdown index 06372656d..254457566 100644 --- a/content/reference/functions/unique.markdown +++ b/content/reference/functions/unique.markdown @@ -5,21 +5,21 @@ aliases: - "/reference-functions-unique.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Returns list of unique elements from `list`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list)%] +{{< CFEngine_function_attributes(list) >}} **Example:** -[%CFEngine_include_snippet(unique.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(unique.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(unique.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(unique.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/url_get.markdown b/content/reference/functions/url_get.markdown index c8871318a..e9f50c9c0 100644 --- a/content/reference/functions/url_get.markdown +++ b/content/reference/functions/url_get.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-url_get.html" --- -[%CFEngine_function_prototype(url, options_container)%] +{{< CFEngine_function_prototype(url, options_container) >}} **Description:** Retrieves the contents of a `url` using options from a data container. The data is returned in a @@ -48,7 +48,7 @@ The returned data container will have the following keys: * `content`: the response content as a string * `headers`: the response headers as a string -[%CFEngine_function_attributes(url, options_container)%] +{{< CFEngine_function_attributes(url, options_container) >}} **Example:** diff --git a/content/reference/functions/usemodule.markdown b/content/reference/functions/usemodule.markdown index 0ee411724..83557d37c 100644 --- a/content/reference/functions/usemodule.markdown +++ b/content/reference/functions/usemodule.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-usemodule.html" --- -[%CFEngine_function_prototype(module, args)%] +{{< CFEngine_function_prototype(module, args) >}} **Description:** Execute CFEngine module script `module` with `args`, and return whether successful. @@ -13,7 +13,7 @@ return whether successful. The module script is expected to be located in the registered modules directory, `WORKDIR/modules`. -[%CFEngine_function_attributes(module, args)%] +{{< CFEngine_function_attributes(module, args) >}} **Example:** diff --git a/content/reference/functions/userexists.markdown b/content/reference/functions/userexists.markdown index ade19ce5d..e15d169c4 100644 --- a/content/reference/functions/userexists.markdown +++ b/content/reference/functions/userexists.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-userexists.html" --- -[%CFEngine_function_prototype(user)%] +{{< CFEngine_function_prototype(user) >}} **Description:** Return whether `user` name or numerical id exists on this host. @@ -13,12 +13,12 @@ host. Checks whether the user is in the password database for the current host. The argument must be a user name or user id. -[%CFEngine_function_attributes(user)%] +{{< CFEngine_function_attributes(user) >}} **Example:** -[%CFEngine_include_snippet(userexists.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(userexists.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(userexists.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(userexists.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} diff --git a/content/reference/functions/validdata.markdown b/content/reference/functions/validdata.markdown index 4bd22f46d..c5f8f40f8 100644 --- a/content/reference/functions/validdata.markdown +++ b/content/reference/functions/validdata.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-validdata.html" --- -[%CFEngine_function_prototype(data_container, type)%] +{{< CFEngine_function_prototype(data_container, type) >}} **Description:** Validates a JSON container from `data_container` and returns `true` if the contents are valid JSON. @@ -14,17 +14,17 @@ This function is intended to be expanded with functionality for validating CSV and YAML files eventually, mirroring `readdata()`. If `type` is `JSON`, it behaves the same as `validjson()`. -[%CFEngine_function_attributes(data_container, type)%] +{{< CFEngine_function_attributes(data_container, type) >}} **Example:** Run: -[%CFEngine_include_snippet(validdata.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(validdata.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(validdata.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(validdata.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `readdata()`, `validjson()` diff --git a/content/reference/functions/validjson.markdown b/content/reference/functions/validjson.markdown index d9eb8cd61..2d772c4cc 100644 --- a/content/reference/functions/validjson.markdown +++ b/content/reference/functions/validjson.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-validjson.html" --- -[%CFEngine_function_prototype(string)%] +{{< CFEngine_function_prototype(string) >}} **Description:** Validates a JSON container from `string` and returns `true` if the contents are valid JSON. -[%CFEngine_function_attributes(string)%] +{{< CFEngine_function_attributes(string) >}} **Example:** Run: -[%CFEngine_include_snippet(validjson.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(validjson.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(validjson.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(validjson.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** `readjson()`, `validdata()` diff --git a/content/reference/functions/variablesmatching.markdown b/content/reference/functions/variablesmatching.markdown index 1efd31761..b0485e979 100644 --- a/content/reference/functions/variablesmatching.markdown +++ b/content/reference/functions/variablesmatching.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-variablesmatching.html" --- -[%CFEngine_function_prototype(name, tag1, tag2, ...)%] +{{< CFEngine_function_prototype(name, tag1, tag2, ...) >}} **Description:** Return the list of variables matching `name` and any tags given. Both `name` and tags are regular expressions. @@ -27,15 +27,15 @@ This function behaves exactly like `variablesmatching_as_data()` but returns just the list of all the variables. If you want their contents as well, see that function. -[%CFEngine_function_attributes(regex, tag1, tag2, ...)%] +{{< CFEngine_function_attributes(regex, tag1, tag2, ...) >}} **Example:** -[%CFEngine_include_snippet(variablesmatching.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(variablesmatching.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(variablesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(variablesmatching.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [classesmatching()][classesmatching], [bundlesmatching()][bundlesmatching], [variablesmatching_as_data()][variablesmatching_as_data] diff --git a/content/reference/functions/variablesmatching_as_data.markdown b/content/reference/functions/variablesmatching_as_data.markdown index f3f7e4209..52df6b755 100644 --- a/content/reference/functions/variablesmatching_as_data.markdown +++ b/content/reference/functions/variablesmatching_as_data.markdown @@ -5,7 +5,7 @@ aliases: - "/reference-functions-variablesmatching_as_data.html" --- -[%CFEngine_function_prototype(name, tag1, tag2, ...)%] +{{< CFEngine_function_prototype(name, tag1, tag2, ...) >}} **Description:** Return a data container with the map of variables matching `name` and any tags given to the variable contents. Both `name` and tags are @@ -28,15 +28,15 @@ This function behaves exactly like `variablesmatching()` but returns a data container with the full contents of all the variables instead of just their names. -[%CFEngine_function_attributes(regex, tag1, tag2, ...)%] +{{< CFEngine_function_attributes(regex, tag1, tag2, ...) >}} **Example:** -[%CFEngine_include_snippet(variablesmatching_as_data.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(variablesmatching_as_data.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(variablesmatching_as_data.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(variablesmatching_as_data.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [classesmatching()][classesmatching], [bundlesmatching()][bundlesmatching], [variablesmatching()][variablesmatching] diff --git a/content/reference/functions/variance.markdown b/content/reference/functions/variance.markdown index ed035224a..a4b8498e8 100644 --- a/content/reference/functions/variance.markdown +++ b/content/reference/functions/variance.markdown @@ -5,13 +5,13 @@ aliases: - "/reference-functions-variance.html" --- -[%CFEngine_function_prototype(list)%] +{{< CFEngine_function_prototype(list) >}} **Description:** Return the variance of the numbers in `list`. [This function can accept many types of data parameters.][Functions#collecting functions] -[%CFEngine_function_attributes(list)%] +{{< CFEngine_function_attributes(list) >}} Use the `eval()` function to easily get the standard deviation (square root of the variance). @@ -19,11 +19,11 @@ This is not part of a full statistical package but a convenience function. **Example:** -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(max-min-mean-variance.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in version 3.6.0 (2014). The [collecting function][Functions#collecting functions] behavior was added in 3.9. diff --git a/content/reference/functions/version_compare.markdown b/content/reference/functions/version_compare.markdown index 95c9dac5e..2997170e1 100644 --- a/content/reference/functions/version_compare.markdown +++ b/content/reference/functions/version_compare.markdown @@ -5,22 +5,22 @@ aliases: - "/reference-functions-version_compare.html" --- -[%CFEngine_function_prototype(version1, comparison, version2)%] +{{< CFEngine_function_prototype(version1, comparison, version2) >}} **Description:** Returns `true` if the specified version comparison expression is true. -[%CFEngine_function_attributes(version1, comparison, version2)%] +{{< CFEngine_function_attributes(version1, comparison, version2) >}} The `version_compare()` function can be used to compare 2 arbitrary semver version numbers. This can be useful if you have 2 versions of a package and you want to know if they are the same version, if one is newer than the other etc. **Example:** -[%CFEngine_include_snippet(version_compare.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(version_compare.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(version_compare.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(version_compare.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **Notes:** diff --git a/content/reference/language-concepts/bundles.markdown b/content/reference/language-concepts/bundles.markdown index d74d9c9fd..6f0db559c 100644 --- a/content/reference/language-concepts/bundles.markdown +++ b/content/reference/language-concepts/bundles.markdown @@ -170,11 +170,11 @@ namespace). You just say `namespace:bundle_name` instead of When running `cf-agent`, the order of bundles to evaluate is determined by the `bundlesequence`. The default `bundlesequence` contains `main` for convenience, so this example works: -[%CFEngine_include_example(main.cf)%] +{{< CFEngine_include_example(main.cf) >}} #### Custom bundle sequences You can specify a custom `bundlesequence` from the command line using `--bundlesequence`, or in policy: -[%CFEngine_include_example(bundlesequence.cf)%] +{{< CFEngine_include_example(bundlesequence.cf) >}} In this example, cf-agent will not look for a `main` bundle, since it is not in the `bundlesequence`. @@ -190,9 +190,9 @@ Each file can include its own testsuite or some default behavior in a `__main__` All parts of the library will then be runnable directly, but also easy to include from other policy: `main_library.cf`: -[%CFEngine_include_example(main_library.cf)%] +{{< CFEngine_include_example(main_library.cf) >}} `main_entry_point.cf`: -[%CFEngine_include_example(main_entry_point.cf)%] +{{< CFEngine_include_example(main_entry_point.cf) >}} Both of these policy files can be run directly, the included library policy will not have a `main` bundle. diff --git a/content/reference/language-concepts/classes.markdown b/content/reference/language-concepts/classes.markdown index 47249bbc4..525e35fdc 100644 --- a/content/reference/language-concepts/classes.markdown +++ b/content/reference/language-concepts/classes.markdown @@ -299,7 +299,7 @@ Class guards are the most common way to restrict a promise to a specific context This example illustrates how a class guard applies (to multiple promises) until a new context is specified. -[%CFEngine_include_example(classes_context_applies_multiple_promises.cf)%] +{{< CFEngine_include_example(classes_context_applies_multiple_promises.cf) >}} Another Example: @@ -464,7 +464,7 @@ are not automatically canonified when they are checked. This example shows how classes are automatically canonified when they are defined and that you must explicitly canonify when verifying classes. -[%CFEngine_include_example(class-automatic-canonificiation.cf)%] +{{< CFEngine_include_example(class-automatic-canonificiation.cf) >}} ## Operators and precedence diff --git a/content/reference/language-concepts/namespaces.markdown b/content/reference/language-concepts/namespaces.markdown index 6368f127e..a557139f3 100644 --- a/content/reference/language-concepts/namespaces.markdown +++ b/content/reference/language-concepts/namespaces.markdown @@ -21,7 +21,7 @@ namespace applies within a single file to all subsequently defined bodies and bu following the namespace declaration until a different namespace has been declared or until the end of the file. -[%CFEngine_include_example(namespace_declaration.cf)%] +{{< CFEngine_include_example(namespace_declaration.cf) >}} **Notes:** @@ -36,7 +36,7 @@ the promiser. To refer to a bundle in another namespace you *must* specify the namespace by prefixing the bundle name with the namespace followed by a colon (`:`). -[%CFEngine_include_example(namespace_methods-usebundle.cf)%] +{{< CFEngine_include_example(namespace_methods-usebundle.cf) >}} ## Bodies @@ -44,19 +44,19 @@ Bodies are assumed to be within the same namespace as the promiser. To use a bod A common mistake is forgetting to specify `default:` when using bodies from the standard library which resides in the `default` namespace. -[%CFEngine_include_example(namespace_bodies.cf)%] +{{< CFEngine_include_example(namespace_bodies.cf) >}} ## Variables Variables (except for [Special variables][Special variables]) are assumed to be within the same scope as the promiser but can also be referenced fully qualified with the namespace. -[%CFEngine_include_example(namespace_variable_references.cf)%] +{{< CFEngine_include_example(namespace_variable_references.cf) >}} [Special variables][Special variables] are always accessible without a namespace prefix. For example, `this`, `mon`, `sys`, and `const` fall in this category. -[%CFEngine_include_example(namespace_special_var_exception.cf)%] +{{< CFEngine_include_example(namespace_special_var_exception.cf) >}} **Notes:** @@ -72,9 +72,9 @@ specified (except for Hard classes). To refer to a class in a different namespace prefix the class with the namespace suffixed by a colon (`:`). -[%CFEngine_include_example(namespace_classes.cf)%] +{{< CFEngine_include_example(namespace_classes.cf) >}} [Hard classes][Classes and decisions#Hard classes] exist in all namespaces and thus can be referred to from any namespace without qualification. -[%CFEngine_include_example(namespace_hard_classes.cf)%] +{{< CFEngine_include_example(namespace_hard_classes.cf) >}} diff --git a/content/reference/language-concepts/variables.markdown b/content/reference/language-concepts/variables.markdown index ab4725ba3..a386eedc9 100644 --- a/content/reference/language-concepts/variables.markdown +++ b/content/reference/language-concepts/variables.markdown @@ -82,7 +82,7 @@ allows flexibilty when defining strings that contain quotes. Single or double quotes can be escaped with `\` however, please note that backticks (`` ` ``) can **not** be escaped. -[%CFEngine_include_example(quoting.cf)%] +{{< CFEngine_include_example(quoting.cf) >}} ### Scalar size limitations @@ -162,7 +162,7 @@ They can **NOT** be *modified*, once created, but they can be re-defined. Data containers do not have the size limitations of regular scalar variables. -[%CFEngine_include_example(reference_values_inside_data.cf)%] +{{< CFEngine_include_example(reference_values_inside_data.cf) >}} ## Associative arrays @@ -189,6 +189,6 @@ from array variables for iteration purposes. **Example:** -[%CFEngine_include_example(arrays.cf)%] +{{< CFEngine_include_example(arrays.cf) >}} **See also:** `getindices()`, `getvalues()` diff --git a/content/reference/masterfiles-policy-framework/_index.markdown b/content/reference/masterfiles-policy-framework/_index.markdown index a5d69b131..c90fa56fc 100644 --- a/content/reference/masterfiles-policy-framework/_index.markdown +++ b/content/reference/masterfiles-policy-framework/_index.markdown @@ -9,4 +9,4 @@ aliases: The Masterfiles Policy Framework or MPF also commonly referred to as simply masterfiles is the policy framework that ships with CFEngine. -[%CFEngine_include_markdown(../../masterfiles/MPF.md)%] +{{< CFEngine_include_markdown(../../masterfiles/MPF.md) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown index b8cb151a1..3fd9b751e 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-CFE_cfengine.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-CFE_cfengine.html" --- -[%CFEngine_library_include(cfe_internal/CFE_cfengine)%] +{{< CFEngine_library_include(cfe_internal/CFE_cfengine) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown index 337b316fe..ccfb8cd0b 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog-watchdog.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-core-watchdog-watchdog.html" --- -[%CFEngine_library_include(cfe_internal/core/watchdog/watchdog)%] +{{< CFEngine_library_include(cfe_internal/core/watchdog/watchdog) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown index 8ec41c001..235d3ead9 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-core-watchdog.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-core-watchdog.html" --- -[%CFEngine_include_markdown(../../masterfiles/cfe_internal/core/watchdog/README.md)%] +{{< CFEngine_include_markdown(../../masterfiles/cfe_internal/core/watchdog/README.md) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown index afceabc66..3c7e671a0 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-enterprise-federation-federation.markdown @@ -7,4 +7,4 @@ aliases: This policy file handles Federated reporting setup and ongoing operations. -[%CFEngine_library_include(cfe_internal/enterprise/federation/federation)%] +{{< CFEngine_library_include(cfe_internal/enterprise/federation/federation) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown index 203fc93d9..393006d11 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-recommendations.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-recommendations.html" --- -[%CFEngine_library_include(cfe_internal/recommendations)%] +{{< CFEngine_library_include(cfe_internal/recommendations) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown index 15db3df0b..e6ce03b88 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_dc_workflow.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-cfe_internal_dc_workflow.html" --- -[%CFEngine_library_include(cfe_internal/update/cfe_internal_dc_workflow)%] +{{< CFEngine_library_include(cfe_internal/update/cfe_internal_dc_workflow) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown index 9519bf34f..b60ae8804 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-cfe_internal_update_from_repository.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-cfe_internal_update_from_repository.html" --- -[%CFEngine_library_include(cfe_internal/update/cfe_internal_update_from_repository)%] +{{< CFEngine_library_include(cfe_internal/update/cfe_internal_update_from_repository) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown index 132a68b7c..39b2b9c96 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-lib.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-lib.html" --- -[%CFEngine_library_include(cfe_internal/update/lib)%] +{{< CFEngine_library_include(cfe_internal/update/lib) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown index 2155b9dc7..2ec489e43 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-systemd_units.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-systemd_units.html" --- -[%CFEngine_library_include(cfe_internal/update/systemd_units)%] +{{< CFEngine_library_include(cfe_internal/update/systemd_units) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown index c2d9ece91..6c4842aa0 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_bins.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-update_bins.html" --- -[%CFEngine_library_include(cfe_internal/update/update_bins)%] +{{< CFEngine_library_include(cfe_internal/update/update_bins) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown index b6d44a2f5..1a409a79e 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_policy.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-update_policy.html" --- -[%CFEngine_library_include(cfe_internal/update/update_policy)%] +{{< CFEngine_library_include(cfe_internal/update/update_policy) >}} diff --git a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown index bf28c4e4d..7ed0af518 100644 --- a/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown +++ b/content/reference/masterfiles-policy-framework/cfe_internal-update-update_processes.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-cfe_internal-update-update_processes.html" --- -[%CFEngine_library_include(cfe_internal/update/update_processes)%] +{{< CFEngine_library_include(cfe_internal/update/update_processes) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown b/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown index 0fac36fe4..54f277f97 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf-hub.markdown @@ -10,4 +10,4 @@ various settings related to `cf-hub` can be tuned. Note: `cf-hub` is only available in CFEngine Enterprise. -[%CFEngine_library_include(controls/cf_hub)%] +{{< CFEngine_library_include(controls/cf_hub) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown b/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown index 8f975d001..6acb09a5c 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_agent.markdown @@ -8,4 +8,4 @@ aliases: This is where `body agent control` is defined. `body agent control` is where various settings related to `cf-agent` can be tuned. -[%CFEngine_library_include(controls/cf_agent)%] +{{< CFEngine_library_include(controls/cf_agent) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown b/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown index 424b42bcf..b5e4278e0 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_execd.markdown @@ -8,4 +8,4 @@ aliases: This is where `body executor control` is defined. `body executor control` is where various settings related to `cf-execd` can be tuned. -[%CFEngine_library_include(controls/cf_execd)%] +{{< CFEngine_library_include(controls/cf_execd) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown b/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown index ee1e6f858..cd5cfddff 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_monitord.markdown @@ -8,4 +8,4 @@ aliases: This is where `body monitor control` is defined. `body monitor control` is where various settings related to `cf-monitord` can be tuned. -[%CFEngine_library_include(controls/cf_monitord)%] +{{< CFEngine_library_include(controls/cf_monitord) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown b/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown index 9d696f708..c6d49d5f7 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_runagent.markdown @@ -10,4 +10,4 @@ various settings related to `cf-runagent` can be tuned. **See also:** [Run agent on multiple hosts sharing a class][Manual Execution#Remote agent run for many hosts sharing a class] -[%CFEngine_library_include(controls/cf_runagent)%] +{{< CFEngine_library_include(controls/cf_runagent) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown b/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown index 21afd1c9a..95eea2c43 100644 --- a/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown +++ b/content/reference/masterfiles-policy-framework/controls-cf_serverd.markdown @@ -8,4 +8,4 @@ aliases: This is where `body server control` is defined. `body server control` is where various settings related to `cf-serverd` can be tuned. -[%CFEngine_library_include(controls/cf_serverd)%] +{{< CFEngine_library_include(controls/cf_serverd) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-def.markdown b/content/reference/masterfiles-policy-framework/controls-def.markdown index 689535388..6e2400f4b 100644 --- a/content/reference/masterfiles-policy-framework/controls-def.markdown +++ b/content/reference/masterfiles-policy-framework/controls-def.markdown @@ -7,4 +7,4 @@ aliases: This is where most common variables and classes are defined. Note its variable scope can be augmented with `def.json`. -[%CFEngine_library_include(controls/def)%] +{{< CFEngine_library_include(controls/def) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown b/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown index 816bd06e1..19da41be1 100644 --- a/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown +++ b/content/reference/masterfiles-policy-framework/controls-def_inputs.markdown @@ -8,4 +8,4 @@ aliases: This is where the list of policy files to include as defined from the augments file is included. -[%CFEngine_library_include(controls/def_inputs)%] +{{< CFEngine_library_include(controls/def_inputs) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-reports.markdown b/content/reference/masterfiles-policy-framework/controls-reports.markdown index c7f128354..afd1db7f3 100644 --- a/content/reference/masterfiles-policy-framework/controls-reports.markdown +++ b/content/reference/masterfiles-policy-framework/controls-reports.markdown @@ -10,4 +10,4 @@ variables and classes should be collected by central reporting based on tags that should be included or excluded. It also controls which measuremtnts taken by `cf-monitord` will be collected for central reporting. -[%CFEngine_library_include(controls/reports)%] +{{< CFEngine_library_include(controls/reports) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-update_def.markdown b/content/reference/masterfiles-policy-framework/controls-update_def.markdown index cd50df50b..1c6822371 100644 --- a/content/reference/masterfiles-policy-framework/controls-update_def.markdown +++ b/content/reference/masterfiles-policy-framework/controls-update_def.markdown @@ -8,4 +8,4 @@ aliases: This is where most common variables and classes are defined for the update policy. Note its variable scope can be augmented with `def.json`. -[%CFEngine_library_include(controls/update_def)%] +{{< CFEngine_library_include(controls/update_def) >}} diff --git a/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown b/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown index 3d1a911d0..927dbbb33 100644 --- a/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown +++ b/content/reference/masterfiles-policy-framework/controls-update_def_inputs.markdown @@ -8,4 +8,4 @@ aliases: This is where the list of update related policy files to include as defined from the augments file is included. -[%CFEngine_library_include(controls/update_def_inputs)%] +{{< CFEngine_library_include(controls/update_def_inputs) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-any.markdown b/content/reference/masterfiles-policy-framework/inventory-any.markdown index 91b1161b9..bf34cbc18 100644 --- a/content/reference/masterfiles-policy-framework/inventory-any.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-any.markdown @@ -12,4 +12,4 @@ these inventoried variables and classes are automatically collected into a centralized reporting system. In the CFEngine Community Edition these variables are availbale from within policy, and may be reporting in numerous ways. -[%CFEngine_library_include(inventory/any)%] +{{< CFEngine_library_include(inventory/any) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-debian.markdown b/content/reference/masterfiles-policy-framework/inventory-debian.markdown index 415f69a7f..aafc441ba 100644 --- a/content/reference/masterfiles-policy-framework/inventory-debian.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-debian.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to debian hosts. -[%CFEngine_library_include(inventory/debian)%] +{{< CFEngine_library_include(inventory/debian) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown b/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown index 5beb0fa58..b11b80b08 100644 --- a/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-freebsd.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to freebsd hosts. -[%CFEngine_library_include(inventory/freebsd)%] +{{< CFEngine_library_include(inventory/freebsd) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-generic.markdown b/content/reference/masterfiles-policy-framework/inventory-generic.markdown index 77c95703e..c2cfb6328 100644 --- a/content/reference/masterfiles-policy-framework/inventory-generic.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-generic.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to generic hosts. -[%CFEngine_library_include(inventory/generic)%] +{{< CFEngine_library_include(inventory/generic) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-linux.markdown b/content/reference/masterfiles-policy-framework/inventory-linux.markdown index 972411ea0..adf2c97d3 100644 --- a/content/reference/masterfiles-policy-framework/inventory-linux.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-linux.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to linux hosts. -[%CFEngine_library_include(inventory/linux)%] +{{< CFEngine_library_include(inventory/linux) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-lsb.markdown b/content/reference/masterfiles-policy-framework/inventory-lsb.markdown index 10933bbb2..5e51ecf4a 100644 --- a/content/reference/masterfiles-policy-framework/inventory-lsb.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-lsb.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to lsb hosts. -[%CFEngine_library_include(inventory/lsb)%] +{{< CFEngine_library_include(inventory/lsb) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-macos.markdown b/content/reference/masterfiles-policy-framework/inventory-macos.markdown index a58819afe..c6a7f16fd 100644 --- a/content/reference/masterfiles-policy-framework/inventory-macos.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-macos.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to macos hosts. -[%CFEngine_library_include(inventory/macos)%] +{{< CFEngine_library_include(inventory/macos) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-os.markdown b/content/reference/masterfiles-policy-framework/inventory-os.markdown index 9d19049be..1c5f5454a 100644 --- a/content/reference/masterfiles-policy-framework/inventory-os.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-os.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to os hosts. -[%CFEngine_library_include(inventory/os)%] +{{< CFEngine_library_include(inventory/os) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-redhat.markdown b/content/reference/masterfiles-policy-framework/inventory-redhat.markdown index 543d67468..2baae1ae0 100644 --- a/content/reference/masterfiles-policy-framework/inventory-redhat.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-redhat.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to redhat hosts. -[%CFEngine_library_include(inventory/redhat)%] +{{< CFEngine_library_include(inventory/redhat) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-suse.markdown b/content/reference/masterfiles-policy-framework/inventory-suse.markdown index 6b5e53b95..ed9ce55e4 100644 --- a/content/reference/masterfiles-policy-framework/inventory-suse.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-suse.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to suse hosts. -[%CFEngine_library_include(inventory/suse)%] +{{< CFEngine_library_include(inventory/suse) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory-windows.markdown b/content/reference/masterfiles-policy-framework/inventory-windows.markdown index 3e820457a..13b682265 100644 --- a/content/reference/masterfiles-policy-framework/inventory-windows.markdown +++ b/content/reference/masterfiles-policy-framework/inventory-windows.markdown @@ -7,4 +7,4 @@ aliases: This policy is inventory related to windows hosts. -[%CFEngine_library_include(inventory/windows)%] +{{< CFEngine_library_include(inventory/windows) >}} diff --git a/content/reference/masterfiles-policy-framework/inventory.markdown b/content/reference/masterfiles-policy-framework/inventory.markdown index e84d123ac..6e911a3ad 100644 --- a/content/reference/masterfiles-policy-framework/inventory.markdown +++ b/content/reference/masterfiles-policy-framework/inventory.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-inventory.html" --- -[%CFEngine_include_markdown(../../masterfiles/inventory/README.md)%] +{{< CFEngine_include_markdown(../../masterfiles/inventory/README.md) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-autorun.markdown b/content/reference/masterfiles-policy-framework/lib-autorun.markdown index 89cdeb5c8..14abd08e1 100644 --- a/content/reference/masterfiles-policy-framework/lib-autorun.markdown +++ b/content/reference/masterfiles-policy-framework/lib-autorun.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-autorun.html" --- -[%CFEngine_library_include(lib/autorun)%] +{{< CFEngine_library_include(lib/autorun) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-bundles.markdown b/content/reference/masterfiles-policy-framework/lib-bundles.markdown index 449823b76..952b02dc3 100644 --- a/content/reference/masterfiles-policy-framework/lib-bundles.markdown +++ b/content/reference/masterfiles-policy-framework/lib-bundles.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-bundles.html" --- -[%CFEngine_library_include(lib/bundles)%] +{{< CFEngine_library_include(lib/bundles) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown b/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown index 0c915d05a..19b822050 100644 --- a/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown +++ b/content/reference/masterfiles-policy-framework/lib-cfe_internal.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-cfe_internal.html" --- -[%CFEngine_library_include(lib/cfe_internal)%] +{{< CFEngine_library_include(lib/cfe_internal) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown b/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown index c46982920..f82d377ee 100644 --- a/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown +++ b/content/reference/masterfiles-policy-framework/lib-cfe_internal_hub.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-cfe_internal_hub.html" --- -[%CFEngine_library_include(lib/cfe_internal_hub)%] +{{< CFEngine_library_include(lib/cfe_internal_hub) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown b/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown index f8b25e64d..7ca8c7813 100644 --- a/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown +++ b/content/reference/masterfiles-policy-framework/lib-cfengine_enterprise_hub_ha.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-cfengine_enterprise_hub_ha.html" --- -[%CFEngine_library_include(lib/cfengine_enterprise_hub_ha)%] +{{< CFEngine_library_include(lib/cfengine_enterprise_hub_ha) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-commands.markdown b/content/reference/masterfiles-policy-framework/lib-commands.markdown index 77941fd74..ef27a7509 100644 --- a/content/reference/masterfiles-policy-framework/lib-commands.markdown +++ b/content/reference/masterfiles-policy-framework/lib-commands.markdown @@ -8,4 +8,4 @@ aliases: See the [`commands` promises][commands] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/commands)%] +{{< CFEngine_library_include(lib/commands) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-common.markdown b/content/reference/masterfiles-policy-framework/lib-common.markdown index 3cbce3af3..1348a15d7 100644 --- a/content/reference/masterfiles-policy-framework/lib-common.markdown +++ b/content/reference/masterfiles-policy-framework/lib-common.markdown @@ -10,4 +10,4 @@ the [common promise attributes][Promise types#Common promise attributes] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/common)%] +{{< CFEngine_library_include(lib/common) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-databases.markdown b/content/reference/masterfiles-policy-framework/lib-databases.markdown index 74b10b163..497bcdf41 100644 --- a/content/reference/masterfiles-policy-framework/lib-databases.markdown +++ b/content/reference/masterfiles-policy-framework/lib-databases.markdown @@ -8,4 +8,4 @@ aliases: See the [`databases` promises][databases] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/databases)%] +{{< CFEngine_library_include(lib/databases) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown b/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown index 877b1216e..bdd6bca6c 100644 --- a/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown +++ b/content/reference/masterfiles-policy-framework/lib-edit_xml.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-edit_xml.html" --- -[%CFEngine_library_include(lib/edit_xml)%] +{{< CFEngine_library_include(lib/edit_xml) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-event.markdown b/content/reference/masterfiles-policy-framework/lib-event.markdown index 411a3bddd..8f393407d 100644 --- a/content/reference/masterfiles-policy-framework/lib-event.markdown +++ b/content/reference/masterfiles-policy-framework/lib-event.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-event.html" --- -[%CFEngine_library_include(lib/event)%] +{{< CFEngine_library_include(lib/event) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-examples.markdown b/content/reference/masterfiles-policy-framework/lib-examples.markdown index 6c1e375bd..069f68472 100644 --- a/content/reference/masterfiles-policy-framework/lib-examples.markdown +++ b/content/reference/masterfiles-policy-framework/lib-examples.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-examples.html" --- -[%CFEngine_library_include(lib/examples)%] +{{< CFEngine_library_include(lib/examples) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-feature.markdown b/content/reference/masterfiles-policy-framework/lib-feature.markdown index 49397abf4..01109300b 100644 --- a/content/reference/masterfiles-policy-framework/lib-feature.markdown +++ b/content/reference/masterfiles-policy-framework/lib-feature.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-feature.html" --- -[%CFEngine_library_include(lib/feature)%] +{{< CFEngine_library_include(lib/feature) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-files.markdown b/content/reference/masterfiles-policy-framework/lib-files.markdown index 2af8dba29..8f63551e1 100644 --- a/content/reference/masterfiles-policy-framework/lib-files.markdown +++ b/content/reference/masterfiles-policy-framework/lib-files.markdown @@ -9,4 +9,4 @@ See the [`files` promises][files] and [`edit_line` bundles][edit_line] documentation for a comprehensive reference on the bundles, body types, and attributes used here. -[%CFEngine_library_include(lib/files)%] +{{< CFEngine_library_include(lib/files) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown b/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown index 1796e0b81..1ad9ed82a 100644 --- a/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown +++ b/content/reference/masterfiles-policy-framework/lib-guest_environments.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-guest_environments.html" --- -[%CFEngine_library_include(lib/guest_environments)%] +{{< CFEngine_library_include(lib/guest_environments) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-monitor.markdown b/content/reference/masterfiles-policy-framework/lib-monitor.markdown index 7145e9a96..2317222b9 100644 --- a/content/reference/masterfiles-policy-framework/lib-monitor.markdown +++ b/content/reference/masterfiles-policy-framework/lib-monitor.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-monitor.html" --- -[%CFEngine_library_include(lib/monitor)%] +{{< CFEngine_library_include(lib/monitor) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-packages.markdown b/content/reference/masterfiles-policy-framework/lib-packages.markdown index 11db092e1..3e086142d 100644 --- a/content/reference/masterfiles-policy-framework/lib-packages.markdown +++ b/content/reference/masterfiles-policy-framework/lib-packages.markdown @@ -8,4 +8,4 @@ aliases: See the [`packages` promises][packages] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/packages)%] +{{< CFEngine_library_include(lib/packages) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-paths.markdown b/content/reference/masterfiles-policy-framework/lib-paths.markdown index 697968d4c..58b54ecc3 100644 --- a/content/reference/masterfiles-policy-framework/lib-paths.markdown +++ b/content/reference/masterfiles-policy-framework/lib-paths.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-paths.html" --- -[%CFEngine_library_include(lib/paths)%] +{{< CFEngine_library_include(lib/paths) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-processes.markdown b/content/reference/masterfiles-policy-framework/lib-processes.markdown index 0a80323bc..d5c92e37e 100644 --- a/content/reference/masterfiles-policy-framework/lib-processes.markdown +++ b/content/reference/masterfiles-policy-framework/lib-processes.markdown @@ -8,4 +8,4 @@ aliases: See the [`processes` promises][processes] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/processes)%] +{{< CFEngine_library_include(lib/processes) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-reports.markdown b/content/reference/masterfiles-policy-framework/lib-reports.markdown index 11c5e8f39..2a1db81c7 100644 --- a/content/reference/masterfiles-policy-framework/lib-reports.markdown +++ b/content/reference/masterfiles-policy-framework/lib-reports.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-reports.html" --- -[%CFEngine_library_include(lib/reports)%] +{{< CFEngine_library_include(lib/reports) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-services.markdown b/content/reference/masterfiles-policy-framework/lib-services.markdown index 0149c8b7b..859c75bcb 100644 --- a/content/reference/masterfiles-policy-framework/lib-services.markdown +++ b/content/reference/masterfiles-policy-framework/lib-services.markdown @@ -8,4 +8,4 @@ aliases: See the [`services` promises][services] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/services)%] +{{< CFEngine_library_include(lib/services) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-stdlib.markdown b/content/reference/masterfiles-policy-framework/lib-stdlib.markdown index 1c3c6de4d..6c430f48e 100644 --- a/content/reference/masterfiles-policy-framework/lib-stdlib.markdown +++ b/content/reference/masterfiles-policy-framework/lib-stdlib.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-lib-stdlib.html" --- -[%CFEngine_library_include(lib/stdlib)%] +{{< CFEngine_library_include(lib/stdlib) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-storage.markdown b/content/reference/masterfiles-policy-framework/lib-storage.markdown index 1c1e64c15..4271a0203 100644 --- a/content/reference/masterfiles-policy-framework/lib-storage.markdown +++ b/content/reference/masterfiles-policy-framework/lib-storage.markdown @@ -8,4 +8,4 @@ aliases: See the [`storage` promises][storage] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/storage)%] +{{< CFEngine_library_include(lib/storage) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-testing.markdown b/content/reference/masterfiles-policy-framework/lib-testing.markdown index a0a5dca8a..083479e29 100644 --- a/content/reference/masterfiles-policy-framework/lib-testing.markdown +++ b/content/reference/masterfiles-policy-framework/lib-testing.markdown @@ -10,4 +10,4 @@ TAP and jUnit. These bodies are included in the stdlib by default. -[%CFEngine_library_include(lib/testing)%] +{{< CFEngine_library_include(lib/testing) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-users.markdown b/content/reference/masterfiles-policy-framework/lib-users.markdown index cf0faca0d..d7c644ec5 100644 --- a/content/reference/masterfiles-policy-framework/lib-users.markdown +++ b/content/reference/masterfiles-policy-framework/lib-users.markdown @@ -8,4 +8,4 @@ aliases: See the [`users` promises][users] documentation for a comprehensive reference on the body types and attributes used here. -[%CFEngine_library_include(lib/users)%] +{{< CFEngine_library_include(lib/users) >}} diff --git a/content/reference/masterfiles-policy-framework/lib-vcs.markdown b/content/reference/masterfiles-policy-framework/lib-vcs.markdown index 6b0d35cbd..06d60f57f 100644 --- a/content/reference/masterfiles-policy-framework/lib-vcs.markdown +++ b/content/reference/masterfiles-policy-framework/lib-vcs.markdown @@ -7,4 +7,4 @@ aliases: The `vcs.cf` library provides bundles for working with version control tools. -[%CFEngine_library_include(lib/vcs)%] +{{< CFEngine_library_include(lib/vcs) >}} diff --git a/content/reference/masterfiles-policy-framework/modules-mustache.markdown b/content/reference/masterfiles-policy-framework/modules-mustache.markdown index 8bdc3b426..92d1fd655 100644 --- a/content/reference/masterfiles-policy-framework/modules-mustache.markdown +++ b/content/reference/masterfiles-policy-framework/modules-mustache.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-modules-mustache.html" --- -[%CFEngine_include_markdown(../../masterfiles/modules/mustache/README.md)%] +{{< CFEngine_include_markdown(../../masterfiles/modules/mustache/README.md) >}} diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown index 051969997..63893f11f 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.py.markdown @@ -6,5 +6,5 @@ aliases: --- ``` -[%CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.py)%] +{{< CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.py) >}} ``` diff --git a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown index 9fc7e3c51..c573e8b4b 100644 --- a/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown +++ b/content/reference/masterfiles-policy-framework/modules-promises-cfengine.sh.markdown @@ -6,5 +6,5 @@ aliases: --- ``` -[%CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.sh)%] +{{< CFEngine_include_markdown(../../masterfiles/modules/promises/cfengine.sh) >}} ``` diff --git a/content/reference/masterfiles-policy-framework/no-distrib.markdown b/content/reference/masterfiles-policy-framework/no-distrib.markdown index 4bef1be2b..ea0a8447d 100644 --- a/content/reference/masterfiles-policy-framework/no-distrib.markdown +++ b/content/reference/masterfiles-policy-framework/no-distrib.markdown @@ -6,4 +6,4 @@ aliases: - "/reference-masterfiles-policy-framework-no-distrib.html" --- -[%CFEngine_include_markdown(../../masterfiles/.no-distrib/README.md)%] +{{< CFEngine_include_markdown(../../masterfiles/.no-distrib/README.md) >}} diff --git a/content/reference/masterfiles-policy-framework/promises.markdown b/content/reference/masterfiles-policy-framework/promises.markdown index 0d8e839ba..3f36f00fc 100644 --- a/content/reference/masterfiles-policy-framework/promises.markdown +++ b/content/reference/masterfiles-policy-framework/promises.markdown @@ -12,4 +12,4 @@ part of the policy and the order in which to run bundles. ## Policy -[%CFEngine_library_include(promises)%] +{{< CFEngine_library_include(promises) >}} diff --git a/content/reference/masterfiles-policy-framework/services-autorun.markdown b/content/reference/masterfiles-policy-framework/services-autorun.markdown index bb2d7fb35..7350b0276 100644 --- a/content/reference/masterfiles-policy-framework/services-autorun.markdown +++ b/content/reference/masterfiles-policy-framework/services-autorun.markdown @@ -5,4 +5,4 @@ aliases: - "/reference-masterfiles-policy-framework-services-autorun.html" --- -[%CFEngine_include_markdown(../../masterfiles/services/autorun/README.md)%] +{{< CFEngine_include_markdown(../../masterfiles/services/autorun/README.md) >}} diff --git a/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown b/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown index 7b5152b29..a65e48885 100644 --- a/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown +++ b/content/reference/masterfiles-policy-framework/standalone_self_upgrade.markdown @@ -15,4 +15,4 @@ for use with community packages. *** -[%CFEngine_library_include(standalone_self_upgrade)%] +{{< CFEngine_library_include(standalone_self_upgrade) >}} diff --git a/content/reference/masterfiles-policy-framework/update.markdown b/content/reference/masterfiles-policy-framework/update.markdown index 645214225..3b222d208 100644 --- a/content/reference/masterfiles-policy-framework/update.markdown +++ b/content/reference/masterfiles-policy-framework/update.markdown @@ -10,4 +10,4 @@ aliases: policy from the hub as well as ensuring various core cfenigne components are running. -[%CFEngine_library_include(update)%] +{{< CFEngine_library_include(update) >}} diff --git a/content/reference/promise-types/_index.markdown b/content/reference/promise-types/_index.markdown index e6b252880..943dd1fa7 100644 --- a/content/reference/promise-types/_index.markdown +++ b/content/reference/promise-types/_index.markdown @@ -65,11 +65,11 @@ kept. Policy: -[%CFEngine_include_example(action_policy.cf, #\+begin_src\s+cfengine3, .*end_src)%] +{{< CFEngine_include_example(action_policy.cf, #\+begin_src\s+cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(action_policy.cf, #\+begin_src\s+mock_example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(action_policy.cf, #\+begin_src\s+mock_example_output\s*, .*end_src) >}} #### ifelapsed @@ -970,7 +970,7 @@ Handles in other namespaces may be referred to by namespace:handle. **Example:** -[%CFEngine_include_example(depends_on.cf)%] +{{< CFEngine_include_example(depends_on.cf) >}} ### handle @@ -1242,11 +1242,11 @@ you'd use `with => canonify("the value")` so you don't have to create a **Example:** -[%CFEngine_include_snippet(with.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(with.cf, #\+begin_src cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(with.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(with.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **History:** Was introduced in 3.11.0 @@ -1266,9 +1266,9 @@ type as a function call. For a detailed description, see **Examples:** -[%CFEngine_include_example(inherit_from.cf)%] +{{< CFEngine_include_example(inherit_from.cf) >}} -[%CFEngine_include_example(inherit_from_classes.cf)%] +{{< CFEngine_include_example(inherit_from_classes.cf) >}} **History:** Was introduced in 3.8.0. diff --git a/content/reference/promise-types/access.markdown b/content/reference/promise-types/access.markdown index 7ef937745..3f5776d6c 100644 --- a/content/reference/promise-types/access.markdown +++ b/content/reference/promise-types/access.markdown @@ -104,7 +104,7 @@ reporting and orchestration. Using the built-in `report_data_select` body `default_data_select_host`: -[%CFEngine_include_snippet(controls/reports.cf, .+default_data_select_host, \})%] +{{< CFEngine_include_snippet(controls/reports.cf, .+default_data_select_host, \}) >}} The access promise allows overlapping promises to be made, and these are kept on a @@ -122,7 +122,7 @@ promises will override less specific ones. **Description:** A list of hostnames or domains that should have access to the object. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Note:** The host trying to access the object is identified using a reverse DNS lookup on the connecting IP. This introduces latency for @@ -165,7 +165,7 @@ access: admit_ips => {"192.168.0.1", "192.168.0.0/24", "0.0.0.0/0"}; ``` -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `deny_ips`, `admit_hostnames`, `admit_keys` @@ -194,7 +194,7 @@ access: admit_keys => {"MD5=abcdef"}; ``` -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `deny_keys`, `admit_hostnames`, `admit_ips`, `copyfrom_restrict_keys` @@ -222,7 +222,7 @@ access: deny_hostnames => { ".cfengine.com", "www.cfengine3.com" }; ``` -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Notes:** Failure to resolve a hostname or it's reverse results in a denial. Since this control is sensitive to temporary DNS failures, and cases, where @@ -252,7 +252,7 @@ access: }; ``` -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `admit_ips`, `deny_hostnames`, `deny_keys` @@ -264,7 +264,7 @@ access: This overrides the grants in `admit_hostnames`, `admit_ips` and `admit_keys`. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} For example, here we'll deny the fictitious SHA key `abcdef`: @@ -358,7 +358,7 @@ files owned by non-privileged users. If `maproot` is true then remote A typical case where mapping is important is in making backups of many user files. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Example:** @@ -388,7 +388,7 @@ encryption is always enabled. If this flag is true a client cannot access the file object unless its connection is encrypted. -[%CFEngine_promise_attribute(false)%] +{{< CFEngine_promise_attribute(false) >}} **Example:** @@ -425,7 +425,7 @@ If more than one `report_data_select` body applies to the same host, all of them Usage of this body is only allowed in conjunction with using [`resource_type => "query"`][access#resource_type], as this is the resource type that is being affected. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Example:** @@ -443,9 +443,9 @@ body report_data_select report_data Here are the built-in `report_data_select` bodies `default_data_select_host()` and `default_data_select_policy_hub()`: -[%CFEngine_include_snippet(controls/reports.cf, .+default_data_select_host, \})%] +{{< CFEngine_include_snippet(controls/reports.cf, .+default_data_select_host, \}) >}} -[%CFEngine_include_snippet(controls/reports.cf, .+default_data_select_policy_hub, \})%] +{{< CFEngine_include_snippet(controls/reports.cf, .+default_data_select_policy_hub, \}) >}} **See also:** [Common body attributes][Promise types#Common body attributes] @@ -472,7 +472,7 @@ reported to the CFEngine Enterprise server. When combined with `metatags_include`, this list is applied to the selected subset. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `metatags_include`, `promise_handle_exclude`, `monitoring_exclude` @@ -489,7 +489,7 @@ reported to the CFENgine Enterprise server. When combined with `metatags_exclude`, the exclude list is applied to the subset from this list. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `metatags_exclude`, `promise_handle_include`, `monitoring_include` @@ -506,7 +506,7 @@ not be reported to the CFEngine Enterprise server. When combined with `promise_handle_include`, this list is applied to the selected subset. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `promise_handle_include`, `metatags_exclude`, `monitoring_exclude` @@ -523,7 +523,7 @@ be reported to the CFEngine Enterprise server. When combined with `promise_handle_exclude`, the exclude list is applied to the subset from this list. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `promise_handle_exclude`, `metatags_include`, `monitoring_include` @@ -540,7 +540,7 @@ to the CFEngine Enterprise server. When combined with `monitoring_exclude`, the exclude list is applied to the subset from this list. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `monitoring_exclude`, `promise_handle_include`, `metatags_include` @@ -557,7 +557,7 @@ reported to the CFEngine Enterprise server. When combined with `monitoring_include`, this list is applied to the selected subset. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **See also:** `monitoring_include`, `promise_handle_exclude`, `metatags_exclude` @@ -576,7 +576,7 @@ hashed passwords). In the case of literal data, the promise handle serves as the reference identifier for queries. Queries are instigated by function calls by any agent. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} If the resource type is `literal`, CFEngine will grant access to a literal data string. This string is defined either by the promiser @@ -663,7 +663,7 @@ bundle server my_access_rules() **Description:** For file promisers, the server will give access to the file under its shortcut name. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Example:** diff --git a/content/reference/promise-types/classes.markdown b/content/reference/promise-types/classes.markdown index 5fc10d639..c6344b5eb 100644 --- a/content/reference/promise-types/classes.markdown +++ b/content/reference/promise-types/classes.markdown @@ -27,7 +27,7 @@ classes: - Classes are not automatically canonified when checked. -[%CFEngine_include_example(class-automatic-canonificiation.cf)%] +{{< CFEngine_include_example(class-automatic-canonificiation.cf) >}} - The term ```class``` and ```context``` are sometimes used interchangeably. diff --git a/content/reference/promise-types/commands.markdown b/content/reference/promise-types/commands.markdown index 0f5ec003c..4c5080128 100644 --- a/content/reference/promise-types/commands.markdown +++ b/content/reference/promise-types/commands.markdown @@ -92,7 +92,7 @@ continue. ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### args @@ -437,7 +437,7 @@ be useful in all cases. **Example:** -[%CFEngine_include_example(inform.cf)%] +{{< CFEngine_include_example(inform.cf) >}} **History:** diff --git a/content/reference/promise-types/databases.markdown b/content/reference/promise-types/databases.markdown index d892dc33e..a00369aa3 100644 --- a/content/reference/promise-types/databases.markdown +++ b/content/reference/promise-types/databases.markdown @@ -151,7 +151,7 @@ a hierarchy of depth 1. ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### database_server diff --git a/content/reference/promise-types/defaults.markdown b/content/reference/promise-types/defaults.markdown index 0a1a50278..3dbac9408 100644 --- a/content/reference/promise-types/defaults.markdown +++ b/content/reference/promise-types/defaults.markdown @@ -107,4 +107,4 @@ with the default value. **Example:** -[%CFEngine_include_example(defaults.cf)%] +{{< CFEngine_include_example(defaults.cf) >}} diff --git a/content/reference/promise-types/files/_index.markdown b/content/reference/promise-types/files/_index.markdown index 5b07381fb..e94ea9231 100644 --- a/content/reference/promise-types/files/_index.markdown +++ b/content/reference/promise-types/files/_index.markdown @@ -318,7 +318,7 @@ alter such a socket. This is a known issue, documented in ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### acl @@ -542,7 +542,7 @@ acl_directory_inherit. **Description:** Defines whether the object inherits its ACL from its parent. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Notes:** This attribute has an effect only on Windows. @@ -1123,11 +1123,11 @@ When set to `true` if the promise is a remote copy and there is a failure to connect the promise will not be considered kept. If the agent is able to request the file and the file is missing the promise will be kept. -[%CFEngine_promise_attribute(false)%] +{{< CFEngine_promise_attribute(false) >}} **Example:** -[%CFEngine_include_example(missing_ok.cf)%] +{{< CFEngine_include_example(missing_ok.cf) >}} **Notes:** @@ -1238,7 +1238,7 @@ preserve => "true"; **Description:** Defines the protocol to use for the outgoing connection in this copy operation. -[%CFEngine_promise_attribute(classic)%] +{{< CFEngine_promise_attribute(classic) >}} **Note:** The value here will override the setting from [`body common control`][body common]. @@ -1406,7 +1406,7 @@ verify => "true"; **Example:** -[%CFEngine_include_example(files_content.cf)%] +{{< CFEngine_include_example(files_content.cf) >}} **History:** Was introduced in 3.16.0 @@ -1599,7 +1599,7 @@ promise the same attributes as the files inside it. `rmdirs` in `delete` bodies **Example:** -[%CFEngine_include_example(files_depth_search_include_basedir.cf)%] +{{< CFEngine_include_example(files_depth_search_include_basedir.cf) >}} **See also:** `rm_rf`, `rm_rf_depth` from the standard library. @@ -2036,7 +2036,7 @@ bundle agent example -[%CFEngine_include_example(template_method-inline_mustache.cf)%] +{{< CFEngine_include_example(template_method-inline_mustache.cf) >}} **History:** Was introduced in 3.12.0 @@ -2469,7 +2469,7 @@ regular fifo ``` -[%CFEngine_promise_attribute(cfengine)%] +{{< CFEngine_promise_attribute(cfengine) >}} ### link_from @@ -2515,11 +2515,11 @@ them to the source. **Example implementation:** -[%CFEngine_include_snippet(masterfiles/lib/files.cf, ^body\slink_from\slinkchildren.*, ^##)%] +{{< CFEngine_include_snippet(masterfiles/lib/files.cf, ^body\slink_from\slinkchildren.*, ^##) >}} **Example usage:** -[%CFEngine_include_example(symlink_children.cf)%] +{{< CFEngine_include_example(symlink_children.cf) >}} #### link_type @@ -2552,7 +2552,7 @@ absolute **Example impelementation:** -[%CFEngine_include_snippet(masterfiles/lib/files.cf, ^body\slink_from\sln_s.*, ^##)%] +{{< CFEngine_include_snippet(masterfiles/lib/files.cf, ^body\slink_from\sln_s.*, ^##) >}} ```cf3 body link_from example { @@ -2563,7 +2563,7 @@ source => "/tmp/source"; **Example usage:** -[%CFEngine_include_example(symlink.cf)%] +{{< CFEngine_include_example(symlink.cf) >}} **Notes:** @@ -2874,7 +2874,7 @@ specified in `mode`. **Example:** -[%CFEngine_include_example(rxdirs.cf)%] +{{< CFEngine_include_example(rxdirs.cf) >}} **See also:** `mode` @@ -3039,7 +3039,7 @@ files: **Description:** The data container to be passed to the template (Mustache or inline_mustache). It can come from a function call like `mergedata()` or from a data container reference like `@(mycontainer)`. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} **Example:** @@ -3081,7 +3081,7 @@ state in Mustache. By default `cfengine` requests the native CFEngine template implementation, but you can use `mustache` or `inline_mustache` as well. -[%CFEngine_promise_attribute(cfengine)%] +{{< CFEngine_promise_attribute(cfengine) >}} #### template_method cfengine @@ -3182,7 +3182,7 @@ for `inline_mustache` and `mustache`. For mustache explanation see -[%CFEngine_include_example(template_method-inline_mustache.cf)%] +{{< CFEngine_include_example(template_method-inline_mustache.cf) >}} **History:** Was introduced in 3.12.0 @@ -3226,7 +3226,7 @@ HTML, use the triple mustache: ```{{{name}}}``` or an ampersand A variable "miss" returns an empty string. -[%CFEngine_include_example(mustache_variables.cf)%] +{{< CFEngine_include_example(mustache_variables.cf) >}} ##### template_method mustache Sections @@ -3245,13 +3245,13 @@ If the key exists and has a value of false or an empty list, the HTML between the pound and slash will not be displayed. -[%CFEngine_include_example(mustache_sections_empty_list.cf)%] +{{< CFEngine_include_example(mustache_sections_empty_list.cf) >}} **Non-Empty Lists:** -[%CFEngine_include_example(mustache_sections_non_empty_list.cf)%] +{{< CFEngine_include_example(mustache_sections_non_empty_list.cf) >}} **Non-False Values:** @@ -3260,7 +3260,7 @@ When the value is non-false but not a list, it will be used as the context for a single rendering of the block. -[%CFEngine_include_example(mustache_sections_non_false_value.cf)%] +{{< CFEngine_include_example(mustache_sections_non_false_value.cf) >}} ##### template_method mustache Inverted Sections @@ -3275,7 +3275,7 @@ the key. That is, they will be rendered if the key doesn't exist, is false, or is an empty list. -[%CFEngine_include_example(mustache_sections_inverted.cf)%] +{{< CFEngine_include_example(mustache_sections_inverted.cf) >}} ##### template_method mustache Comments @@ -3283,7 +3283,7 @@ is an empty list. Comments begin with a bang and are ignored. Comments may contain newlines. -[%CFEngine_include_example(mustache_comments.cf)%] +{{< CFEngine_include_example(mustache_comments.cf) >}} ##### template_method mustache Set Delimiter @@ -3292,7 +3292,7 @@ Set Delimiter tags start with an equal sign and change the tag delimiters from ```{{``` and ```}}``` to custom strings. -[%CFEngine_include_example(mustache_set_delimiters.cf)%] +{{< CFEngine_include_example(mustache_set_delimiters.cf) >}} ##### template_method mustache extensions @@ -3304,28 +3304,28 @@ over the top level of a container `{{#-top-}} ... {{/-top-}}` and rendering json representation of data given with `$` and `%`. -[%CFEngine_include_example(mustache_extension_top.cf)%] +{{< CFEngine_include_example(mustache_extension_top.cf) >}} `%` variable prefix causing data to be rendered as multi-line json representation. Like output from `storejson()`. -[%CFEngine_include_example(mustache_extension_multiline_json.cf)%] +{{< CFEngine_include_example(mustache_extension_multiline_json.cf) >}} `$` variable prefix causing data to be rendered as compact json representation. Like output from `format()` with the ```%S``` format string. -[%CFEngine_include_example(mustache_extension_compact_json.cf)%] +{{< CFEngine_include_example(mustache_extension_compact_json.cf) >}} `@` expands the current key being iterated to complement the value as accessed with `.`. -[%CFEngine_include_example(mustache_extension_expand_key.cf)%] +{{< CFEngine_include_example(mustache_extension_expand_key.cf) >}} @@ -3386,7 +3386,7 @@ something else. **Example:** -[%CFEngine_include_example(files_transformer.cf)%] +{{< CFEngine_include_example(files_transformer.cf) >}} In the example, the promise is made on the file that we wish to transform. If the promised file exists, the transformer will change the file to a compressed diff --git a/content/reference/promise-types/files/edit_line/_index.markdown b/content/reference/promise-types/files/edit_line/_index.markdown index 01abc7559..95aa6798d 100644 --- a/content/reference/promise-types/files/edit_line/_index.markdown +++ b/content/reference/promise-types/files/edit_line/_index.markdown @@ -180,15 +180,15 @@ selected for editing. Prepare: -[%CFEngine_include_snippet(select_region.cf, #\+begin_src\s+prep, .*end_src)%] +{{< CFEngine_include_snippet(select_region.cf, #\+begin_src\s+prep, .*end_src) >}} Run: -[%CFEngine_include_snippet(select_region.cf, #\+begin_src\s+cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(select_region.cf, #\+begin_src\s+cfengine3, .*end_src) >}} Output: -[%CFEngine_include_snippet(select_region.cf, #\+begin_src\s+example_output\s*, .*end_src)%] +{{< CFEngine_include_snippet(select_region.cf, #\+begin_src\s+example_output\s*, .*end_src) >}} **See also:** [Common body attributes][Promise types#Common body attributes] diff --git a/content/reference/promise-types/files/edit_xml/_index.markdown b/content/reference/promise-types/files/edit_xml/_index.markdown index dc6bd7e75..20816dc8f 100644 --- a/content/reference/promise-types/files/edit_xml/_index.markdown +++ b/content/reference/promise-types/files/edit_xml/_index.markdown @@ -40,7 +40,7 @@ will be verified and built BEFORE other `edit_xml` promises within same promise body. Therefore, the file will not be empty during the execution of such promises. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} ### select_xpath @@ -49,4 +49,4 @@ of such promises. Edits to the XML document take place within the selected node. This attribute is not used when inserting XML content into an empty file. -[%CFEngine_promise_attribute()%] +{{< CFEngine_promise_attribute() >}} diff --git a/content/reference/promise-types/guest_environments.markdown b/content/reference/promise-types/guest_environments.markdown index 0b9466725..cb0e809cf 100644 --- a/content/reference/promise-types/guest_environments.markdown +++ b/content/reference/promise-types/guest_environments.markdown @@ -54,7 +54,7 @@ CFEngine currently provides a convergent interface to *libvirt*. ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### environment_host diff --git a/content/reference/promise-types/methods.markdown b/content/reference/promise-types/methods.markdown index cf1bb9e56..174b5d3e6 100644 --- a/content/reference/promise-types/methods.markdown +++ b/content/reference/promise-types/methods.markdown @@ -102,7 +102,7 @@ Here's a full example of how you might encode bundle names and parameters in a slist, if you need to pack and unpack method calls in a portable (e.g. written in a file) format. -[%CFEngine_include_snippet(unpack_method_calls.cf, #\+begin_src cfengine3, .*end_src)%] +{{< CFEngine_include_snippet(unpack_method_calls.cf, #\+begin_src cfengine3, .*end_src) >}} Output: @@ -116,7 +116,7 @@ Output: ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### inherit diff --git a/content/reference/promise-types/packages-deprecated.markdown b/content/reference/promise-types/packages-deprecated.markdown index 0fb3237e5..60c59a484 100644 --- a/content/reference/promise-types/packages-deprecated.markdown +++ b/content/reference/promise-types/packages-deprecated.markdown @@ -234,7 +234,7 @@ does not come with package bodies for that platform. ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### package_architectures diff --git a/content/reference/promise-types/packages.markdown b/content/reference/promise-types/packages.markdown index f7bba6d81..a5a93f3f0 100644 --- a/content/reference/promise-types/packages.markdown +++ b/content/reference/promise-types/packages.markdown @@ -93,7 +93,7 @@ string needs to be a bare package name, you cannot use a file name for this. ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### architecture diff --git a/content/reference/promise-types/processes.markdown b/content/reference/promise-types/processes.markdown index 4b0fdcb14..99a8d86cb 100644 --- a/content/reference/promise-types/processes.markdown +++ b/content/reference/promise-types/processes.markdown @@ -55,7 +55,7 @@ bundle agent example This example shows using `process_select` and `process_count` to define a class when a process has been running for longer than a day. -[%CFEngine_include_example(processes_define_class_based_on_process_runtime.cf)%] +{{< CFEngine_include_example(processes_define_class_based_on_process_runtime.cf) >}} Take care to not oversimplify your patterns as it may match unexpected processes. For example, on many systems, the process pattern `"^cp"` @@ -93,7 +93,7 @@ commands: ## Attributes -[%CFEngine_include_markdown(common-attributes.include.markdown)%] +{{< CFEngine_include_markdown(common-attributes.include.markdown) >}} ### process_count @@ -294,7 +294,7 @@ regex is [anchored][anchored], meaning it must match the entire name. **Example:** -[%CFEngine_include_example(kill_process_running_wrong_user.cf)%] +{{< CFEngine_include_example(kill_process_running_wrong_user.cf) >}} #### process_result diff --git a/content/reference/promise-types/reports.markdown b/content/reference/promise-types/reports.markdown index d93268bed..79952be95 100644 --- a/content/reference/promise-types/reports.markdown +++ b/content/reference/promise-types/reports.markdown @@ -10,7 +10,7 @@ qualification can be a dangerous operation. In a large installation it could unleash an avalanche of messaging, so it is recommended that reports are guarded appropriately. -[%CFEngine_include_example(reports.cf)%] +{{< CFEngine_include_example(reports.cf) >}}