From 00101e6f284e046e23ca11d1b8370318ea1d8f69 Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Thu, 6 Aug 2026 19:29:50 -0400 Subject: [PATCH 1/4] SYSML21-300 Made UsageUtil.isSubrequirement exclude required constraints - This is consistent with the adopted resolution. - Also removed TODO comment. --- .../main/java/org/omg/sysml/util/UsageUtil.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/org.omg.sysml.logic/src/main/java/org/omg/sysml/util/UsageUtil.java b/org.omg.sysml.logic/src/main/java/org/omg/sysml/util/UsageUtil.java index 7085edf51..7d9a8eda0 100644 --- a/org.omg.sysml.logic/src/main/java/org/omg/sysml/util/UsageUtil.java +++ b/org.omg.sysml.logic/src/main/java/org/omg/sysml/util/UsageUtil.java @@ -299,16 +299,10 @@ public static RequirementConstraintKind getRequirementConstraintKindOf(Constrain public static boolean isSubrequirement(RequirementUsage requirement) { Type owningType = requirement.getOwningType(); - /* - * TODO: Update checkRequirementUsageSubrequirementSpecialization - * - * !isAssumptionConstraint is not in the OCL - * See SYSML21-300 - * - */ - return !isAssumptionConstraint(requirement) && requirement.isComposite() && + return requirement.isComposite() && (owningType instanceof RequirementDefinition || - owningType instanceof RequirementUsage); + owningType instanceof RequirementUsage) && + !(requirement.getOwningFeatureMembership() instanceof RequirementConstraintMembership); } public static boolean isObjective(RequirementUsage requirement) { @@ -346,7 +340,7 @@ public static Stream getRequirementConstraints(Type owner, RequirementConstraintKind kind) { return getRequirementConstraints(owner, RequirementConstraintMembership.class, kind); } - + public static Stream getVerifiedRequirements(Type owner) { return owner.getOwnedFeatureMembership().stream(). filter(RequirementVerificationMembership.class::isInstance). From 7720eae88da04bc38e2341167ce105582c41e633 Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Fri, 7 Aug 2026 19:17:20 -0400 Subject: [PATCH 2/4] SYSML21-302 Revised RenderingUsage::namingFeature() impl to check nulls. - Also removed TODO about SYSML21-302. --- ...sage_namingFeature_InvocationDelegate.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/org.omg.sysml.logic/src/main/java/org/omg/sysml/delegate/invocation/RenderingUsage_namingFeature_InvocationDelegate.java b/org.omg.sysml.logic/src/main/java/org/omg/sysml/delegate/invocation/RenderingUsage_namingFeature_InvocationDelegate.java index d796a2a05..11ff3dc06 100644 --- a/org.omg.sysml.logic/src/main/java/org/omg/sysml/delegate/invocation/RenderingUsage_namingFeature_InvocationDelegate.java +++ b/org.omg.sysml.logic/src/main/java/org/omg/sysml/delegate/invocation/RenderingUsage_namingFeature_InvocationDelegate.java @@ -27,6 +27,7 @@ import org.eclipse.emf.ecore.InternalEObject; import org.omg.sysml.lang.sysml.Feature; import org.omg.sysml.lang.sysml.FeatureMembership; +import org.omg.sysml.lang.sysml.ReferenceSubsetting; import org.omg.sysml.lang.sysml.ViewRenderingMembership; public class RenderingUsage_namingFeature_InvocationDelegate extends Feature_namingFeature_InvocationDelegate { @@ -35,19 +36,21 @@ public RenderingUsage_namingFeature_InvocationDelegate(EOperation operation) { super(operation); } - /** - * TODO: Update RenderingUsage with namingFeature redefinition. - * - * See SYSML21-302 - */ @Override public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { Feature self = (Feature) target; FeatureMembership membership = self.getOwningFeatureMembership(); - return membership instanceof ViewRenderingMembership? - ((ViewRenderingMembership)membership).getReferencedRendering(): - super.dynamicInvoke(target, arguments); + if (membership instanceof ViewRenderingMembership) { + ReferenceSubsetting reference = self.getOwnedReferenceSubsetting(); + if (reference != null) { + Feature referencedFeature = reference.getReferencedFeature(); + if (referencedFeature != null) { + return referencedFeature.getFeatureTarget(); + } + } + } + return super.dynamicInvoke(target, arguments); } } From 87e395e1aad979e448690b4ae3d95c7c8e5749dc Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Mon, 10 Aug 2026 18:43:00 -0400 Subject: [PATCH 3/4] SYSML21-19 Updated Usage post-processing to make attribute features ref. - Extended UsagePostProcessTest to test this. - Un-commented implementations of validation checks for validateAttributeDefinitionFeatures and validateAttributeUsageFeatures. --- .../org.omg.sysml.logic-0.61.0-SNAPSHOT.jar | Bin 691820 -> 696696 bytes .../org/omg/sysml/adapter/UsageAdapter.java | 10 +++++++-- .../omg/sysml/logic/UsagePostProcessTest.java | 20 +++++++++++++++++- .../xtext/validation/SysMLValidator.xtend | 10 ++++----- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/org.omg.sysml.logic.bundle/lib/org.omg.sysml.logic-0.61.0-SNAPSHOT.jar b/org.omg.sysml.logic.bundle/lib/org.omg.sysml.logic-0.61.0-SNAPSHOT.jar index 2ef1bdbe0e2deff3f1aaeef92d71adfa5ecdbcb3..e7a459d4e6777fa6141435dd759436d7e42745c0 100644 GIT binary patch delta 44973 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 P6GSgxLoq{=0-^r{mCnPh delta 40246 zcmV(%K;pmn!Yb^XDh*Ie0|W{H00;m8;FJZC4I~5Llm)RgCIJI?lm)Y00h0p*c$5W` z^8`!{_K^i$cL%S)N+19LAd^f5Hh+&~n2@l9eN8ffu!97F5CcTQA_P(nV`6)$iQLY6-rHrXC$m=Zue`iFm(L35`9180-4Tj;8f~yd!GEz1K(pTu*a3h=j zoi3<^Y7HjC6odgJ`Kr@{Qe2ChlQ2`cFw;nzjLUm@eDROh4lMG4Tb%w1CSR3`VY+2#!l-}#!?29Cr0HKuV zgF>c78q~pJgc4J8c07}v^p`xHcJ3&ros(Sc^hcRoO@$t%xAC||qa`8Ia)c z;ee}sVbZ3E(-RydkzPju*99BlWED=Lc%E&x2B(0}zDFs(i!jB>+){mAg%&5*l0w-T zs4~2eL1h=u1b?fyChI3#&Ja;Ft34HhAGWA)DnfahB+h9V89V?Trs>6#m%g~$609+Z z(3}lUlT{7X2Yiu;6Fy4?c~KD`M`a<7P)hhx)x<>%YY^cQ451krz?V}*UZV%}tz`en zM0hISszH<|nR3pA96Qq1ZCTKIU!Y55@e>?WAXlx?Pk-z3hmGnen?Ksg*YcEhrUq@$ zUI=Hyw^TSMed#3^85?&loM+U4oQBT~-^+9HtsHS7Oz*qUCsgqqU7K0~ zw}d)6LP6QlH2EXEJ}g-4Zx6~49y)xK=Vv#i1%G5rw^K#rL~F4x;%^ZI3*j~>aKT-0 zw+i1SW6cGq2KT@&BVO18JbW1%U=MtsX9GP#zBf8ydRtde2vM^-thf4Gd{OSZkHDiU`~YEa2C^FL zg@4BgL7P7y>Ww2RoGE6;$J_Uq2K(S~g#M&Ek=&?uk7KlDJP!r&Cp7pG{FpfVT3YnZ zs96{~D>tpY)WJo%I;j2S;vUf8Nq7pOs4Wz3@U?7S6(%RqTe-3v*YaZs!onYtb>(K! zWF-DXPor8dC;ur+Jk6k(EPJA*hsjBdc7L-j+};&W3Qje#U8qKfcutLbSdT<_&%zV& z3mV)Ex47U%cu9p{kj^ay8`k|xc$thf;y+Ut?SCVm`l<%6!Rz#0q>s{yM!S8;29)Ra zUu*Ci_^naUh{R_x7umbdN$ zgpZ6`Pb^uZw~;3WTXd=nBYHGSl^?=Xr}Up@1)=!_{;tB`oa%uz>ooWWFF*zn81vV- z1l$xq)!;LD$EZ*Y4Vq!QFw#XKMt^EJPY<^8s1!~o%#^;0vJsZ4@L#8d-yHS@BYxAn zTyO}!(#Y7*aL~0jXp@{&X-(vwhl+-Im~ZT7g1Ff{Jqb@P_QUz98usVv<@_iaZ1sn_ zBBp|iL&@hAg;A3Yb%wd4F+9L1EqT*|SfpWbd|!>{rrB&)|wItw;?`Jc!)~FY*7p>Virfq2WkwnWb^s22oQv zt`3t4+1)XRBfQ&M?*+A71!FZFm*CxY!8XDo7aWHZHJpSMh9Zrh<=JtT5&>}bH3}tLxUTUAJO&bK|O&JTZR_6hx!Nrcj4Cl`J&X)BZ?W z!d$YI8m{69U27VSS=YFxVMW8rW)~hq%^|LF$`wgmRBT3=+c&vvj*n|`y@to)aTL*L z!@0x=vz^m*W=*-p;eTY;yObd)<|zV4d@@CLe`LKL_P64Oc@aAbJ8b6QH-EGr*02pXs7Pv>k@*PR zMlkKHr|PMYj_VYDhe%jD&FgK z0wahRB|GlIyTwiH%1|%~EN`3|g3)ldaahLdWT*T8Z1*hoBR3BFK@A_mJqSgKY)E*g zk}Z+SE`NN`c*RISrg|-Yo*Di6u98Sf`bbWAxD!08;a+^qXgLxoS&2eiPn>j^5hfko z@k6frJy5`nvCwG9eyHIS_#=K7O)Khx6nV=MBJV2EarpwZg}5J|RPg}WMe45_K7~&s z^b1it9T9J8q&YH3eMIeBp9Dg<_J37D4lyCqwttC!`B@4IeO~DS7vACl4WHww?|FWR zm|I*iQ;ji%5qD&NzEveJ5NozENHv1xtJk#y7cw-g189#yUpMc8`RA)bJgCfYIL21(4zRYBS+fXLR}mwMJG`}HBgip)tl=m4H-sVS#p16^WR3qh%IyI+ z-?D-DPrhZJA~fWvv23>dFZ{QPpQoH@iGKy=ajkeq0>8lj&=&eyTkBd|{YGq)9@`w^ zXVba7B38NH1&45~2R!hQ2THh1gSe-c;&UD-6JeJr8q4Ehw}6M;CH^pXAAWXfsWyHA zLbRBwvHmooLixn`9-wJFmgtJ+Z#>6=?&yM1H*mhptFCr)><9~=B zLvtJ@8XFYHVLa#L%lP5+E*=Nu%MgPT2uKzpzjgKDOg@*Hl6KZ2x#$0bZ%)@@+*Ag6 zU@#j&M$bkftj-B)CID%R&mr6dhw|ccYF}v^*09>w9SHeaZEsSkY`oLel{wRX(&J|n zH8zP=7!7~iERtWoa(Y7})0<!z+$sfNZIx+#>2BoZ zZ2zbMD#CM=l*I9^v5|rSsvXuyY{#57TqUEfe_!|zSA-0YktFrY@H&-TOjU5+v^aM4i zY=e_g$@{S-;#H!=_;;elHnNit#t_NI;AXO#sCi4790yPA`@v`KfzbnF;0eb!-YxZ$ zEp1J(f^T}+n6M)hr2@W=O|8E1Gem=aIF1|pa&=s}p^&w)%_?h0D1T03t}#D5RUDx- z5`AA#6i4Yg+YS5-Qtz;2nTc>*_I|?-BlmMP7p`R?jdilqY**d(E75AFqmtA+yg24r z)^HBO@rMh3>YKFaXInLPIy=LNGHFf)v;0*{n%k>5^0`!;%Hg!B2$i|Ml)1sSjtsG- zZ{76QI5yyI-ZSi64S$bi=ONTMzVwprAOy+UW_%64HaW>ivCZ~R;0mp6lFFCtU)@mrb8;8`Dmo+~;z;Z_!0%-$t03I}6*@HM^2s&F$kFgz1id zB$uIbH^rRk+*S0+ovpvcFv-udjc0RP?wf`vz{+>G{QT9=B7gHQR;TblOZj(kC=}%} zt8;}O-5hF-6tY{`cT{#OC2=bh`-59UTlAVHfrBRc+I;)~sas>WvD?M_N9H4h=j}mU zt~7`*^95T2dV~^VXiHb8J*86SAbcw_1Ah|Ah4F|huY$P>}EGR zmACib)!5zq&3~d|p0PT+qDN7b)@A zhi=v(=RK*hFfOEL2i&-jo)zaa-CFT8jYU|Le*LMNMStar7d6(68|c~3-ME3~@xc0u z#$Jt|R2YGt(7c@Gk8(1`>fDluo4qa({Z?aVva<-$Z`|yxL>Z{q_@l<&;iu(!Ext&U zetH|hceva$qYQ5Lt_1hK#?EHv5V-gFi!fg+b-CGJ<$ipku?yiHBKENx-jNJG)!4=C z5_JAR z8)}-pGD>6Dvg_#CNH@Dq&Ks|>>&4n}*4j#q-G9Jtq-PbzT2kL|V})UY+f7lN>bu-j znxT0n>1J{#WQ&x!nsS6PaO*OkpR2wvwZFQJt$E>Pw;H_({?<<7&c%r~uLyaOkr zrxwPs$kgajIV{N9#JiQFC>k5l*QvU(^-vUmm1PK8V=$^{Qgec7I=u-`65aUfD1@Twk;T-!p3?PE+kGDla&~p z)=OE-s}8`%9vD!yA2!C|QiSDIp38;$c33QnMD)Cu7TyN~;eMMC2 zB#+6dJPyEBJE4d^uGuMM)PDrm(-OFriO}{Ck=jFCA10%I1gh!N;y&5Ny+0@e2QE`# z2SK^}G*|GuBTTMF@rfcp~?^&pIZXMafiXKfZx15eX$ zToIG#_h$&svl5o^iJjlnAnXvcct zR~$l~&G??Doq0j99&M12toi77@OxsAPZ{G6@CMC}gD{@FNl#3}EK%Xbl`6bNu>J_| zNLY8$3{G<@Y3ENo6o19wF9zAqWCRoYS-WY#`~wkrgMS?CO-h?@(XPHt>Gw}I zn3H74Q>jBO5RtqDim?z~Qjr4GSc>UTfSL*FE(vOyr9|4@yzi10^BlB@1Cq7)9+7*W zyzc`lI{pe1;6w7jPi*j}nOdxpS{#!`i&e>5tQK12e;pl`f;49`jw1hIG;^ddXT=mn{Dz~Y?n^-7(G@-ag=rKTk@DO|lB$1P zDqKnvIf!#j+d$7wA=rNOkage~gq4#?c|Uxd(_ zq50e+v2rJj=Z_BUgyHmw)jd!of11(*1!B18qP(w4^KSX-QJYQ{P~{5n6*)NtbwqHZ z0;QM-!!e&K#C}kRDm0P+&17pQVj;AWorTD*y6E?FXuDj3h7ifr+ZnRLD5Y|dYmiaR z(IPackbkipBQ%&tdY*~Xa5{y7xGu#koFR+D;gEj_++@dJ!bs96SLY#EsN&2oAfJ&^ zr<%pXNiwU9t2%(Qdtd~qZ*Dw_;t>=zaUO%@T0&$nEF-}O!zlW+BKEk%nqmy`T7U~B zuR6)AhwoE?!6ho#SMbP7VB)%OOlzgw2d}kBiP9t@YvMMQc?C8bQdSDbE z8R{iSk)5E?M;8SUWp@Iiks{bM5TYf7W`8LuZ5gSs5vJ1TOxjfo-E0iu=>lC%vSO!8 z#h!uPX%u@VDHhL3R_y8o#h#1j3B{g|7sM+cyiicOLY5j7$az2)zUr;shZo73XCGe5 z{q}M``nG(QR0m=+xNsfW%X%1t$5Ln8Y|BE`6oPmiNF%%ouNHW!@fuQrm4%Gou7Bl4 z5FxzIM0mYGc%-b&3aUzQt+y9%NUHqt1e+EMOm+o=2`70I_LwAh3X%ctu=F|ICUgn< zjq(m}HbwuADf(?T(V0#3lS%YbUbCmC|p ze!Me=-{n=*5PG!Bc(f~q_wh%(! zJ|a2uJjZRpTSeCLgBbSm>=QG$a-ZDF7(Px2_u`ND!(GYSdItGSHw?lvDSrZ<1y%Ij zGBK}dVqP+_p9mA%i;tNmc2I!0Qd;ej1QUBkn%GYz2J6YsBtGvxd_n%$i@%8BYrNEW z(ZVN6Cp?$T?mRNP^C?(d0Q1O~8~8I5;}WSP8krb>W7@+dQbAKGGyJy6dyw`hhQBux z^&c!KZ}8#UsX5y~aVgbH+kc4iWu&R?q^T>(kGI)SOqD3|NmG9^8($G{rx^9vyZC2` zX_m~tt}4PpT}3axmmJcru^%U(TiCFq z02gEB@tnPn4Ug|J8)fd`=nQ%50NK}*WZh4ZeLYP9?m$9-8zOc|1USYI=nL3b)5eaH zHa4uPgpKQE6AELjQpsQ;hTlGGvw&fy1xz+6-XS~U86?gW^H`xrG-L8$flXUc-OFZ( zSf0!(&nDLMBGHCSkj^7IWt^CoHQEq}@;Z+UKlo~P6O(l&SZK7Ktv8*!D#hCgBjo)o6sj%9WBA>FW^L2Gz}bojCG~L z@uh{+ZFY0n;cQBR)0zzDOmZd;#@F2$qQ^G z-RyjJftmYRksx`YnM-U1aB>zKoSN%W3*hZ!pO;hSxPpS_4toL2E;3I=%q&KnFJ|$> z{Y6q3s(>=daizVMvZY0mqd>@UDchDiwL2214Nj$Y8QU(YEtXmtP$lj|RfXu~CDXgl zMt^Sr+0n7q#<>K&%grMv+qDiGZ~*Q~E*c-OU+Wl}qxDy?9di9DDcvyd0d^%huy;SZ zGRCfQFo7rS=}Z{8DeMpd?pk)8BtA`oQ>(-wXtKLJWuv5;?sB~;TXqY7I>F&AyD%;M z26m$)b~MB<_DIm3MDqX}mr4Jx+b{Om`F|XkAlna=B4rVR!fp~FxQFc&L1-+ygPz^V z?qR#c=sxxUdq|A-uph8T#b_^!v3+9nIQtR%u^8=VPqC-P=qKzTdq#|&WzVta#pnh0 z3-*#2{gS=LekDe~X1`;<7o$J0H`tqE^cMRQ`?DDRg?+$26r+#W-`L;9=pXDe_J1!i z`keiT9TKDeDxe@ADNM;%`iYUM^j8YS$famXkr)*#Zp9-;B}$nxSd4}!<;rj|8lj9< z#)#2aWr8wMj3y~nidT%PmC4E!F{)9fD$~Shx-vtVB}TKATIEPFTA(ac>cnWVQm-_K z(Gq2;(x@CQ!WJsal@-b=82Ud@OS8ZwvzQI0lm%VSbWUDtAOHYclYqV~e;f;VQ`PzZ zPuku#y=~J{3Z<5pfF)_EJQSsf0`e&Ip%g)IJ}zn6M$)7vDS~rTr%s)^`DBARr`r^# zPSGh+oC8aRW-8WbRS&Nnt0%^@S)+uXU~ z{D41>P&7Xn4#pQCxEiLfK`2-p=?=KT1tmHZLJ>kmTQD5x80_B=h^{s^gaQavZ4ti_ zT4O|m{9R2J#QTCVgo$n0sc1o{>z{x?_o9Zf;J6 z)#8Rq7^Oi~W`QgT1^NTwIFq77HHQ~y6`_9EWnJ;W08@L64h=9JK_@y+4MxdigOM=8%xq*R z4y@%XgW+xxnAT&?Be)|rjwa;bhh)$dH~bshjR9%v8Z>7k+yq(~jI9d9219X6Ma;}B z9cIHEgi)4I+XL)avA*B{LQ^)LoXbhf$0N)dcKxaVu^P6pf7|hRg0a@{z+l{FJ*Vbj zJvqe0#x(=x>Cgi6$vC?c!td-s=o*20=h9~hEPzuqIGN;jNE>xn2#XLzYX?H}2ymXN z!x9Ei*xJ!~#%d0HQsE`tN#m?g0yZ}Xx}`aE4#w>=XHYA3Xk$<=3CNRJliXJB?+f@h zw#GW6-GL}if6U28Pcp{KXx9~>IJKUL>k9UUmF=H-$ROtD-mpN$mM$Gu!x@Ayn53EV z3O!p3>oho%d?^LA4(s78T4Hq5!qE+F&h$iJ-GFem4(GtR2sPw4U4t89fjEgr;f}F^ zLeMYQ9Lee$` zV?k*i6%JLC4aFSNA<|Q`H5seQ*t18VWfB!u?2JNtr$tj|Pl>gt`>NGG{6G@ka|+VOQyJHC#j1L9|QO zD0!qXwvwlDtwJH>=)BaQ2mJ{v>^m}{G)oSWHRb{t z&%dohIaIiz2AMAr9~3I=Fq|9W_l#$f7lw9 z&kuC?A^gb99!fZq8}i`7<6J|vhN?OeRTm|gL*|2`B^7!K0?qLeEP~K>L{0}LJSx#& zgr95hl8OeI&z4(a?QKg9KNV?Pbod3lOr8>G?dV#)uw(HOgky%sW#38O`69fk!!O}i zl$8CHM&f}KS`fT>oKh9trSKbge@%nmQo6`*hYr7k*GVriQ?<#0FRxC(8m`vg(BTj4 zKGo)NG|;^&5HdK5@HvsInsrn(^`x?t8@OU9zmtZuD9_8d*|gu(;Vt-^NqgFnfDEl6 zt=uQux38r%vMSIWpj>Z1N-*fZ>+laQ(kA9w?uLKDzcu(5m2qix#o|aPe-vOliRthj zywA;@2$O*@K2ynOEtfI>zdC#X2dLEdo72hKDD$3-)r6D$#nDJC=H&IDj=*9ZpM9}; z^ja0@q0|%hTk{+^mmU%CWu0Pyj)hoc>NE`(!jwF`iTJKfoKU1mE2hXInb;E!(Il;c z58>PqZp~uRN!rM$$sw^+e@C4ivMS+_$rV*lh~-q_V+Cja9F;tU1q!su%^YQ04^K}v zS}E?~C>^VDG-V1i?j@g6_{^pzI~W{;wHl74awL!CI*#LTR~@tLlqN0HaK~%}Ow9{D z!UXR8_VjSqW>X-eZLb~K*)|U&T|%YxygXuE0~J`qpKjS^Ch0gCe~+dRlnmmE6T4E5 z&8CzLJ4icIu|UIV2#trbkLojQ&~Z8nv$MX)hz0$YMBV7aCJh_OJ{>&iID?xYZtk4L z;s(Lwwa4l>laEpbeuE?Dj6-9AD2S#<5f{lV5zaD&f1Io135m>-w!};#Y13#g&3-ncX7Nsdvn)=9=F68PCVp2LNR_0&=lN8Iyt zG!j{Qai0+kCpA$D2KsgEM!pe^1uqK7_IE2!QwHn9AbpoNe4`s$GZt;-{uFeaU{f)W zmCPB5K+TXRe-lJ1zX;2-2(p8$Fg9TL^Qz%kI0HIfz_wZ#j4cUwmtqVDHRLPJ+$eP1 z#9}Q^&}rUTRe^@(bU+IymQf*?5506I3&zs;WfCve@e}w-tI8tTb|hg>%a$mU&^gat zs$)Nr=M_c>OVmslc3kSjea4YJ2C1_&GjgSlpJs_!f12$Y2>63WD0q=P#Z^HumRCUu zUZcZS{0tR5nd?S-KNYXz;|k@iqbb&=Nsn=xLs?X^t9(w!8#p&j%DJABKGC_x2n|Z= zmh!#I$|G`kV3?-$-J;{IDFt-$-c!TRXX^>rK~;ept|cE;}S@+W;ZxJvIii_ApX}rs3DJ)!#`J6bzHS8@ZRW z?!aN)8`~JjU&$}xJvx3J?-Ylx#O|R9F>hLdF5li_)(vga)bqkN0iw=cO>D%?w_Z?lL7WM z9e;Be`SY`f8s8WCuW7X&K^_7W${!ha-2(&G?4a! z;aDIVPbe?tajXhT@hu&8A=Nw!M|z^LRLlwe9UWi9m&|By;jtgbPdY?2sW;UK#^LPG z^N3!F|I+c__#PGB@u(4wkpuK+zgn=~i(FF$I^TIq}N*LiS?MB?+$FGy- zc!OlUt)cHYYD;*Y$V6)Vy-xW&c!K4 zk}wK{#ypN*mc_Gs&C^8-r~9f{S|g1#*W-lm%^x~Kbue~XAj)ZrFB2@N1+jQwz|76< zgQ0lPED5%(B2cnC&DN~3e{aa9j5NSfu8VbXiZ~UaJ6{ZG@%0c8(iyGaHkq{_kb)H9 z`jOF>#e!3IWi{h;Ml{h%iqC(8CRS$a^0cQ2rPBGfEFVBwZq`jW!U-c~lT6TW-qcuk zjNCp%I6nXKO+KNzjZKSk?f4T(8f6T;MU7QJZ@*Qy& z2tngCzFrq+iI15*!c!?a8&m?A@=ASk+5%J~&e6rWyv1X`$K^c?&(OsNnbE>Ve=@A_ zwr*VnL=Q)ucqHmnPRcvz3KyR^%L1wEs?wKf;{22!SeesQzBtXGt1l9bGZ>aezb-b4 zE~Yr5iveb*+9mNaFzoFZha$NTA zm+fkmig5AqY>sBXolGJ)-Yq^UF4e>(2z9AjrD1V3Du0Wh#Wn@d-ks6{ z=FY6Y5KB;=Wc38j%~|xCa%&(tz9}2WvcqqGxd2H$+1~j`g-@QZ=$bk6$o%q%PMj5d z;`H#FxRqi%A7Z|k-#IxK=-h{zFX`fTKGc+iBjJEN)s*5J;tpNhDZWB!n1s|CldT8N zCIt=ar?27Xe_zwZUE*$gr^D(diDTNv09$kE0+-pVy^A^kg_Fj%gxP2*iX~g}y z_(sZAl3Wq!UXn1lN~bf?^6NIb5IJt(iVwq92{s#&x6BlG$lTg zhbGGGe|x8=KV58uLR~>}(~2VTZ4aDPQHWlT&^&M#jheH+7Lx{3DaIq7PlH5r!~A${ zjYs^vq68nM58B1){#Ux#EVd9qzx0SLYVLQsxEMd6xz{{Ur{?~siz~#HH1`LOxKho% zsf*8v8))vY9&rQVE){>Y1w*asoU}mJ0904Md%n^d{aC^gw`PV@@{=IeYKQ>TEnDk zfBBkSAf~zMsqo3mw>8%Ugz?#zQe-n1!z4g(0sprU1pm_k^j)KGv*{D*v(Wn(6hA}* z0dD&1rcZ#Ap#V;SQX1*zBKjpa-Cp_OF1^ zuoA}8Cu6BGA%Rz7(FlhR8VP=r#3>HIXbon#X?U!KevTsFO_-?O*$2nn?_i+Q#(-Oa zE`hmlf`V{9t!BxN^AU&>1++Il3@6_?$ z2`(lUm%$=h-6X|^2VkrQ3kdIWi}G{nDMPC@Wz^;~(fWo(dnRpLXOmN{B_|UZCXtOX zk+o)Jaz$1q&n8IcjF8FpY)r1m%H#&x=07ARJ4nLK_||^AI|Az|^K8f1q>AUZ`(xd=|#|8iybxU^|pG`gTKP8(S`|xBy}M z!Cy!dE|AntBg_E3^tX=+&WRTudQivrQwj zEk0($-LQjbO;XP@_t2;WJ_%p9NW52)xR1h*bouOl%m>Ye=r6<1;@bU1?sJFD-sPy$inMjGxz}#LqHZJ(t3)ZvEG*<#Ye}SJm{By#?@UtO! zg*}vfk(su?~-7m18}QxA>VLkv^b8as#27h`^zC zeB%&KLD-GQboiQfp?4dl1^R5JNW9a#(+aevZ|@=~j}g}0e-splh=M&7fS<7Wc7x>$ z4a&DQD#hz?7U3NYl{lN8+I^eW;~Z=KJ@&LRO~a|g!*Mxm1CMv=c3(!_o|p^HJSUuI zGQv3tURMe{K6U>BXVv#TTJ>B;7z=TcrI*E-XgSqM%MUZcS&pq1oD~vImolmn8NGJl zN@wtTfwup|e`Yo%mcmM~LuSKd7U7xA(vUi>Lc&4lY0fI|#f*fm!Y+%@)e_DIMJSc4 zc!qK;-yS?uc~-^{VmiRfgy9vU{#8oBFQ=5NTn>R8aW-eV&$0r-ZL09{nsk4x&G#%! z@D1U)>;yx&0ip0tC~qtn!XCz2zZ0FN{~Gc0JL2qhe+pc`=bx35$^OZf2E2;fVwjBQ zOZ=l?G;XAXkgO}@42JBbS_2goL}@>U6{VM{kaMDUAJlJy3d+#+Ll~jL2Q=IPQ%GP@ zD-vC3k3?KWFzJ@cYbezNyh*wEEfUJ#NIdUSCHkgKMJM8B+(MrwIj&Kz^GtFsvJ}2f zDQXnqfBiTGDX(ugUUIkNAYt0pd$i$wn?^=iHKUG~5gMCwS85m|G@nX3C0;Jkou#;+ zO6abz*t|-yxd*RKludZ8J@lHUae$D2$p6|IOp)URms2f6ynZl_Be>apOztyV4bRJvSycV`?xLsj8N1gDh zy}R*?ZNB}|97@QBzhp|nrV8{xAtjomDykK{La4wy@heIdI-ljrG~BvG!> zE2!MXOinx4NeIz>iR9F1CZ|RxJEI9m4R~-2u{74^8xyQ3GXWnY&qA4|m=G$1@FAxa ze~9@C>b}SE;dPJUBW>!ly^$pSC}G|Kx2vg+MtOpmSGWT%sVz*LA?6j-7RZC>yrSBo zeYlnUsJ4jYKZLtzjvwL>4YXQq2){*xk{vL&wnXioF|XKHTRenM@cCn+95T+@V$&g; zYKx^y%DEDCCV7T&%h4yAIG{X9=beM+fBKR^WEJTEa1s>bWD?NPFczmk9c8$qaT?6S zV_-2hz)JMNT5KYIX251_hRg9-xDIE+EtEg+pt*Z#?ISoBcG2FaD5I51xWz0e+^2%i z5I!wyP^u8{+cNkZ4L9R=Xyk%1ha6eVt8io1>{4T|ae_|P~ zIG>x)UPwTbflET8k;~kPoaNY-t^w^ssMElp{|}Nm6v@MqVg7F(nGRCK)a=u8+^gYp z{Hz+>8J}qs5#{#T2gzzOf-MD?H7%Xy2lzwFqJESyF+T4|jFi`laltT&aX2Ro-K5hTA}Oj_zz1s?@DkX z6)Yj3`k)M&RrM-nzOQ1YHSr%6@00Avq=tSdz-|g=0howAd`jAuzjTUf<(*fC9%yyYZl-c%ihNluMZqN-brooN)8|mI;Q0OM-ox7~;&+(wJyz zNTxcP%m@HwJ{%GS97o1A4T)k>Pvag@LOcnbClj3)Tb)65Kru#$vjM6jE`T{W2yW*H zYY%ahMa@;Jo8rqrO|6f<)gu&iXC>-VT6~#}D4#{tlr*BIWFqPef3qN(ZV|Or5jE4h zpOWlOCu!b1NHab1YBJ$#pa`#pGQ7@4;!H(iSsICDDI}JGtLOm#Bd{io*YFE%CXKjG zwihUkbBquZxolfEukgv^3tS6!Kxb`X{VdK==bGtJQLg(McZ;Jbvo_L{Op3)jpoWrP zBBg4+T8&rml+1L0f4IVh^`i^!Jou0;&&^;?@J15ZO)w5`CL_Lu4DVK$gP(#IsLs636mS zov#?SXKEtje*@%v589i^;$*9doV-y;G?8ZzvQxxDt3EeVh3-wnYq7|2D#k}`L0=b3 z#8Sr0?;l$FSteoqMs+>fz5B%SZB+8_70Y*epM?e7fL7Job~v`tl{o!%H0={Bw!wIA z!pSalb)se6v{$U~F)6n5p_l*S5HY(4_%7Rn-=agve-khspQN(>DJt*w!XhfrR^l_Z zINq)Z<|dQbhaL^bi#A!ZO^3;%-O(zcRiY!Y$~r?*R?`=d;5x-=!wc?or{KPyBDmF3 zDQt&dNuYiwAp%bb2IT?Qq%kVXO|5y>s zoncdOH85NBiasLN2jj&COK>KGt+rNv1-Q!j$RmOWz-y+PjoBm@a!T%vjFQ`!kL1FZ z11n?B@$d=6Am%ESNGpXp>=$BB@EP!D^42-yBe27b&o1*^I7pdxWO2SVC?g}74f-mIvZ ze{D8qnuw?s+hH1ge0n=fAcn6-*e9;t&aDzT#;w~yDe=FY@!2E~GbIn76E`R-3`Ip9%Y@9tyAP*sC;QqbZcLYuiS0w$_z_{_y!as{ zRlEG_#LeOsg{=r&qg@i+tzxUHBqkFif9`%=ZKf90;&{WX&c)|dxt^T)f~wcOzCB_a z*SWU|IO(Wuup)6Lu3_+t2uw9v4aMIY`^e z8nBR|&NwWLzKedTcF&lEzx-xEMVjaEC^e0iVAFxv|soXS>* zN33h+5^tB~`8H`on==qShG{EWp9{Lt*fUel$uZo~ZI7p8}`a&4V# zXKVrzT>QCaIhWHYtNx&#XiZuQ*9g;)dZKEM?IR6lq{V;BLX!HoZ<`b(B){olH6co7 zm|mNd9OjC_aN?3JEH5*Sa9oWO^WeWk-5z!WgFZFt?38;WDe|M*S;fd>-Bc;(y2QfN z71+aMa(iP)hGpI#PxGHl_t%F9j?#Fik3P-YxU{yBQ?tX?^fkacq1nwCm;Oi`~1GU+a}co;p=UHjvf({5iM&s5sfzDv!;cQ7K_M^`d3kra7n}tH{9h-nVe=2=_zvx3Z4-M*cmak@g;R|0a(uA+nX|;)Sx@uP%gyfg%&yAMy z>)-hiJF6e_MfeI7hmCp^sc%T5dv=pFn?A%}ses<>$LDpY>!CASVPxzl^CX#q!-qT2 z+sFF&SNUn(*)0~Yfmd?RzYl_j(q9{cL!#Tc5|K>nj#mL_3hj|H2KZK4u!SJb=MG!kFi>PQ7! zcIj?1CVGJLbl+NJo~YMSD&y^ee*eVRkE1fF!T;-Y-#nuGVa@03rf9R^<22}w&0}XN z{*^xd$939DWGU3nzawLPK3d;MrFHCdmKTPb4_f;e8({6RI-1g$93 zOtJ(|#kMOn$8ir-;QG$4vcA9h)`<2G=heLFo6t8E(d%&u4~ky+iu?a&S7oTZt)?>L zn9@BC1u{*)`7YR_e8MATOd}zE0d9S@QXlz1;suLJ+xHNL3p-T56XF}62VBd!7nm;j zUReI+DIwj&70r;JdNI=KR#)ktO2m?qJ0u(CJo=I{d!aM!Fx!jsxI~*L&jl5$t)?E8 zwn%5s6o|@o7>;z^;x!BX;TCaG!}ZNFpK&nN6V5X6NB6^|$*-Vgx1@KE>l+=`yD(-g zQ+!Sfo#}lxDWBP!9G2$p$VqIxBTutzaQ|ht`S%-5F1)WrZufk4dCf>O@~}0-_9Avo zO&h#wvA8{Z|HW8I%k>nT0GH}59hJKlb1f?*hpebxKVUaM_g>y}!sQrMz}OZoqj_D_ z!49b-CFP>gLkE;A4unwZ?F&b#0Ri9BCaN zeuUb#xLSl>Qkqz}^T>9&Rou1Rbx<{~h4S^*K&m zeORta)SLg9=g9=8)>FQxIdP?R@)`4KT^?cb8H;un?1L9v_El_KHeM}wV}5H})Ur_b zjd>|mapZlml9}MBg8s^WI!DDwk1>V~r=*6qW6@H~cduVp5_imS@rKIJGWtw$H1@DA zDDQ9k6>N55)Vo6G_R)nJ*^fzcYU)biIip=E^9SvfV?2D5cH-Br>xPBmG$_27_~v+< zpNHnq#kC5!jdyr2e0fCH&=IKAV#>VJs>W?DRedSkrhbEy;*Ws6_|9jR-#0VrPTg(z z*%GLW)x-(Z4!+Q={cnxe`3{HMo zU54X%_eS~VgEN88I)bdPP%RjZIW&x%^e{{8y1!!a#w+Q&(xM-!)`fVZUbV_X(V0s| zO;cX0Mc0CM!xuJCgKgz2UaG>%I#(kqs~kC>wfO9~D@ILjSxww(+H5NCP{EaSaIa{2 zuIhd8(0WO6tZX_jQu+5U6(j9Hp>t7fjZzwo>|gZm8(+>{Uh;VtM7DU+f2T|gHLdS6 zQ!a6`efyXFpB0?>H@~X&qfyD4NLewS4m%aE)${niIO?)TV9i0*4*RL% z=2I&zQ^kL@XHxUo7_tQ%xdUJIUiqRpS=YP!duLJc8XR24)4KBZ`|0;pdhb;?&g)8G zb?+(B*Zcply-qO{un{oL93jNDe*cwT#q5Rj1%a09(L&WJ-*B}frsgz;k#c<=UetY? z>}RQl;#+vzMxE_ev26)1_H(V`@rxnHUzH|Du!Xo7r&AA_dmFaoY(U|Jq|KN4R#>YReJ!@Y{Ua8if-YT+OJVCK7 zdG|Sr`Uv&ii7Hg#U;#_^=a$KMm&nu}lV%P}l>Q+1kzTvG$2gG=^-wiVZ!Y%M3s79V z^PIrZZ#n!*)9g7G6vl%R#(shGm7eWdOmm&*>-p73=_7Bk>gsdx#YG>^xaN8_FCsge z>LXRL$-c>#p7{kmyT#4M=0)PBUltaX#74a5g1t~0a3TE#C!YvdLyP7j_1Cuo?!hkx zc9sVW&ydx8+xza(;__qw(okOX76TcZVyS{SK z1!+;rN7Gh@=o_BOl6Jl|%~~IIy-4cd=L2K6hvsRQBEZ4-m$`yRu8-)&@a8vPoi?N! zqkd@N9On4yf8`3XD|GTj>bvW^6~s!e$>$kDxJzB z>LM|Y8E9dzaD#Y*5UfYSz%6xWNzLA2|ICNEu9W$S?<2Y;_>XRQ-0SmTzVT?k>*@mC zO}P|O@B@J#6!<~c$fb~#kJIAc_^q3hdk}^uA;D0=zJ=ubVR}DuPMn#wIg>g2`bgc)6Zs`;$}t8?ygK6-{Rw_`OuM zsQBfZ2m4z zC*G+-3>wEZ6%(kL^eS^xj#LQwC^Q<>$kmw-$sO(=co0PM-fBeIcp1D>rX_tFU0zLr&MX#w&1k#40Ss=$SM1j z?FPR-wkY?N7=0Aa?^g8c)i#xK?;-NcuO=AEwl3%tj*Z+`y@T>3heFZwHhV6q4+V36 z*>*R)W2VZ&r#l>-EcRHrMjzJ!h|qQ~&Kh_=t;Z^w6m|Lj+^=9%O9ZyeYoyfflW6$Y-`J!)xB-v4IXWGU>-;!*Msjw?TRJh|3v z5|dv`3O-^kR16S)@#k>sk-|lXV73R6pN4TCKgybv{u!d}v_Bj5!`M&t@J~#ssvgy# zu;9Ks-N#2Lciqqn3X#6oA5P-(-mcf`xKWsV<|WZS@=2_W{s#48J;N`yHf-6CPs|^g z3X{GuU)4BLCvy9h@k3#H-1V&)Y9B67`pFT|Goq8(uVz|<7)G863!YgHA{)69!e)P@ zr0-NP<~?Pt;do+UEM*3z-3#;KaM9N1apor z9#5Ttq*EtY^ON)+90}P@n)qsr*(@@0H;pfz$JN{oARlxhG^(TfskU#ClaNf)!2?v3 z`{CQ~$k}n`mgdY_%)8MXbB^vO)F?gChJ%je`;W3SsWHFf=Xfr8&6@FCBxH5DzH8|K z^OLRxSEO#R3k?1IMK_ zUPhIs#x5oNl%B|}TzKkQP&+)9w%%A3piulSky>-HzNmqVI{wsIm#m@O8XM^C+hd*d z3zdSG*h$af3>i*xv}G#QLxrzJb>{@RdkchWm2>piZPcC^rAZaMs~`P!Q$6Tp5IZN+ zzFsL8jcIcIi^DGNqx9sFA3c_0-DP)-r1*+MXWuejt0{iiN&Cn{h3l3@%R2RCIR`jf zCp}}~v$56N3%_c6&iApWzBCYo;yb0L{cECaAJSZ3E5V(W_#t&}ge&K`?5yi~75~0Z ziMD16PKNQyrBpl%Zlj*J{#cq_bmZYZcQoNux0Myfhgyn7uT|^LQpQK=u@dihhiq?L zxa)X3@qTxSOz5c&$83vg9jO~^?4ot4N5tGTl}^m$73Y^xyK_AIk!(V*%G4v48su`I z+OTp2y{}cb9hZ#hi*L3z-B0!=04Huy$9XE4Q*f-;i0-?e9)H5Apks7#ntH6~Tx{P* z3Hf({H_qmV3uK;4R$K1;7{wjhbgT+^in(z={L-sr2cdcs|Lf!$BI;RarUP-}m*hp7 zZVukON>(`1%g^zOQ9#S1_#;c>3xhI6-Sym8`#AR9XJ%`~u|K~XuAVc_xFG&gGFa!{ zMU#vcFLXN(HF?lsrL(PP5hDvmDjUxApZ%zD} z^!%m3s%f3tE&SMQrF$klx;V>A{=`ZHbsx_}@}bDPO8h8sR~BcEG`|gFoPyJwNGK0( zn?~<$X5{^7uiAct`%a_Ztv-FXaK2MWqjyvt-X|(Pg9UGW;d0#OS}jz4s09*J7JQ}P zh&w+`8n0VPd8!z!@^~}Kv1#>XrF=eflBw-7uKCgvVJ(^s-{!aM2RG~Chw{^F#w-t} zFZ!rm7N@8UK5|SN(!Z$kptxgpqA~xY?&~3gY~8?YUOUC@rs)lR8ov->c^RP-B=*Id zJ&DWQ zCqkE%T;@1#c3lb)&8!^qco~zPQmo(CLD8WF`(!s}i@#CIcv=}4{d4}~SgGCmLj~dP zh>+vVS#A=_#|)x)w?&^GQlrd&N}GG*s;R=)tS8VmtELm3A#S@k>7C9q$4epC{P~0n zO{;_=uqKdS6^*I$^;^Y#H327T-Wr{Tx-;}GE(N4WMo?Av;V`Dkm8qT z&vsvHhl^S35a(y#YqExQ9zSG#>*SB`WAIhm9@UTylSO;XrA!^$QV8SB;Qv-Qa80~@ z;7Knoars%qE(7aXp_yHF~Oxx@ApM`|9H zRn5jIqaQlLHcP3ZaXi9T85!JRPdHd3&nfs(s+I z6Mb>biY%GwsR$-_9F&JM$ie8yxCjSFveN0rJ#TFf-tfBevT&Ctj7L4=vfK~$Woe}j ztsujb-}KwlM6>QbXERjTjAmHzfrZTvrN7|+$r>G>O;Tnw^X`Nko3Ar`w4XS*y28qs55QRfO3o(jl@HQN|=N>8~e^!OX*+TkvWYiSguTL(zCL> z-g=2sw_@?B;AKAdb~5sQwhU>jH)@?fXqqzkA_}LEt8Y0DuQHGKXuQ|@RqEk#-|JHc zcHh(ZCpLW6Mi_-x{RS;DG2Gp$wj9!dd2I_n*WI!erPEE$haN7kI)+UWa|#kqs`s}rc-ciySHNm=dK5N4KkG)%5O7XN@dP(SU> zoV*J~Aoer;^*_}|)7#8HuSTmDiJ0`+ax4xMD2+ZjPA<+Q_R{MtdT~x>fX6~1j3FeF z;;P&aNxu7654ooM{tCH`lb^_-sQ%U@qH;O=L*YQabjj<$A9+IxTRIo&wDxJuEr}oc zPfDKWL5cM}RO%vrV=y((14zttKsMb4%vbgtWJ87+BU2hb# z&^mFnwamZMO55km7(}yS)7LuTRM2;0)^7(IUyX58v2F@$N;~DQq0^R@t1H_k)6m}^ ze38b6?_nzQT{(~RH-$BnLG{w!%N%m=-D)nyWTy7VoOE(9cpPX%W_7S}EMO+ET`KW? zmH)$X^I+P{Ll%t8PxT#eTqz&iGTH*4WnJaG0jIyRx^zI>&xmwLuk-Bw(7H4w0zCsy`{vKUxc|k zjb^ENbwJ{rQQ}tR(m5sVP_5eVun}y|FwCc#-qeKF7JNk?>2UQs8dp*?`TSd5P0UV~ z^q)IepVss`uTRI`7PnG8DpxqP>#sZfT&kMQcv_;vdNmN`KAkDOke^9Zf7E8E^b^(@kyJGm521wmWOV@RRLoL1;x%wu{U4Lf9HCw z{bERY^4OmzcH502CBKRq#O4n!Wbu3q_kO)^l_5gWzrk?6Mz<&C>Sef9%U2F_EGtS) zrb~X@IB$r{_$Pm&e)m_uwu?s7NwoU%=HJ72yinU?r5jq*O1*(T zFM6={t?)bN%EIbi^v@|z9Bw(NFxV$xd#%tzoX#&!^a_i8?z4Bd+An@S@Z{f#xP&)#Wj1y4$&({m#ljJMIpXjrZL zucVi3`MvZXHx?Nd%TLax!I^HRFTLdrypS?%vq~4iS8EWro4?|t)StG-4&EVrpLOP4 zg#LAj&rcY)DUPI!x2%0i!hPZ`@<;1OvxocMw3a*D%&_!T4V!m2RF=V$##ODfq2Qvm zJInDv;}C6dFm-{>c&i8DJorEZiwMrrb z&E z$g^{Oo8^aHl|FRj+7B;qFus|l)O)um_*q!wk7-?rL?YFv;~JSMco%D$+^KVw!*8G^3#o_xe~--8mBY7mWs3~x4ny9o+P|EJ20jDq9aQrP0l*$T%y@> zy<73uQ7QZTt_zEQ*vwuZ_+TYosuJ}w$)xV!*o&hYk7SK>#ump8cinxTcgvEjr3LumsY#k}ViS-RX= znX$+UFUs@3tIgAE^Q!~BgI1<-?EN$Ay94VwXBv$Zi^93fu%VLCvAGW~u)lJ+@I6O} zL6KpzFp~itIIMe_GDIS`j_&qAgs1;79XxFOYwHI#Z|f=vh0Tmv2>E8G$Y}F3(ShqK z`*ReZe(Bd3OswUMAiuFBJ*vHGZne3r-4wDEKzegczy8!lQ`+*R-s>D&cAO*aDAVUz z>95^xzDrLuXyeedstEzd=6|0P1J@cs6SGs52k*vEB$WTSU8u4@w*-b)Tt2dk&i7|M zxYhMwgFgE98RpMd8m`HPeGn{8=$q7zV6uc%u~wq3b&|9RS`)vt4q z2EF((CS5zt9!;hHId@cV*i%y+)OJ~$I}Sly=UbbV&(N(Ox` zIk(M?+s%ySA6s8;{`PEqO(91`7MI)l+-t(KDZb8^%I-^BL*`gj>xvx5yQDGZIe20@H9v%yZ{M@b}j!`X&e z{l1Kb&_|Q$dQNa(&84j?+_D!|F11h|V4k>Mel540?ZSqw@^;vP9sb~-#>(3`OVZdo zJ*5}lM|{w_9mh1WXwe;Idc-v#W+WnJl=bAp>yv(pEgzn1EoR@(GI6t@*lA&EQ0d%e zwV7(*{Wz<#8ke8iAjtpFo}$08cSJIs^Q!bG5zfwKzxW?EA<_Gldsmft0-l5h=q=f# zYC0>)ZH4%J7s(lPqo{02;1PScuLWoSG|}y?uh)Uj$vX9J-`=q)2xn`n`=YkUAep34eQaAdOPAvb{hpEx`^Ih+wJ5rw3OXq*Zb3)oaF$I*+_TV# zjBVitxICg#wYTQLDCOHzb-g^J`ND~H)OL=s3!eTzbjg&9=`2;|(|3|e`R&WH^ zxx~XQ8tqq%QbKm3#r93cU4h*X>brBFasGaZtHQ!q3Ct#?P(AGiAHV zb##%p4c^vjj(u`HuHM6%UHM4u-5GmJO_RjssEp!N_p_zkSdUWn(tv(evj-(_9P+I^ z8<~^VH_HsgQ|>IeC)$WwPZ&Nq2XigC7cL|Oe!Wn4JkR(?w~E-V1pc?gFoVw+Uzk&_ zs}r7U+NROpD+eFIe4>U)mninbwvpKVxMad7FwDEOpCCsAokRCJt?pV=hOLI{FzM(G zXI1bRFnJ7CZ}9K`IOQyOKehHWF8W!{5A|%Xs+U6C+YiRxD6=J7M}88x_}LlvYhfq! z^0M@w-#@=hk{o$>bFl61>pN*BBVLv7j(mI68x-8e7@08=*uFlo9?5gsc(5v_feUx? znz{;C#Rq!w8vhw|l%sHio$#m1+20`*Pi;SpbxTpR{n(TiFSaS}5qN3v)GEzUve>Jj zsPf$HqU)ANWb&&2E!GdwQW-UY`z#>>eVxGyz`s={U}FS z)8YxwyGztftMB?K**g~~Pg2mgv0#|)IkRV(964F~)lX_xQ}EHFA;}1_`367J@{s_X zp0`!B=of6XM?Qt*onUrp>KQjq-Fuqhb7s9ZO^#I=1_$2JCNO@kP+O*j**8EtYI%D+VUQx6o*^uX&4-M`5KqgH9pAdtl4T_+jb$=hBYa=t8s9%?w@q~ef~CQo000; zrfkfw6JFN8j9%ItI=3=!Y{$fiwctCc*=!-|7HyekExo9(5R)g`>tx$X-ke);aw9nn z$6{=eV!Z5B_`2fZeB|AWmdWV_Z6?~sIp{dVjT%0EqcJTKeQTR-_^T*T$K}3b1E1Mg zrXQ=D%;)1Na(df!BN6CrwL4W&0|Imq*Dihd5@q+DL>_Nu6Lg5tZo}@=cwa+=HuyWJl-eljE0_H>d?Z z&%nf5&=8I(pOv#8IFf9T@#696BfEmCpmIm?(XgNU$wHh zYva^KYP>6KL)J}gq50;UM_6LWb6P^3?Hm$tD?vR6nQ59j++|i++Xe@?YlE)w`ZA7o zU5EQuHO@?VZ>mpZz2OxIWOAyF(4IKSsC#PIHolFkWUz4dr_A%fiupXhS2QEK0#R65 zE+c*=!3J*OEvd?hR=xz@Tg;2Qr-TZmZa!F%epeoUZ2T!(tHc2*@dT#IC7V~W4i-{$$wvs*|qvrkoU{S`-vxt8$S*%!{IKJ%K2ej_96>+v}7Yfh{t@6K5T zgYm||UY723wPz2lhEiUm>gWrjc%q{UI#m;QJEBd#4HOFZGnXAt=YOQKRBdVQOyMNr zlJ6z=lU&CBS5PMSu=Yjl|F=jvS_^ zA|d|C3wr_6M`BE%Puc*)0$+~AoPt(Q6aGCGiBSXJW(6}uVptR9O_^ZDC=5MpdK1G* z+5%s=i7|#Q1mJ;*Spkgj!cB}QG#5$`JRF5N23^QSc)8qgdK8BG;6LB|b(VyLf6oQ* zcV3uhGeL493Zn?IO%hDP61Ol4kj75}#=rgJFdYXh=EX@!J?`gvWgw@CL95&tV^_z+XI1AyRtkJvZ{gc3J<^Kn^$G z#)uF!?El~Uy(A>!duW2wr??OS@Urg-C`JGo{E`JWGGjnCW+f2HR1C%kdL)e>7(r#S zM43~h+;|v0JbwpxSSW`lv%y@k7;Pw75y5~^2#zqpa4bd=a#n*$Gco+|KsN>pe={T% zg$>exJjV2&D4I18l%grAJOZeX0|vTIBINBjj5G8`7v{;r9D;A(#h5{nXYd>W_(DEN zC3QST4=OiAuy;2|Y2iEZm^08l6GULYE2$Eq^tbBfbG3W#Snl~A^^D9BY@mQj4d>E78%(3lgc8Pb4dWhCZ4}63D`E3dR+( z3Py1DFvf>;3uZ_LjPnH;7C4R+qJe+)ka8dvRPO-`wpS4_?jGhOQZfI%YfhVJ01TQ08D`m6qNLrV!KjOD%h@IPh`I6AMKj=5aILo5GCB40V*Lp z{a<0CDX;s$)TK-WZSZ)nHfQnV@fp3zY6xhTNsW769I~Pa=v?DyiS~#BzR&Zt)UVS)Z_yXa0NrLpa+7psCh5FEw= zNxXMKcfphf^AX(~4ynUDSIv2#yzl^bwJ{G9bdak0>Hsj`2V}=7M0uAm}LEQ;s=} z^5h}7Aq=ZM#u%X51PH?Xu(v%#0XIL!n4;W-2^J2)Clw%K`|_^<&ITWX?^a;0qZB3n zp9lulsl;fZ-bxXT5-O)g13HL!WTp-My~S3*@sGh&(=$S3@EvW4xMVz^0Jp7`2^#p} z;wKnu)UfK``edJC^ifWlL=vbPI=KER$j6cv1P{U(IasF(5+h=SlTMHT;^Y>dK4tPh`}D9*4aN{fXYoHL7~r2CdqF+*hUmd3jL4t7 zFgjZz?6Wt>GhrvXSqn6VIQ*?~v=;0z)K2(0k3rpcAK z+{=*lGhmx9j#zA2&oEXf=LCWsL0BaZBJP|%&jHFLO)TG#%{9vMswgVrU z%LyjL;j9)&5TS?T>1Qg4Dy*_GH1Ml-(DTHq@Y)Z<1|48lW*Z2OO2fTJ|Wfw9D!4*@WhuN<}qVU}bP(=@4 zVmMG7(-7=<9nAwTtwA!d$;1-?<&9 zZRyEpkS9y5FdVlD+Va6eSfH>EDAfH5!3+UpJn+F^AO?a$(SD#X?Hf>NLnaG{_5HO4#-=iW5FK0)RKT5c2sEj0eM0a) zj^)Pzx$YQ39!Mvng74{|xR7|u@Vpz!NG_H(P#F08I5?Uus3Pd+hA2WsibCPX5z4MA zng#YUL9rt8?C*j6@JWQXqz8_{bryS51LJu$x2-7^T!<^wpj z1{fj(kVYDK=>tXwQZq*=zs0b$u*W0_yTclxc$1;&;iB^>UPReDKh)o64jD%T^}p$} zpTg)vL$2`jDmbE-2k$vS9`cWzqdOjO2v!Y2@ga(1r-7GFUU+r-ym~MZ>a6nft;4{b%$5E3}z_#mPRwh1TPD1p42>NpunhCa;!RSK9{s=`vA4?7& zjzsapD>I;2&R;^vAb2YH^zA+Smp=jfrdRMa&kKvjqNEVFw(;crtBA+|EtU+vdKV># z@cd>0&+a;&#|uB6#kfIlBM_i6gr$NtKZ8rTOw@n1kA)jPV;rFATL?zw3&s>8z4MZ_=$o&-@A^TJR!hnWB2A34?72n&h zz*n&c1OO;yO;}9>B-CRbBs3=*@geBRUXxgw2VjOgJeVIA{|45`y?jJ9Vc`{j!x%s` z4-qNu1+c>I6(Q_%4Jc(KH?q(EneX`0|K!1XtVA@YErKPz@dV-Qtw$<&q+_qD3%XH% zAIM1Iuy6S8w1lyNe|-bpg>D%fav2*D1q1l1|Jk=UpFPVU29Xw|%;;BulM!tQ(DDsR z9C7mH$UjaBcH%?21T}Z#fxNJTEU2&nEugk|48@IzbgTlkB)xdG!H_~f(KNm;2nlDO z+Vj174FG=+BldUJz=Yj;gP^@1kukv+zU*l%TL-|*QH1wx9b7Wd+thzkq~x{pu$u$vkYRb@v276iNerF{o*bRP zGQwi}(1P%_UtlqZQR6Yfu+0JV5yWTK-#~>29fDToK@<1AbUgV3146c^LDRy|`Ow6T zh-U}zVwn*h2$Ka45=0Z*QURVv#fI=e!YJVR9gGGpZPhvG8QE>tx zxeRLwRZGGZ6d*g^BN#658^y6_prg_V*8x=Rb5g7o)P4*$+z%is5Y`?tP{ecjU^Pon zIAVI}V<{-CD72=Em>`tGOG7mAjByi%<%E_`AQn1MSXanI3kg^sjkSQXv=J#V-B|dl zHJW&a;35N3l&29MVFUGH0tx$Li)Kfn%EtqW_3)Ykp$&Zm=)edTk3Bio97-}GI)h)y z^W-3;0aH9y1TJwy6ZfBo9_YXKACv{&M;xSY^`A%duoER#A8NBFDx(Ewige$-y4;Te zF3g-ocv;@yK;nVHnnJgn@f2cqzGAS3(2DDS^2D{>AB^Tl;z-8=CC|?x05L2X9sC80 zHGo)s5K6fbh}w|~s|}Uv%NXUynAc zaEJuhm9gLnDM-k%NPI$s;cgo6GV%2&gsn=8^@hyvAOkRy7Eo0jGI%Tt1V7vb#}EfP ztR6(4K*Z2touJ$lWI%nMoE?sPxEEUvJ$@2Xk*S}e2g+(PhyxrrP@QAI>OkTTkir^c z0DA6bBYMC*o`ux&h!*f2ah?%-5;|FgQ1heSe*rXjg$qJV#4w!JCM=9KVI%tuKeIX^^x=puap<2|4D{{ z&$EII^0yH55fcBE73&67wCxcN!VA_QU*&K1+EE`HaKNS$@k?$LeHiiU3_Bn{>_#+) zjsbVCQ32m=k(fA_!#RnjAR=9Gte-P)stZhQ-< zkkl|DOE!xZMpT~W1S%U}BbGp~(T60*kil}_X zLi9DkduKSIwSRIHK82snaA@`;VjffwIs9w`T!sk8$HQDelguohM_3=!a4;8`g%_U@ z^nWFmasaCfxz7DRj|{d!ECfA`2Y?=E@h^|2cK3=-jvMe|mI$(7LS>NX>$pMmJ1dBt z@7$o)%-4|ts5K0H;~-c^Prv_HoM_~dhT#Eeve-m`U~v+gQ#%hZQM-+h2@5}inv9q% zU0%RDx`XhpF@Xa&Hyzml#O+=@&l6nvM6uw$gfDAaKJ01yHHbg~Tbn*)i$MmG-^kdJ z8ZzETM%)rq_<{TnDgrn4J>sOG&M7BvVDjRZUKOCp(onF7y5Yt(1JFZ5enf5 zJ|Rd(+$3*_lKtHRKe6N0@xu0kpv#}x2lL2a`M}8lMG1=?CL=a1ZXsYGJh@6KQc=p6Bj|@Nv<`Ab6G5|LuVwkmu z!IBe&pX1%ZT>h=+h0ap28QO(f#q;$Y<|>k^C*x(K)w zQo%yDd*CVw0Jbr}=PC@EGD4gQkOUh*iWxE>oU+Q2z&8C$5~~IE+8{>nP=k%+u{XGP z64pz$6wqU3hZo_8r=@`WZ-@W9qlDl2kr6j*_y_>nIw87W9|7JiyZmKHR~oF=Vo!tu z!YB6JLfk)*L*97ZHzC{wB#1TnBmiMKvCK?JopHVOW2DWd?xyLc@KyG6$?lj zv7)_?0ZSqgfAP@p-g0`6=Uu#s@Cb`XR37X^zi$zvNGBtn{|Ds(a4D8Z{_haqn}sYj z23T7Gl$v(pUsk|Hixy5(0MiC1Bbho^NCwW4ir_Gnc8_TC(O%^}Qv?S1?jvNv5sy*{ zoa5d+KqwcKus)DZ4m_;{HgJ+c*iad)h?F9PxucBrg?5Yo%QHPZ)3jG(vd{j>5x8A} zg%SnPKE|sOg6CSmvmHVa6}JBagr4BliNX8SKzm6BpTiIrr5z+%jaUWikRGP(-s^t) z>L7r7wFvNzIyemo*W+y+hV6fY$NIFrWW>GN>^J}xH6p;P{ba;zzzCkq2{vJT_goqP zXmIZog*;jj${h`?JJi*UG_bPMVDs%c4Gz@eCqPpj>_hSkRzCw=Gr89p=1$;KI)KRk zoF-F30(GDHC(yP*1OP6D>~Q(aUe#=C0^#FeKgGMV*K#Oejgz1fE8pVn5xO2dd~a@V z3ej3X#O56$0vfymV(&Jd{BHa|5n_>JPXY3UNumKJ;JL*q&^pl{@rmJs#j&9KSjX;d zdlcFLtvHLI3Aa7MweE~I)(Cp}83{jYb8p2`=>YWAuS8G&dtPSyi;TF#-o^vCmj9o+ zh|g5IfM2|V@Cn!DyAU}i!egc&|9jQ>d`GN<;--T2DaeUi&u_ejil4}Qfola8 zzKa204B&7Y%<0>$|EAFeGX9NNQGN~1U6Qoq#Ps0wfP4XXq-hTFzsIA4U+aPVbCV%t z!sD7PR&rtmdvW~ZSSJO7B0T>p;UFjOplfG~(E33d;q{n;1s8P`8Gv?9 z3wvsj6Hh8}W&n6W5#jAsqdv5ugr`J6N7N9`-h(L%sP;IlZUYi}$Ap}CGQMR2R9I^M ztAY}iHzy|^5^h-hlbXqs2=qCGr37bmG&y|Q64bt_HlF;y2QXMz(VCo?BxWmMLP;Ny zqj%gRC*aAC3=#5wXVSl(CCxkkV_DM}?>is7&xM@$ydSm(8je{b8o;GU9a$Kceg2Vq zYm1k&C%hN)zwgH&A(7bohzUOoq>Y^@$5=SrX!B+P$0fki0Co5*Kux3& zw6epoh2Tm_phx5BmT7<<3>xvXv%vP1`$Xx(W#r5VO3MkLda?<04mi{aM4*=cUj!Pc z+(M$_NndcJu&X6!Lgd_?fm~q`K~5YAL#C1Z?~gl+iovHgQk3j)ZwtsdM=?1gBFX0h zBwZd8Ju!E|s-r5O5JxsblwdWV#j?Vqc+}w*a+t>tpp!T+KCak< zJoxvd{`WNmBqWFbsfV#{LIybCJMTbV3He?EI-s&wuz?4b8=jvAHKOJQx@htsLb>e* z%Hz!&qD$DhJ<~Mqz%Tn2b153ZhX?FF;>g zCraykfmHf#5>mqs7khzn5&lhd!IqYS2eEkc9FY02OVs6c4yz6olE8-NK#fc=f)||$ z25+!Z{JkXwpb>zo3k4Nyeg#0a&w~_#%QZnR^gLKIyOeOe4^|M~y#Z!#8?Z?$VS{sE z?r@xxSooMXRt5UQg5d9Z1Eb;W$l#kdRvD_2cnZNkiiXqu(uuRM+Od46kLcNwg4coK8TQY z1Aud1hLOSk&lH^Svj9-Oci$qEjyaGL!Yqmh0;z&gggibEdL6;>+j#QaI6{6F2$G%h z0U2-y0qb9ot3SuWI4FUoez9QuOUm%BNwjc^97?63F5HeV~m}Cb^CWO^aM)`OB zRIMYRc`{03V%qVtq(70wYz2ceea#kvS)ih1LzIMF0+^K@gzOXYe^p$2P?S{^-@Sr< zdnF+zG~5E$3S4<4>VSk{8Z^QPI^&F)#EMx41D4rj!osdRLU}DB!R5VJ!^A`kl1}4T z4lz?^Q8`l6!%4(HiW$cT<4kFeX}|NGW!?RYIluF`_dM?TzVGh6;Pd}fv0N?UW~sOA z2h3ez$S)*$=D9@VyJr9fn1La zYMR<#CLdRcXhlBzfze@VxD1c`O{Fqf^etfX7pxi*REpsLU}hws46jq0BbmrAgI|9x zCPkZ=e3C}kAp)a`xlp+r@TK2Mgjr3dATWB)!kqABFjgfvWv=*g1sm#j${0Q<_u$sL z!LY=y&t)dDEbg&;8g1MGn0hnaJHi}QcmQMG%wWNimo-l!U&`}y^;VY0Ql5qbK-Ao_ z%V8-T=UOSI73EmUd$%)jp&S*H{0bA#RlxamuX1|E_Gw`p`tK^B9bLdOLw3!~>9tk@ zUS7y>Zlz2&=BUwfWN_mA?78ZCCCWe_{5r{1z0Gn#)kwNt#T%*sZ{0_5gjz5_M}3@7 zp6oCMs^e97Wy>jHmA|UceV3Fnam=NK({c&Hu~_I|b28lbo=g+#D|zMt)zYHBWIVV7 zVlXWC3-8(Mt%07gu+T&(@y+Pd@hLItHuYAZbR_JW??;$i(BMu7I!uy(&C`jF6MGY(l z_p{(*1^>$TY&(u`wEgB+Pf2H3U}FQ`G^gv)W{-aBMN&ls zwrxp&QzbHYssUlUbIu2ea>-{z-nb9a;KB+&^D`sUE;Pf~UwzoQjbQKnosbw6bQP;% zQ4jJx)d(jOE;1Z{81IC^*mNbC?!zcs6LwjNc%%uBqx>l*rUP)+LEfQ4ZiR_~CYZ2Y zVczY#Xm;ls0B^nT=kBemB#7o?dAdXA6|&s7!i#|L!8b{(!4&nr84`@<8i)%4jgG@oQn# Vg`|`*uUHg|k1R&RP>~7z{{g01XtV$T diff --git a/org.omg.sysml.logic/src/main/java/org/omg/sysml/adapter/UsageAdapter.java b/org.omg.sysml.logic/src/main/java/org/omg/sysml/adapter/UsageAdapter.java index 97f23f2d4..2072d544c 100644 --- a/org.omg.sysml.logic/src/main/java/org/omg/sysml/adapter/UsageAdapter.java +++ b/org.omg.sysml.logic/src/main/java/org/omg/sysml/adapter/UsageAdapter.java @@ -1,6 +1,6 @@ /******************************************************************************* * SysML 2 Pilot Implementation - * Copyright (c) 2021-2025, 2026 Model Driven Solutions, Inc. + * Copyright (c) 2021-2026 Model Driven Solutions, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the Eclipse Public License as published by @@ -22,6 +22,8 @@ import org.omg.sysml.lang.sysml.ActionDefinition; import org.omg.sysml.lang.sysml.ActionUsage; +import org.omg.sysml.lang.sysml.AttributeDefinition; +import org.omg.sysml.lang.sysml.AttributeUsage; import org.omg.sysml.lang.sysml.Definition; import org.omg.sysml.lang.sysml.Feature; import org.omg.sysml.lang.sysml.FeatureMembership; @@ -54,6 +56,8 @@ public Usage getTarget() { /** * @satisfies validateUsageIsReferential + * @satisfies validateAttributeDefinitionFeature + * @satisfies validateAttributeUsageFeature */ @Override public void postProcess () { @@ -62,7 +66,9 @@ public void postProcess () { if (target.isVariation()) { target.setIsAbstract(true); } - if (target.getDirection() != null || target.isEnd() || !UsageUtil.hasFeaturingType(target)) { + Type featuringType = UsageUtil.getExpectedFeaturingTypeOf(target); + if (target.getDirection() != null || target.isEnd() || featuringType == null || + featuringType instanceof AttributeDefinition || featuringType instanceof AttributeUsage) { target.setIsComposite(false); } } diff --git a/org.omg.sysml.logic/src/test/java/org/omg/sysml/logic/UsagePostProcessTest.java b/org.omg.sysml.logic/src/test/java/org/omg/sysml/logic/UsagePostProcessTest.java index db261dac0..065ce7108 100644 --- a/org.omg.sysml.logic/src/test/java/org/omg/sysml/logic/UsagePostProcessTest.java +++ b/org.omg.sysml.logic/src/test/java/org/omg/sysml/logic/UsagePostProcessTest.java @@ -28,6 +28,7 @@ import org.eclipse.emf.ecore.EClass; import org.junit.BeforeClass; import org.junit.Test; +import org.omg.sysml.lang.sysml.Definition; import org.omg.sysml.lang.sysml.Element; import org.omg.sysml.lang.sysml.FeatureDirectionKind; import org.omg.sysml.lang.sysml.Namespace; @@ -70,6 +71,12 @@ public void settingCompositeToFalse() throws InvocationTargetException { * variation part q { * variant part r; * } + * attribute def B { + * part p1; + * } + * attribute b { + * part p2; + * } * } */ Package test = (Package) createElement(SysMLPackage.Literals.PACKAGE, "test", null); @@ -88,8 +95,15 @@ public void settingCompositeToFalse() throws InvocationTargetException { q.setIsVariation(true); Usage r = (Usage) createElement(SysMLPackage.Literals.PART_USAGE, "r", q); + Definition B = SysMLFactory.eINSTANCE.createAttributeDefinition(); + Usage p1 = SysMLFactory.eINSTANCE.createPartUsage(); + TypeUtil.addOwnedFeatureTo(B, p1); + Usage b = SysMLFactory.eINSTANCE.createAttributeUsage(); + Usage p2 = SysMLFactory.eINSTANCE.createPartUsage(); + TypeUtil.addOwnedFeatureTo(b, p2); + // Post-process after creating the entire model. - postProcess(p, a, x, y, z, u, v, w, q, r); + postProcess(p, a, x, y, z, u, v, w, q, r, B, p1, b, p2); assertTrue(p.isReference()); assertTrue(a.isReference()); @@ -101,6 +115,10 @@ public void settingCompositeToFalse() throws InvocationTargetException { assertTrue(w.isReference()); assertTrue(q.isReference()); assertTrue(r.isReference()); + + assertTrue(p1.isReference()); + assertTrue(b.isReference()); + assertTrue(p2.isReference()); } /** diff --git a/org.omg.sysml.xtext/src/org/omg/sysml/xtext/validation/SysMLValidator.xtend b/org.omg.sysml.xtext/src/org/omg/sysml/xtext/validation/SysMLValidator.xtend index a465839e0..cb988f95a 100644 --- a/org.omg.sysml.xtext/src/org/omg/sysml/xtext/validation/SysMLValidator.xtend +++ b/org.omg.sysml.xtext/src/org/omg/sysml/xtext/validation/SysMLValidator.xtend @@ -549,11 +549,10 @@ class SysMLValidator extends KerMLValidator { @Check def checkAttributeDefinition(AttributeDefinition defn) { - // Not implemented for now, until resolution of KerML issues on composite semantics. (See KERML-4.) - // TODO: Check validateAttributeDefinitionFeatures + // Check validateAttributeDefinitionFeatures // NOTE: Only check owned features, for efficiency and to avoid redundancy. // (This should be sufficient, unless a composite feature is inherited from a KerML data type.) - // checkAllNotComposite(defn.ownedFeature, INVALID_ATTRIBUTE_DEFINITION_FEATURES_MSG, INVALID_ATTRIBUTE_DEFINITION_FEATURES) + checkAllNotComposite(defn.ownedFeature, INVALID_ATTRIBUTE_DEFINITION_FEATURES_MSG, INVALID_ATTRIBUTE_DEFINITION_FEATURES) } @Check @@ -573,11 +572,10 @@ class SysMLValidator extends KerMLValidator { error(INVALID_REFERENCE_USAGE_IS_REFERENCE_MSG, usg, null, INVALID_REFERENCE_USAGE_IS_REFERENCE) } - // Not implemented for now, until resolution of KerML issues on composite semantics. (See KerML-4.) - // TODO: Check validateAttributeUsageFeatures + // Check validateAttributeUsageFeatures // NOTE: Only check owned features, for efficiency and to avoid redundancy. // (This should be sufficient, unless a composite feature is inherited from a KerML data type.) - // checkAllNotComposite(usg.ownedFeature, INVALID_ATTRIBUTE_USAGE_FEATURES_MSG, INVALID_ATTRIBUTE_USAGE_FEATURES) + checkAllNotComposite(usg.ownedFeature, INVALID_ATTRIBUTE_USAGE_FEATURES_MSG, INVALID_ATTRIBUTE_USAGE_FEATURES) } @Check From f463a05a92750255c775ef732c453bdeffed9b17 Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Mon, 10 Aug 2026 19:17:50 -0400 Subject: [PATCH 4/4] SYSML21-327 Added doc comment to Actions::Action::assignments::target. --- sysml.library/Systems Library/Actions.sysml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sysml.library/Systems Library/Actions.sysml b/sysml.library/Systems Library/Actions.sysml index 65a3b108e..cc78878b8 100644 --- a/sysml.library/Systems Library/Actions.sysml +++ b/sysml.library/Systems Library/Actions.sysml @@ -145,7 +145,13 @@ standard library package Actions { * The subactions of this Action that are AssignmentActions. */ - in target; + in target { + doc + /* + * This provides an implicit redefining feature for AssignmentAction::target and + * assignmentActions::target, ensuring "target" remains the first parameter. + */ + } } abstract action ifSubactions : IfThenAction[0..*] :> subactions, ifThenActions {