3                                   !  !     '  h     3 3  !" < < # ?$ % ?&  '()* + , -./  0123 45 6 7 89  :;<= W> W? @ A WBC DE DFG aH aIJ  KLMN hO j PQ jR ST jU V W jX jY SZ P[\  ]^_ ` ab Dc d ef g hi j kl  mno p q S.r  s t uv uw x yz y{| } -~    4    %   a 4 a a !     u0)2  <$       D   %          4                 InnerClassescn0Lorg/dataone/integration/adapters/CNCallAdapter;METACAT_INDEXING_WAITJ ConstantValueREPLICATION_WAIT8(Lorg/dataone/integration/ContextAwareTestCaseDataone;)VCodeLineNumberTableLocalVariableTablethisZLorg/dataone/integration/it/testImplementations/MNUpdateSystemMetadataTestImplementations;catc5Lorg/dataone/integration/ContextAwareTestCaseDataone;getCallAdapterg(Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)Lorg/dataone/integration/adapters/MNCallAdapter;node#Lorg/dataone/service/types/v1/Node;versionLjava/lang/String;setup&(Lorg/dataone/service/types/v1/Node;)VcNode(testUpdateSystemMetadata_NotAuthorizedMN)(Ljava/util/Iterator;Ljava/lang/String;)V nodeIteratorLjava/util/Iterator;LocalVariableTypeTable9Ljava/util/Iterator; StackMapTable SignatureN(Ljava/util/Iterator;Ljava/lang/String;)VRuntimeVisibleAnnotations-Lorg/dataone/integration/webTest/WebTestName;valueZupdateSystemMetadata - tests if the call fails with an unauthorized MN certificate subject4Lorg/dataone/integration/webTest/WebTestDescription;this test calls updateSystemMetadata() with a non-authoritative MN certificate subject and expects a NotAuthorized exception to be thrown8(Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)V%testUpdateSystemMetadata_RightsHolderYupdateSystemMetadata - tests that the updateSystemMetadata call works for a rights holderthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the metadata, checks that the call was successful, then also uses getSystemMetadata() to fetch the new metadata and check that for dateSysMetadataModifiedrightsHolderSubjStr accessRule)Lorg/dataone/service/types/v1/AccessRule;pid)Lorg/dataone/service/types/v1/Identifier; testObjPidsysmeta-Lorg/dataone/service/types/v2/SystemMetadata; originalDateLjava/util/Date;successZfetchedSysmetadateModifiedMatchese/Lorg/dataone/service/exceptions/ServiceFailure;6Lorg/dataone/service/exceptions/SynchronizationFailed;.Lorg/dataone/service/exceptions/BaseException;Ljava/lang/Exception; callAdapter4Lorg/dataone/integration/adapters/CommonCallAdapter; currentUrl"#,testUpdateSystemMetadata_MutableRightsHoldergupdateSystemMetadata - tests that the rights holder can change mutable fields with updateSystemMetadataLthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It modifies the rightsHolder field in the system metadata when making the getSystemMetadata() call and verifies that no exception is thrown (that the mutable field can be modified by the rights holder). rightsHolderMatches&testUpdateSystemMetadata_MutableFormatHthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It modifies the formatId field in the system metadata when making the getSystemMetadata() call and verifies that no exception is thrown (that the mutable field can be modified by the rights holder). formatIdMatches,testUpdateSystemMetadata_MutableAccessPolicyLthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It modifies the accessPolicy field in the system metadata when making the getSystemMetadata() call and verifies that no exception is thrown (that the mutable field can be modified by the rights holder).  accessPolicy+Lorg/dataone/service/types/v1/AccessPolicy; groupSubjStr allowListLjava/util/List;ar0subjStr permission)Lorg/dataone/service/types/v1/Permission;accessPolicyMatches;Ljava/util/List;G=*testUpdateSystemMetadata_MutableReplPolicyQthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It modifies the replicationPolicy field in the system metadata when making the getSystemMetadata() call and verifies that no exception is thrown (that the mutable field can be modified by the rights holder). nowIshreplicationPolicy0Lorg/dataone/service/types/v1/ReplicationPolicy;fetchedReplPolicynumberReplicasLjava/lang/Integer;replicationAllowedLjava/lang/Boolean;replicationPolicyMatchesNO&testUpdateSystemMetadata_MutableAuthMNWthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It modifies the authoritativeMemberNode field in the system metadata when making the getSystemMetadata() call and verifies that no exception is thrown (that the mutable field can be modified by the rights holder). ni$nodes'Lorg/dataone/service/types/v2/NodeList;diffMN authMNMatches(testUpdateSystemMetadata_MutableArchivedkupdateSystemMetadata - tests that the rights holder can change the archived field with updateSystemMetadataHthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It modifies the archived field in the system metadata when making the getSystemMetadata() call and verifies that no exception is thrown (that the mutable field can be modified by the rights holder). archivedMatches.testUpdateSystemMetadata_RightsHolderNonAuthMNgupdateSystemMetadata - tests that the rights holder cannot updateSystemMetadata on non-authoritative MNthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to try to update the system metadata, but it makes the call on a non-authoritative MN, and is expected to fail with an InvalidRequest exception. s&Lorg/dataone/service/types/v1/Service;services'Lorg/dataone/service/types/v1/Services;v2Node(testUpdateSystemMetadata_CNCertNonAuthMNeupdateSystemMetadata - tests that a CN certificate can updateSystemMetadata on a non-authoritative MNthis test calls updateSystemMetadata() using a CN certificate to try to update the system metadata, but it makes the call on a non-authoritative MN, and is expected to succeed v2mn0Lorg/dataone/integration/adapters/MNCallAdapter;capnumReplicaTargetsIsubject&Lorg/dataone/service/types/v1/Subject;authNodegetSysmetaHandler!Lorg/dataone/client/RetryHandler;replica&Lorg/dataone/service/types/v1/Replica; replicaMN,Lorg/dataone/service/types/v1/NodeReference; replicaListsuccessfulReplicas replicaStr nonAuthMN cnCertAuthMNcnCertNonAuthMN replPolicyreplicaTargetsLjava/util/ArrayList;8Ljava/util/List;PLorg/dataone/client/RetryHandler;8Ljava/util/List;:Ljava/util/ArrayList;&testUpdateSystemMetadata_ObsoletesFailrupdateSystemMetadata - tests that the rights holder can't change the obsoletes field if it causes an inconsistencymthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It sets up a 2-pid chain (in which they both point to each other) and modifies the obsoletes field in the system metadata of the first one and verifies that an exception is thrown - since this would create an inconsistency in the chain. contentBytes[BobjectInputStreamLjava/io/ByteArrayInputStream;d1o$Lorg/dataone/client/v1/itk/D1Object; v2sysmetap1p2p3(testUpdateSystemMetadata_ObsoletedByFailtupdateSystemMetadata - tests that the rights holder can't change the obsoletedBy field if it causes an inconsistencypthis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It sets up a 2-pid chain (in which they both point to each other) and modifies the obsoletedBy field in the system metadata of the second pid and verifies that an exception is thrown - since this would create an inconsistency in the chain. p1sysmeta+testUpdateSystemMetadata_MutableObsoletedByathis test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It creates two objects (not related to each other through obsoletes / obsoletedBy) and modifies the obsoletedBy field in the system metadata of the first one (to point to the second) and verifies that no exception is thrown.)testUpdateSystemMetadata_MutableObsoletes_this test calls updateSystemMetadata() using an object's rights-holder as the certificate subject to update the system metadata. It creates two objects (not related to each other through obsoletes / obsoletedBy) and modifies the obsoletes field in the system metadata of the second one (to point to the first) and verifies that no exception is thrown. p2sysmeta createPid=(Ljava/lang/String;)Lorg/dataone/service/types/v1/Identifier;stringk(Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)Lorg/dataone/integration/adapters/CommonCallAdapter; access$000"()Lorg/apache/commons/logging/Log; access$100(Lorg/dataone/integration/it/testImplementations/MNUpdateSystemMetadataTestImplementations;)Lorg/dataone/integration/adapters/CNCallAdapter;x0 access$200 SourceFile.MNUpdateSystemMetadataTestImplementations.java    .org/dataone/integration/adapters/MNCallAdaptertestRightsHolder  .org/dataone/integration/adapters/CNCallAdapter !v2  !org/dataone/service/types/v1/Node %4Should be @Ignore'd  54  java/lang/StringBuilder 5testUpdateSystemMetadata_RightsHolder(...) vs. node:          g  'org/dataone/service/types/v1/Identifier&testUpdateSystemMetadata_RightsHolder_      4Call to updateSystemMetadata() should be successful.  ?System metadata should now have updated dateSysMetadataModified-org/dataone/service/exceptions/ServiceFailure4MN.updateSystemMetadata() returned a ServiceFailure.  !4org/dataone/service/exceptions/SynchronizationFailed "# $%& ': [CN may throw SynchronizationFailed on a valid call to updateSystemMetadata. MN should not. ( ) *+,org/dataone/service/exceptions/BaseExceptionjava/lang/Exception , - . V4 ?@ AB CDMSystem metadata should have an access policy with one item in its allow list. EF GH'org/dataone/service/types/v1/AccessRule I JK4System metadata should now have updated accessPolicy p4:testUpdateSystemMetadata_MutableReplPolicy(...) vs. node: +testUpdateSystemMetadata_MutableReplPolicy_java/util/Date.org/dataone/service/types/v1/ReplicationPolicy LM NO LP QR ST UV WX YZ [ \F9System metadata should now have updated replicationPolicy 46testUpdateSystemMetadata_MutableAuthMN(...) vs. node: 'testUpdateSystemMetadata_MutableAuthMN_ ]^ _D `a bcd ef ghbEnvironment should have at least one other MN so we can test changing the authoritativeMemberNode. ij kh?System metadata should now have updated authoritativeMemberNode 48testUpdateSystemMetadata_MutableArchived(...) vs. node: )testUpdateSystemMetadata_MutableArchived_ lR mZ0System metadata should now have updated archived 4 nop qr st uv wF xD$org/dataone/service/types/v1/Service y z{Environment should have at least one other MN (fetched through CN.getNodeList()) so we can test changing the authoritativeMemberNode.testUpdateSystemMetadata_RightsHolderNonAuthMN: call to MN.updateSystemMetadata() should fail if made to an MN that is not the authoritative MN.-org/dataone/service/exceptions/InvalidRequest,org/dataone/service/exceptions/NotAuthorizedfMN.updateSystemMetadata() returned a ServiceFailure, was expecting an InvalidRequest or NotAuthorized. 48testUpdateSystemMetadata_CNCertNonAuthMN(...) vs. node: )testUpdateSystemMetadata_CNCertNonAuthMN_ |java/util/ArrayListLtestUpdateSystemMetadata_CNCertNonAuthMN: checking if valid replica target: }! ~OtestUpdateSystemMetadata_CNCertNonAuthMN: unable to getCapabilities() for node  MNReplicationFtestUpdateSystemMetadata_CNCertNonAuthMN: found valid replica target: s4xtestUpdateSystemMetadata_CNCertNonAuthMN requires at least 2 total v2 MNs so there's at least one replica target. Found  replica targets.public  0 @testUpdateSystemMetadata_CNCertNonAuthMN: creating test object: java/lang/AssertionError+Test setup failed. Couldn't create object:  : !YtestUpdateSystemMetadata_CNCertNonAuthMN: waiting for replication... (up to 45.0 minutes)CtestUpdateSystemMetadata_CNCertNonAuthMN: fetching sysmeta from CN Zorg/dataone/integration/it/testImplementations/MNUpdateSystemMetadataTestImplementations$1  +org/dataone/service/types/v2/SystemMetadata+Test setup failed. Couldn't fetch sysmeta ( ) from CN:  , origin MN: DtestUpdateSystemMetadata_CNCertNonAuthMN : After waiting for replication to occur, fetched sysmeta should contain a non-empty replica list!$org/dataone/service/types/v1/Replica h,  testUpdateSystemMetadata_CNCertNonAuthMN : After waiting for replication to occur, there should be at least one successful replica MN available! Replicas: ^testUpdateSystemMetadata_CNCertNonAuthMN: checking replica list for v2 replica target nodes...  >testUpdateSystemMetadata_CNCertNonAuthMN: checking replica on Node  has NULL Services!!! !BtestUpdateSystemMetadata_CNCertNonAuthMN: found v2 replica target Attempted to find a replica target MN (a non-authoritative MN) but failed. It has to be a v2 MN in the environment that is not the authoritative MN.testUpdateSystemMetadata_CNCertNonAuthMN: should succeed with a CN cert making the updateSystemMetadata() call to a non-authoritative MN. 46testUpdateSystemMetadata_ObsoletesFail(...) vs. node: 'testUpdateSystemMetadata_ObsoletesFail_ "eml://ecoinformatics.org/eml-2.0.1 java/io/ByteArrayInputStream "org/dataone/client/v1/itk/D1ObjectbogusAuthoritativeNode     g > testUpdateSystemMetadata_ObsoletesFail() setup steps failed! testUpdateSystemMetadata_ObsoletesFail() expects the updateSystemMetadata() call to fail with an InvalidRequest exceptionsince it's trying to overwrite the existing obsoletes field,but the call succeeded! (The obsoletes field can only be set once.)JtestUpdateSystemMetadata_ObsoletesFail() expected InvalidRequest but got: 48testUpdateSystemMetadata_ObsoletedByFail(...) vs. node: )testUpdateSystemMetadata_ObsoletedByFail_@ testUpdateSystemMetadata_ObsoletedByFail() setup steps failed! testUpdateSystemMetadata_ObsoletedByFail() expects the updateSystemMetadata() call to fail with an InvalidSystemMetadata exceptionsince it's trying to overwrite the existing obsoletedBy field, but the call succeeded! (The obsoletes field can only be set once.)LtestUpdateSystemMetadata_ObsoletedByFail() expected InvalidRequest but got: 4;testUpdateSystemMetadata_MutableObsoletedBy(...) vs. node: ,testUpdateSystemMetadata_MutableObsoletedBy_C testUpdateSystemMetadata_MutableObsoletedBy() setup steps failed! 4org/dataone/service/exceptions/InvalidSystemMetadataVtestUpdateSystemMetadata_MutableObsoletedBy() expected InvalidSystemMetadata but got: 49testUpdateSystemMetadata_MutableObsoletes(...) vs. node: *testUpdateSystemMetadata_MutableObsoletes_A testUpdateSystemMetadata_MutableObsoletes() setup steps failed! TtestUpdateSystemMetadata_MutableObsoletes() expected InvalidSystemMetadata but got: java/lang/InterruptedExceptionXorg/dataone/integration/it/testImplementations/MNUpdateSystemMetadataTestImplementationsVorg/dataone/integration/it/testImplementations/UpdateSystemMetadataTestImplementationsjava/lang/String2org/dataone/integration/adapters/CommonCallAdapterjava/util/List'org/dataone/service/types/v1/Permissionjava/lang/Integerjava/lang/Boolean%org/dataone/service/types/v2/NodeListjava/util/Iterator%org/dataone/service/types/v1/Services*org/dataone/service/types/v1/NodeReferencelog Lorg/apache/commons/logging/Log; getSessionA(Ljava/lang/String;)Lorg/dataone/client/rest/MultipartRestClient;e(Lorg/dataone/client/rest/MultipartRestClient;Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)V cnSubmitterhasNext()Znext()Ljava/lang/Object;org/junit/Assert assertTrue(Ljava/lang/String;Z)V getBaseURL()Ljava/lang/String;()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringprintTestHeader(Ljava/lang/String;)VgetNodeBaseServiceUrl3org/dataone/integration/ContextAwareTestCaseDataone getSubject:(Ljava/lang/String;)Lorg/dataone/service/types/v1/Subject;$org/dataone/service/types/v1/SubjectgetValueCHANGE_PERMISSION$org/dataone/integration/APITestUtilsbuildAccessRulef(Ljava/lang/String;Lorg/dataone/service/types/v1/Permission;)Lorg/dataone/service/types/v1/AccessRule;(org/dataone/integration/ExampleUtilitiesgenerateIdentifiersetValuecreateTestObject(Lorg/dataone/client/D1Node;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/AccessRule;)Lorg/dataone/service/types/v1/Identifier;getSystemMetadata~(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v2/SystemMetadata;getDateSysMetadataModified()Ljava/util/Date;updateSystemMetadata(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v2/SystemMetadata;)Zjava/lang/Threadsleep(J)Vafter(Ljava/util/Date;)Zorg/apache/commons/logging/Logwarn(Ljava/lang/Object;)VgetLatestRequestUrljava/lang/ObjectgetClass()Ljava/lang/Class;java/lang/Class getSimpleNamegetDetail_codegetDescription handleFail'(Ljava/lang/String;Ljava/lang/String;)VprintStackTracegetName getMessagesetRightsHolder)(Lorg/dataone/service/types/v1/Subject;)VgetRightsHolder(()Lorg/dataone/service/types/v1/Subject;equals(Ljava/lang/Object;)Z)org/dataone/client/v1/types/D1TypeBuilderbuildFormatIdentifierI(Ljava/lang/String;)Lorg/dataone/service/types/v1/ObjectFormatIdentifier; setFormatId8(Lorg/dataone/service/types/v1/ObjectFormatIdentifier;)V getFormatId7()Lorg/dataone/service/types/v1/ObjectFormatIdentifier;3org/dataone/service/types/v1/ObjectFormatIdentifieraddAllow,(Lorg/dataone/service/types/v1/AccessRule;)VsetAccessPolicy.(Lorg/dataone/service/types/v1/AccessPolicy;)VgetAccessPolicy-()Lorg/dataone/service/types/v1/AccessPolicy; getAllowList()Ljava/util/List;size()Iget(I)Ljava/lang/Object;)(I)Lorg/dataone/service/types/v1/Subject; getPermission,(I)Lorg/dataone/service/types/v1/Permission;valueOf(I)Ljava/lang/Integer;setNumberReplicas(Ljava/lang/Integer;)V(Z)Ljava/lang/Boolean;setReplicationAllowed(Ljava/lang/Boolean;)VsetReplicationPolicy3(Lorg/dataone/service/types/v1/ReplicationPolicy;)VgetReplicationPolicy2()Lorg/dataone/service/types/v1/ReplicationPolicy;getNumberReplicas()Ljava/lang/Integer;getReplicationAllowed()Ljava/lang/Boolean; booleanValueintValue listNodes)()Lorg/dataone/service/types/v2/NodeList; getNodeListiterator()Ljava/util/Iterator;getType)()Lorg/dataone/service/types/v1/NodeType;%org/dataone/service/types/v1/NodeTypeMN'Lorg/dataone/service/types/v1/NodeType; getIdentifier.()Lorg/dataone/service/types/v1/NodeReference;setAuthoritativeMemberNode/(Lorg/dataone/service/types/v1/NodeReference;)VgetAuthoritativeMemberNode setArchived getArchivedgetSerialVersion()Ljava/math/BigInteger;java/math/BigIntegerONELjava/math/BigInteger;add.(Ljava/math/BigInteger;)Ljava/math/BigInteger; getServices)()Lorg/dataone/service/types/v1/Services;sizeServiceListgetServiceList getVersionequalsIgnoreCase(Ljava/lang/String;)ZbuildIdentifierinfogetCapabilities%()Lorg/dataone/service/types/v1/Node;(I)Ljava/lang/StringBuilder; buildSubject addSubject addPermission,(Lorg/dataone/service/types/v1/Permission;)V(Lorg/dataone/client/D1Node;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/AccessRule;Lorg/dataone/service/types/v1/ReplicationPolicy;)Lorg/dataone/service/types/v1/Identifier;(Lorg/dataone/integration/it/testImplementations/MNUpdateSystemMetadataTestImplementations;Lorg/dataone/service/types/v1/Identifier;Ljava/util/ArrayList;Lorg/dataone/service/types/v1/Node;)Vorg/dataone/client/RetryHandlerexecute(JJ)Ljava/lang/Object;getReplicaListgetReplicaMemberNodegetReplicationStatus2()Lorg/dataone/service/types/v1/ReplicationStatus;.org/dataone/service/types/v1/ReplicationStatus COMPLETED0Lorg/dataone/service/types/v1/ReplicationStatus;getState*()Lorg/dataone/service/types/v1/NodeState;&org/dataone/service/types/v1/NodeStateUP(Lorg/dataone/service/types/v1/NodeState;errorgetExampleObjectOfType(Ljava/lang/String;)[B([B)VbuildNodeReference@(Ljava/lang/String;)Lorg/dataone/service/types/v1/NodeReference;(Lorg/dataone/service/types/v1/Identifier;[BLorg/dataone/service/types/v1/ObjectFormatIdentifier;Lorg/dataone/service/types/v1/Subject;Lorg/dataone/service/types/v1/NodeReference;)V/()Lorg/dataone/service/types/v1/SystemMetadata;(org/dataone/service/types/v2/TypeFactoryconvertTypeFromType7(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+()Lorg/dataone/service/types/v1/Identifier;update(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;Ljava/io/InputStream;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v2/SystemMetadata;)Lorg/dataone/service/types/v1/Identifier; setObsoletes,(Lorg/dataone/service/types/v1/Identifier;)VsetObsoletedBysetSerialVersion(Ljava/math/BigInteger;)V!   +$>*+ 89NY*+,<  !"#O*Y** +  @A$%&}+ *+ ,G HI '( !) '*+,-./0s120s3%4I Nn  !5&}+ *+ ,w xy '( !) '*+,-./0s620s754*+,N+:*Y-:*W*W: :!Y":Y#$%*-&:-':  (: - )6 * +--':  ( .6 / :12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+0+3+<+O? }~ %+2AKTn|LOQV~A8!Ku9:Tl;<|D=<;>? 4@A )BC D? EC FG<FH7FIQ-FJ !xKL rM!+*NOPQPRNS@T{U.V&}+ *+ ,C  '( !) '*+,-./0sW20sXV41 *+,N+:*YD-:*W*W: :!Y":YE$%*-&:-': *FW *WFG- )6 * +--':  H HI6 J :12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+0+3++<+g?! %+2AKTn|(+-dginA8!K9:T;<|\=<S>? 2BC D? YC FG<FH-7FIi-FJ !KL M!+*NOPQPRNS@T{U.Z&}+ *+ ,K  '( !) '*+,-./0sW20s[Z4 *+,N+:*YL-:*W*W: :!Y":YM$%*-&:-':  NOP- )6 * +--':  QRNI6 S :12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+0+3+<+U?  %+2AKTn|  RU W \A8!K{9:Tr;<|J=<A>? ,BC D? \C FG<FH7FIW-FJ !~KL xM!+*NOPQPRNS@T{U.]&}+ *+ ,T  '( !) '*+,-./0sW20s^]4v*+,N+:*YU-:*W: :!Y":YV$%*-&:-': WYX: *YWY:   : Z  [- )6 * +--':  \]:^_`a:b:c: I6d:12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+250+2D3+2<+2?* !%"+%2&<'F(O)i*w,./0123568:;=>? @A+D2S5F7HASDIFJSMNSPQRT<8!F9:O;<w=<>? _` a! uBC _D? Ubc3d: (e! fg+hC7 FGF<FH7FI-FJ !KL M!) Ubi+ NOPQPPjkklmPlnPNOPQPPjkklmPlnP8jPo@ NOPQPRNS@T{U.p&}+ *+ ,e] ^_ '( !) '*+,-./0sW20sqp4*+,N+:*Yf-:*W*W: :!Y":Yg$%*-&:-': hYi: jYk:  *lm no  p- )6 * +--':  q:r:s:tu*6v:12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+ 0+3+Z<+?'cd e%f+i2jAkKlTmnn|pqstuvxy{}~  WZ\A8!K9:T;<|=<>? yrA pst KBC 5D? .ut'vw xyzC FG<FH\7FI-FJ !KL M!+dNOPQPPjkkl{|l|}~@ NOPQPRNS@T{U.&}+ *+ ,w  '( !) '*+,-./0sW20s43*+,N+:*Yx-:*W*W: :!Y":Yy$%*-&:-': *z: :  {|:  6 :  }~ +I :    - )6 * +--':   I6:12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+030+0B3+0<+0?' %+2AKTn| )035?BD$ =( A8!K9:T;<|=<>?   2BC D? )C5 FGD<FH7FI-FJ !KL M!+ NOPQPPjkklO5OJP NOPQPPjkklOPLNOPQPRNS@T{U.&}+ *+ ,  '( !) '*+,-./0s20s4 *+,N+:*Y-:*W*W: :!Y":Y$%*-&:-':  n- )6 * +--':  n6  :12:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+0+3+<+S?  %+2AKTn|PSUZA8!Ky9:Tp;<|H=<?>? +BC D? C FG<FH7FIU-FJ !|KL vM!+*NOPQPRNS@T{U.&}+ *+ ,  '( !) '*+,-./0s20s45*+,N+:*Yx-:*W*W: :!Y":Yy$%*-&:-':  W*z: :  {|:   :  }~ :6|: % : 6 +I : i * ,N- )W*;:::2:*-4Y567897:;n:*-4Y567=7>;2:@*Y5A7B;+lo+lt+ly0+l3+l<+l?5 %+2AKT n!|#$&'()*+,-./ 01204$5'6<7@8C9R=Z>d@lVoDqVtFvVyH{JVLMVPQVST U4W ,(lYC ( A+8!K!9:T;<|=<>?   { FG<FH7FI-FJ555 !.KL (M!+ NOPQPPjkklO#O(JP NOPQPPjkklOPNOPQPDDRNS@T{U.&}+ *+ ,^ _` '( !) '*+,-./0s20s4 tY** +,N:+:*Y-:Y$:::Y: 6 *z:  {|:   :  }~߲Y Y**   :::':Y z:l|: Y := 0Y  W Y  jYk:no dlmaY: *W:    Y*- W: YY- 567 =7 >:  @YY- 5A7 BY*+: Y*  :  ::  ŻYYƶǶ*ȶɶ- 567 =7 >:  @YYƶǶ*ȶɶ- 5A7 B:   _Y: :  |:  ] :Y ζ϶: вѦ"ζ+I  WYӶ  _Թ: *z:{|:  :}~ |:  ::Iղ֦Y׶:*Yضٶڶv|: E : )Yܶ:  Y**   :lmp6r: *Y 567 =7 >;5:  @*Y 5A7 B;?b<bd?<b?<A?kdefg3h9jSkVlYmbpeqnrstvxy{|} 1Kjrux{~dfkbdi -MWZ )05Y\ ~   '!">'A$C%H&s(."FJ1G`( nc z( e n K9: = HFI f@FJ    iFI d\FJ  Kd( ~3hL(0((:c c ! t kBC8FI C0FJ ttt !b_YM!S!;<V>?Ytb )4 n :  b +%z NOPPkl|#O@NOPPkl|OOU#n\ NOPPkl|b NOPPkl|w NOPPkl|TIUAPTjU] NOPPkl|nP NOPPkl|nPnP`a NOPPkl|nnP$O#O HNOPPkl|nnPOOJPNOPPkl|nnPOP= NOPPkl|T|U1&}+ *+ ,2 34 '( !) '*+,-./0s20s4?*+,N+:*Y-::*Y$:*Y$:*Y$:*W*W:   : *- &:+-: Y : Y O*W:  ĸ:+ :- W*- &:+--:|: YY 567 =7 >: YY 5A7 B-W*;x: s: *-Y 567 =7 >;2: *Y 5A7 B;14<1w?<?(89 :%;+=.>I?d@CDEFGIJKPQRTU"W(Y1`4Z6[w]y^cdftktmn tqr>u8! 9: w l K 6AFI y4FJ <FI -FJ ??? !8K 2M!.?I<d<<+=4 NOPPlkkkTBU5[DT@U.&}+ *+ ,  '( !) '*+,-./0s20s4!9*+,N+:*Y-::*Y$:*Y$:*Y$:: *W*W:   : *- &:+-: Y : Y O*W:ĸ::- W*- &:+--: |: YY 567 =7 >: YY 5A7 B - W*;x: s: *-Y 567 =7 >;2: *Y 5A7 B;+.<+q?< ?( %+.Id"+.0qs  88! 9: n c B0AFI s4FJ <FI  -FJ 999 !2K ,M!. ?I<d<<? +@. NOPPlkkklTBU5[DT@U.&}+ *+ ,  '( !) '*+,-./0s20s4S *+,N+:*Y-::*Y$:*Y$:*W*W: : *- &:*- &:+--:|:YY567=7>:YY5A7B-Wz:u:*-Y567=7>;3:*Y5A7B;d<d?+LO+LT<+L?~ %+.Idkz+2BLOQTVz58!+9: AFI4FJV=FI.FJ !K M!.?I~<dc<+:NOPPlkkTBU5cDTAU/&}+ *+ ,  '( !) '*+,-./0s20s4X *+,N+:*Y-::*Y$:*Y$:*W*W: : *- &:*- &:+--:~:YY567=7>:YY5A7B-Wz:u:*-Y567=7>;3:*Y5A7B;g<g?0QT0QY<0Q?~  & , /Kgn} 0#7$G%Q0T'V0Y)[*0-.1}58!+9: BFI5FJ[=FI.FJ !K M!/?K<ge<+:NOPPlkkTCU6cDTAU/^ -M+567  !+GD1*+,1 1/*1 1