From 61d3c1e796670ff282e3375719cdc8d34f7329ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Fri, 5 Jun 2026 21:00:42 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=ED=95=98=EB=93=9C=EC=BD=94?= =?UTF-8?q?=EB=94=A9=EB=90=9C=20=EC=83=89=EC=83=81=20=EA=B0=92=EC=9D=84=20?= =?UTF-8?q?=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=EC=9C=BC=EB=A1=9C=20=EA=B5=90=EC=B2=B4=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B0=80=EC=8B=9C=EC=84=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `LoginScreen` 및 `BottomSheetCalendar`에서 사용되던 하드코딩된 HEX 색상 값을 `AfternoteDesign.colors`의 그레이스케일 토큰(gray1, gray2, gray3, gray6, gray9)으로 대체 - `core:ui` 모듈의 `Black` 색상 상수를 `internal`로 변경하여 `Shadow.kt` 등 내부 파일에서 재사용 가능하도록 수정 - `BottomSheetCalendar` 내 선택된 날짜의 배경색 및 미선택 텍스트 색상을 디자인 토큰 기반으로 리팩터링 - `Shadow.kt`에서 하드코딩된 검정색을 공통 상수로 교체하고, `spread` 값 선언 방식 수정 및 미사용 임포트 제거 --- .../core/ui/calendar/BottomSheetCalendar.kt | 16 ++++++++++------ .../kotlin/com/afternote/core/ui/theme/Color.kt | 2 +- .../kotlin/com/afternote/core/ui/theme/Shadow.kt | 7 +++---- .../onboarding/presentation/login/LoginScreen.kt | 4 ++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/core/ui/src/main/kotlin/com/afternote/core/ui/calendar/BottomSheetCalendar.kt b/core/ui/src/main/kotlin/com/afternote/core/ui/calendar/BottomSheetCalendar.kt index f413e2262..d18a8600e 100644 --- a/core/ui/src/main/kotlin/com/afternote/core/ui/calendar/BottomSheetCalendar.kt +++ b/core/ui/src/main/kotlin/com/afternote/core/ui/calendar/BottomSheetCalendar.kt @@ -68,7 +68,8 @@ fun BottomSheetCalendar( .width(36.dp) .height(4.dp) .clip(CircleShape) - .background(Color(0xFFDDDDDD)), + // 근사 토큰: 원본 #DDDDDD → 최근접 gray3(#E0E0E0, 채널당 +3) + .background(AfternoteDesign.colors.gray3), ) }, ) { @@ -141,7 +142,8 @@ fun DatePickerContent( Modifier .fillMaxWidth() .background( - color = Color(0xFFF5F5F5), + // 근사 토큰: 원본 #F5F5F5 → 최근접 gray1(#FAFAFA, 채널당 +5) + color = AfternoteDesign.colors.gray1, shape = RoundedCornerShape(12.dp), ).padding(horizontal = 16.dp, vertical = 18.dp), ) { @@ -156,7 +158,7 @@ fun DatePickerContent( OutlinedCard( colors = CardDefaults.cardColors(containerColor = Color.White), - border = BorderStroke(1.dp, Color(0xFF000000).copy(alpha = 0.05f)), + border = BorderStroke(1.dp, AfternoteDesign.colors.black.copy(alpha = 0.05f)), modifier = Modifier.fillMaxWidth(), ) { Column(modifier = Modifier.padding(vertical = 16.dp)) { @@ -202,7 +204,7 @@ fun DatePickerContent( Text( text = label, modifier = Modifier.weight(1f), - color = Color(0xFF000000).copy(alpha = 0.3f), + color = AfternoteDesign.colors.black.copy(alpha = 0.3f), style = AfternoteDesign.typography.footnoteCaption, textAlign = TextAlign.Center, ) @@ -249,8 +251,10 @@ fun PickerDayCell( return } - val bgColor = if (model.isSelected) Color(0xFF1A1A1A) else Color.Transparent - val textColor = if (model.isSelected) Color.White else Color(0xFF888888) + // 근사 토큰: 선택 셀 bg 원본 #1A1A1A → gray9(#212121, 채널당 +7) + val bgColor = if (model.isSelected) AfternoteDesign.colors.gray9 else Color.Transparent + // 근사 토큰: 미선택 텍스트 원본 #888888 → gray6(#757575, 채널당 -19). 토큰화 7곳 중 시각 차 가장 큼. + val textColor = if (model.isSelected) AfternoteDesign.colors.white else AfternoteDesign.colors.gray6 Box( modifier = diff --git a/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Color.kt b/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Color.kt index 67e5834fd..ade43cf43 100644 --- a/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Color.kt +++ b/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Color.kt @@ -8,7 +8,7 @@ import androidx.compose.ui.graphics.Color private val White = Color(0xFFFFFFFF) -private val Black = Color(0xFF000000) +internal val Black = Color(0xFF000000) private val IconBk = Color(0xFF000000).copy(alpha = 0.6F) diff --git a/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Shadow.kt b/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Shadow.kt index f864d1503..d89dab243 100644 --- a/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Shadow.kt +++ b/core/ui/src/main/kotlin/com/afternote/core/ui/theme/Shadow.kt @@ -1,6 +1,5 @@ package com.afternote.core.ui.theme -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.shadow.Shadow import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp @@ -9,14 +8,14 @@ val toggleShadow_1: Shadow = Shadow( radius = 3.dp, spread = 0.dp, - color = Color(0xFF000000).copy(alpha = 0.1f), + color = Black.copy(alpha = 0.1f), offset = DpOffset(x = 0.dp, 1.dp), ) val toggleShadow_2: Shadow = Shadow( radius = 2.dp, - spread = -1.dp, - color = Color(0xFF000000).copy(alpha = 0.1f), + spread = (-1).dp, + color = Black.copy(alpha = 0.1f), offset = DpOffset(x = 0.dp, 1.dp), ) diff --git a/feature/onboarding/presentation/src/main/java/com/afternote/feature/onboarding/presentation/login/LoginScreen.kt b/feature/onboarding/presentation/src/main/java/com/afternote/feature/onboarding/presentation/login/LoginScreen.kt index 74e6bffd9..ecc4a8053 100644 --- a/feature/onboarding/presentation/src/main/java/com/afternote/feature/onboarding/presentation/login/LoginScreen.kt +++ b/feature/onboarding/presentation/src/main/java/com/afternote/feature/onboarding/presentation/login/LoginScreen.kt @@ -261,8 +261,8 @@ private fun SocialLoginGroup( contentPadding = PaddingValues(12.dp), colors = ButtonDefaults.outlinedButtonColors( - // 💡 주의: 0xF2F2F2 앞에 투명도(FF)를 붙여야 색상이 정상적으로 보입니다. - containerColor = Color(0xFFF2F2F2), + // 근사 토큰: 원본 #F2F2F2 → 최근접 gray2(#EEEEEE, 채널당 -4) + containerColor = AfternoteDesign.colors.gray2, contentColor = AfternoteDesign.colors.gray8, ), border = BorderStroke(1.dp, AfternoteDesign.colors.gray3), From d2e8921cf3bee7e6f0d4a127c24d8e8a34c84015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Fri, 5 Jun 2026 21:36:26 +0900 Subject: [PATCH 2/2] =?UTF-8?q?test:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=B4=88=EA=B8=B0=20=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A6=B0=EC=83=B7=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=B0=B8=EC=A1=B0=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `LoginScreenScreenshotTest`의 초기 화면 캡처 레퍼런스 이미지(`loginScreenInitialScreenshot`) 갱신 --- ...oginScreenInitialScreenshot_748aa731_0.png | Bin 59911 -> 59897 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/feature/onboarding/presentation/src/screenshotTestDebug/reference/com/afternote/feature/onboarding/presentation/login/LoginScreenScreenshotTestKt/loginScreenInitialScreenshot_748aa731_0.png b/feature/onboarding/presentation/src/screenshotTestDebug/reference/com/afternote/feature/onboarding/presentation/login/LoginScreenScreenshotTestKt/loginScreenInitialScreenshot_748aa731_0.png index 40939ae0194ddcfaa083570ef8d31318c7b2be79..80cf04275483d6e096783f2c29bc9f0f2645e2bd 100644 GIT binary patch delta 15383 zcmY*<2{@E%-2O<>h9g23fS1TQHTL2KeYlUNI zy&HG7D>8CIWdxQ3|CyarjL8nnwZ=u{qgGTpLys1ioJf_>UQiI{j0Gx zJwqzB&tINP)ea3mshD9eD|2=ZafaX7Yb6JDz(anPjy`cFk??{A(GKHZi=sETNP#G5 z8d(Jcl@1k(G7xX?fCgE7Et&*Q$7s!sj3pSJ42*bI)1qE>1nI!%-KPi7AS^m|4y~$6 zUj|mneu&_&J#HP$=s;b{oR)E)6>;0FOPP4R;_sqnG_XO{|7LB~>-s`^&r!=~39^nm zCYK$*Bg28uw0A84fDJ6%Knsdsqkllp-8ZQ0u2AJTqyzt|oKUw7$OGf;DhlI6tditk zthSYDKzAXIMk=QUy3h0M>Gw|vbY-&mA@Zv=M%A#A9aLloG@JO!H zdzKk>?K3CmjKXNVgI?zce96hQz9hMLZ{lYek-NO<(Z73YeCu zDGvC;WIs@$b{t4aK!~}%FS$-XgMgx%yLE69+*tW~1>2yX;ZG33ALpv`XA1JdVX9k5 z4(GBrszKc!+`6)d0=(BlJ9rTm^5h1~FsH(HoKFN_h}6ulcUC5BRc}(GuAO@^FNqm; z%V>Y_v(0hY?*QXoY|+{(xezqL@zo$Ls{wAk|4ZL0{Y^a=;7Vqm(}_slo3s3b;Int{ zRmd@~dm#^3jk76Xf3$x5LUi9o#voKBgxu5p)liTJgDcpodTS)+kw`$*_ngEVTdD2I z+ApmWh3sA|h6rjsCamhuh=^5@r&qhS|Ju#4(C(~u{`!JHhdg$c^MvUFYU_AW2OGH} z?dEyfa_jXdaOv?yq3N;t+nv&%_eMVOs3~QTO*CeXKZb8@ap1pEv*Y&JIXIy(9@PYHs2OLg}+o`C_ge}Fd75N&6>sW_w0V4P+X-NnQ-nu11)nqm>btw8Zu@3Qh`*yX|`2?KCK51QkWMJiqWpI5$ z#>fbugWrIL+0E`{4s8rA=|Bf9&1hDa#RCiCW{0W%V=M@VC(t7qva z(lf=wD>a|qQj{xXAp@UI{nZe~U1v^6cXuYr9G<+e-Xi~6aP2Tx_Nc0_y}$NSa_)LX z-451?cS@oCqu0@AM)#s6`is#MwTH99}re3#diUU4go znf_pw1j6BaWnYcSI|H%E1m2t8T;61ZTzJ6IL?Lx_(21I2s@PW7cGXL6PEulWV<|V# zxkz%z3gi#_&Xlk_khb@dj#2%MX6#tZ(n}8^!!AP31ZzppMPWvG>()ks-*H#MO7!4L zG^u@I3=Jkf-$X6NqAl7SPQLEeLPgv87ZJ6C16kXrW4)2T_+L0K2lZTaA5w^P^m;{xQo%Cnt^-1O-)-EecF^94> zcI+c=1vu5Rq_4rwSgCYNW~UUhBQN`pCj4!C8XRsUN%?UTQm+C$L6(@RV?RB5uu@eF zKY=juasWK%%#Xw3HVI=KeDL%kjxghxy!Ron^2hWD8&1c=R)ZOTpl@TRqnMuyaqDl! zp{{M1eW&+am%CG&q}^!^-MB`ZY7Lx$$%f+c$wg8ca5^Hn)q-GS*?CV?SFrV&ov4jis_JHYb~V`*jZy#>njEgceJ#yz)3mws)`EV0^w4>}+>^c28%64O?-oJ)d9eI2zQAl#E zRvYG-t~MoLHBL{h-HzzOlCjS3?`$j4`(E^gQ37EW0D{Anw@L0rsHHHTu7{EQ-WX7+_fsl}nV*Svo~cg$_B-*XSSh zO1l@#cQAK9{(84XyklOCgQfPk!7Y(14ZyAt2OGI&+t>EPaPux{E=7d!8h8dUJut({ zu}xm<4y<}JWO{}0u4m(E_3CiSM2#iFKZ2X-1?VgT7Uj8gcblsZbB+jG=J$y9jn6Uy zhI}j&D)R#1GQI$H63EB8C<6FP`{Ck@uq$uvcQ|!-i4gc1<4x}aQjxorBK{u!8 zUSUQjOEa#~`ok)$am;}KrtlDy|HdJSRTgx_0;tt&B2XeZdN9_N;I}OdCZbq2+POw$ z{RU1Of~LWKg5%sU3k+g9F{-9$u1c#rV@ba~2!~w`q(>Z(Fs-(;p`i@-9wAGuCNcAY zq|qJp&dJV3I^faKvbCQSl6h|bMS{L}+Z|~!S2(}g+#C>ItCtH*i&(w;xG)md$P@;A z4ij}zV~DfAzB|8P!JeEcMid>{D(^VQ*{h^zZnu06uPte<(MIGNxo1y4R(6Z_oF0Pz zwf?Pjo_8&~#!H^lrGVJ6m*QWWBO#3&#G^F$huWM{fcC=x{Wb$gQS-kilk9Km6@Fkd zdz^SAs4F{OMn+0D#pGODmf~MQ#n^F-*t8^lwakYe-2IYPjca7be+2Wz=sbrTIh(_+ z!iS&ZM42_Pk!BJw{KhQND&D@uW6cW1PrqRRU0r zuJ&_sE)~wcaP0MkJ$>o1&H)hlA#Xh#*gmy>XVC2b^kT(vC=MH{*ZuTwhDOV8{q1`F z?e}AF8tsNL-_5ss?|9YB@%$j%R;NYTXXJ7XtGn&(j;HnL%SalQRaKk7zt$?~b9j7w zBHt?b)Hl?l?#ZmwsahOqO|1ip_!|J=Ge=+wtH?YJoqA>ko%sBVL@V|7A8=Um{y>W8 zO3=Wcbj<6ySIsx(-3<=X|B}C5?oVpy6%mAn+VY33I41ZFCvv!Tg$*%$-==Cj{L}yQ z?n-qA&o6HGa7C-;rXP;r)de zsxa{&?00OTj<#kYTmq2^L=lD&4BTNR;TwwZ&{(I2BBOmCU|y&EYaq>ge$`4 zsKXc#r(tR2`P}kGelzvqr!7Ov-Khg;!Q%jP?8f67ZlT1Uw3}tcLs)Vah^#7dPuCJg z44~oNa6DaAh@B|`*vEb~ATu@|o=hhkpLVpZ99kJCC6Ghf>WD@ohQ!nG`u0xOzln04 z4}X`7h;yahZQ*y}!vVoDcm7Wa_fA`q5NaQjypZKd z+`;b-dHLHb;-KI8KE?pi2Z6_8H?f0hK||;s1(`AD03dhApK7!pPSwN7*`c(7$9Hdq z7#+1F$bU)w^Q6ao#Hdk%LGfm{LVqv=!g9|6JyM=&x680r?4LP(xOtCnAqZ|BBXSmB zuwJW42vb;FF&jUpVXJns-Y++PO~ZyiJA95EU*|ZjSImu`L7O7*B%+mId6HMtFZ_(Y z_zaF6$bAB_{@2_|>(qCQ3Dmn`3A-c$huhi^$y_d$R|v#Lc(Bnp( zS-fb%3h*mImb|Zn{q=fvpZ&SEpRYK9N24?5DHV*cMX0$ZS{PDkRd3Z<@%A^y8=RhY zW3fqgr;j)9;=Q!;a%j=Xph(InJrIAK4Q)=zE&V(Tauif_k4kX*-P%!|KP5AL8Wjvpu zJc~skzCxQ=nZ+FjTi#83n_S#E5Y5yhr}kCsbWxe-nH}!6^LL~NJRho_M796IB%Wv< z>B6f%Ax8d7fE*am@v(v*9TrS2Rq}5pd3{oR0^^?#cH$2sxhL$-TI`9hu`|8uyPv}L zdIw4#*CTDt=>ZnG^LhqFavH9vv(FCiUnPI0epPxZV3*$%*MZy)40%nzwbn8Gu~q0x zyAx}qjLy#c%HXOoZ)5_29wrVsulOwg_>+J9LE=%VE(d;~_Q+f__KA?YYCbe(z}c;zN8VCS^ zQ2*1+m@ru>EEWmkWXI`P<;RHuo(23w&jOW7*MbhMciU+?@=31hoZ3xP5J>0a0e?RQ z(DYwS?-{trk1wulfd81rDwD9*d*e_ZZ}WRAWBn+mFDP zY$G7>*-VTDRTOEj4Dm~mPZI1vSO1)H@ zdgH86lYs;m_M-B#Vvdc^ldl^^#|~$}-8^KK^F;#Sx!YcYMRp9^Y4%eVF{mad1BaDc zmFBi+Pt$N3@3j~1{Qmq6bGIp6p<;4mKF^&R;go2bJzkzt6Zv5$k22U*CJ zkOqFx&avIeR=~)3c=ZuY@$skMvoY3tPxdc2BQyQ{JFC~LGso?5X7-k#9U$on12PK%$-&uKTSEVv%6El!)+*-+l<=U5-F=(o*zHmfgK?rRytefnm@YJ2H_@lk{O zR)|wpR8?{ua`sg1u$BybyUC#VX{oWeW7t-FE!8x<3*6H?4ktNSEsNd$0oRl=^3uJ8 z2!7S0wUzi5pXGA^Ed&zb^%_8uC&6e;PCO~H<_Rn znK$PZQzdLOR=&J74gO9!mFylH_~oX z-j)m2bICINNq*UIYcOH__>eI1>E$KL@7=X3H~_h=a;sXAJy>Hjr!5Ce_4HsVC5L01 zFU>v_9A;I=ggPz6N2|i7@*n3MGtEEXld$~wZpY!bE5utj9V`Q1KATY9ThMSO>EV$S zpPtI$oS%))7o|pM$FuBpz+_y8%Uhc$3ro@R%$ojeB9jKPQllwUF1pg$arMBUq!{?p zP(V#h?Zn^bxaHsIiTnHpsQ|u6|LNeLvZxnL$+yiC3qgyqg4TU3DfSO3@8Wipm2Pq+ z%pz@!r){UtasJs!SwTfyz0d!~|C!|6sScp|=0duRig?pfL*2r_;DarOM8me0jdZyB zNzx?Ydt-4h2RWo8XGq>iE%!+8=lr(&P=JQsB?+XIc++xG9c<;*Pib)I^w(f>@{km< z)I~df+|6L9W`Cgdb7s-j4O0a5xFBm@GSiNu&Me3=_IkU*6L8xaMzo#s1y>{m6oOg2 z1VM%R3xla!h+2EF)!tH=6WEGmw|;eJB!pZXJZC%cX{~Z-*i@ae>v`i&6HWh1iY$gL zDtns^ni<5?1kvwWsMZZSH;glMaF_`vY7d$LGJg;Ju>OML$`>QTh=$6Z$KmF)>(Wth zGBjS6oJSb{g!KI|eHP5Xw=J%~Chv2dL7ekldD^YB;vb}_kH+lTyPbBC9#&ogeQxu{ zLdpBj+_0VjA+=m|GrO{3L=IO+2Fq}|9a0CJsyRL)KkBA$XZ6B!Qti~e8YO9(^PGK; zwoY3LUlLZ#E14)`@PT98<$!68B%D{EInUlVUj#L5qul_^+I|o5nlglY=NRFzLeO|5 z;Uqxrvk)br{r(v%>`QhsoQSTta_h3iNHjL-<&8F#aJjwpqY97LqfHz0__b2pAUO@* z5M<$$8+Y$ibA&F!BwalW-tkt(#k_$UVrYH_!Jgqkg*v`8%sur?Sk3<1%^{7ox;kJX z$Ib0~`ARe%gZb*)b23vq@mI*!U4kUp^XJU|M2h1NIPt{GT5&py1H$jU)kZ8zP{1@{ z)7p0n^*JCBpY_30P8MFUl-k&wBvdmz{3|M8H+-+Ql-OGP;kgdSiv2cvvSq{NG(c5N z0ish;NrkFx*_;K2wg57T1f0GH7{W@(IFmh$XzUxfvAX(NiitYr1V=_eA%fph-4$>(q&+~Vd-y8`clqf zn>UCX3o(vaVf!;~;68`<0W1lVh9O~y&SbM8|^glQnw_ga&6a z-n#EoV)$pUzzZL{J>D=Lopsa~8Jdhf1CI7da+Ht6Fb~>IBTX6_+o>INXvH>Nwee z7I)LDh}i~xe_2{wTwDV*W~@dmt>!0IUVZT*7TQNR>62Md+?zBNMG3POc3)83MB;M% zR^LY#1-7l(rue34X9n400M`VJ&NQ1|iTGE-J3(zcERAKK<~;tLLqxj)`NeeKHIEm>kpN za$CPKZL4=C5{fiTFZ=Pux#~|Fcf3rBBl6k!Ub%F7FC{3LBTOaq(R7M@w?l9$SSuw| zTBSqAa?B@u^BqWSF zU8mLdAW_QB(1(`F!&P6|*GH_Kwy8DdZ`* z&~$pV_6WhHe*B%Gn8{dG+Sa?5*-A2jmM2t-1a>nG%;>)MY1=^C<)-ZY7d*%BmRmO> zFFHEim>&Ne!5?)YC6Q-QZ96G3w4iW9xH#*98*5wFVw?2CmYtBhom5h)X8|{y+j5UZ z8pq*U4i@7@JwFX8VCTlY2tx{0yI=Zyv8fK|s;~`rarEGp02OWLFEEw6=7Htyl5=t4 zbZfiZ!uhoFRBp8+CAZU+Dz6I)aP=K9$v-EFqNvyyOd#QVW%hulFgst9A}-69=2*U6 zC@$fIh}A&rc1l+ds}bi?-Bni79gi9lv^yD}TNv(Isp3E{NcB`%h@iF(w`<6YSo&F3 z<>kinL|5fc?Yh|Mf+lFB?{Yx4Eav^E`+X$q0kw9Tkji`)-D=x)3$Nr%Id^jdG0;656P^=VJn&7Zs3W5dx41Z*FrqOZ2$)VAE*?AMX}3lKIg zDqXsJex2LDb_wG(SoQoX9#_Rx$Zl@i5|s&pdsbd(a~|F4407 z`X%ESbzbX;YbYTT>w#?OdL_RQ6MV&iIeSssab~2IsKe&j$tX&^injM1l1q_)AB7{B~%qy(;Rq`d+Cq-O&bAFp=rG_Ep2>6Cdf~PJuL=@ts;tdZmJ8yzQ1Nqh7a!lPrQTS z4kqqx4h>5>8Jg;YQ((VkK9$RNd$Dd?-Jox>(Kxv2_hu~a$B>rg`I)H-roP(9$O0GCx{t;Vdm%%c` z5!Cujr7xcrC72j|V<^KV{i0u)fb}OO~N) z@ojp_{#iTE7$}(F(V4&JM!@h(4R}8v!T(ppd4?TNP3GlgK!OC;5?JBA7E0Mmb@Xi8 z`J>i$kwEjvCVeCx4Y-cN9sNL z&vbQ$>$)08W9zu(2B&1qDAWY+BbsMd@nI*Z-4Ro6Ley8&hx?te0j z3H>dArgnFhtQWsxTm>3+d$p^2FDbErlZLD=Y{Z2U%s6)UM}* zY`VE|7)-7ZBK#H=O%~e0D(*UCzWL<-Lp$d>HucNQFs(GwVngk)a+%M%jm>lmX0P(J z!T#VAtBB{U89mg&F7domoQCK#!G)N``eQ)#$D$gOw(~Z7UhxpIo!F+2UM;=CYy8g^ z^DKsLW_o~0Fk0jId%1<-S#Kg105ZUW*ihi{Z}lDXEe@S~Zdi2x3B}5bazb`EaFJGS zGJh{6YP36bJlBF;OQuRA()}-@d6*Wl6zh&nXW2IgI{x&S4%%HfIAA!-IXV=84I`#H zd}r-A&@Q~kX4J`uZBG;2d3B~K^h=)Qg~D&@a7DkLiY7v=0E_m?V>Qt`ht&-nus1KF z&YR?QavKI4{pDkE9H8ZGuiEFF>6yxW0#*aQt8t&ITkXHRl%Dhr>}9st)uUyg||FtQ`SgrXS>sS3);PgHLncb1}HGM2eFxR%)O z+KgA}_qatn(#~>1y7|GbqWLVR6$1kEdHx0e8AOPS`3Rj~w53En=$kGjT85`qa|)8y zgBpo^&8^Ux+rH1i^)ClYJKX)Y6RvGx3;3HEkOHU?iDB!G;^-*%CIU>0AxgaATi!C; zwxuK5l^XGfW{^XZfrrZKyBD*k8gieKmJlkHPM=48OlG}085e_Nr@RLe9i?(lcZ;J> zY>fUjghT1lVsMnTc5(8+{|647EW9i)$k6QcY}w_2m<=fV$L$z3A8zIr($e~s9rU$X zifMJtc^UuZ14&}7SUwcUQxxBN)IdHZHLf#Z=>vZ%N+&(pc9G_F3+~9@=|{l8egi;k??tU953Z>LdOlHiuCfrF&>i^Jua0TT1~Lcs=)14jS5y3E$&J`BPVi z=o$ew1d5p{u}|yc@_j)MYh?48F1aD@EH(t90qWLijng_Fk zK@~p7?4iT!v1`5`a5T-`U*5_*TKVhz3p!I_4zY!pSgLpp9=DNrBd%gqZ?I6>V5(dT zsC2!B(U!M-OT6~;88z<@bn7~}4oE!qWr<9p;na*>QzXv$);f7D9eCf9X3!CvAjKMo z@_BZg>|3S#?R*w2=76?(C%X*Z0ID+^K15!7VHHZogXK_;TTM|tWUkvS$I0P+S&D^x zOkQBgl!(uZbDY)CZQT3c?Scu?G7iI$t!xzhc}%E(ki?u~;T8M++F`@{GYFqm*jfcY z!$(@Ck>EpVoh}ZlJ4jCxL25*htwV3d&asf_6;0hrd|1EC>k zv~{Ip`I)v`Aog4R7yAhWhBjV#3Z_kLIf&ldPrUn`G+Li}!*Nsw<0?e^@xaVST_=rO z7Ie30YEO)LO0!s3B_@jQl^O1{cK;bpCSfgRS?E|`k?CR|n>9}tB0fk6^W?;mjv6t~SsD1UH5$HC)%I1go*S)~++!8Njc286}CAK$t9cH=VL z>O(M5$~*L?Ey`VEbODs4VhxOV5|+|#C1v{y^TGJ77%2ssqjb5W(&v5w>XMMa2? zF4)sDaluqoPqOOP6^yISvTMgn*r{=a?z>MsGC~8Y^J+NEfb^`i`(~c3C%jhiZS`>g zJcO9oR&bKTgH>_yUT(cjj1}M+#P&yl?WABPiZ9Aj>yIlh1InLXAr5x`8AqjC-e5Af zKUEd(KMD;RWOC3+d~L)nxN=qaR5j}LWqBJu1Xmew72OCX7o1T{q1%#@Xm0*$>Lahu zaX>d=Sf#3_La4Ir_(1)ji@~|9z?4cixG;US*ZW73t}|1u&KL)ko{hWeW~NuO z@Fkf6QFLT=2CGB4VbpzIg=>`pQQ^#0yr1HHGMTTrbyEFj!045^^iaQ27;~7k8k4=_5T`>Cnm8 z&8B`dme}Bd4M2NN>`mL}Rtz(u^P8~lRc+R@trVbp;T%{PeH39}hik?S9Bd~7bK??q zDzv&n(dyEN%Y|unv*S00P*FG7kI5slN=@i zcyiC$eJ=}^=ik8c__YQaERg9_^|sn?y&8oe9S)4dq9hg|=|ca)n6cv-H+(&`@+^n+ zjpZ7Gf_`T1DdH5y?-4MZHa=gACcjf=XZT{BuI>{g*U#3kvTy&oUXq7;)vkKiRV-e4 z?vR=9aSRmr6_1L8;`v>L8o3O2uOlg~(ez~OQjZ8X+N1WKK?~c1E6L@34VL$A#%&%P zQX1CO0I(&`qt!ev552b)f+f}DT$XO-hX=fA1PvU?_WG8kWNMcm-$G1^aojYgngZB2 zFpcRH6EAG1H2+g zwku4eH;HQLmVELn--URJlffoPt14~LKk?>5jG1#>cVyqc%TCPOZcp7-w?Euo0SgwB zCWSBJU9g;#5myVwXIM2!6Bp~p>0R2T+qNee%>GKqOD6l7XK3^{{W5Ag%!wXvp${zp z6UvHUS|&if`YJu27g*_uxj^N(8Iul?jjHRBO28hkD0mX}R(rf1^2X0!cTi9K27sV< z;7o+2r$9qmT5JNd=1v&;f}#)OKu>TS?;Q#FTP>I$1vvT-Kvaj!XSp1DJUr_f?o`In2g_y&&ih8IN3;%0vxZC{f|)NQ$(!P>W{#DY2VFH zyUR?o3<~lpL3f*jXY&TUA?D}*WksyTeC(|cLKr6uCugWJ5tHX6Y=~4*iqM<<(w!Yt9yojO-;G( zC`1NGgP!BUjoH&?VNX}jTaC5AsF z6bM$>VlgtyXM7bYUG;$XTljyr5Lj5XmD1RN^*&Ge!%;g=P`AANR+)<*_E#?~O(l~@ zN5j{KR8|yuZ{PNHW$V;W;m%3mD${e8_~J}xJ950}5r_@XkC{>$5xq>0n!AOgocdxN zD&LNU4AsDT8OuwdPOrcsExDF$JB~aAdR$S(k{AKoU${XLln3fn&RaZbI`@sd+KDJ$ z9NSTI#o@9*YLYk)!@J>?;q1(Nx8Wf5W7fdjtIFB?N%*D(SE3Sd>!%RhR}1>;yo$rQ zjP$eeXOb-iZsx3|tNN2qh$HZxxuB&4u8p_nA+KIhdPvhw#^H9t>)oP>h7V`iHjciX z!y4i+duTDSxAQ83dlIXjO5wYcF}WI2P5GhXwP-h?| zq7)Bmh~WPey=CWbDbU1Ld2jgm=@HO@k@gJ1=incu@%+8tzQ4MgEy{2YZQB4n>agE> zqaKQBz$X;b-@>6J8}y*cPqucyo~)SPNyyV2vCUcmBumt3B9ujGI5*<#E-WuWAd_z? z`+U^N=sc2}sUH4)ACEPjX=PV`m9KETTZ;$i+mTm1T0OA>crqfqz-JyZe?6+iqhZDw zG`Upu)r$ARklT&FdCJR*cP{hH?6g*y-HG1bkID_Zd4fyQFy`1I-3L0itNFQ&8Zm&2 z>&4MFI2=9>_R_B_gla%`)(pH@c~)j6xd|*yqNFnrKTv?AyZ1GMe@=tgRkwU-pZP0? zvr5A$em57Dm5ym9&(+OzB^H#GXMl3m=oE!zdvR+NXi`ymiyf-yPuLy1)Sk4NC0F5N3-a)OJm92L0t+!yX2b1E zi*++d`wwUTaKsN4huzo!HmdPCN<@pw3;)CDgSZ*l;)2Z#Xx<5NTar1&rVkG>cJ=8> ze3P&ZC7PwUgG0V+0VA-)i%NHMmexxjOX}Xn13);^Um%OE!c*edym?_Htr$;mHXjCs zg4;xpg1&D{jj*}QrLRP47gzw^>z8bmM)J#eAkE$qe4DPnGL$)OFF5j6rue}> zvhB)9E|&c1Uaq>DI7RGQ{H>?{A?N-752Fh5$l{LiyNlo;k3WbYe9p(SN>)ye0rT%b z@ApRovDS*u7F*SGKyuFfe>5=NpxrUuM^`@l;fNTJln2N1 z%U^8eI7}m(h^DRKyvFLm3RvfABJd+!EhJ!{50#$36VCvC=FdXW2SG{BhCw&MrZThT zt_3aU_xI7<51-)?6kQ11c8>{1+S;<$#2%Gy(D62^Hiu)G^&0r9*=q8W2~*nI4=-7P zGYFeka&Zz$W46VL7lbMEzbNr1916Aswy9u(d~T&s}19*pT=VJp5DN9FW;h*~pfkB@AWAl>uZBYX{Wn5oNQ=N2~cVAem?7M0(l)$^p9?4Ae?% z>_*L?1Ri7rzrFA{su)1or5Q76f=YWn_Jit>QZaId^u>oPJN#Z4(GRwGH@Sk#mkamy#Z8&~a<1r~x1 zzDJXYKmxbO@&?m2*k%9r^YuFc^Wfc#8A}?@?G|%&qx26Wa*!p>PO96wL%A9nVW63Y zFQzjYDe|gq_b{c%_c|PaGnIKTfB?}*<7Btoc9-p~lCQH<$a=?GWs9??L%)7-NM-h7 z85`_XfWt_@utNHIubnVQq5Hut5lhf!@dZF}r=Oox)o9CjoC2_d8cP)ambU+#H_EKx zWwY8eWHKIf1cWl-iwx;fx{&h#TJsAlqoz*Y(BtQt;6Zuk4gKyX)IhVJRCd_z3JF6Q z{@Gs)?D{^3*qd~HD%}jeCRZE1;>BSE^CmgUv;{+gF&vQX5&BFD*WYU$5hUWr1i?lUtD3&!6}-*;}V2*;pM} zqgH1cO2JuY@{WTMc`dDK=M_IR3oN+mM$!dC4?Vl7Dog-v?@-QI=-Hm2+7=qTG!mL{cEx?O4t3~Ox+Epih8lfc7Z>vlIk7T zZ@&PEyeGi+tw{wGvQ_ZY?Uydn3v7CZuJA$e#$BxaSQgKF#S0F*D?(6c@d1S?j}xt2 z#R{hW5QmO1QzNd)I0FwGSeLb%BOHGbQnZ^`2Ctyh8O5@Ehm~eV95!RwZeH0UD}h43 zX1#-+2}XV{lrWUCl%RF?!n9q8C(!iAA{Jy>j18b4et~M;^_KR<)9j0i672_zr%N^z zxne_`KNwuBEoHIJ1!{^8d80d&qhBm2>fY$`p7#f)%^Dg(fA#D125X1QhJ~!|ryyF+ z?8)InP_5|iMvfX)y;|K!s#>fC&y8L=P+x`bTMW@>oBhsNon9Ot{GbQ+)*+LPJ~jGU z_Ibs{wv=cE#>(Z(QAgk=XkeT=+$BA6vI zLG4C%QHgzokg&Vm>+S=l2I5u=pXN}C2`zZ72tTUHumPx!C6~-UzM(J<8hw^`0rD=N z?^O)%b(794*ryBB^o2tE7&Z@ySdeY|+c=L6P?M#}c;xu~)60{xyO&u?BEiX-&v8m` zJ48xUKg3a*AP+MrE$IYaj{ThePF$pTvuMyU*ElYMe zxE!ZXKd<;;*NQ{RJGPqoJZ2r8yaStrhlcwtPd~pNsP+Y!8e#`I3}DFngNeFol?eD; z&j%y)u{H=R{A|R!GFYXhtDlrBGioGCka}VK_CrsugSC|Jp(3ae*EBHlUBzj|Oo`-m zez}A^&oe;6fh8c03Z<8DW1&CoYyy&D08MiXybZFr=Ce^hZQj68n4DOp$msFK+XRDg z10ysq(DbkgN$GY0C7jK%B}Qk}#0!lu0!z^Sn+uS~hBk0~A$53WcD#U7w8-lyCXl?O zz0N>IQv>P{&c5_-h@#Jm57@+Yn1qnv3Aq zdVJ-jmm!S(xsG3HBCoKt;gA0?TiHCJcMrEgVMb@vzs|M|=P94#%%(J2ASGDplz#U( zr;ZT9XrPYzBlG>4&jATPfVQ)cjVmySlrVTaY!%xQ?Xzn3?Kg0bHTC+eTc)iZURHES zzaJb@oM6^za#^fz)^c|^Hdtfvus_=EWjbnkFN8Rj?s5t0}_&2(;&aI?@a+J-CWBn@=((( zRe#lb-)yIO@Sc|TWuDmk{85o9g69&LBOUt9w_PamSwp$cmrE1FA5^pd_q-@G`}SRP zd5U)2jI6eFuH)LUahU=0Q+|EkXIH@&mPtY@eKD~ni7J~-bsz$=;MV;Dge8w?Fm;>c zg^87_-bbHT<>N$x0gduo9nixV{1ctYuOl3-%w0F@r|o9;En^E?!&=K%m1)OI@9Jo( zJnw#ZNwLT{7o*`P%v#366|!DE6ZuZM3mTkjQ_k)Sik3zEiK;a_-x3uUW2EWEb$0B| z{7(AmZ_aXt5ln@CpqDZacJ{Yx^42)}!Mb8<@`a%WTtczTh^kDch2!Vf0x9yMH9^~p ze)Im*h2R|~;YZ^^<-qiRBRzf{cSb%HNoT^A3f^h{r2yWjWRo0ajOO$?-x-raE`oHz zC`Be_XMh#bZE~7<2GT7620cG`kMg3F!*Yi(M9K#2YpBkEf0U?LiDatRjR%2Ln`YWz Q%LBQqZKPFs=kZ_v4+1?qssI20 delta 15387 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 g#8`=+W8|Ucb~laf1@HgA^-pY