pgreco / rpms / cockpit

Forked from forks/areguera/rpms/cockpit 4 years ago
Clone

Blame SOURCES/0003-Make-basic-selinux-functionality-available-without-s.patch

80383f
From 1b53cfea751d8672d1f3cf746f1119460c94efc1 Mon Sep 17 00:00:00 2001
80383f
From: Dominik Perpeet <dperpeet@redhat.com>
80383f
Date: Tue, 7 Feb 2017 19:42:14 +0100
80383f
Subject: [PATCH 3/3] Make basic selinux functionality available without
80383f
 setroubleshootd
80383f
80383f
Even if setroubleshootd isn't installed, the user can still read the
80383f
enforce-mode and toggle it.
80383f
80383f
Bug https://bugzilla.redhat.com/show_bug.cgi?id=1422181
80383f
80383f
Upstream commits:
80383f
e6532bc1189c6eb36180a4022a2e0bc923fef731
80383f
    selinux: Make basic functionality available without setroubleshootd
80383f
22be38a0aa420a413d9b3cc96f3e0fbc77056c1a
80383f
    selinux: Rename to SELinux in the menu
80383f
c16d415707297ef3bf26aae42bffeeebd8f11108
80383f
    selinux: Try to read SELinux system policy as superuser
80383f
e1b66614959d207c788cf88fe55db4c14493515d
80383f
    test: Enable partial testing of selinux on rhel-atomic
80383f
---
80383f
 dist/selinux/manifest.json           | Bin 203 -> 190 bytes
80383f
 dist/selinux/selinux.min.js          | Bin 392107 -> 392030 bytes
80383f
 dist/selinux/selinux.min.js.map      | Bin 1335679 -> 1336700 bytes
80383f
 pkg/selinux/manifest.json            |   2 +-
80383f
 pkg/selinux/selinux-client.es6       |   2 +-
80383f
 pkg/selinux/setroubleshoot-client.js |   2 +-
80383f
 pkg/selinux/setroubleshoot-view.jsx  | 100 +++++++++++++++++++++--------------
80383f
 pkg/selinux/setroubleshoot.js        |   2 -
80383f
 test/verify/check-setroubleshoot     |   9 +---
80383f
 dist/selinux/Makefile.deps           | Bin 2627 -> 2627 bytes
80383f
 10 files changed, 64 insertions(+), 53 deletions(-)
80383f
80383f
diff --git a/dist/selinux/manifest.json b/dist/selinux/manifest.json
80383f
index 67b5c5affd146684193de1bddd7ab02c6fb4cfee..ecb12797aee014aa83acc2b20e9f70777bfc8775 100644
80383f
GIT binary patch
80383f
delta 9
80383f
QcmX@jxQ}tdq>1x&02HAF3IG5A
80383f
80383f
delta 23
80383f
ecmdnTc$#s-BwmG(qWsdNoYdls{QQ!MlXL)V6$vx|
80383f
80383f
diff --git a/dist/selinux/selinux.min.js b/dist/selinux/selinux.min.js
80383f
index 1414f098008a2a610eecb270236291ad0e47fd12..62a4aefcd78c50901925e56b7136cd3b87d4d3b0 100644
80383f
GIT binary patch
80383f
delta 2403
80383f
zcmZ8idr(}}8K1N42Mgh`3#`kVvn%ZE2H3;|(gu<c3?^yx5>uSoG(*FMy@U;y-Rs@E
80383f
zJZeZ&YhTW2wAbeAj3$ka&KPYAxFc(%Z4w=)2@oD35$lX8JDvKEZ3kPYR$C|i?p>0o
80383f
zJ9GD*@Ao~
80383f
z@v@v>SeT%{n%84de7a)4Ltk$nBOqz_7(mMc*Qf1H0-7A91mO24pj6L=9Q~N%eu}=}
80383f
z2&O4Mzv
80383f
zi&1p3a<gvtX2(a}N*ejGYNy^%eJG90Fge5ubcNgWH>#h_F#PzDBRbz!h}&O)QoKK%
80383f
zIpQb1m6R$T>tUt(X@6P#<G=|DiXY`$D&sG&e=MCiG<>b7h61;Bt)u^=U2FXU-^w>M
80383f
zae;5)z4WT7@pI*X!0Y&i4$_F~p;*5Z)}jXleWA-&sBo{B`wj-WdqZ+imBM5~$=4Oc
80383f
zdG~!8`q@60ep+_u(oSdm%wapz<-@M{eBU$HTt)J!wOsPoazXNGIPPTyc
80383f
zML(T%=_|`)`k$6vcz&BDQ$L?vLtJN)(Hi_q4&!(*hdqkT#;W4mEH9Ct%YNoyO5)i{
80383f
z_EVNE_%uIn=3!}&D~a`PmX^hYM12iQI@1-O)*FiI&%Nu#mKL%V@cP}%m%EMENPgbP
80383f
zeFlHw#NF)ul%|0k3wN*vDq3PsD-)<-_~aJm#?D6=;2-v|KUxG$e=b>W0*N#CvMn6<
80383f
z%B&uXWwr_b+Q;e>Ka|
80383f
zlgC+MB0j=$GHB-ukFs7Ovi3&|D@i;$!HV#`7nqu_XtjKg80b+W{cVv!BZb6wUu4hF
80383f
zu;cg{=ES_0*d65PeTi+#B&=hcZ6fjMady?}Pz)x5sPzWKt|)aw#T!qt^38&3$fW8C
80383f
z8(=^T21yuB3DH=Wri$GfA^TU=hUo*w8s{ch)o#Nh+AeiR!a+l`PfP`g3ZZaJlMG0r
80383f
z_M29_BQezgw3|RHRfFWPA!Ad5mG3m|1fw8^LcM9YUlL8vXbKn*<(Ra$hb#tDqz-n)
80383f
zy1HbEfB}=)sRS!FnDvKbITXD`E|hY=4Mb8v|1GY;6wtfMG-il+Bf&~qDB7ST^%=B=
80383f
zQk$B6Gh{jCG`vc(e>Fy|Ukr!7XOL
80383f
zN4iBbn_+4<d8Fi4Q4`5#zk%VKud^f6+2*tCn(>_
80383f
zPg>&Qq;>xX*!mkwzC9XKBsCV5)JE>n)L~D;{XDdKQAvOm$1XsTJs^ceswEA<)~(!q
80383f
zmme1rP^Wi3o{k&FVKWNvfESOCLWcgYT@GBg1UV?a1yv{(TMDuB*HDS?XIpI6Msmd;
80383f
zOhCE5TxZ3$5tfln+>KANmPhzjT)GNXRxZ=3{2CPD*d!F^&
80383f
z1ZTDsP-Eepp&<$o#{XV~O1-nnsyAj9FbNwkL1}>$2uhk5lB4DkWelr?y_aAo=|?X?
80383f
zCB5b@K~qX9N8c3C$vFkCulNxyiXWbWA}h5;!pEkd%Ge1frl21GF-3XX=O7zTor7H5
80383f
zFb%bMV;nNEZyH?q<7sfPF#d9yIG>vaj*%Hs{cRfDcyb1^uyh7o)*v+yKUxMSw$D(`
80383f
zWU|)Ky1$_K^9)q1`%*d{SsIXJ4-bX;mvL1JdZ
80383f
z8(z5#9%HL?O8
80383f
z19!|pzIDVXOvfA?!nqYl$Jse3!P)ny9-qxo6`JSCu52D``bL{6d9kyTIrQT}D5A~>
80383f
z6g8qmX)m+Q#uw1cWn6iS+A;PYiuU<yP>#ob4;8p{4eZuvzb6YTe@pw1jzW5l>htWl
80383f
z<%v(c10_5V@c8}aX>Rn+<EiDhu6E;wH)FfMMULMHM>SEFc~sKWNQ|aC+8c>zb@UYs
80383f
zNGjJNbR^w|dHX&0(Sb0;sql3DnR|RCGL0Di>M8`x%A`eVvrb%t3X7bDFQ299q={$U
80383f
z_)w9>nYukr&V!wRn~7Fo-YAXH_AyHNfAdg>bqn-&bF?1Bw-=yZx4Y6Y?Fv=b#Otom
80383f
zyeQ}4Ra~=3b7x|^7O7g~T7VBP(nvkM2%Gg_b|GfI32Sg=k!JT)b^+EHEIY2k*KH%z
80383f
z-tJniq5A^)tb7b*i5HjP=LK|4JhYuok9{A4CrzQmE_@0#*l7d6Ctrg+JoZn>Nc`?Y
80383f
Pu+b%xc>C}0LC*gH)zB>W
80383f
80383f
delta 2572
80383f
zcmZuzeN0=|71uSsj`=V#7-I-u*AS=);3h3a%?C+IA?wn-Bomnsqh0dAH()UDy}kDg
80383f
zNfi__by_=hjoPQ?L`yqG)v9Vr*O0lZvoft|r)f#}a#o;?_MtFoMN5=O{IhQDChgp3
80383f
zLzZbs=H1`<KIfi$?)~%M0~fvsOg!NrQlibV!%ZY>si53Sb+{96<_tQ#()Jvd`5TdS
80383f
zrX|WfuQ`Zj{e1mV6!oS8)@JVn;w5jjLkd}`Y-UY){YcneP$mdVyv)j{9&5bdAj;n;
80383f
zh-68jdaEE+Z0#?+fRrx_zl)y7d{2{FCCqhQ)mbakL)9Jja&#aX<E&3r6y9e>mHu!w
80383f
z6!=IH>Roa()Vp2u0VP`Etqq5=@bhH_ab#&dqt?>3V(Z8{XQG6a5TtJj{vr!imN%ZT
80383f
zxvvcRtce-7b*lDtWLDO3k@UfeD!3w3r=`{xB__jXP!HtWSrrL&^Gh!D^sknZ1{Cx6
80383f
zK8*i6dN*y-FwRG|GmY(F1NdoZsAp1-#+uk8&mu?G`{To0F^wMWS?fCs
80383f
zU~4OrSX~_p9S-+lauJ;?C@xv2WM5*rci%c|d?)~opV4efi@6g$gSEtZbTE*Bp>xh$
80383f
ziHGz?#_Jn#8(OtK&FWtYSjk%x*7;ij>-=&yjD<)p#%e7Y4QR&+?|Mi%)OpDB;PMa#
80383f
z
80383f
zB|nki$Tvv?xZB7JSe;ke$Yc2VT^spR8iinHH}RnKA9f=LzXk0?aycXu+MdZ`Fus>e
80383f
z3&DM)CaFD5b}%T8k!H9xL|WjTA<~@O8zY~2(Mio13Hl{HWDZ1)@ZpGj+`x
80383f
z7zwX)N-}GOUw`6=IGC1Pd7eNO?#Y&qi{Oo)kdZ>kY-D@o@KIeI-mi|LnwG46i=4v-
80383f
zhmYPS4H(zmw@FJj!i|?m3&NgDWZvnOMB_=aIS`h64XiNidY@Eo)pP-ob5ubZf=C3x
80383f
z@iZ{vy{0brnMmo*u!ZO$v4%76lZ_{ZhSABffg^(R4LNPZkfKW5
80383f
z<|?5b6GyD9;x5jI1VKi^+L;tb(^i*M#T*c9eO11j%X@5#Mw&7r$Kw3JQ4|?X2Ya|T
80383f
z-rI}EtCfwU3H@B8(uv?f`*1Qz{2~`)EfY0ub9gO}NSZK^$s(SHV)M}CVMGs_)Wf5h
80383f
zbdIHc53j}_OKTqIvK{
80383f
z-^VevPqx!Mj-7!TY1}TG*hZ{d(BQ?(<OFtt>z8Cf9Q;3iV0Sp5B=to4{^?1AKL`G@
80383f
zlBXw~-Jd6O-lXkyI3t}f@f2}GWhcpp{a5LFcV<#?2o@4QFhX)+%XMmxL@|&`&9EL<
80383f
z_C$}NV;
80383f
zqE-0WIYqapQ3b#hEwUz<8!k>!pD^?AgZirNctBPnG2YH&+~jRBuAAZBs1gbBMzp;$
80383f
zMK{_ON~dYFumHPKbR8U;rd2k&^&ZWGlhbsYjmEFgZ1{MZ1_ZLc`azC6sIn6$Sdhb=
80383f
zX<B2;<j-IMgrV>Z-2|x$hYP+nleV@lf}5}ny%HBGhF523$*N#BBxYzZExq`ErSoTL
80383f
zrI5zdn`UVs@Ia!~I*(K{oV6zO%+e0q>iJpvxV<=ck9xo}P2F~$E3>qE)vF7QZJ5j8
80383f
z9doqIW^~O_KWL{hZ*z`*y}%6jsd2@`nUq
80383f
zeI`ZwZSrqYnW7Ber1`Lt%2aUk%TCC
80383f
zUcixT?6L6`noI4=6LwD04Ul@5HbdEm^ie3iNDshE6LdE`H&1s7*Vg%f3qG8u8|*mj
80383f
zVE;OwDg3|Z=|eUd_q8dldv<~P;9d)H!Os?G_`c5a0<8e=U2F|@k$NGpNc}dmaglCa
80383f
zU3frWq%8tjKhE>P<YLCa-xlfPw#_V2lOLvN8OXU<Lc7zhU86P7{0^49>Jw3#Ycv3_
80383f
zCTI~+URxrSZt)0F8(GXcb+s5K_7SH)eT?qE5%BT~sc_`?v`EyU1nd-henqP*Q4RYa
80383f
z9~V#Fe^7+O)%Epk+nP%Dd$bs^RVv{hS8377G2G@grFbl&JY=puN0_Oy&W=O68pk1O
80383f
z45+HfA~MH07G?)yTsAo4iV@d2GY4do8QlCY$tHvABV1=ugGCj?lw&a-5rO>Am^7g2
80383f
zw{$)H=mPaSqnIIFnZ~+QUdH#-r95BhFgFajpW^`%H)XmGb{CvEOG+&^=t^$;lur2Y
80383f
ma{TDqrQp0ntEnUk0KtoND`>ZAZc@EN-FP!5kKLu8d;SB%I95^s
80383f
80383f
diff --git a/dist/selinux/selinux.min.js.map b/dist/selinux/selinux.min.js.map
80383f
index 4d6abdb9b5696031f2fa612423db44b7aff11ee2..002f9eec7ab9e23410f4796abb49a43e336f61c8 100644
80383f
GIT binary patch
80383f
delta 11425
80383f
zcmbVS33OXmnLh7bJBj@q+liFLS!~&Hwo0)iYmc+Nr!9)(*pA~k4k@iH$=Vl7vMebr
80383f
zNe@dHme3N~zbw;~ozl`00(qrNx^RX8%7K(&8>T=R4yA=|P-v&n()sUwPl=oam@_#?
80383f
z@_YCG_rL%8{r|nuTaS;v@tx6|4{Kfh)8>#VVhP&&O}3z8$~
80383f
zQcZ=~TqHkRh~!WC(}A;}NdJ`UEatPbQ>jQHmdzI9nP`upCz8$;EAC*f7|&)-&164)
80383f
zc3tjh>q5O-Gz^Qjv!8v(?c9Pr0|OJ{(5WNG4=>A1lq9#oD~h7WFpl4&1ODBWQ%@XU
80383f
z!{vbc2*2#?o5#
80383f
zJ}wDQe1Ws_t}1YMaqnDJFzr>=iu2cw=Hxr>;`S}#X5oc1+-lw&h2is@UmpDm_Zyxo
80383f
zfa7ai7oShbIB4YL6X&>|MlKCse30wpQ?m-`l85kx*Uy6aJhz5R$@|W8i3Z+Tfd?K(
80383f
zhAu0m+AVi|gImjU71;i7_}A=YOX0wC{Ey|zH@Q5)t)Blj*F|!Pee#IRZ{g&DC%A_j
80383f
zQH|FxaGk_a*asu$IiGy}lU$h~oB#YFj#?^g^Z~g3XWSzBp&xPIB0aO!eTt&F8D^l1
80383f
zW*Qh67)(kryRt;aB^L;11@kYsP853N7u;_enw_y>WpNRLZ*ba%tQ5<_=r7P7cl?_B
80383f
zZ3AbA_dH8AFVjIc>}uc}
80383f
z$g3EInOAXx^RI9p=26|zS5cm-oO_iE5N-w@cpYhMIfbVCFPxp{=HSp9=oCwl4!U9F
80383f
zJ6wbO=o{Q5;pT2##q0QLW&T7PCx4jZ_weZApA){5w^$Tzo(5iOz`+xX__e&tr3}8X
80383f
zi2piu)8_@glVswfiq%_N_}kINari
80383f
zN=M;JgT&qDl1lxyWxSs>7v@xIBRsi;*DM%Jx^1RWcyt%<1JunX@9N+`LV7A@l`K}g
80383f
zl4;tVu&YeBt>xo9dh2sts6}4SMjw~|MaMrudg8{~R#)LM<4&daQ=NCnU+v|8jA5LD
80383f
z4{S!A69qQxlmEDxM<3W>vjJHr=G4)f4g6s``ujd=Hq(B1ln}o>X5?LHHWQpQQx;Z*
80383f
z81DWwZ<nv>=kMZs?AHB?l`J`FUSiT{HMwn0mH&W^e}#J9=;U=69V1R&PtbKY44^*~
80383f
z85ni)e%SRR?gsg~ZTwCer>A$}Osqs_)DXc4{v9X3Eb(vh81^rE>AaQB@05pp{I!iZ
80383f
zc=sS>XS}osMnZg_ylXG-qdZTH@LhZ+4UbLoe)**lUQ0+ca{yjC!>uH7k45f2z#nTw
80383f
zsXjT$cXAH-(MkR(o-@I}9zm{UtFo-&T0Y8iSx8-nylhTo@Q2qSFATcprqFu1_&D>s
80383f
zjC-GK;G*!$D6ThV<+q~zG%xh$#ubYhOCWxY(=0+m&3dYZaq2a{{DTDlZW_Ob($w>1
80383f
zg%u5<YvnZ=zNxV}UQySVAeiPgjTMj4#@6nT-(BFJS-|x}s>*i}W9*<32j8vo|K8AS
80383f
zjUQCDO+fHnxUAok%Q6C=-1bwx#K|)^@z3xm?V)$kjZ5m>Bk$r7uHxW)FO3VcI(quO
80383f
z{HOV5y;)^hRaiPbE*m3w0G_^spObI>0RJRuHrZ7wGoxzIdn_?p68!S_ZswQLAo$fO
80383f
zG
80383f
za+TcjR{Jlqya6!Evhu`f{&~_pV^Notud*!bE$fv%Fy{Z8`u*hRP`pe6{%{uKlHuo{
80383f
zKZm>X`UGsb3vnoup;J5M_us|e-yrBSYQ=L@AovQWA>P<*-O{`7
80383f
zO=tLh)EgJh@?Bg;e)%lFo#1Pqj8T_xP(nYnyvF~B9KWAGy?}Q*p!pF@QFCfi0leHJ
80383f
ze3h2J-#><-;L5Sl9WtW#?F*XwXC@U(X5h?EFcj?GglY03R2ksj$N2;D6W`{W76^8e
80383f
zN}8+EVAVD{y&1i_#f}U7XZYs0QKiT$%=BJY{IDW}5?7D@kpC^sqA&aeBgmDzG
80383f
zj;5cYqjT!$51-=i<(p0A!-{-mg=Ny0H>(7{`z3#zhGX*AxUB3@M}P2ZB`3E&gQE_k
80383f
zI{L|HXw9g=^UqQfB!Y@iSh3F$%n{)QN}FS&JLJR*yuP8iG80rbb}1Xr`iiCCZ7~eh
80383f
zzx@FngoR@5pKw*K%2xU1cjFr`L`~|dn27~uW5t)S1Zfk{!O6dTjo-hZ$7xYXGNvm-
80383f
z)8sQorxf8n`Zshh*MIBR3CfmK2X!2|k?L^=AzfJL&lB=mBd^ba+(fXHl~t;>&7`pb
80383f
zC0y4^;#>?q*h-$TMkP@UxeXJdI57~xRx4Na7zRam*~gl&v^0POp}mHHC
80383f
z1vj;k<xSQYYvzV5aAzCoXwvH?Hfw~(+sHM??CPuo7mbSI!GSqR^oop+n|=>jaRPh6
80383f
zAzBgq4hf0e)1{cQLpCvQj;?hdG-OfK5#t;saf=Cwt{!%xxY$c(B|}gY59DzjPVO-z
80383f
zA=yrRoAo%G#8pWtfkqt@y;aG}menS#k^z-IP=ueglaXeX**H4Mx`ezBL+_C#q|Y?X
80383f
zdRD3h7S$mXd3<0J&9%=!zv<(U4^1WxVmS-AeEKr1T}l#7M(b3-fbVg*c_~@Rnc=Rb
80383f
zWCN3zcDFH;X8<)mFs?Ac$3wHKuyJW%!0+;z^i$K!2R8HkcnF9yl2IB6=zXpzbZW?Z
80383f
z+vBm2MH-|Q2o8+ueKGl*hWwGV;;
80383f
zq$Q(oCKj4D4C;M(Xj)0OH5Y1hMHpU5cJ|H1Lc`QW$cug
80383f
z?V%glVxbCL*FieqM=Ob@*<NGhpo~oL9Rq38>#1b(xFzDD(Hgfbij$6q4pMFzIMP8}
80383f
z&Dpprb`DN=khRT)+Itbc*+Hh7XKU{zHs4yocXb1l6s}!Gc3^c2O)=GN@Yz-5E8Woq
80383f
z#`Q(>BtjDfbbueXPJ|9o1v5}yO}bhO^<*XZ>}oRBZK@x$Tv}>ZmpY(h4e1s12~}!i
80383f
z0(P$
80383f
zRH}1&RX)C!?BtqpcsJA14Bzg=n6}rJIbdBE>01&_;;I6Pj7ga4BL3ERDm10I7LA?)
80383f
zxr>apW>cX96bo4V<YBpv{H8gbQl-d1V>j6Vf7KBU?C2(z_ChLDu49~so4Uz|l=*c%
80383f
z#MU~CD=)gF4AVVieRF?}n+0y|Avd;LQ=xnv4+{jlh!*VY$oq$_=p2^7)MbGL<^)Eb
80383f
znD!V#MxUOtu6fd!3I&X`&vbjR-MmB;Pa_cvUZ!DtFWFRMnqaFhW16P)HKv*L)tS!J
80383f
zGcCf2ULtO@S3L*{LoT{{Zy-t0&W$Ht#Ju5*rC#jWbZFoFET}@mda}D8IZ&{3mwa)C
80383f
zm6xqEU9rvv?^sXP2u_rSg@`K+t9wXCyU`cT)M=f7@2w}jtywxYR`cs^8xTPXnUJ~8
80383f
z@Oij>19^4CyN600FnJlg`5E>lyoL}~4C)TVn@MWt{FUYtMYpr!p|!*9&-YWii^H~Q
80383f
zcyI+-b&QP`r9_Z22q_lvvcZ^yHH4xgdpj_Ln9cAB&FL@F>f#QR7#O-mYd-}=pNKA|
80383f
zhK-dyxQBlv8KJMEC8au0V8X&-!aZ;_VrF}FieBXBj!82LYAb4)y$Hlf>97ZWu#s$P
80383f
zq=FaWt&OB-8GS6XT>>VvqLNq!`zEr!iPnpN=)u?UCUQ?7Qu>Wvx>cYu!wRQctSV(N
80383f
zP^?I}fqM@vJV+3gO0Z)yF(0GcQ_7k&s!Kz~QWqo`;+V{+cQPtrIEh2-ZJ))b7=}(A
80383f
zv|6b*#j&i!CJ!WRtej8A@h{pvDV10n3_7rK;`>mE768%faNA9uW9%_tDJWB!y$sJ8
80383f
zpZ$82154|8j?udhW{iyAQ2+D*CGhWy
80383f
z
80383f
zmQ{PKY?Q}%iN@zhzzCc5Xz{F-0*N?gh+|_Am(>0shM7iLl+aHI#wG78KBxmski#?@
80383f
zabT3TXSCYe>Qi|x9ommF>3!vNC{!z}Xe4nIB}cyvi&$jw%{sQC#uYv2Eqg9
80383f
z80sSnj~(941XMhKU^mM*<t4nEwkr|kWqMqdegD7!>QeQZC3-xevMDiL^
80383f
z(9|i{#g)+)ryx*+w?u}PA}SdoDtxn#tT;Ap4y*4JVbhelR-|&7&`;;b<6YliLYl>V
80383f
zL#K|?#M+-mCtbPUOg)EuCKOOP;F6>_BUMm1mfxz7`zW#_ie!~8F=D5{hRlt~9PK$O
80383f
zDz9`eBtwftL~lxR^i${!9H7Dk#_%z?2dNJS^pG%+4ML@ck5z_`+gtl7eAm>n!EX(;
80383f
zXxE60X}GP2yuA}0H*AyUnWLTtfp#_Aw}murqXPOJ2vF2V&U#NI6nryFds!2kmD2T)
80383f
zTEtm+c?;>p!&_S)S-lz=d2Le4O~F-6qfXdZibDx0VfDa!jKpq=CBiZHKp^IyO@>)I
80383f
z1=1LfsPu#*>0$Ba#J@CoX(Wx?;CUl?jL#?GJ`>sKj4HIj6lMatd?-3OFdFmECBv5*
80383f
zgQ&lh42P$vKLdKqU>d?DXf=}+P4=t;H%90)lQqW*Sm0<uuqloknypG~V>eyvlA@>u
80383f
zs)K-6R(Gor_$fimt;ga^?Nz;OeWEB)0;6O{XjeF7F5^HOQh0MGSp~l~ljUoYQ5Bsh
80383f
zReChrsOT?CmZ%4wbYq{gsh=$7^kDBN-JB5)^%K*|Bo=F=@=gZ~G(po!{fW8Y&VFKU
80383f
zvP(3bl9CyI)=zqy3K)!7vw~GvXd&zIig=5Kj2yEda$QQgi!>Mq^u$23ZxCbCL;d6t
80383f
z6<b|(MUrlYrRM7VaF*VOdns(7?<s=2>Dgf#-ms7^v81w`Q&QhqVCfTN0O&8di|TZo
80383f
z_J&xt3pkI9CmE7>9g@olk7~)9jnowTFmx1yGZ@;<_D#8{JCKq_*&tlsPnN^itfXxP
80383f
z>u<zy<7NB9e_6@u>C2?j7ZeYbrBRC8lXzYbz5AI-uC8=}7Cm>-&0-wywN>a
80383f
z07q
80383f
znp<9rhXE^wc50qn6^s(<c?(=`CxcBh7~nJ$i||!DSw9j@hDUHW+EhpViDY=viG>FJ
80383f
zzF+YNjih0b)d)RSO6<~dQcQ_^*6hao$$AEvBy4t&^*sgL1aT}QmFmh;%%4SCba>RC
80383f
zOG3^;wvQC*7h{UE-4O!
80383f
zlnft4UQxd}34Knoa+Q<0FGP>v)VdY4CJn-*gcfp=(PL30K>HV1!sn%Z)Eu56YJ;@o
80383f
z!u{wXg9*X4Bw5+3+rv)rmu6{b+LRtmj})wnnkQ2QagxbYO@{py^czA>sHzC`Hnm*F
80383f
z5em=*?yBUlD;*RSj7gEhzLZMA=5y{SrUAv(%M_bK#R{lcRw}CjQ-SxpNC%gK&$>tt
80383f
zUJQQAMLJhFu4>payy+rFfeAW?#;Yd5v6XDuLNggNm7UZl24+#dl(#xBAo{6pbcrPi
80383f
zw`?VA7ok|FUZe=;w&F!hw8YdJ+`}};Fe{DGoc6QZn6X;k%ug!n=S%SAE_zsFJz>78
80383f
z>?$@Tl%Ch(R!%Ju3ne~=W}DAir7p*5S#ew3bNGPnpQs5^2Vn@dkwGf=_+^ubBow2(
80383f
zF3${8XvkRSZfqM&=wb?&Wr?
80383f
zvhs>i<|lVinp3*%ys}|^n;7$3li>p_A8pC-yf!f@6{nbBCOEx~EI)SD)y~>#*WX=@
80383f
zy#iHtw2Y!-gbuN;(_2xxCx2NvXcSp5HAY*b{k5`JM9`uU?nkV0mybzle5d`GT9#Gp
80383f
ziKj5sD4rxz;kw%+Y%)ueb#|qTu_GPINq>L&P_0YGvg
80383f
z*k8Zkp!rgF8uQQ8$nr>539{U*I9Tq6QWm8VD&Su%T|xTgrDky_Jk`3O!CtDyrIg~r
80383f
zFuIa-L}LC*ZLpdO2j)qjM-$Wj?2_d$h==To>fV^7b}OnT{WU(8%QQJqfHOOYc5}jB
80383f
z>%R@5n4glP8cLPGC4o5>(9}R+6v^s7+O$L^mt;byLXF0AYHy_Ua@JIMx^^FkxR3(J
80383f
zPSV$8O)K}jDah<3%bRKEMLV~$1y1fn*s$X?eTV0Ek_}7p?37&eB=K}l0Y3-7+ezH`
80383f
zzjJ-Nu
80383f
z0VQYgz>Z^hl{hR;4d&)?z-|nYklrT1w|5bpo1Wybry9PDitQr?Y1PCFBa4(_fuQ;!
80383f
zn?}Rd%5N?W29cPW@F0w$i9sVoM6$7cHXX*pP>raZhEIs3`&e2DAUua-hT-)Av-@Oe
80383f
zp4;rHy5jCig(of^s;E<=>AKlOIy@Pz2P3>)N5v;&?)r0D%x^-0Y2{kxH>bmD(oFU%
80383f
zg=rH17gHju1*=Nqx20iDBBrfQR0#7p<IT+zFP>4WU?NjvHDPtS@$BTDqUw0}
80383f
z>Fu?n?UeQqn~K9;762mNO2_<#4C+AR!3CS$WK*-v%1$D9wGTQCSpj)B85~R6!<mb>
80383f
zNpXL|9u6N;kK5GWQ>=^zoQV5$6SE?tazqOE;~NbjOa16n8rnT%-6Er&b)h!6t{?Z>
80383f
z?;)Eu_m?QWJLPuagMwf*5A}FzpkiXji941hqaKPIN%vqH+2TCK2&ywahA2VUJTKB_
80383f
z{Ir`o6i1dAtm83sJ!OsJdZ**~f`bzYX!DYe{d9k1a2U_|^`w;PB~o=g4tkXft3XnT
80383f
zriew|cNYID7ZOIOdWrRz)5d%i_q%MDfQPo_6=~L@q~v^!Q4s3LvZwxTG~tihRX#C$
80383f
z&F7Ozyql!L7V(~x>P6SNq#|}TILZ=5ge^YO^LBJ34ZgTPWe*Rgv8kaZo%15Scu{gC
80383f
zyVEFtkX|ZP(ZDq>34fu+pm=Hbw6gm|3BKeb+w5~SlJY;>BZ=2<^dvm&@T8#2Pge7K
80383f
zyS&X$er$o8&k745n
80383f
zXoCx1Y1nw;hC3VZ(}<r1_*sabMfhowZ@9Dh=>1xQ?&5Etw(5@b6!VoMJ@RXZgiZVV
80383f
zjYeI3T33jq;+fg9E?&@u
80383f
z6BfgZjoL-
80383f
zOcf&VWLoHkwx0?s-KAh&7s(X!@kn9dNajdUr~aekm;FlX%K3OP713>nx7KObyRMk6
80383f
z|3#N>yY9M8M|$>Ubz|PWOw(X0k}nqej`VDXzPklHB;PHVVACT)3;gD!un|TYTbkj{
80383f
zn^2+l5~^|iEy4<TF)uVV<>Hx4B)_GQhCh^rPC9FXUGEmw!>&&W9dMx}v^2Z3ND`vI
80383f
zD}&!J)vn_D;OS2YE8*q0kp|GcAS{Rb=7c41r$y*$N7JK~!`aNnqAnIJMZokWVR^Sf
80383f
zHx<#Pv-t?RZHlTGoXXA?b%kIBdFqO>Ak2KRVHrGqUT9p1njPsm(gQPdWZ8WAH!C91
80383f
zZ3U`)AX6v?Qz^Q|iq2woo^>ypB~n6X6sW)*Ow8Lpv!E5upK4seMPTMNjTT0
80383f
zBCL@=bg!UqhU2{po8b5l8ry|BZ$bCVf(CR)QR|PKM{9oLJlYV&T?qUBM_5J0Y=wLN
80383f
zB&>m5zgw^reig+Fjl&;8!+e5h+u-N-3(au;q|gR`xgQza{3-OwJ3c1p;pT_%>-g7&
80383f
zJ&I4x&tgpFblN4b>H+i)dcr_G(S1p6Xn$4^;M@bK%N_4Q_KalhgTgxSJSZHm
80383f
z3*q~KG9RB%oU{Zk{2V1f#a6(VZxI6U^@nh`4}zeD*B%mjq3dB`8(jCW;Df*Rpac&*
80383f
zELfm(UCToFayNdx^{}voyAj^;DZ$uQXBHL`!><dw<QE?i0z+5*<)S>exaGEME}}pq
80383f
zyliS|fYV(qi(uD|_Qn$@oh|Z7=i*y5@Z0^1+fE=1;HMQo^tl~BOYpN)Htp4D-+A@C
80383f
z_k3R?NdKR_?|xd-QJ43R&9rpD&7WJ`3_5#jD_q#GZG@^uyP;9HEgUbwh1J@wwop7D
80383f
zN=1(J?AT_+u^n(`Z_9Gna*wc>-+ojDg
80383f
ze~b$AX6rD)ikMJ8_kThJc=B3pCk)<=A$o2_OFO)DKgQ5~cVjTz{^hn7c-e^VU^rpk
80383f
zjgs$tMbioUp4F^^x4)rT*jPxTuF(A_jrO*eG@4eLc9)^Sf
80383f
z#Z}q`i?2k1-hYY$#UmNGfSGj>1G?>)o0}g&c~Q15Xn0<;y5;EQso(RDQ=cK?nZ4ST
80383f
z@bGS}9!!bFP4L!-7cW!uU&j1jFF^aErA_d`XBW4$&JS;R>^Y4FzOhcbg`v};?MHP*
80383f
z>JY{88!+$NaH!r7%FO$Ewaei1z1kJ<&0g&~__(BPh1&_n0YX4CJlLgefhW4OJ=D@m
80383f
z;PvM;Ezqjd?tl@UHbB1`;Zr)T34W~8-bi0{fC;@?0o;#u;}hCh3&$I@9dPpVix)zd
80383f
zy|oRt@4>uX+oSCTFa5%VUJTV9tr_m?(e9>M?Yo%Jjj+A}EgM;ffpKCTKAm2t)wLg;
80383f
XuX+?t|4Czpm#){Yl((+edbj;A>+G
80383f
80383f
delta 11260
80383f
zcmbVS33MFAnSR|hvL&@F%ht%2jckpDYzxnzxi8CC_go$e**YxCayTrFMsttm)&W>%
80383f
zVIc
80383f
zGu>5xef8h}UuAvxMBk}L`>s8p4UddCY_?IS)n;
80383f
zWM9f(lP_k%xne$?yZ5W9=eZ*{OdLCM<;2o^?U{?~7stG!VUOs(S3dL=?#T6r8tb|u
80383f
zlIRhKy1ItMJx2x)AF$+xN|MLm6GhQ$7{u?suE0*qP>*3i6bE_@0UYqs?}43N>|b}V
80383f
zaPP~9pG
80383f
zA2q=T-{CIjCgIR+Tr*dY;Wln}HJLV_2d4)3W-?%pK;L~_K;Cr^_bQKMru(>7t|a%~
80383f
z$Mr7~vZ)?r7iSvGGT%ssGDU^F_5p4!&&Nuz=^?I#&rHh*V&vq>6WnIf8ktd-8PiOl
80383f
z3bDFJqIQa~Q*M5YTf^%tc9k?baVBY3cgXHyyFt&N_-EzZPq`dH4qyE_*GdZU-O%?6
80383f
z=Z9-#{tvS4N$$Za-9%!y!fhe*Nvw!ul$SljJxl~kK_x3?U
80383f
z|KQe=q+>Tc^C%a9YainB(7T1NmPelBenvPKY
80383f
zq`c=9&RE6iVfK#*l9}2=LHzP-f8@pqADM>TC%HAGWMRYG
80383f
z<(}iwXuICSwbn$hvi9!xIF7Uxlf8;u*7WJdMlb1}mfRVYdi4jKgXc`p_aU0lDQ7?A
80383f
zZXxZaqPjSm|AbO-xka*0_cBf1cL_gCPzBEtel2lYRm`m#UZRRQT+Oc`QN23)S~dRz
80383f
zp0mI)fnUqz
80383f
zCO$x|`t@eMmAFlPjF%fO;q9_}75`;|^iQ`SecGYY+t=_h9+mu!Rvazq*(kHr#qz)C
80383f
z_$LXfbay*WWs?1L+imh4?fkQvwn(a9(P6sy2{m-*J?T87_RFuI!#jALKCe<|7N9PA
80383f
z(z0maZ{^$clPXzm0kTO?&ZL5N8~M$sA2VEKMlGgo{czchd_aEF%)dxQdCG?Tx?L)<
80383f
z&Cb6|t=Qp0
80383f
zy!
80383f
zR
80383f
z{FnJ!n`y7=+-x6B%4@bM^B
80383f
zxe(eMS^8ZB_lsvBo8mpt+r(?+?NPp!=NxcRoNwc;`HGn*;{27=J^NDV(
80383f
zXKKw;2nQwHE+5MCuPqWBjzNWG_atRWOT6(IWUs*apUm)&YcNfGaTXU9Cg@;5uKpcg
80383f
z;^g>c{A)b2)OUpfe+B<A^;Pp{Sp@ZdmVX^R!~$Etz^~z>xE-#9YaZeXH2+M>U%Hxq
80383f
zhHy4Gcr5}uqeoso+yn<d<}LE$*YeA0)IN6vC(`Np3GvH(6G0;l0Zz>1=O!rVCGzI4
80383f
z@a=@l!bLZtI%cNlX646kME}RE_wh}*%xamNsNkjd8~jPa6=CZ)k;JT@CwarnJLKoS
80383f
z$seZxSA843E*IagxbK_aM%cDkV!!IX(+dQlFPCQ2+W>Rp*>L;)oFLzG8~=F?ADe(}
80383f
zcVgruiz?i=?&Q;ao2#h8xfg(&^cAL6>Y2Ow-Bk5IzZX+X&az+eV)OU;|DmHBWgJaA
80383f
z)lu}>++tnCr6R{?KFO%XXP4KVz+5IwriK-HlIYTeXf?iQc9>-yD#E$)f1TubUe5oR
80383f
zk7>~5{_|(3k+f;JoZ$>|=I8tci_k_-|AN
80383f
z;s3y+>2LWh9nI3wZ)pTu_JFc=X@(Us;*U-NP6gzrUf}Pf^q2e|=}Ts1@Ri^5hsnB>
80383f
zMO`$rfLJNN*{Kje`3eT!y1YvzHZMRt;Wru;;;+5N@8WAMkr9O*E0{1Ms
80383f
z*6#aBn
80383f
zf;YWKEodEKiltfS*YfZF%J(ngBQ`L6jD8c3jw-xd|1sj|9MMsQ*^Frc>-vrNJwtv%
80383f
zGXW6NN-`OB?I}XOSH;J&a90gkL#C$G;T5%{N`tJm)RP#Oge&XGle1w_j7Vt|v|IEP
80383f
ze5}1oNwgaboo5J&VlamOiobnv{Kal?PkvG|^oU{)YZzxFOO!Q
80383f
zljCf}rI#3h8-EcXm~czjdWw6Z5f1{v^Giunw@pQ{<0gHgxUXwc5`7|D&R}~i%I-b1
80383f
ze+<|qB=U@xq6%lJIO9y6gRTbBvebbBVb?k#8Ae2LZwAI2$ewdtIGB(`F(E}!nFFG4
80383f
zM)EP4$`dxpfa=(rgBKe}Z>@?kh&8~qjC>vw*JH~_r)i8e#gxsy9;S(bu3=Fe@)+nh
80383f
zeeCH+U5ee<@C4od*fgwLPU3BG`)JUB?
80383f
z*v1)e7Yey|P=UqA{dtxBnAFu3aQkig(Q!s
80383f
z6Ah_o$SQSHjf`~l>HSIhhmGVfq#lPoXc3QS=+XPr@WYkF+?K^Lw4vUgi-x+3BZeVS
80383f
z9PCO-Mt?CH8aH(7{Uun^Ot#ccmg%P8y=G$CT#(F)eo|gT$mlmkLwl&L5So7BI(sza
80383f
z%Q1WT3<;0X?}~<Y(S6<UU^6k+>dSaWinm=Kiy?2P0i
80383f
z<~%N7j2B{|;5_4~zS9_+ER#*a6RXImeY*TU^ADF<=Gj3}U}QDfR_ls|M%j*TxNSAL
80383f
zXI&zWku#^xcxZ^)Er5*1L;I-)a&XC6q_uvsl57TUJBtjgvsI2c=a=f$rAAoOLfVB`
80383f
zLX|O|fb&|21CF(jvp1Hv%q2nrJj$SJiHZ@5NUrKo@1KHyZy_7&Ep)8B!V1{zZ>gnY
80383f
z7}a{e6#{F>xec~Ns8r!DR{4rGWII=j!#kP0c6e$nhKats%m^D>N$0XeGL)=X7Ei)>
80383f
zD+$!6lA%$>3(!~@_)#nAtIsDxduiTbo>zj^I`S%L+ejlUUq{x|7LzJJC2+4JTUJaa
80383f
zLsJ#NrDSN#r1wC}Mp6O}S5+=p+eWt4Pb0vb;AV)ok@bS34C+k6N1fzCc)yLTZEz(+
80383f
zxe90}Y&e^ILvLZRh*^SaDj3Bun^$TqRiVIm3f?}Otf)`XLFVa9Mr}LkD1*eAy3YW~
80383f
zR)XYIkYXjs6nvqbh)Zpl4Ti-YHw8H_n1biq$?C@GRA~3
80383f
zd+teFD_OUFVx2n`3aK%L+XUiDT2$R9l2*+SO+#xNS=C_lCva#^&NTdLJ!!Ac)3Jd$
80383f
zTWU6t&o)e^L*@##mf-6f$a`>ugDkh;KA!zF!FOX?!0!O!i9Kc?W}29^mlc
80383f
z`!KoLz2aW@Y6t14qH>wxryZoNi9SxT+7g^Jd(kCv^8$R-LDtt$4Fp9mzUt2*$2)N<
80383f
zVDzzaQp`#UWl1SH!NRnJDb}-#CSGJGBITfJ6EV+HxTLZshSeg7;4>9!#OR_$$`edP
80383f
zSUKxqZ@aC2B~{X?eKs4_h&Ygt*yLU#zGEUC*5fZqn~-v>B6d3`y-fO&ht)l&$71r%
80383f
zvd7>I9)zi4(&tg%^D&%$2l9c%Z7|8`J^Ru|hSy^m@1g{O-BASo)KyW1n|-;60*$Mt
80383f
zB{8^
80383f
zkvcdv%@`3!vaA?meW4hGCF
80383f
zQV4@O>Wkwq^(cF#&*xL2eq=-MFQBWJc}87{eaI~BM#QcneX|Wvj9>|!Vo3B&dFMbu
80383f
zHV|`gTG9A{oy@L^2khNx2#I1yc^TVDJBYCIGCrvC*^j*dc2qHmwLS;X=b*onY!GOu
80383f
zqtIAQQ}EYjnz3l?E9Fk_H^bANq}}W&6FF0%Js8kv*lwyRaUeUaI2(QGE80DD>*1~m
80383f
zc({$M2&GUbIiJxouLbI|lyuH!DDfWq=>@xTvrjFbqUh0MLYjcD8A%Jald_SlVew*=
80383f
zvK|9&ET$xvR1wy3Dy8UgOS_n=P>A`EkFq(RT}pb;YdqcziwTx{aGwdK?+aTLgnlRb
80383f
z6q>8A6lY{UhPy9o^D^Xc4&4Op=fhS-^kt-xE=)6}z$o?WU~HV?i|G)K4eUac{-CLn
80383f
z$r&Fq=h?3h!;?C)uASb87NqzHT^mw7-)G1oY*ccw#&(Z=9O~U<^(>{#oI#0u1fvyc
80383f
z6h(1Ods$iw
80383f
z^RU@OHkjPeG1O!*8py`SSR4lv7y!uokUimL9`3+jnl&i?pcSq)kw^G+90tr}
80383f
zhO{G5MSne!;jX@DARix_ujG+HE
80383f
z^_1rox&4&LC{3Un(7-WUy`xm7c`7>Zmh?D}s>O_4I%AsvC5U<)SX0sC!=*EJi5Dbg
80383f
z2g{UKMTpzrnjORdS6Rr4)scu|2ysN6MdkL1fhoxhvW2wamB@1zvW|1ZhZbU58$(aW
80383f
zY2SEI^=xJzql@n0n}V%&(hg}WSzLpM2Q*nint?-B(q2P7m)f-i-?ftUc=CJ3N_uDM
80383f
z`E=f}b2Qjm(DQ@|qqSS~CB4*wctcOsV_k4Xif)F^urMCZ(gOi4ram>k*zsf>j@d}-
80383f
zj)Dp~sT5rYIvehU!Gh`zlsq|gI!4<(%qUr$$79Vf%N{
80383f
zuoKJ581ukE_Zj=Zteu?IaK`Q~xZO@xZ&_H7B5S=09)_2Y@KCgX_KHUxWb?8zfXeky
80383f
z7P=jzg^#
80383f
z&^SqV%>;TM^Lg0sB
80383f
zPa!~C7V$9ir=>zg;fe+lNQ-8O1d?&ky2#e06P1f|aX9EA+H>=G#fmJ4=_SFuV3qDg
80383f
zlM2m$QEwJ*agpZk(rMdF#>e)d`6Gd;_}E;1q|rAasa?#VgBc-2kIr-p+7?jvNMP7#
80383f
z+@x<-?_}YfXTg_~c2fuS_Rz>qNltWdy2xO{T#5OCy?VUt^gTaIBMS2$3KDc71#P*^
80383f
zr*T=t+{U;p#m54Z7%Uk6p(%x-&!{bA1ml%v
80383f
zGX*Q6V0k8aNp-hLFm5KRxHtqiV|qwIax+=G(!QXo@rHUcF$#>)NmOSk4$p5U=l0VW
80383f
z!x&-*=^@%`U~f64q&3wkrm1Xn$xM9AmklXpo^~if7uE}!vv*P{x=|>UI-G+8U1Srl
80383f
zFT#~wWbHqdS3Cu8m@0Q@W<l1~q>*HoKOU<G(=T-?^FJakVG_Wzk#*Kn#3zicp>h~j
80383f
z
80383f
zzrDbY0^*+RAkC?Rv@cqiG1??xPlkJ=r
80383f
z_Od87SA>re9feWmb0`bjZvdOu9=v%{e1Bm$TN%y%kI*Q5UkRl{-#F02z
80383f
zl!FT%DDX{fcFH*p(-;kc0A?>NAj
80383f
zY_6}Qt>=M=OX=rMkKkBB1;(q3*f!EKn<@{a6Jvqt5$5QVO2CHVm^EpN&EhY*B5TE1
80383f
zYv+l3rz%_po1QXCE;070ZEG}8ER&VWWV7sA3(sl}R3vQ=Gjr-er(xHQC^q(d@zaB~
80383f
z3^apWmyZ)v?7dkOyITzOduZ#~gIy}SI&jQ;;nBb}E~aIHmWuiSA_R-f(LG)>T(_OH
80383f
zZ$K+jc?Xkf-=lP6ro`BI`SK34L;{}QPC7SPQY^_0#g#4Qnkd$ZStXO&WTkChcw;+R
80383f
zE#y2lTtOR)Bz$QHSr3=)Ak{Uo9CM?AG#&HI(qLw{nKY5^XHMi1Q6kzV^;3h=W`*`x
80383f
zyC|PQ3yz?+!Zh2`8&Ho~imM4<DV=zpHH;uqfQHcUlo~>m63>DZL5Xy_$FLaMwFs3q
80383f
z+MR}dB5`_Bs03_=_M}fkv@t|+#E7ne7r9m`t^BP5z45}LnM4hji*YguzZ8k7ro6-r
80383f
zH4@p_kWG%^Em@hUkc1r)SvQ+dTn*3k7+#(z{sjcGH(WT)ewIW<`L-v
80383f
ztT8b*jMv;syitd8;2~gG9FBU>AXFJ@yiFp*7^;!3z*MpvN5dv`C8{raan8zCn0CDd
80383f
ztXlI6P3ppcISFTZ@B-F>iow86`_iZJtS{3U=kSLtE>9Oij#3$YyVCHl9@5@!LB5n`
80383f
z51Ww#%Krz5c;6fiOr%h3+D72LpNDktW-I*FL*fGw`&fGJk|!20+Q!EAtH*R|;Zas?
80383f
zgAT=|hG!JEd~9^ggm2Vo%$1{~3HZL3oL!A_BY@8irj2A3yzeC&I!q->?@4-`_%N?k
80383f
zJvRE3vn*9ECN($seWYzw0#Q-vG^tQ2@sXbWJYzF(nU82^BZz^T9HeJtiiL9f#v|we
80383f
zI5-r=Up9!_jbj@+zZvBLQ4Zk6LFH<S{E5|+e>~7q7mq2P6*jAWoUg?P
80383f
zw%M2y!~%BPd=kS56sM)URf*5j#YRr30jIo`SCjF8tBm8e&G}LcuMR1
80383f
z>Tj_?)IQdo!ZwF$ujoTGEcmAd8vVbD5z*)LOrbInfjMkEFi{4`*yr|0D0>VQpf5nS
80383f
z4CKosh5u`h7~bB|^X(p|H|}J+sOQ@hT85sXr~}3W4!itPfIMr3hhs!IYO51g_;R_4
80383f
zoNh82ONMo!iF7&~D#X$ec;^6V0$qP~Ets5jH84>ii;hl`>Z2p18WP&78ht)GQB02M
80383f
zCd0Z+ZXz=h87YKyg=kn8W_YP^K0gu(>!RUYcssoF9ZeG)-dv}F9go)t(7ULr=Bkqy
80383f
z6Zz!D8nGRg?q1RXk((FS!wdIlI
80383f
z384z!$_OhVRaMsj&)gxjfbPc{jV6X7z{|5j6D&`W7I^y)8Vy`}qaeVCcL?i_UMF;e
80383f
z?^U4zUb;h51qY7{wT-&1x{Er_Z}ZGa-r1?h{_sFm3ocj#(Zj-O*r?TNL3~xv&M#d#
80383f
zw-oh|-dHGW4}P>lySh==n+%WSQ61@gF-J8sQh*DWXjj(7^14_$Ul>Uy!((ixqpu?`
80383f
zz1Nd^Xn0vu11B!WO`iL%uu+la?l9WnqT|96Xibwk`0#q
80383f
z|9q#S_e
80383f
z4&5l!g6=_~8BMH#KUHa$Lf}E61Kys-*Atfsx}$F(6IV|mcgG(TT*`REOZfU?QP>EF
80383f
zdF?VVJ%kov3)n;^k7hZ1R9JKLyPE2we-ql^E_sOt-u^&X1P?rf8!OmXqJHP;Ke$*p
80383f
z2ezCL4pjg>eM0alug0r{Wstc{Sn)}%4ZsZ#3+=GuW}z9LqE8I{*hcLV`1oPLSn)cm
80383f
z(N@9sM+BQP7GGc22v
80383f
z2u)Nr*xs(K;x@ziP1^PFt^3Q8P245a;pojx+SO2X6KaZa)br;>6tH@6I9
80383f
zN3?)~>1bdqfzBi7uJ8X{SS@EC6@onr{+*)y^wPSco92Re)xtsCd43z1U3JaSdOvFX
80383f
zVM`ra$WW)m@1}n~e!+ZbStHyvL#mF}F0X+LA6v2*F8Vt@z1_2<>Z)5e*U7hTUNX^m
80383f
z6~-}s>hZG_KMnX<hM(o~(%p^gFPC>d(<n&rx$UTn7e=%V@N24-%-Qv7%<BHqsI3j>
80383f
zL%CR{5W^T=cf%5`;*%dXX<OmjA2&9`@W+i>IH=REpaCJQn2W!1((3G_5@-LsbdwT0
80383f
zm%WRNcImWru>H7D10y;u3nk(I7r9F-BbRRU&h<+g;jQZWdRY2?qsYfX@W`pgCdJ5<
80383f
zL2fI^ry5(8ftxbI;-;+^pBb>1>WuKEA*~61*}bGn#$eqnz)h027T$gUL+N`}+G;S|
80383f
zuw*_uYa!l@2@k`wO~F050^{zZ*Bk5L#0?mRJ-oJ&dE`M}>thcM?=&ukQ|q;z3jN_0
80383f
z?P7R|*XGJpI(T9ODww(E7l{_*cZJprZ&cSeP_fPe<6Dgluz#agji*cIo-neuDa%-l
80383f
zv7mZ;qt>B}VNfjtXNT6Vyt1HbU!+|HS9fUFDr2{IU`}QG&I($c^7NB7
80383f
zRl@~Mxc4(}Ha4>%8dLn%i
80383f
F{|k61k>vmY
80383f
80383f
diff --git a/pkg/selinux/manifest.json b/pkg/selinux/manifest.json
80383f
index 67b5c5a..ecb1279 100644
80383f
--- a/pkg/selinux/manifest.json
80383f
+++ b/pkg/selinux/manifest.json
80383f
@@ -6,7 +6,7 @@
80383f
 
80383f
     "tools": {
80383f
         "setroubleshoot": {
80383f
-            "label": "SELinux Troubleshoot",
80383f
+            "label": "SELinux",
80383f
             "order": 8
80383f
         }
80383f
     }
80383f
diff --git a/pkg/selinux/selinux-client.es6 b/pkg/selinux/selinux-client.es6
80383f
index 299ff27..af99ac8 100644
80383f
--- a/pkg/selinux/selinux-client.es6
80383f
+++ b/pkg/selinux/selinux-client.es6
80383f
@@ -48,7 +48,7 @@ var status = {
80383f
  */
80383f
 export function init(statusChangedCallback) {
80383f
     var refreshInfo = function() {
80383f
-        cockpit.spawn(statusCommand, { err: 'message', environ: [ "LC_ALL=C" ] }).then(
80383f
+        cockpit.spawn(statusCommand, { err: 'message', environ: [ "LC_ALL=C" ], superuser: "try" }).then(
80383f
             function(output) {
80383f
                 /* parse output that looks like this:
80383f
                  *   SELinux status:                 enabled
80383f
diff --git a/pkg/selinux/setroubleshoot-client.js b/pkg/selinux/setroubleshoot-client.js
80383f
index 6e8f695..374af79 100644
80383f
--- a/pkg/selinux/setroubleshoot-client.js
80383f
+++ b/pkg/selinux/setroubleshoot-client.js
80383f
@@ -74,7 +74,7 @@ client.init = function(capabilitiesChangedCallback) {
80383f
     };
80383f
 
80383f
     // returns a jquery promise
80383f
-      client.getAlerts = function(since) {
80383f
+    client.getAlerts = function(since) {
80383f
         var dfdResult = cockpit.defer();
80383f
         var call;
80383f
         if (since !== undefined)
80383f
diff --git a/pkg/selinux/setroubleshoot-view.jsx b/pkg/selinux/setroubleshoot-view.jsx
80383f
index 66ef400..84d2e11 100644
80383f
--- a/pkg/selinux/setroubleshoot-view.jsx
80383f
+++ b/pkg/selinux/setroubleshoot-view.jsx
80383f
@@ -329,26 +329,40 @@ var SETroubleshootPage = React.createClass({
80383f
         e.stopPropagation();
80383f
     },
80383f
     render: function() {
80383f
+        // if selinux is disabled, we only show EmptyState
80383f
+        if (this.props.selinuxStatus.enabled === false) {
80383f
+            return (
80383f
+                
80383f
+                    icon={ 
}
80383f
+                    description={ _("SELinux is disabled on the system") }
80383f
+                    message={null}
80383f
+                    relative={false}/>
80383f
+            );
80383f
+        }
80383f
         var self = this;
80383f
+        var entries;
80383f
+        var troubleshooting;
80383f
+        var title = _("SELinux Access Control Errors");
80383f
+        var emptyCaption = _("No SELinux alerts.");
80383f
         if (!this.props.connected) {
80383f
-            var icon;
80383f
-            var description;
80383f
             if (this.props.connecting) {
80383f
-                icon = 
;
80383f
-                description = _("Connecting...");
80383f
+                emptyCaption = (
80383f
+                    
80383f
+                        
80383f
+                        {_("Connecting to SETroubleshoot daemon...")}
80383f
+                    
80383f
+                );
80383f
             } else {
80383f
-                icon = ;
80383f
-                description = _("Couldn't connect to SETroubleshoot daemon. Please ensure that setroubleshoot-server is installed.");
80383f
+                // if we don't have setroubleshoot-server, be more subtle about saying that
80383f
+                title = "";
80383f
+                emptyCaption = (
80383f
+                    
80383f
+                        {_("Install setroubleshoot-server to troubleshoot SELinux events.")}
80383f
+                    
80383f
+                );
80383f
             }
80383f
-
80383f
-            return (
80383f
-                
80383f
-                    icon={icon}
80383f
-                    description={description}
80383f
-                    message={this.props.error} />
80383f
-            );
80383f
         } else {
80383f
-            var entries = this.props.entries.map(function(itm) {
80383f
+            entries = this.props.entries.map(function(itm) {
80383f
                 itm.runFix = self.props.runFix;
80383f
                 var listingDetail;
80383f
                 if (itm.details && 'firstSeen' in itm.details) {
80383f
@@ -407,38 +421,42 @@ var SETroubleshootPage = React.createClass({
80383f
                         listingActions={ [dismissAction] } />
80383f
                 );
80383f
             });
80383f
+        }
80383f
 
80383f
-            var errorMessage;
80383f
-            if (this.props.error) {
80383f
-                errorMessage = (
80383f
-                    
80383f
-                        
80383f
-                        {this.props.error}
80383f
-                        <button type="button" className="close" aria-hidden="true" onClick={this.handleDismissError}>
80383f
-                            
80383f
-                        </button>
80383f
-                    
80383f
-                );
80383f
-            }
80383f
+        troubleshooting = (
80383f
+            
80383f
+                    title={ title }
80383f
+                    emptyCaption={ emptyCaption }
80383f
+                    >
80383f
+                {entries}
80383f
+            </cockpitListing.Listing>
80383f
+        );
80383f
 
80383f
-            return (
80383f
-                
80383f
-                    
80383f
-                        selinuxStatus={this.props.selinuxStatus}
80383f
-                        selinuxStatusError={this.props.selinuxStatusError}
80383f
-                        changeSelinuxMode={this.props.changeSelinuxMode}
80383f
-                        dismissError={this.props.dismissStatusError}
80383f
-                    />
80383f
-                    {errorMessage}
80383f
-                    
80383f
-                            title={ _("SELinux Access Control Errors") }
80383f
-                            emptyCaption={ _("No SELinux alerts.") }
80383f
-                            >
80383f
-                        {entries}
80383f
-                    </cockpitListing.Listing>
80383f
+        var errorMessage;
80383f
+        if (this.props.error) {
80383f
+            errorMessage = (
80383f
+                
80383f
+                    
80383f
+                    {this.props.error}
80383f
+                    <button type="button" className="close" aria-hidden="true" onClick={this.handleDismissError}>
80383f
+                        
80383f
+                    </button>
80383f
                 
80383f
             );
80383f
         }
80383f
+
80383f
+        return (
80383f
+            
80383f
+                
80383f
+                    selinuxStatus={this.props.selinuxStatus}
80383f
+                    selinuxStatusError={this.props.selinuxStatusError}
80383f
+                    changeSelinuxMode={this.props.changeSelinuxMode}
80383f
+                    dismissError={this.props.dismissStatusError}
80383f
+                />
80383f
+                {errorMessage}
80383f
+                {troubleshooting}
80383f
+            
80383f
+        );
80383f
     }
80383f
 });
80383f
 
80383f
diff --git a/pkg/selinux/setroubleshoot.js b/pkg/selinux/setroubleshoot.js
80383f
index 0ff41bb..ac297c5 100644
80383f
--- a/pkg/selinux/setroubleshoot.js
80383f
+++ b/pkg/selinux/setroubleshoot.js
80383f
@@ -272,9 +272,7 @@ var initStore = function(rootElement) {
80383f
                     dataStore.connected = false;
80383f
                     window.clearTimeout(dataStore.connecting);
80383f
                     dataStore.connecting = null;
80383f
-                    dataStore.error = _("Error while connecting.");
80383f
                     render();
80383f
-                    // TODO: should we propagate the error message here?
80383f
                 });
80383f
         }
80383f
     };
80383f
diff --git a/test/verify/check-setroubleshoot b/test/verify/check-setroubleshoot
80383f
index fb0b7d2..b32c55e 100755
80383f
--- a/test/verify/check-setroubleshoot
80383f
+++ b/test/verify/check-setroubleshoot
80383f
@@ -52,8 +52,8 @@ mv -f ~/.ssh/authorized_keys.test-avc ~/.ssh/authorized_keys
80383f
 """
80383f
 
80383f
 @skipImage("DBus API of setroubleshoot too old", "centos-7")
80383f
-@skipImage("No setroubleshoot", "continuous-atomic", "debian-8", "debian-testing", "fedora-atomic", "rhel-atomic", "ubuntu-1604")
80383f
 class TestSelinux(MachineCase):
80383f
+    @skipImage("No setroubleshoot", "continuous-atomic", "debian-8", "debian-testing", "fedora-atomic", "rhel-atomic", "ubuntu-1604")
80383f
     def testTroubleshootAlerts(self):
80383f
         b = self.browser
80383f
 
80383f
@@ -144,6 +144,7 @@ class TestSelinux(MachineCase):
80383f
 
80383f
         #b.wait_in_text("body", "No SELinux alerts.")
80383f
 
80383f
+    @skipImage("No cockpit-selinux", "debian-8", "debian-testing", "continuous-atomic", "fedora-atomic", "ubuntu-1604")
80383f
     def testEnforcingToggle(self):
80383f
         b = self.browser
80383f
         m = self.machine
80383f
@@ -153,14 +154,8 @@ class TestSelinux(MachineCase):
80383f
         # as happens in our virt-builder and virt-install usage
80383f
         m.execute("chmod ugo+r /etc/selinux/config")
80383f
 
80383f
-        # fix audit events first
80383f
-        m.execute(script=FIX_AUDITD)
80383f
-
80383f
         self.login_and_go("/selinux/setroubleshoot")
80383f
 
80383f
-        # at the beginning, there should be no entries
80383f
-        b.wait_in_text("body", "No SELinux alerts.")
80383f
-
80383f
         #########################################################
80383f
         # wait for the page to be present
80383f
         b.wait_in_text("body", "SELinux Policy")
80383f
80383f
diff --git a/dist/selinux/Makefile.deps b/dist/selinux/Makefile.deps
80383f
index ce86875ff789723746fbde8c8cb7dfa0d428c9eb..d596f50fc7253c1bcd085909db011ca600b8c14e 100644
80383f
GIT binary patch
80383f
delta 15
80383f
WcmX>sa#&=7GmDv(q0vV7Kb!z7T?JME
80383f
80383f
delta 15
80383f
WcmX>sa#&=7GmC+hfyqYqKb!z7F$GZo
80383f
80383f
-- 
80383f
2.9.3