FUEL WFUEL FLGlobalClassClusterFLHeader ByteString IdentitySet ByteSymbolFullBlockClosureIdentityDictionaryUndefinedObjectContextFLGlobalCompiledBlockClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:FLGlobalCompiledMethodClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:$FLHookPrimitiveClusterFLHookPrimitiveClusterVMImage TimestampFLHookPrimitiveClusterVM: Mac OS - arm64 - 1000 - CoInterpreter VMMaker-tonel.1 uuid: 503d056a-9dd3-0d00-86f1-405a0df24b96 Apr 29 2024 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: 503d056a-9dd3-0d00-86f1-405a0df24b96 Apr 29 2024 d1bfe9ec - Commit: d1bfe9ec - Date: 2024-04-29 14:32:52 +0200 wImage: Pharo12.0.0PR [Build information: Pharo-12.0.0+PR.build.1.sha.17e5ada523c39297bfdfb15ccd027d0405626ff1 (64 Bit)]29 April 2024 4:38:16.046649 pmFLPositive8SmallIntegerClusterQFLFixedObjectClusterpreMaterializationActionsadditionalObjectspostMaterializationActionsFLContextClustersenderpcstackpmethod closureOrNilreceiverFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLDictionaryCollectionClusterFLSimpleCollectionClusterFLSubstitutionCluster      FLGlobalCompiledBlockCluster%TestCaserunCaseTestExecutionEnvironmentrunTestCaseUnderWatchdog:HDReport runPackages: HDTestReportrunTestCaserunCaseTestExecutionEnvironment runTestCase:TestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportrunCase: TestAsserterassertCollection:equals: HDTestReport newLogDuring: HDTestReportrunCase:TestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportrunCase: RBMethodNode initializeBasicCommandLineHandleractivateSubCommand:BasicCommandLineHandleractivateBasicCommandLineHandleractivate HDTestReportrunCurrentExecutionEnvironment activate:for:RSXMarkerDecorationmax TFTestCasetestParametersTestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportreportTestCase:runBlock: TestCaserunCaseBasicCommandLineHandleractivateSubCommand: HDTestReportrunAll TFTestCasetestParametersCurrentExecutionEnvironment activate:for:BasicCommandLineHandleractivateRSYMarkerDecorationmax BlockClosure newProcess HDTestReportrunAllTestCaserunCase HDTestReportrunClasses:named: HDTestReportrunTestExecutionEnvironment runTestCase:Setcollect:FLGlobalCompiledMethodClusterOrderedCollectionasArray SSequenceableCollectioncollect:thenReject:WSequenceableCollection allButLastx+ RectanglecontainsPoint: Collection detectMax:&Symbol ascending.SequenceableCollectionfifth2 ScaledDecimalround:j Collectionadd:withOccurrences:Fractionround:sn SmallIntegereven Collection includesAny:StringendsWithAColonj Collection newFromArray:^)SequenceableCollectionidentityIndexOf:m|String endsWith:=qStringallRangesOfSubstring:p BlockClosuremicrosecondsToRunРString beginsWith:=NSPerlinNoise2 noise:y:z:4DateyyyymmddSequenceableCollectionselect:^Boolean==>3 ProtoObjectifNil:ifNotNil:ҹTruenot  BlockClosureon:do:BOrderedCollectionremoveDuplicates SequenceableCollectionat:incrementBy:wTestCase performTest-String>= Character isSeparator5 Collection removeAll:SequenceableCollection lastIndexOf:startingAt:ifAbsent:dOrderedCollection growAtLastsSequenceableCollectionfindBinaryIndex:do:ifNone:E`String isAllDigits5 DateAndTimesecondF Collectionremove:IntegerhexzSequenceableCollectionreplaceAll:with: Collection+ Collection copyWithout:y#IntegernumberOfCombinationsTaken:> Collection allSatisfy:SequenceableCollectionoverlappingPairsDo:‰ CollectionasBag CharacterisLetterp RBMethodNode initializeSequenceableCollection runningMax:SequenceableCollection%lastIndexOfAnyOf:startingAt:ifAbsent:4 Exceptionsignal:e Collection inject:into: Collection isNotEmptywDate monthIndexf RBScanneron:[}SequenceableCollection combinations!Intervalstop! Collection noneSatisfy:Stringkeywordsju CharacterisDashPunctuationpOrderedCollection growAtFirstInteger factorial<1 CollectionflatCollectAsSet:b|SequenceableCollection at:ifAbsent:_ Characterjoin:sTTestCaserun:LSequenceableCollectionwriteStreamDo:5SequenceableCollection indexOfAnyOf:S Collectionselect:thenCollect: HDTestReportreportTestCase:runBlock:/0 Collectionselect:thenDo:SequenceableCollection findLast:ѝPathprintPathOn:delimiter:1SequenceableCollection beginsWith: <String asFourCodegColor asHexStringjSTON toJsonString:p ProtoObject ifNotNil:.SequenceableCollectionargmaxkSequenceableCollectionpolynomialEval: HDTestReportrunAllSequenceableCollectionsorted CollectionoccurrencesOf:LISequenceableCollection runningMin:SequenceableCollectionsize.SequenceableCollectionisSortedSStringasValidSelectorTrueifTrue:ifFalse:}"Point asFloatPointx CollectionaddIfNotPresent:[SequenceableCollectionreject:^BagasSetaIntegerstoreStringBase:length:padded:kF Collection detectMin:& CollectionadaptToCollection:andSend:xPackage isTestPackagezStringfindString:startingAt:Z CollectionaverageIfEmpty:[Stringmatch:K Collection asNewArray.NumbersecondsBooleanifTrue:L ByteString isByteString OrderedCollection add:after:pK CollectionselectEveryFirstSequenceableCollectionlast:Q Collection groupedBy:*SequenceableCollection with:collect:֟Trueand:}" BlockClosuresplit:indicesDo:F CollectionassociationsDo:/SequenceableCollection atAll:putAll:StringwithoutQuotingSOrderedCollectioncollect:SequenceableCollectioneighth2SymbolisUnaryFBSequenceableCollectionsixth2SequenceableCollectionreplace:SequenceableCollectionreject:thenCollect:[SequenceableCollectionoverlappingPairsWithIndexDo:S Collectionmedian6SymbolasSortFunctionSequenceableCollection swap:with:f RubTextEditorsurroundString:withCharacter: SmallIntegerprintOn:base:length:padded: CollectionifEmpty:¸STON listClass SequenceableCollectionatLast:ifAbsent:_Stringformat:NStringisAllAlphaNumericssTestExecutionEnvironment runTestCase:STON fromStream:nPointsideOf:+NumberminutesSequenceableCollection atLast:put:Integer hexStringz BlockClosuremillisecondsToRunDPoint<ҪIntegerhumanReadableByteSizeStringz CollectionasOrderedDictionaryzNumberround:. CharacterisAlphaNumeric? SmallInteger bytesCountx CollectionidentityIncludes: Metaclass classSide 1FalseifFalse:ifTrue:}"Falseor:}"SequenceableCollectiondetectIndex:ifNone: CharacterisControlOtherp Collection flatCollect:aFalsenot VariableBreakpointMockSubclass instVarReadsySequenceableCollectionsplitOn:indicesDo:r?True asInteger5SequenceableCollectionpairsDo:Z CollectionprintElementsOn:+ TestAsserterassertCollection:equals: DateAndTimeasDateSequenceableCollectionfirst:xDateweekday.IntervallastdSTONmapClass ClassDescription instanceSide.BasicCommandLineHandleractivateSubCommand:TrueifFalse:ifTrue:s CollectionnegatedSequenceableCollectionjoin:* AsciiCharset toUppercase:؜SequenceableCollectionbefore:ClyLocalClassScopemetaLevelForHierarchyOf:L KeyboardKeyfromCharacter:ifNone:SequenceableCollectionstreamContents:sbSequenceableCollectionasDigitsToPower:do: DictionarynewFromKeys:andValues:aColor rgbTripletSequenceableCollection flatCollect:zSPointabs.TrueifFalse:ATrueor: CollectionatRandom:weighting:o/BagcumulativeCounts CharacterisInitialQuotepUndefinedObject ifNotNil:Integer digitAt:base:Color fromString:EIBagsumSequenceableCollectionreduce:}{String asByteArrayLSequenceableCollectionatAll: TestAsserterassert:description:resumable: Exceptionsignal:PointscaleBy:vDatemmddyyyyzColorh:s:l:SequenceableCollectionanyOne.Numberminute. HDTestReportrunClasses:named: StringexpandMacrosWithArguments:YColorgreenObject>>>}{ Collection copyWith:_DSequenceableCollectionreplaceFrom:to:with:SequenceableCollectionbind:.BooleanifTrue:ifFalse:LColorh:s:v:SequenceableCollectionindexOf:ifAbsent:KColor colorFrom:PointxMBooleanifFalse:ifTrue:LArrayatWrap:2]STONassociationClass Set intersection:$ DateAndTimeminute8BagoccurrencesOf:/SequenceableCollectionwith:do:STON toString:pPointceilingxPointisInsideRectangle:. CharacterisEnclosingMarkp CollectioncopyWithoutAll:y# Character isCasedLetterpColorhex:u BlockClosure newProcess CollectionasCommaStringAnd!NumberradiansToDegreesw BlockClosurevalueWithPossibleArgs:Q Color h:s:v:alpha:N)Color hslSaturationString includesSubstring:caseSensitive:lPath printPathOn: CollectionremoveAllSuchThat:.SequenceableCollection!indexOfAnyOf:startingAt:ifAbsent:Integerprint:on:prefix:length:padded:= Collectionrange`Number truncateTo: StringendsWith:caseSensitive:SequenceableCollectionatPin:7Point isFloatPointTSequenceableCollectioncollect:from:to:Point*cDate previous: CollectionincludesSubstringAnywhere: Collectionreject:thenCollect: Collection withIndexDo:+FalseifTrue:ADateequals:;StringindexOf:startingAt: GeneratoronDo:y#String surroundedBy:*Falsexor:}"Booleanor:L CollectionasOrderedCollectionzSequenceableCollection withIndexDo:SequenceableCollection shuffleBy:>5CurrentExecutionEnvironment activate:for:SequenceableCollectiongroupsOf:atATimeCollect:?]SequenceableCollectionwithIndexSelect:NSequenceableCollectionafter:SequenceableCollectionninth2SequenceableCollection do:without:Pointmax: Collection ifNotEmpty:3Floatround:f+SequenceableCollectionbefore:ifAbsent:ŇSequenceableCollectioncloseTo:precision:SmallDictionarynewFromKeys:andValues:aSequenceableCollectionreverseWithIndexDo:qDate subtractDate: CollectionselectEverySecondTrueifTrue:}"StringnormalizeCamelCasebCurrentExecutionEnvironment runTestsBy:True|OrderedDictionaryat:at:ifAbsent:Number**}{Booleanand:LString asCamelCasebBagsortedElementsRSSequenceableCollectionsorted:sTStringcopyReplaceAll:with:y CollectionaddAll: Collection/SequenceableCollectionindexOf:startingAt:6 CollectionisEmpty>!SequenceableCollection,rString߈ CollectionasSortedCollectionz CollectionprintOn:delimiter: HDReport runPackages:} Collectioncollect:1 Collectionaverage0STONfromStreamWithComments:/ CollectionasSetBagsizeA TestAsserterassert:description:\IntegerdecimalDigitAt:m|Pointy! Collectionsum:m|NumberprintShowingDecimalPlaces:) ProtoObjectifNotNil:ifNil:.Boolean&L Collection reciprocalNumberprintStringBase:p CollectionmaxrSequenceableCollection detectIndex:CurrentExecutionEnvironment runTestCase:ClassDescriptionisInstanceSidew Collection-. Collection asByteArray SequenceableCollection findBinary:n Collectionsign Charactertokenish!RunArraynewFrom:ҕNumber milliSeconds CharacterisDecimalDigitpSequenceableCollectionseventh2 HDTestReportrun KeyboardKeynamed: String<=OrderedCollectionmakeRoomAtFirst MagnitudebeBetween:and:SequenceableCollection)indexOfSubCollection:startingAt:ifAbsent:SequenceableCollection pairsCollect:StringbeginsWith:caseSensitive:W%Stringrepeat:uInteger slowFactorialStringasHexSSequenceableCollectionatLast:f Collection emptyCheckSequenceableCollectionfindBinaryIndex:nBasicCommandLineHandlerhandleSubcommandStringincludesSubstring:at:#BooleanasBitLBooleaneqv:1SequenceableCollection allPairsDo:{ SmallIntegerlowBitӮ CharacterisDigitpSymbolasTestSelector>StringescapeCharacter:vString contractTo:% Magnitudemin:max:~ Collection sumNumbers)dSequenceableCollection allButFirstx+TestCaserunCaseSequenceableCollectionrunningAverage: RBMethodNodepharoDocCommentNodesbOrderedCollectionreversed Collectiondetect:SequenceableCollectionwithIndexCollect:- CollectionasSortedCollection:+SequenceableCollectionpermutationsDo:pSymbol descendingwSymbol asMutatorNClass instanceSide 1 Exceptionsignalȭ Collectiondo:separatedBy:IntegerprintOn:base:length:padded:1RSXMarkerDecorationmaxSequenceableCollectionatWrap:6 CollectionsumSTON fromString:Oh SmallIntegerprintStringBase:[SequenceableCollectionreject:thenDo:ЖPointcorner:. Collection//</F rNze(m?G^: fd}+ lWnJva $i;CZ6 Ib4y' :jF Yr] 'e7|?kV2^0 u#O{BM Ya3_x; 9R .Z ,q> QjU-]/ t7c|N*VmG#:Q}Y+p3 xJ &vR$iC6MyU'ltF"rN  e(A ?2 I! uQ dh+pBJa=;.ZEqMd'l>FD]9 e 7|* =m0I \`#h:  B nY5a3x&RiE\d6 {>U1 D]/ t"  5NA mX`2w:Q- @Y+Wp  _  1J &$= T\. o  s6{M)U'l "9eP|X*o2wIk^%u 8h  W  )B5aL$xT Rk.sE!d@1]H tP |g* zoAI`<h :-Y+DpLcLA&Rk=iE \ 8 d6{>)  <Ul /Ht_"g9~A X 4`2w:%QDp[c5 z=T0\. s7 !M@lW_1 v e~P,X*oI%<hSB[- r5 zL(TkE!8dO{W)nvHW$ 7P"g  (4`K#wS  j-rD Lc?=0\G sO{fn@ H_; g9~,XCKwbj< D [ 7 c 5z=(kG  Zs ^!f8  }@W3_ v$PCZb4`y<:S /[ - Yr   aL?kV ^0   \u 8d}6O+W )Un1H $;gR~FLHookPrimitiveClusterFLHookPrimitiveCluster"htestRemoveArgumentstestAccessingTempsVectorInBlock"test0FixtureRequirementsOfTAddTest testMoveTo&testStoreIntoTemporaryVariableBytecode#testFinalizationOfMultipleResourcesselectEveryFirstNewTools-SettingsBrowser atAllPut:testDiffWithLines testAtAll testMoving'testCreationByCommaWithMultipleContextstestFilterExtensionsindexOf:testChangeOfLayoutIsDetectedtestReadThenWrite"testRemovePropertySlotWithInstance"testFileOutSingleClassModification testIsPrimeexampleLiteralWideSymbol testCopyingtestMcWorkingCopytestColumnSpacing3testCaretInTheEndOfSecondWordHasSecondWordUpToCarettestNegativeZeroSigntestSearchForPatternCodetestCaseOfOtherwise testShuffleBytest4Bit shuffleBy:testCreationFromBytes1testSelectedMethodVersionsSizeIntegertestModelForIttestASTbitXor: allButLastDo:testCenterEmptyColorstest0FixturePutTesttestBuilderSuperclasstestCanConsumeLine!testServiceExecutesStartUpOnStarttestTagsForMethodsRemovaltestExamplePrimitiveModuleErrortestChainBehaviorPutChildtestCommandOrGroupNamedtestIsAffectedByChangeOfSubclassMethodWhichOverridesSuperclasstestDefaultDebugAPI timesRepeat:KtestVariableByteClassWhenTraitCompositionChangedShouldAnnounceClassModified7testCollectionWithSingleManyElementsReturnsTheRequestedtestFutureOnDoSucceedsOnSuccess#testReadComputedSlotReflectiveNoArg Spec2-MorphictestPragmaAddingPropertytestBadKernelArgumentMorphic-Widgets-Tree testUnevenDoremoveAllFoundIn: Hiedra-TeststestExampleBooleanSlotCtestWhenOpenADirectoryShouldDisplayHisChildrenFilterByCurrentFiltertestAllLocalCallsOntestUnregisterTool-DependencyAnalyser-UI-TabtestCheckChildrenActionstestRemoveDuplicatestestTrivialMethodstestForceToPaddingStartWith beforeHookstestPragmaAfterBeforTemp asFourCodetestAdditionInIfAbsentPuttestNewLineBeforeEndBrackets testMultiline8testWordsAwareIteratorFiltersByASingleWordFindingNothingtestLayoutWithSlotsEqualstestSuperiorWithIntegertestHasTemporaryVariablesBlockdays'testMonospaceDoesNotTreatNestedElementstestPlaygroundWidenOnSelf&testFillingWithClassesFromOneHierarchy testPassingByReferenceAStructInCSystem-NumberPrintingtestIsAbsolutetestOnForkSplit*testIdentityKeyAtExistantValueReturnsOkKey testContinueDtestBestNodeForSecondInstanceVariableSelectionShouldBeSecondSlotNode'testANegativeIntegerCannotBeAPowerOfTwo addNoSort:Sindarin-Tests testByteAttestNestedStyles'findSubstring:in:startingAt:matchTable:testRowSpacingtestPointersToCycletestOneMBAllocation%testWriteInGivenContextShouldIgnoreIttestResponsibilityEval#testIdentityIndexOfIAbsentDuplicatetestNotifyBreakpointAddedoddtestIsRegExpValidtestBasicGetLarge,testTerminationDuringNestedUnwindWithReturn2testRaisedToIntegerWithFloatstestNestedCommentstestLiteralCharactertestAndtestUTF8EncoderWidetestInitializeQueueWithJobs testReplacetestRepositoryUrl!testBlockWithParametersASTMappingtestDependentPackagesSizeUnifiedFFI-TeststestSimpleOneDelay subtractDate:FreeType-MorphictestUnifyTraittestRemoveLeaf2testBrowseRuletestKeywordOnTheSameLine2piCursor%testCopyForBehaviorDefinitionPostCopytestNilIfNotNilReturnsNil6testCallbackInSingleFunctionUsingSubclassOfFFICallbackbyteSizetestExampleWhileWithTemp KeyNameTabletestFutureExecutestestStylerDefaultDtestWorkerProcessInstancesAreCollectedAfterStartingAndStoppingWorkermergeSortFrom:to:src:dst:by:testImportAMethod Fuel-Core testMcPackagetestMaxLengthTruncatesText%(testIncludesIdentitySpecificComportement%testDifferenceWithNonNullIntersectiontestContinuationExample1testBuildClassTraitsAPI generatorfromCharacter: dayOfWeek:testPredecessorstestResignalAsUnwinds testAttachTotestDuplicateClassErrortestIsSeparator testWithRB8testSuspendForSnapshot testTraittestHiddenFilestestCreateBuilderWithNil testIntegerstestAsSlotCollectionoptionInlineMetaObject joinUsing:testJumpOnEndOfSourcetestAddTraitSettingPackage testNoLegendtestPushLiteralConstantBytecode"testCopyNonEmptyWithoutNotIncludedtestUnsubscribe testPositionKtestBeginsWithFilterDoesNotFetchTwiceIfTheFilterIsARefinementOfPreviousTexttestDrawingWayOutside5Object+testSearchForExactCaseSensitiveStringSucess-testMergingNestedRectanglesReturnTheContainertestPipeEscape testInputfilewithIndexSelect:(testLoadNotExistingClassNameForRealValueAtestIsAffectedByChangeOfSuperclassMethodWhichIsAlreadyImplementedtestEmptyCollectionIsAtEnd&testOpenDefaultOnNonExistantFontFamily)Calypso-SystemPlugins-SUnit-Queries-Tests(testStoreAndPopTemporaryVariableBytecodestring OSWindow-SDL2testIsFirstElementNiltestIsImmediateObject/seentestInsideTriangleWithWithtestDecodePlusAsSpacetestMouseDownFromMorph&testRetrievesStateOfAllNavigationViews testModels*testCaretInBetweenTwoWordsHasNoWordAtCarettestEscapeTripleBoldMenuRegistrationtestArrayBindingsWriteGlobalstestSegmentFromPointstestComputeBandwidth testAllSlotstestSimpleReporttestFindContextSuchThat1testLookingForStoreDiskLowercaseReturnsThisMethodtestPrintingTallyUninitializedtestPresenterTakesRightHeight%testStoreIntoReceiverVariableBytecode characterBaselineOfRefactoringFreeTypetestPrioritySetAfterStarttestNestedLevelcopyWithoutAll:testBasicNewKernelDensity1testLogLocatorNumberOfTicksIsOkWithReversedDomaintestBuildVariableHeuristic2testConvertingWithNewBasisShouldKeepMetaLevelScopetestExtensionSelectorsForClasstestPrintBreakpointItem!testWhichSelectorsAccessFindSlotstestUnaryTooLongArgumentremoveAllSuchThat:testSwapStartAndEnd'testCanBeEnumeratedForGivenClassAndUser$testOrWithLeftTrueShortcircuitsRightrcvrtestInitialButtonDownIsDisabletestAtAtIfAbsentPut8testClassVariableDoesNotDuplicatesSubclassesOfSuperclass!testConvertingWithNewBasisObjectstestBreakpointInitializationcapacitytestLinearLocatorDataIsOk contractTo:2testHeuristicBuilderForTwoHeuristicWrapsNonWrappertarget&testBestNodeWithValidSelectorMidSource)testDuplicateClassPreserveSharedVariables testRemoveOnem valueArray isOctetString-testConvertingToReducedScopeByExtraClassScopetestOldBackOnPosition1testResolveTempPathFromTMPNewTools-WelcomeBrowsertestIsBaselineNameCollections-Strings-TeststestIncludesAssociationNoValuesplit:testKeyUpFromMorph&testDefinedClassesAndDefinedClassNamestestPrimBitShiftworkingDirectorytestAstestConvertingToAsyncQuerytestReplacePresenter testPrimEqualtest05addBeforetestAnnouncerSuspendingtestMarshallingTrueReturnValue#testNoExtraSpaceArroundParenthesis2testIncludeInstancesFromAllAnnotatingMethodsOfAnyClassInSystem testclassThatDefinesInstVarNamed;testCustomizationWhenChangeCollectionOfPreviewerShouldBeSetpasHextestInBlockTempShadowingtestLocalVariableMetacello-TestsCoretodaytestAddBeforeAndRemovetestEndClosesCompletionContext.testInferVariablesWithNoInitializeFindsNoTypes#Calypso-SystemPlugins-Flags-BrowsertestCompileFulltestBehaviortNamedIndirect&testLastFilesForExtensionBrokenPatternNumberParser-TeststestConvexHullOntestLiketestBreakpointsForModeltestComposeMethodText nextIndexprintStringBase:nDigits:OpalCompiler-CoretestIncludeSelectorOfClassFFIMethodRegistry!Calypso-SystemPlugins-FFI-Queries truncateTo:testIfNotNilDotestBuildMethodHeuristic testNewMovietestBreakpointOnTempReadstestDefaultActiontestUsingMethodsFindsPoolUserstestLiteralEqualitytestSizeSignedLongWindows.testWorkerProcessIsWorkingUntilAllTasksAreDonehourtestLazySlotCompiledtestRelativeFileRecognizedtestParentResolutionIceberg-Plugin-Metacelloretval testMinusanObjecttestWithoutPreTabs!testCommentedLineMarkupInsideLinetestRemovePathIfAbsenttestIfFalseIfTruetestHorizontalLinetestEnvironmentWrappertestMathBlockIsMathBlocktestReferencedPackagestestSkipThroughNode)testMarshallingStringReturnValueWithAliasSystem-SessionManagertestChangeLayoutTypeFromBytetestReturnHasSpaceBetween+testInitializedClassVariableReflectiveBlock testSetUptestSlotsImplicitEnvironment.testArrayEvaluateWithBindingsWithUppercaseName testIdentitytestNBitAndNNegatedEqualsNtestFlagtestGetPharoVersiontestSignedInt8testMultipleTraitstestRegisteredPackageslastIndexOf:ifAbsent: testFutureAndThenExecutesInOrder testStoreTemp"testHeatmapContainsAGradientLegendtestNoExtraSpaceBetweenValue2testOrdinalScaleRangeRoundBands$testOptimizedBlockWriteInNestedBlock BaselineOfUItestToLongNewLine2+testExampleWhileModificationAfterNotInlined*testMathBlockWithParametersAndLatexComment Commander-Activators-ContextMenu testEquals5testVariableWordSubclassname: testReturntestSimpleSlidetestBuildSimplePoint2testARectangleContainsItsOrigintestComplexSlotsClassRoassal-InteractiontestDefaultFonttestBasicEnvironment&testCreationOnMultipleScopeOfSameBasisscaletestMessageReceiver$testOpenMenuCreatesCompletionContexttestCopyAfterEmpty removeAlltestMemoizedDictionary0Calypso-SystemQueries-Tests-P2WithSubclassFromP1testErrorNonCorrectImagetestCopyReplaceFromToWithirtestHasMagicNumber compare:with:5testEditClassScopeAddingClassAndCompletingFullPackage4testGlobalCounterReferenceAfterUninstallInstallationOmbutestPresenterOpenAndClosetestKeywordNoExtraSpacesBefore testIfFalseCalypso-SystemQueries-TeststestZeroRaisedToIntegertest0FixtureConverAsSortedTesttestAsIntervaltestBlockCannotReturn copyFrom:to:testCopyForBehaviorDefinitionin testScopeTo testMethodAtlastByteoptionOptimiseSpecialSendstestRemoveMethodAnnounceRemoval%testExampleMethodWithOptimizedBlocksA4testButtonDownClickShouldSelectionIndexBeDecrementedtestIfExistsIfAbsenttestGrandchildOfReference5testCanStillExecuteWhenAimedNodePcIsAfterInAnyContextRtestReplaceKeywordTokenWithCaretInTheEndOfWordWithFollowingWordsReplacesEntireWord*testBlockParameterWhenTheLineWillBeTooLongtestIfNotEmptyifEmptytestObjectCentricBreakpoint,testInputFileOnOneLineWithJunkSpaceBeforeEndtestGetTempFromTMPDIR)testCreateNormalClassWithTraitCompositionSystem-Utilities6testClassWithSlotCallsInitializeSlotOnInstanceCreationtestRemoveSharedVariabletestAddressesInsubclassResponsibility'testRemoveProtocolOnNonExistingProtocolNewTools-Spotter-ProcessorstestBeHomogeneous streamSpeciestestLiteralEqualtestFileSystemtestOpeningBrowserCursortestSumUnsignedCharImages-AnimatedtestBehaviorCommentChangetestRejectAllThenDochtestBordersColor*testDuplicatedInstanceVariableInSuperclassBaselineOfKernelTeststestShiftSlotAndMigratetestComputeDependencies"testMouseEnterEventIsNotDuplicated.testShouldFindDependencyWhenUnimplementedCallsx0testSlowFactorialtestPrintShowingDecimalPlaces testSpace#testDontFormatCommentWithStatement2#testNextVersionAlphanumericFilenametestPurePathIsRelativeFileMetacello-Gitlab-Testsstrm&testTryingToModifyReadOnlySubInstances testNextPuttestTranslateBytestRenderingOfMyOwnComment$testRetrievesExpectedFlatQueryResult testClassDescriptionMakeResolved-testResignalExceptionThatHasBeenSignaledTwice testShuffledtestSequenceIfNotEmptyifEmptytestImplicitEnvironment pieceBlock weekdayIndextestExampleTwoSlotWithState CharactertestDoitContextCheckClasstestHighBitOfMagnitudetestInitializeInRoassaltestTimesRepeatExecutesBlock testEnvironmentWithMultipleLinestestFindThisPackage"testParagraphEnvironmentParagraph3testUnmatchedBlockBrackettestExtractOneArgWithMinustestMethodsEnumerationtestUniqueIdentifiers/testMathBlockWithParametersCaptionAndFormatting&testIncludesComportementForDictionnaryMonticello-ModelSystem-Installers-TestslntestExampleNestedBlockScoping'testMultiplicationDoesNotLoosePrecisiontestIsShadowingtestOnBaselineOfUnifiedFFItestMetaDataEatsOtherBlockstestChangingSuperclassToOtherdeltatest0SortingArrayedTest testCycle02!testExampleSimpleBlockLocalNestedSTON-Text support5testSettingNewEnvValueDuringRemovesItAfterDuringBlockAST-Core(testBackWindowsAreFindWhenUsingSubstringtestConditionBehavior testExample01ClassAnnotation$testClickOnCanvasShouldUnselectShapeacctestPrimesUpTo!testMaintainingSelectionsOnUpdate'testTrueIfFalseIfTrueEvaluatesTrueBlocktestTwoClassWithSameNamegtestParseMissingStartURL1testSelectShapesWhenThereAreAlreadySelectedShapestestToDoReturnsReceiver testTakeFirst testNoTriggertestAsPackageIfAbsentNewTools-FontChooser testRoundingtestMetaclassNameJtestSubstringFilterDoesNotFetchTwiceIfTheFilterIsARefinementOfPreviousTexttestTransformations postambles'testTruncatedToSizeResultHasCorrectSize'testComparisonOfFunctionsDefinedByBlocktestRemoveOneOfThree OmDeferrertestGpsExample2@testBestNodeWithInvalidPlaygroundIncompleteMidSourceThenBrackets3testIteratorOnACalculatedCollectionReturnsOnlyFirst argumentstestExtractSetupExample5 testMerge8falseAlternativeBlocktestPngDecodingColors8testIsOfflineFalseprintShowingDecimalPlaces:*testWithoutClassesRemovesClassesFromSendertestIntegerHexisControlOthertestPrintWithDelimitertestClassWithClassSideImpacttestStepToImplicitReturnNewTools-SystemReportertestChangingPcAssociatedToMethodOrSequenceNodeKeepsStackAsItIstestKeywordOnMultipleLine12+testWithRightDoesNotProduceInvalidRectangleClap-CommandLine6testDoesNotApplyForMethodNodeInContextWithNoSuperclass<<testLogLocatorDataIsOk$testLogLocatorDataIsOkStartingAtZero indexArraytestOldDefinitionFile testBlue8testClassEnvironmenttestIncludeClass#testStringWithoutInitialCommentFrom testTempNamed testSkipToPCrightafter:testHasChildrentranslateToLowercaseMorphic-Widgets-ExtracopyReplaceAll:with:$testBuildVariableUndeclaredHeuristic testMatrixisSpaceSeparatortestUTF8EncoderAuto&testJumpOnIfTrueIfFalseAfterCompletiontestVeryDeepCopyWithtestIsNotAbstractSystem-Changes testGoodPathRemovingNonEmptyLeaf)testTabIndentIsNotAffectedByNumberOfSpace testPopToptestVennDiagramTwoSetstestCodeCreatesInnerText digitAt:base:testLinkItalicAPIToAccessText testAtWrap testFindLast growAtLast substringstestShouldAcceptFloat testComponent+testEnvironmentIsCreatedWhenTagDoesNotMatchtestPackagesOfClass*testIndexOfSubCollectionStartingAtIfAbsenttest4BitColors test02addLast5testFutureSuccessCallbackIsCalledAfterValueIsDeployedtestJoinArrayUsingChartestJustTheArguments_NoDefault0testAccessingArgOfOuterBlockFromAnotherDeepBlocktestBeforeIfAbsenttestUTF8EncoderIncompleteMonticelloTonel-Tests testFileName.testBestNodeWithInvalidPlaygroundParsableErrortestPeriodAtEndOfMethode"testFalseOrAnythingReturnsAnythingSystem-Localization-TeststestAssignArgumentVariabletestSearchPath1testsourceCodeTemplateFortestContinuationExample2System-CommandLineHandlertestRechainPreserveListtestLeftTopAligned&testSerializationWithFuelMaintainProxytestCompileEmpty testReadFrom testTagOftestUsingClassesBaselineOfQualityAssistanttestMethodContextPrintDetailstestIsExecutedFromMultipleScopetestWithWithWithtestSteppingReturnSelfMethodtestBoxPlotCreatedWithDatatestHasBody_notinitializeRed:green:blue:range:AtestConfigureContextWithDoesNotUnderstandShouldMarkContextAsErrortestIfNotNilIfNil0ArgSpec2-Examples!testAnchorReferenceWithoutClosureoptionConstantBlockClosuretestJumpOnCascadetestEditClassScopeRemovingClassProfStef-Tests testHasBodytestHasNonDefaultValue_DefaulttestInexactSqrttestCopyFromToWithForSorted*testTrueIfTrueIfFalseReturnsTrueBlockValueSpec2-CommonWidgetstestSortedUsingBlocktestLoadNotFoundMicrodown(testWhenItOverridesSuperclassAnnotations*testBlockWithArgAndEnclosedBlockSourceNodeeqv:)testLogLocatorRaisesErrorWithNegativeData,test0FixtureAsSetForIdentityMultiplinessTest&testAccessingMultipleVariablesInVectortestDisplayStackSizePharoDocComment-TestsRefactoring-Critics-TeststestDetectSequencedtestNoExtraSpaceAroundPeriodtestInstantiationtestfindCyclesmapClasstestScanAllSystemDisabledtestGetMeanOfDatasetSizeOnefindBinary:ifNone:testMaxExactIntegertestRemoveProtocolAnnouncement2testFileOutSingleClassRemoval%testBecomeForwardDontCopyIdentityHashtestParsingFromVersionString=testWhenCustomizeFilterShouldFilterDropListPresenterIncludeIt Manifest-CorepeekBacktestInstanceVartestCopyEquals testCriticaltestCountBehaviortestCleardependencies testAsBagtest1BitDisplaytestCopyWithoutRottenTestsFinder)testParentResolutionWithAbsoluteReference6testReplaceTokenWithCaretOnEndOfWordReplacesEntireWordtestCreateNormalClassNamedtestColumnsWithChildrentest4BitDisplaytestTransformReturnASubAreatestSimpleTwoDelaystestReturnFalseBytecodetestalltestWithAllMissing+testLayoutChangeShouldAnnounceClassModifiedtestSpanColumntestDuplicatedInstanceVariabletestFaultyScripttestAddProtocolAnnouncement2BeautifulComments!testTwoConsecutiveEscapeCharactertestConvertFromIntegertestHexDumponmax#testRetainBlankLinesBeforeComments3STON"testDoesContainReferenceFileSystempiecesCutWhere: listClasstestExtractSetupExample1#testLazyClassVarReadReflectiveBlockasOpenIntervaltest32BitDisplayEpiceaBrowsers-Tests testWithRB6 emptyCheck aRectangle testUploadtestNonActiveBlockContextHome&test0FixtureSequencedElementAccessTest@testChangingPcInTheMiddleOfStatementSkipsTheBeginningOfStatementtestCriticalIfError,testPostCopyMethodNeedsToBeInCopyingProtocoltestExtraIndentInParentheses testRemoveClassRemovesExtensions Jobs-TeststestRenamePackage asByteArraytestMergingOverlappingRects+testMissingPeriodSeparatorBetweenStatements!testEnsureDeleteNonEmptyDirectoryGlobalIdentifiertestNameWithDelimitertestEnvironmentFortestKeywordFormatReceiver2testStepOverFinishedExecutiontestDoDrTests-TestsProfiling-TeststestImportString>testMoveMethodFromExtensionToClassicProtocolAnnounceRepackagedseconds testIfCutDoWithCutAndUncutsNoCut testLabeledtestOnForkErrorReturnsNiltest32bitRoundingMode testSqrtFloortestNodeForBCOffsetTestFull"testCopyReplaceFromToWithInsertiontestOrganizationDefinitiontestComposePromptWith/testReadIntoStartingAtCountFromStreamWithOffset5testGetShapesFromRectangleInCompositeWithChildOutsidetestBasicCollectThenDo testFileNamed,testIteratorOnACollectedCollectionIsFiltered#testShouldGetUnresolvedDependenciestestCanBeEnumeratedRottenTestsFinder-FakeTests+testSlotAdditionShouldAnnounceClassModifiedMicrodown-TeststestIncludesKeyLocalyDefinedtestIsExecutedFromEmptyScope(testConvertingWithoutExistingBasisObject+testNewScopeFromASinglePackageAndItsClassesisInsideRectangle: testSortUsingGofer-DeprecatedtestIsBuiltWhenItemsExisttestRemoveAllHaltsFromMethodtestIntersectionsWithPolygontestNoNewLineAfterCascade aBinaryBlock Athens-Core testPeekBacksubset*testNewObjectCentricVariableBreakpointItemHermesUtestReplaceKeywordTokenWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWordtestNodesForEachAndLAyouttestIfNotNilIfNil1ArgAsVar/testSingleRemoteDifferentBlocksSameArgumentName testDigitSumtestNodeCoverage2yin$Calypso-SystemPlugins-Traits-Queries GreenShift!testFutureZipSuccessIfBothSuccesstestNonResumableOuterRoassal-Animation-Tests testCaption,Calypso-SystemQueries-Tests-PWithSingleClasskeyFromCharacterTable currentChar milliSecondstestEnvironmentStubseventestNewLineAfterTemporariesBaselineOfNumericScalestestCompiledMethodClasstestTraitNamedelem testSameModeltestIfModifiedSinceNotModifiedRefactoring-UItestHasMethodsAtestEvaluateWithBindingstestUpdateShape"testUnmatchedExpressionParenthesistestCoordinatestestSelectShapes testAccessingTempsVectorInBlock3testSelectThenDoOnEmptyreversedtestBasicWithCallbackstestGetBindingsItemsForMatchtestAdoptQuerytestAddressesAndNamePairsIntestShapeHasShadow3testInstanceCreationMajorMinorSuffixBuildCommitHashtestMarkBlockPointBlocktestDefinitionWithSlotstestLazySlotPrinttestByteArrayEmptytestHeaderLevel1!testDoItRequestorReadRequestorVartestPrimDoWith"testSkipUpToNodeStopsOnReturnNodes,testLiteralsEvenTheOnesInTheInnerCleanBlocks^ testAssert(testBestNodeWithValidCascadeMidStatementaddAll:testIsChildOfPath!testClassNameWithInvalidCharactertestStoredSettingsIsNiltestCreateNormalClassSuperClass)testResetRestartsIterationOnTheCollection STON-TeststestShallowCopyEmptytestExpandedProtoObjectClasstestImmediateClassIsImmediatetestMultiplyByArray*testSearchForRegexpEndsWithCaseInsensitivetestLocalMethodstestAddAlreadyThereDoesNotCounttestBackwardCompatibility32testCancelCompletionInClassWithDynamicExtentLogsIt testParenttestExpressionReferencingSelftestStoredValueForSetting$testSearchingVeIncludesSaveAndSaveAstestColoredNodesForEach/testShallowCopyMethodNeedsToBeInCopyingProtocol9testHeuristicBuilderForSingleHeuristicLastIsNullHeuristic testCodeBlocktestHeaderWithItalic testToCount3testMethodPackageOfRemovedClasstestTrueIfTrueEvaluateBlocktestFromSingleClasstestFoldersOnly'testBuildVariableClassVariableHeuristictestAddProtocolat:put:testDegreeNumber Files-PrompttestAssociationsSelecttestReverseUnevenDotestAddAfterIndexjoinUsing:last: test0FixtureDictionaryAddingTest repeatedWritetestFocusRotationBackwardstestMultiProcessWaitOnSameDelaycombinations:atATimeDo:testNotTheSame isAllDigitstestKeywordOnMultipleLine8testIsMessageSend;testCreateUndefinedClassShouldCreateNewClassThatIsUndefinedSpec2-Adapters-Morphic>testMoveToNodeRaisesErrorWhenNodeIsNotIdenticalToANodeInMethodtestCalculationOfHighestUpdate'testSecondScriptShouldNotBeChildOfFirsttestAnnotationWithParameters testAverageYsurroundedBySingleQuotestestAllNamedIntestPackagesDiffToDisplayBis7testDTTestCoverageResultTheSecondNodeSubResultsAreLeafs ifNotNilBlocktestIfEmptyifNotEmptytestWriteAndRead printFormat:testHasZeroPriorityByDefault"testSingleQuoteBlockFollowedByList$InitializePackagesCommandLineHandler)testClassOrTraitNamedReturnsNilForGlobals arrayTypeDrTests-TestCoverage-TestsselectEverySecond testDebugAPI fromString:ifEmpty:testEqualBlockEqualitytest4ViolinsAnd2Clustersmerging:testDottedMajorMinorPatch*testNonOpenPresenterDoesNotRaiseBuiltEventTool-Profilers startSearch!testNextVersionAlphabeticFilename testWithRB93testWordsAwareIteratorFiltersByASequenceOfCamelCaseBaselineOfMisc Tool-BasetestIndexOfStartingAtDuplicatetestOneHitTwice testSelect#testWorkerPoolDoesNotExceedPoolSizetestAllButFirstNElementstestStylerSpineRed Tool-Registrytest3+testCreateSubclassOfNilCreatesSubclassOfNil isCasedLettertestUsedTraits testDigitAth:s:l:Friday,testReturnsInstancesFromAllAnnotatingMethods testPrimAt aSortBlocktestWithBottomtestIsDictionary key:value:testLiteralIntegertestDoItRequestorShadow!testFourBackQuotesOnMultipleLines testInstSizetestJumpOnSelfexampleNonSpecialLiteralIntegerBaselineOfBasicToolstestMessageText(testGettingSingleAnnotationUsingSelector Zodiac-Extra at:at:put:BaselineOfDrTests"testMakeRelativeFrom2RelativePathstestFormatBody$testCopyReplaceAllWithManyOccurrenceCollectionIsEmpty$testFileReferenceExtensionMethod_dirtestCanBeEnumeratedForGivenUserArithmeticErrortestOrdinalScaleRangeBands/testBroaderFilterCompletionShouldBroadenResultstestNewLinesAfterComment2newColoverlappingPairsCollect:testBreakLinkOncetestAssociationAtIfPresent testNextShouldReturnFirstElementtestClassWithClassTrait testPeekLast/testDoesApplyForMethodNodeInContextWithNilclass firstParm testMergingOverlappingRectangles toUppercase:j-testFirstBcOffsetForNodeWhenMappedPcsAreEmptytestStripNTabstestHeaderLevel4WithBoldincludesSubstring:testCopySameClass reduceRight:testBaselineOrConfigurationNametestMoveDownInStack testSortBlockOtestMoveToNodeWhenNodeIsInBlockThatCreatesContextAndBlockHasBeenCreatedBackwardinstructionStream$System-BasicCommandLineHandler-Tests9testBuildPresentationWithFailureShouldReturnCodePresentertestHashBlockEqualitytestSumUnsignedShorttestAssociationAtError testWithRB4testBreakpointOnAllTempAccessestestSystemIntegrity&testBlockWithTempReturnsLastExpressiontestIsOfflineAndResourceFound0testBuildWidgetPresenterWillSetPresenterPropertytestAddIncludesSizeReclaimtestProperRemovalProtocolIsUsed,testClampReturnsSameNumberIfBetweenMinAndMaxtestReplaceWithSpaces2$testIsExecutedFromConcreteScopeClass-testFutureSuccessCallbackExecutesInNewProcesstestRepeatWithTempInBlocktestContentsInsideSubFolder*testWhenDeclaringMethodNotReturnAnnotation/testExplicitNotificationRaisesEventWithNewValuetestPositiveIntegerPrintingtestUnmatchedBraceArraytestFormatMultilineMessagetestChartestExampleSimpleBlockArgument2.testStClassProcessorIsRemovedAfterUpdatingTexttestInt8 substrings:testFirstBCOffsetTestvalItestAsFileLocatorOrReferenceReturnsALocatorWhenStringRefersToAKnownOrigin*testFutureCollectFailsOnFailingMapFunction+testClassOrTraitNamedReturnsClassForClassestestUnsignedInt8sixth!testCreateTraitWithoutOtherTraitstestUpTotestSpaceAroundPeriodwithSeparatorsCompactedtallyred!indexOfAnyOf:startingAt:ifAbsent: valToPowertestMinimizeWindow testMaxSizetestNotSelectsNotFFIMethodKeymapping-SettingstestExampleTempNamedPutCopying3 testLimitHeuristicCompletion-TeststestLogLocatorNumberOfTicksIsOktestPngEncodingColors8thisXprintElementsOn:testAssignGlobalVariabletestExpressionNoAssociation2testAnonymousClassAndSelector Text-Core; asInteger:testBestNodeForClassVariableSelectionShouldBeClassSlotNodetestDefinedVariablestestSubclassesisSorted testPlainNexttestBadInstantiationtestAccessStrategytestBinaryMessageComments testCritiquestestSetErrorMargintestUpperPoint)testOnceParsedCurrentShouldBeTheRootblock testUpToAll testPragmas#testTerminationDuringNestedUnwindB1BaselineOfShoutv1aSortedCollection ZnLogEventtestOneMWordAllocationtestPrintingBold2factor*testNoNewLineForBeginingOfATooLongArgument'testLookingForStoreDiskReturnsDiskStoreZinc-Resource-Meta-CoretestOpenAllOnUnloadedFontFamilytestHugeIntegerCloseToxy4testTraitAliasTargetSelectorShouldBeExistingSelectortestUTF8OverlongtestResumableOutertestOpenAndClosePresenter testTAddTwice"testRevertingAllRedefinedInstances@testWorkerPoolDoesNotExceedPoolSizeWhenSchedulingTasksInParallelindex testWithPopuptestLiteralIsInLiteralFrametestDetectEncodingtestTwoArguments+testBlockParameterWhenTheLineWillBeTooLong2testScanAllSystemEnabledtestInsetRectangletestNoNewLineBeforeCascade#testOpenPresenterRaisesDisplayEventtestEmptyArraytestTwoEventHandlersAreAttachedyyyymmddwithAll:testWatchVariableWritesInClasstestRoottestReferencesToAClassInBlocktestIdentityIndexOfKeytestThreeHitSameOnetestGetMicrodownParsedText testHasIcontestUnaryMessageComments*testForbidCreationOnScopeWhichNotSupportIttestPrintPathOn!testAndWithLeftTrueEvaluatesRighttestPngWriteReadUsingFilestestRemoteTempInVectortestFullSpectrumtestSetMovieDirectorInvalidisBytes/testSmartQuoteSurroundsDoesNotEscapeDoubleQuotetestIsNotRelative appreciate6testOptimisedPlusSpecialSendsMessageDoesNotCaptureSend+testCommentOnMultipleLinesWithASingleMarkuptestAddingPackage$testAnyOneWhenAllContentsWasGarbaged|testSpaceBeforePeriod=testExplicitRequirementMethodsShouldBeImplementedInTheirUserstestSumNumberstestAnEmptyRectangleHasNoAreatestEmptyOnMultipleLines3testWithExtensionAddsExtensionNameContainsExtensiontest0FixturePrintTesttestTallyTreePrint,testFalseIfFalseIfTrueReturnsFalseBlockValueNautilusRefactoringtestFlatCollectAs testAtPin!testIntersectionsWithVerticalLine lastIndextestAllRunningProcessestestTwoArgBlock lastIndexOf:JenkinsTools-ExtraReports*testNotAffectedByChangeOfNotAbstractMethodoriginalContents testBasename asOctetString2testItalicsAndNestedBoldsWithClosureAfterOpenBolds!testDegreeCosForExceptionalValuestestSchedulerTerminationtestRemoveElementFromEmptytestStepToReturnWithHalttestEnableDisabledHalt testHasBindingThatBeginsWithSlottestStringExtensionMethodclasserror: lightness/testConvertingToIncreasedScopeByExtraClassScopetestFindGIFPreviewersignBittestInitializedSlotUpdateClass/testNewLineBeforeFirstKeywordDoesntAffectBinary*testNonDuplicatesRemoveDuplicatesWithThreebasenametestVerticalBar testBmp8BitasSymbol+testSubscribeBlockWithoutParametersIsCalled padLength testInclusion SUnit-VisitortestSelectionStoptestVariableWordClassIsWordsNewTools-Inspector-Extensions aCharactertestUnaryNoExtraSpacesBeforetestWhileWithArgSystem-FileRegistrytestEqualBlockorangetestDeleteAllChildrentestBreakpointOnClassVarWritestestConstructedClassEnvironmenttestKeywordOnMultipleLine11testInstallSimplePoint27testClassWithSlotHasInitializeMethodWithInitializeSlotstestSimpleCreatetestShouldQuitasOrderedCollectiontest2BittestNewTraitExlusiontestFillInTheBlanktestCulltestByteDecodingtestWriteSectionTitleOntest4BitReversed noneSatisfy: asCommaString testNumbers$testStoreShouldNotCloseBackingStreamspecies$testUndeclareSlotFixWhenSlotIsLoaded testAtWrapPuttestCompileSource contextClass testMetaclass&testFillingWithOnlyClassWhichHasTraits testBenchFortestMaxLengthIsNegative testSeparatortestGrowWhenNecessaryclosetestChildOfReferenceaddLast:testMessageSelector6testSingleLevelListStartingWithoutSpaceSplitParagraph2testHasTemporariestestFigureWithParametersBtestAcceptEntryLogsAverageTypedCharactersDoesNotAffectOtherIndexestestScaleLinearisFloatSpec2-Code-Diff!testFigureWithParametersWithBlanktestOnceBehaviortestStoreSettingNodeTwice testStoreIvartestPackageOrganizerCollections-Arithmetic"testCreateVariableByteClassWithAll-testIteratorWithSingleElementIsAtEndAfterNexttestRegisterSubRegistertestReflectiveReadWriteBlocktestHasEntryNamed testOptionAtDebugPoints-TeststestPseudoVariableShadowing!testNoTraditionalBinaryPrecedencetestDoesNotDisplayEmptySlotstestBuildingGroupstestSign!testDoubleArraysHaveCorrectLayouttestChooseDirectory testPrimValue testDepthtestFalseIfTrueReturnsNiltestDeclareGlobaldetect:ifFound:ifNone:testKeysAndValuesDoEmptytestLazyClassVarCompiledtestAddBoxPlotsReturnsNewCharttestEnsureEndsWithHiedra-ExamplestestAddRemoveVariableBreakpoint2testAccessorInstanceVariableSlotGeneratesAccessorsisDecimalDigitSystem-LocalizationatWrap:testReadingFromContext minElement testAliastestFillingWithTraitAndItsUsers MonticellotestLabeled04HasModel testGrouptestReadEvalPrint isIntegertestIndexOfIfAbsent>testWorkerInstancesAreCollectedAfterStartingAndStoppingServicetestExampleSlotWithFluidAPI-testBlockWithTwoArgumentReturnsLastExpressionvalues0Calypso-SystemPlugins-Reflectivity-Browser-Tests endsWith:testContainsLocatorcollect:from:to:testMethodTemptestPackageAdditiontestTraceForDisabledHalt associationtestMathBlockWithBadClosure,testSubscribeToChangeRaisesEventWithNewValuetestJumpAheadTo testImageCollections-Sequenceable-TeststestDefinesSlotNamedtestOneArgumentWithGC testArgumentstestCollectAsWithParenthesisnewFromKeys:andValues:testIfNilIfNotNil Epicea-TeststestSizeUnsignedLongWindows testFileOutMultipleMethodRemovaltestProperClassTagCasingtestAnnotationsWithoutClosurestring1 CPUWatcher%testFourBackQuotesClosedByThreeQuotesHtestReturnExtraSpacesInIndentWhenMultilneWithThreeSpacesAfterCaretSymboltestOriginalNametestPrintingRecursiveLimitedWriteStreamwith:with:with:with:testReadStreamDoifAbsentNotReflectivity-Examples2testHandlingWhenThereIsSomeExclusionButDontAppliestestDictionary asDictionarytestParseColorVariabletestEnvironmentWithCodeBlock testAtPutNilnextChar,testClassifyUnderExtensionFromTheSamePackagetestNoPackageNameEndsWithTest named:ifNone: testChildrentestWatchTwicepaddedWith:do: testIsFiletestEmptyClassWithMethods testPrimQuo&testAccessingVariablesInOptimizedBlocktestAllReferencesTo3testNarrowingReturnsSameElementsThatCallingDirectlytestSenderOfASelectorInBlocktestCreatedClassWithAllElementstestDataMatrixShouldNotBeEmpty*testPNGPreviewerCanBeUsedOnParameterStringtestTAddasSettestExtensionClasses#testNewWindowDefaultsIsNotMinimized testVariableDefintionScopeUpdatetestKeywordOnTheSameLineasBit Roassal-PietestOneNewLinesAfterSignature#testJoinArrayUsingOrderedCollection testIsPrime2HtestWorkerProcessInstancesAreCollectedAfterStartingAndStoppingWorkerPoolFonts-Abstract asCharactertestWithOutgoingLinesalternativeBlocktestEncompassingRectangletestSpawingNewParagraphtestSimpleEnsureTestWithUparrow testWithDotestNodeDistancesTotestChangeRemoveOnetestDiffFromTotestGrowDoublesCapacity testVisitHttpInput_WithReference Regex-CoreoneIndextestPrintingBold(testBreakDebugPointOnClassVariableAccess7Calypso-SystemPlugins-InheritanceAnalysis-Queries-TeststestSuperclassChangeLayoutTypetestSortedCounts testReadNodeszintestIntersectionsWithEllipsefold:testVisitFileImagetestSplitStringOnChartestCompatibilitytestDrawingWayOutsidehelloab.testMethodOverridingTraitMethodIsKnowByPackageasFloattestnewSizeAfterUpdateMicrodown-RichTextComposertestGrowPreservesElements testBmp32BittestCanUnderstandInSubclassisPrime-testComparisonOfSimilarQueriesWithEqualScopestestSharedVariablestestCelltestAsStringOnDelimiterEmpty"testSearchTextChangeSelectedShapes!testNoUnusedInstanceVariablesLeft falseString4testBestNodeWithInvalidPlaygroundIncompleteMidSource.testWorkerExceptionIsHandledByExceptionHandlertestPushReceiverBytecode+testInstanceVariableNamesMetaclassInterface-testSearchForExactCaseInsensitiveStringSucess#testTempNamedTempCopyingNestedBlocktestInjectInto testBlack8testCostestCullCullCull System-ModeltestSelectNone testSendTomaxValBaselineOfMicrodowntestMathBlockOnMulitpleLinesOrderedDictionary newLastIndex2testMoveClassInPackageWithExtensionsOnClassAndBack#testInvalidNameFollowedByAValideOne lastBlank$testMultiplyByArrayIdentityTransformtestEmptyCaseStatementtest16BitDisplay:testClassWithUndefinedSuperclassNameHasUndefinedSuperclasstestPushGlobalVariabletestInstallExceptiontestIsRelative testBitAttestSingleLevelListtestLoadErrorMicrodowntestDangerousClassesConditionstestConstruction"testTrueAndAnythingReturnsAnythingmaxDaysInMonthtestSetFontSize7testFixedLocatorNumberOfTicksIsOkWithCollectionTooLargeanExtent8testBeginsWithFilterReturnsValidResultsWithTheSameFilteralike:%testAnnotationWithParametersWithBlanktestRemovePasswordProtection.testSkipToPcDoesNotLoopWhenAimedPcIsAfterEndPctestTantestExpression%testClassModificationWithClassRemovedtestTraitPlainSimpletestBecomeHashoptionInlineTimesRepeattestHometestWithNullElement(testInBlockTempInstanceVariableShadowing testBmp4BittestWithParentsOnRootReturnRoot testSiblings6testCanStillExecuteWhenAimedNodePcIsBeforeInAnyContexttestSimpleDefinitionWithSlotstestAPIFromBlock1testRemoveMessageArgumentCommandIsProperlyStoreOntestExtensionDependenciestestRedundantProtocolAddition testNoChangeInClassSlotsDetectedtestPatchContentstestNotchBasictestHasRequiredResultByDefaulttestAddAllFirsttestCompletionAfterKeyword testMethod testGetNewTabtest0TSizeTestflatCollectAsSet:&testPrintPathOnDelimiterOnNetworkDrive8testNegatedFilterIsNotNarrowThanANegatedWithANonNarrowedtestOneRaisedToInteger findFirst:testSuperSendWithtestTenThreadSafetestCustomFocusOrdertestCopyWithSequenceablebelow1 testIsRunningtestComparisonOfFunctionstestNewPackage'testRenamingProtocolToMakeItAnExtension%Calypso-SystemPlugins-FileOut-Browser testIsNotRoot,testChangingASharedPoolUpdatesCorrectlyUsers testGetQuartilesOfOddDatasetSizeRoassal-Mondrian,testClassDefFromLegacyStringHasClassNameNodetestWithAllChildrentestIndexOfBug1602 testHasNonDefaultValue_NoDefaulttestSpaceAfterComment*testDetectNoChangeBecauseLogFileWasDeleted testWithWith8testDictionaryConcatenationWithCommonKeysDifferentValues testEntriesFileSystem-PathtestWriteStreamifPresenttestSelectsAbstractMethodtestSubclassInstVar testSelectAllRefactoring-Environment-Tests#testTryingToModifyReadOnlyInstancestestIsHiddenWithRealFilesystemDrTests-TestsRunnerKernel-CodeModel testNewPersonadaptToCollection:andSend:testExactNthRoot testNewSlotDebugger-Oups-Tests2testPackageOfNonExtensionMethodIsPackageOfTheTraitdtestServeStaticFile$testInstanceDefinitionIsInstanceSidetestExamplePrimitiveErrorCodeRing-OldChunkImporter test0FixtureAddForUniquenessTesttestMetaclassSuperclass*testFutureExecutesInSameLocalProcessRunnerbefore:testSequentialAnimationCreationleft-testNextNextShouldReturnSecondExpectedElementtestCreateImmediateClassWithAlltestwhenTextChangedDotestSystemWidetestExampleIfNotNilReturnNil)testRegisterPackageConflictWithPackageTag#testCreateClassWithTwoPropertySlots testAtPutDict'testEqualSignForSequenceableCollectionstestTraitAliasextensionDelimitertestResolveAbsolutetestSuperiorOrEquals testAsGLinetestAddTextPresenterDecoratortestSequencedTimesRepeat/testTypeCharacterWithoutResultsNarrowsSelection"testDeleteAllWindowToLeftOfAWindow testTheta testArcTan position:testCallbackInLooptestWriteTwicePolymorph-WidgetstestValueWithExitContinuetestRepositoryFallback indexFromEnd"test32BitOpaqueBlackIsTotallyBlacktestPrintOnDelimiter!testMoveUpInStackFromFirstElement*testHashMethodNeedsToBeInComparingProtocolminimumtestSettingCompletionFromEditorHtestRemoveProtocolIfEmptyWithNonExistingProtocolDoesNotAnnounceAnything2testPushThisContexttestEnableDisabledBreakpointtestWithWithWithWithtestExampleEmptyMethod>testLocalProcessTaskRunnerExceptionIsHandledByExceptionHandler privateBlueto:by: testEqualsColorPicker-TeststestDeepMultipleLookup#testTerminationDuringNestedUnwindS2testPushConstantFalseBytecodecollect:thenReject::testMethodCategorizedInSameClassicProtocolDoesNotRepackage testWithTitleMorphic-Widgets-FastTablethistestHasVersion testIfTrueoffset'testArrayedCollectionWithPoolDictionary**FreeTypeSettings"testMethodPackageFromObsoleteClass"testCanCreateFileRepositoryFromUrltestReceiverWithGC optimization?testCaseSensitiveFilterIsNotNarrowWhenTheInternalAreNotNarrowed)testEqualSignOfIdenticalCollectionObjects/testMessageSend_conditionBlockProducerMethodAST9testAddMethodByUsingATraitDoesNotAddTheMethodToThePackagetestWeakClassVariableIsWeak indexOfAnyOf:testBoxGraphHasScalesput:asJsonOnStream:testDoItContextReadIvar testBooleanAt-testInstallClassNameWithUnknownSuperclassNametestDigitLength*testNotSimilarToAnnotationOfDifferentClass5testFalseIfFalseReturnsBlockValueWithTempOutsideBlocktestNextOrNilSuchThattestNewVariableWordClasstestChainBehaviorHitWithContext testNamingtestVariableByteClassIsBytes&testRemovePropertySlotWithTwoInstancestestPushConstantNilBytecodeCollections-AbstracttestGifWriteReadUsingFilestestHasPasswordSettestWithEdges2testSliderMouseDownMakesItDragtestAsLowercaseBasicAsciiRangeNonInteractiveTranscript foundIndextestAddTestSlottestNewselect:thenDo: testFloorLog2testSelectIsNotShallowCopy5testClassWithClassTraitCompositionHasTraitComposition testIsRoot"testExampleMethodTempInNestedBlock testBlack16testRemoveTraitMethodtestFutureZipFailsIfFirstFailstestDetectIfNone"testHasNonDefaultValue_AndSomeArgs:testMoveToNodeWhenFromNonInlinedEmbeddedBlockToHomeContexttestReplaceFromToWithStartingAttestEscapeMonospace testsEndsWith testMergingup selectBlocktestTokensInAsciitestPropertyValueAtPuttestContainsPointInComposite#testMultipleDocCommentsInOneCommenttest4testConvertingToInheritedScope8testLocalMethodsOfTheClassShouldNotBeRepeatedInItsTraitstestWhileTrueExecutesLeftBlocktestPathConsumptionNewTools-Inspector-Tests&testExtensionClassesWithCompiledMethodtestTransformingDeprecationtestNoStepIntoQuickMethod"testExampleWhileWithTempNotInlinedtestPushNewArray,testMoveToNodeWhenNodeIsInIfTrueIfFalseBlocktestNoExtraSpaceInsidebadVariableAndScopestestBreadcrumbs test2Classes testHeadCell#testSelectionInFontStyleListIsKept2testAllButFirstElementsnewFrom: testAtUpdate testEndPoint breakpoints UnifiedFFI1testChangeBorderWidthUpdatesEncompassingRectangle testAllNamed testCoveragetestSmalltalkPrintString Generator1testMoveToNodeKeepsStackWhenAimedNodeIsMethodNodetestsBeginsWithtestClassifyUnderWithProtocol testBreakpointOnClassVarAccesses testFromErrortestSelectsOverrideMethodtestAddSelectedCompositeGraphics-Shapes*Calypso-SystemPlugins-ClassScripts-QueriestestChildFiles%testCopyNonEmptyWithoutAllNotIncludedexampleLiteralFloattestRelativeFromStringtestConvertFromDecimalFractiontestsBeginsWithEmptytestDefaultEnvironment0testLookingForStoreDiskWithSpaceReturnsDiskStore$testMinimumNegativeIntegerArithmeticdecimalDigitAt:day requiredStart testAddMany+testValueWithArgumentsWithOrderedCollectionNewTools-Playground-TeststestReplaceAllWithZinc-Resource-Meta-TeststestParseResetVariable includes:testShouldSave testFractionAsFloatWithUnderflowjoinertestUnresolveNametestMixedSignDigitLogic2testVariableDebugPointNoRemoveAfterSubclassRemovedfromStreamWithComments: newSubstringtestWaitAndWaitTimeoutTogether2testSpecialGestureOnOuterMorphPutsHaloInOuterMorph Slot-TestsOpalCompiler-Tests$testOFixtureReplacementSequencedTestlowtestVerticalAttachPointtestLoadSourceFiles asLowercasetestBuildCascadeHeuristicaColortestAnchorReferenceUnevaluated*testAtIfAbsentPutWithGarbageCollectedValueCtestRefersToLiteralsReturnsFalseWhenLiteralNotInMethodPropertiesKey testChangeInSuperclassIsDetectedtestConstructionUsingWithtestUpdateShortStackForDisplaykwd)testFigureWithBracketInsteadOfParenthesestestDescendantsexampleLiteralWideString testTabIndent testMethods-testFutureExecutesByDefaultInGlobalWorkerPoolreject:allSentMessagestestNumberOfMethodsndtestAutoRepulsetestBuildCreateCompositeShapestestFloatRoundedwe&testModifyProtocolOfMethodyDoesNothingtestFindLastNotIntestInstanceVariablesStringtestIsAListPlustestClassAdded4testClassAddedToNewPackageShouldAnnouncePackageAddedBtestNotAffectedByChangeOfSubclassMethodWhichNotOverridesSuperclasstestUnsignedInt32 testClassSideMethodWithoutImpact runningMin: testIsRightDate$testLiteralsDoesNotContainMethodNamePragmaCollectorNewTools-FileBrowser-Tests;testCaseInsensitiveFilterIsNarrowWhenTheInternalAreNarrowedtestSystemAnnouncerClass sumNumbers testAddAftertestPackageTagOfUnpackagedClasstestCodePointStreams%test0FixtureCopyPartOfForMultiplinesstestDrawingWayOutside3testCanPerformtestConnections01printOn:format:testMathBackslashNewTools-RewriterToolstestHasLiteralSuchThattestIsEmptyFromEmptyClassScopetestPushActiveContextBytecodeFileSystem-Disk-TeststestIsObservableSlotBtestBuildPresentationWithDoesNotUndertandShouldReturnCodePresenterdivisortestUnpackagedClasses testRootEntryMorphic-Widgets-WindowstestCleanBlockClosuretestWorkerPoolStopStopsWorkerstestNewTraitCompositionn between:and: testStepEventtestSingleLevelListWithStartestSelectedMethods;testRecategorizeClassRegisterTheClassMethodsInTheNewPackagetestIncompatibleBehaviorOtestReplaceTokenWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWord2(Calypso-SystemPlugins-Undeclared-BrowsertestExampleTempNamedTempVectortestReferenceDependenciesaa:bb:cctestCollisions testReference testDatabase sortBlock: testFloatsaSubCollectionpeekLast testSindarinSessionInstantiationcopytestInsettingByNumberShouldWork2testKeepChangeWhenMethodAdditionWithAbsentBehaviortestTallyTreePrintWithTab.testsingleRemoteTempVarWhileWithTempNotInlinedtestCartesianProductDoorigin$testNonExistingStoredSettingVariabletestClassifyUnderWithNilFtestRenameClassUpdateMetaclassExtensionSelectorsInTheExtendingPackagestestNoNewLineBeforeEndBracketsHermes-ExtensionsRubric-StylingtestBasicSpaceIndentSpec2-Morphic-ExamplestestAccessingPackage#testGettingExistingClassNameBindingtestWithWithWithWithWith testTwoTraits(testCopyMethodNeedsToBeInCopyingProtocolstoreStringBase:%testNilIfNotNilWithArgumentReturnsNiltestClassWithInheritedSlots!testOrWithLeftFalseEvaluatesRighttestAddRemoveBreakpointtestFlatCollectAsSet(testCreateClassWithPropertySlotAddSecondtestInstallCountertestKeywordNoExtraSpacesAfter&testMissingArgumentAfterABinaryMessage(testClassIsDisplayedWithCorrectAlignmenttestValidNameExpectSuccesstestScaleLinearColors)testFalseIfTrueIfFalseEvaluatesFalseBlocktestOverlappingFormat2testExampleBlockNestedtestIvalidReadFromAthens-Balloonxa testCreateNormalClassWithPackageXtestNotAffectedByChangeOfOverriddenMethodFromAnotherHierarchyWhenSameMethodExistsHereTooBaselineOfManifest&testSubstringSearchNonExistingSelector,testWindowShouldBeSaveBeforeShutDownSaveRoottestRemoveClassWithBreakpointmatch:testHasNullContextByDefaulttestFinalizationtestRawsWithStrikeMonthtestSelectSometestFluidConfiguration,testButtonUpClickShouldModifiedArgumentsListRoassal-Spec-Tests aSubstringtestDeepLookuptestStreamContents delimitertestDoEvaluateAndGo&testClassTraitIfMetaclassAlreadyExistsBaselineOfOSWindow"testExampleTempNamedPutTempVector2readFrom:ifFail: testLabel2testSpecialGestureOnInnerMorphPutsHaloInInnerMorphAI-Algorithms-GraphtestCreateImmediateClassNamedEmergencyDebuggertestTimetestExtentIsCorrecttokenish-testAllGlobalNamesStartingWithDoCaseSensitivetestDefaultValuesPharoDocCommenttestFileOutSingleTraitAdditionFuzzyMatcher-TestsSystem-Utilities-Tests#testExamplePrimitiveErrorCodeModuletestLoadNotCorrectImagetestGetMedianOfOddDatasetSize testSendSupertestIfNilIfNotNil1ArgtestSumUnsignedInt64 testPrimMod/Calypso-SystemPlugins-Deprecation-Queries-Tests0Calypso-SystemPlugins-ClassScripts-Queries-Tests$testObjectCentricWatchOnceDebugPoint%testExtractTwoArgsWithAndWithoutMinustestIsTestPackagetestHeaderLevel4 denominatortestIsEvaluatingtestCopyWithoutFirsttestInspectionMetaaddDays:testModelsSizetestPrimValueWith Network-Tests%testOnForkErrorTakesLessThanOneSecond#testSplitOrderedCollectionOnElementtestIncludesNilNtestStatementNodeContainingReturnsStatementNodeThatContainsTheIdenticalSubtreetestUTF16EncoderLittleEndiantestVisibleAreaInstrumentationtestRedundantProtocolRemovaltestNewPointerClassWithSlotstestValidNameAndUsedVariable>testEditClassOrPackageScopeRemovingClassAndBreakingFullPackage3testNegatedFilterIsNarrowWhenTheInternalAreNarrowed testClassesTools-CodeNavigation-TeststestRemoveClassSlotAndMigratestemAndNumericSuffixtest0FixtureRemoveByIndexTesttestPrimLessThantestInitialize test16BittestMultiPackageMerge3testClustersMargin$testReadInGivenContextShouldIgnoreIttestMultiLineMessagepossibleParensCtestBestNodeWithInvalidMethodIncompleteMidSourceNearPreviousMessage5testFromThreeMethodsWhenImplementorsCacheShouldBeUsedtestCanConsumeLineOtherBlocks aPrecisiontestSingleUppercaseLetter3testMethodsAccessingPoolVariablesDoNotFindPoolUsersroundTo: testHeightoneBaselineOfIcebergtestColorsOutIntestBinaryStreamtestTagsForMethodsCollectiontestReplaceFromToWithtestPrintDoesNotUnderstand with:withAll:@testWhenAddingBookmarkOnIsolateBookmarksShouldBeAddToAllInstance"testInheritingExecutionEnvironment7testTransformReturnEmptyRectangleWhenNotPossibleToPlacetestAdditiveConflictlessMergetestRenameProtocolAsWithNil2testFillingWayOutside3testErrorPropagationtestNodeDistancesFrom4testConfigureContextWithHaltShouldMarkContextAsErrortestHeaderLasttestBasicCommandlineHandler$findString:startingAt:caseSensitive: testStepUntiltestNewPresenterIsNotDisplayed'testComparisonOfTwoDifferentAnnotationstestNilIfNilReturnsBlockValueCollections-Arithmetic-TestskeywordsStricttestIntegerParttestCopyWithAll Athens-Text"testServiceIsExecutedMultipleTimes badTokenstestCommaAddsExtensiontestReadFromContexttestDragtestExampleTempNamedPutCopying2RtestReplaceTokenAfterMovingCaretToMiddleOfWordWithFollowingWordsReplacesEntireWordBaselineOfPharo?testBestNodeWithInvalidMethodIncompleteMidSourceNearNextMessagetestIfNotNil1ArgAsVarmax:testNextNameForExtensiontestBasicCollectEmpty testCPathtestRootPrintStringtestWriteToContext$testInitializedClassVariableCompiledtestDoublePassOuterdayCounttestSimpleUTF8ReadStreamtestSharedVariablesAsArraytestAsCommaStringOnetestWithEmptyUsesindexOf:startingAt:testParsingLogictestExternalLinktestFlatCollect2 testSkipWith testUnloadWithAdditionalTrackingMorphic-Widgets-ColorPicker privateRedtestPrimitiveIndexed2DrTests-CommentsToTests-TeststestDefaultDescriptiontestSintestNotEnvironmenttestDelayWaitTimeoutTimedOut testFromPointNewTools-CodeCritiques-Tests new:withAll: testNonAsciilengthThreadedFFI-UFFI5testMergingTwoStylesWithASameClassHasClassInBothSidestestDebuggerTempAccesstestAllNamedFromToSortedUsingtestEmptyBlockArg testRotatedBy testSmartQuoteSurroundsSelection testSumUpTo"testNoExtraSpaceArroundParenthesistestIdentityIncludes&testKeyAtExistantValueCopyReturnsOkKey,testModifyExtensionProtocolUpdatesThePackagetestSingleArgBlocktestObjectCentricAPI)testExtractOneArgWithMinusThenArgsWithouttestInferiorOrEqual bytesCount4testMethodCategorizedInSameExtensionDoesNotRepackagetestDeclareClassVar testIsNotFile@testBestNodeForTraitCompositionSelectionShouldBeTraitComposition testDrag2testSignatureNotOnMultipleLines*testRemoveMethodRemoveMethodFromItsPackageMorphic-Widgets-FastTable-TestsCollections-UnorderedtestDefaultGraphCentertestSortingWithUndefinedtestSplitAnnotationtestOddCollectionSizetestAllowDebugBrokenAnnotations4testConvertingWithExtraBasisObjectIfItIsAlreadyBasisfade:testTimeoutWithZeroDurationtestExampleSimpleBlockLocalIftestBinsCollectionSubscriptOutOfBoundstestMethodAddition testPopulate testVersiontestErrorOrders testParseLineWithThreeCharacterstestFirstSecondThirdtestBuildDiffFor!testSizeWithGarbageCollectedValuesplitOn:indicesDo:BaselineOfCalypsotestNegativeZerotestDensityAreatestEmptyMethodReturnsReceivertestUTF8ReadStreamPositioningtestExternalLinkWithMonospace testAccessingTempsVectorInBlock2testSkipStepsMethodNodes(testClassAdditionWithClassAlreadyRemovedSpec2-Code-Commands ByteArray,testWeakOrderedCollectionAllGarbageCollected value:value:Spec2-Dialogs-TeststestFoci'testKeepBlockInMessageNotMultilineSpacetestAddMovieDirectorpharoDocCommentNodestestDrawingWayOutside6ProcessorSchedulertestStyleIsDisplayed Tool-FileListtestDoesntContainLocatorSystemCommands-MessageCommandstestContinuedFractionsasSortFunction.testAsIdentitySetWithoutIdentityEqualsElementstestHorizontalBlockscaleBy:testWithNullElementWithFixedtestSizeDoubletestindexOfStartingAt testEdges testAddBeforetestAddingAnimationsSetsplitOn:STON-ExtensionstestRemoveClassInTagtestExpandedPoint)Calypso-SystemPlugins-Deprecation-BrowsertestNewMetaclassTraitTool-DependencyAnalysertestCycleAlreadyFoundBaselineOfFlashback3testUnoptimisedValueSpecialSendsMessageCapturesSend$testRemoveAllTextPresenterDecorators*testFourthByteArraysReturnTheCorrectValues;testChangingPcKeepsSameStateAndPushesCorrectElementsOnStack>testNonDuplicatesRemoveDuplicatesResetReturnsWithoutDuplicatestestRemoveAllShadowstestRawsWithMonospacetestMultiPackageMergetestComposeDisplayTexttestReadInContextCleantestDynamicVariabletestNewBehaviortestNewFromPairs testRemoveLastNElementsNElementstestIncludesNametestEnvironmenttestBasenameWithoutExtensiontestJumpOnBlockVariables'testComputeDensityCurveDataOnlyOneValuetestClassWithClassSlotsat:ifAbsentPut:ReflectionMirrors-Primitives DebugPointstestHandlePrefixTabsRing-Definitions-Core translateBy:testLocalMessagesminValueaStream.testExampleTempNamedTempVectorInOptimizedBlocktestOpeningDelimitertestExpandedOnClassWithoutTag lerp:a:b:testCombineDependencies/testSupplyAnswerUsingTraditionalMatchOfQuestion>$testInitialArgumentListAutoSelectionDuration testPushSelftestTrueIfTrueReturnsBlockValue5testIsAffectedByChangeOfOwnMethodWhichIsNotOverriddentestWidgetExiststestNumberOfOutputstestStructureOfBoldSimpleText*testSequenceReturnsTheSequenceOfAllResults.testBlockWithFourArgumentReturnsLastExpression testAsStringOnDelimiterLastEmpty!testLineStartIsOkAfterWriteStringtestNextPutAllEmptyblacktestClassWithPluginEnabled0testPreferenceFilesNotCollideWithRealPreferences SUnit-TeststestLabeled03bisHasModeltestDoItExtraBindingstestUnrestrictedSlotsSimpletestMultDicAddSub"testResultIsADTCoverageResultClass testRadius=testRemoveClassUnregisterTheClassDefinedMethodsFromItsPackagetestDependenciesTotestSortingChainedWithUndefinedtestResolvedNameOrNilMorphic-Widgets-List!testDTTestCoverageResultHas2NodestestTwoLinesAfterTemporariesaa:testHasLabelFalse testMultipletestLastFilesForExtensionreverseWithIndexDo:testRejectNoRejecttestNothingToCovertestUnmatchedByteArrayBracketpeektestUnclosedStriketestXTickLabelstestBasicVennDiagramOpentestWriteAndReadReflectivetestNonOrientedAngleWithaddIfNotPresent:testCreationByMethod0testWhenAnnotationFailsCheckForForbiddenPropertytestPushThisProcesstestBasicCollecttestRemoveTrait testRawdatatestCommentSimple'testCompareWithIfLesserIfEqualIfGreatertestMicrodownImport isFractionendtestPngEncodingColors16testIsExternalZtestWhenClickAnBeforeHistoryButtonIfThereAreHistoryShouldComeBackToTheLastDirectoryVisited testPragmatestMissingBlockArgumentNametestSetLimitLimitBlocktestNoPackagesOverride testEscapetestMarkerSizetestRemoveOneElementtestClassCommentasSignedIntegertestUnsignedLongPointtestVariableByteSubclasstestCompileForIntestReadFromWithError testReadsRef isSortedBy: crossProduct:Rubric-SpecFindReplaceDialog readStreamDo:atRandom:weighting: testNewLineBeforeAndAfterCascadetestNewProcessIsPharoProcessSUnit-Visitor-TeststestPeek%testNextNameForExtensionBrokenPattern testIfEmptytestIsSelfEvaluating#testAsSortedCollectionWithSortBlockisInitialQuote:testReverseLinksDo nanoSecondstestAddAndRemoveActorstestInlineBlockCollectionLR2testUnifyMetaclass(testTraitAdditionWithTraitAlreadyRemovedtestConcatenationSearchtestRenameUpdateTheOrganizertestRemovePackage/testNewProcessTaskRunnerRunsNeverInLocalProcesstestNestedLoopsExample1testCreatePlotWihtKernelDensity DrTests-TestsaSequenceableCollection=testWordsAwareIteratorFiltersByASequenceOfCamelCaseMixingCaseSystem-SourcesCondenserfirst;testIteratorOnACollectionReturnsTheFirstValueAndSecondValuetestNestedStructSizetestGetShapesFromRectangletestHasUnknownScopeByDefault.testNonOpenPresenterDoesNotRaiseDisplayedEventtestMethodVersionAtpermutationsDo:Roassal-ColorstestRedundantSeparatorsNewTools-Spotter-ExtensionstestMustInclude03 testOneHitCollections-Abstract-TestswithUnixLineEndings// testPrimAtPut Beacon-CoreMCGitBasedNetworkRepository,testMetaSuperclassShouldUseTheSuperclassName!testMonospacesWithDoubleBackSlash3testRectangleWithNegativeExtentShouldHaveZeroExtenttestNumberOfSpaces.testKeywordCommentsFormatCommentsWithStatementtestMatchesChanged&testItalicWrappedWithAccessAPIElementstestClassTrait testNoPopuptestRepeatExecutesBlock.testNotSelectsAbstractMethodWhichIsImplementedtestAllClassesImplementingtestAddWatchSameNode$testHigherThanLastBCOffsetAccessTest+testIdentityIncludesNonSpecificComportementtestForTiltedStickyness rejectBlocklast testRecompilelf*testBoxPlotCreatedWithCollectionOfDatasets!testIsOfflineTrueAndResourceFoundtestMetaclassNumberOfInstancestestModifyIvarToHistorytest0FixtureBeginsEndsWithTest>testEditClassOrPackageScopeAddingClassAndCompletingFullPackageFtestWhenCurrentDirectoryChangeshouldNewFileDialogOpenOnTheNewDirectory5testDoubleClickShouldNotTriggerIfClickedOutsideBounds%testWordCannotExtendPointerWithFieldstestInfiniteLoopRoassal-BaselineMaptestServiceRunsAfterStarttestWithComplexRecursion"testTraitDefinitionNodeIsTraitNode.testFixedLocatorRaisesErrorWithEmptyCollectiontestNthRootTruncated#test0FixtureSubcollectionAccessTest/testRenamingExtensionProtocolToAnotherExtensiontestPackageOfUnpackagedClasstestClassRemovalWithClassAdded testIsHiddentestSimpleResignalAscontainsPoint:#testOpenDefaultOnUnloadedFontFamilytestAsPackageWithError isTestPackagetestBuildArrayHeuristic6testInstanceCreationMajorMinorSuffixBuildWithoutSuffixtestContainsReference5testTraitWithClassTraitCompositionHasTraitCompositiontestNoErrorCatchThreadedFFI-Graphics-ExtensionstestStrikesWithoutClosure0testLoadMicrodownResolvesUrlsRelativeToTheParentReflectivity-ToolstestSumSignedLongtestPrimitiveStringModuleyeartestGlobalVariablesCollection backspacetestVennDiagramOneSettest0FixtureConcatenationTest readStreamtestPrimitiveNamedErrorCode2testLhstestProtocolsForAllMethodstestRemoveKeyIfAbsentisAllAlphaNumericstestSetNameTexttestSelectSomeOther prevIndextestBoldAPIToAccessText LibGit-CoretestNoIndentsForKeywords testFlippedtestParentResolutionWithPathtestSimpleClassVariableClasstestStoreOnWithNegativeIntegertestallMethodsWritingSlotspecialCharacterNamestestOneArgumenttestMoveUpInStacktestAllAvailablePostOrdertestHasSelector+testFutureOnDoFailsOnTrappingWrongExceptiontestSmalltalkAsStringarcTan:@testWindowShouldBeOpenAfterStartupWithGoodMorphWhenNoMorphIsSave#testConvertWindowMouseEventPositiontestMillisecondsToGoExpired RTree-Tests!testAddIntructionsBeforeFromLListSystem-Platforms-TeststestHumanReadableByteSizeStringtestPlotWithOneCollectiontestUTF8IllegalInputcontext indexOfSubCollection:startingAt:+testRemoveNonexistentSelectorsFromProtocolstestSetBaseClasstestKeywordOnMultipleLine7 testCaseOf)testBeHomogeneousWorksWhenExpandingWindow testBefore testNoTimeouttestMathBlockWithArguments/testTraitMethodClassBindingShouldBeClassBinding+testRenameProtocolAsWithNonExistingProtocol&testDefaultImageDoesNotStoreAnySettingtestHasTemporaryVariablesMethodtestNotSelectsNotOverrideMethod$testClassVariableImplicitEnvironment.testSingleLevelListSplitWithMultipleEmptyLines Morphic-TeststestWrittenAfterClosedOver#testAdd3BoxPlotsReturnsClusterChart,testFutureSelectSuccessOnSatisfyingConditiontestRemoveClassUsingEnvironment asDateAndTime,testAndPackageEnvironmentAndClassEnvironmenttestVersionsForMethod6testChangingSlotCallsInitializeSlotOnInstanceMigrationtestUndefinedVariableFrontendtestPathStringtestSplitBlockLink RubTextEditortestJumpOnSecondKeywordtestCompileWithEnvironmenttestSiblingOfPath testToCount2testUniqueNamesfoundat:incrementBy: testIsNotRelativeFilePathWithUrl)testReturnExtraSpacesInIndentWhenMultilneisSequenceableisClosePunctuationtestInstanceVariableShadowing testSortOrder8testDeprecatedAliasesAreRemovedByClassRemovalSpecialCasebadExpressionstestBackwardCompatibility4testIfCutDoWithCutAndUncutsLastnegativetestCumulativeCountstestDoItRequestorEvalErrortestStructureOfBoldNestedText%testRawParametersWithNotStringAtValuetest14removeIfAbsentraisedToFraction: factorialtestDefaultWithValuetestShortcutKeytestSimpleUTF8WriteStreamtestAtPutTwoValues0testIsEmptyForExplicitlyDefinedAbstractMetaclasstestIntegerReadsNotOkFromStringtestAssignClassVariable testPushConstantMinusOneBytecode testWatchVariablesWritesInObjecttestToDoInsideTempNotInlinedtestExampleiVarSpec2-Adapters-Morphic-Tests/testBlockWithThreeArgumentReturnsLastExpressiontestTerminateSessiontestBuildThisContextHeuristictestSeenPackages5testTraitCompositionMethodsArePackagedWithTheirTraitstestAllCallsOnNewTools-Inspector%testDeleteAWindowAndTaskBarActualized testAfter badScanner:testMultiplicationWithNonScaledDecimalDoesNotGainPrecision testAtRandom anIntegertestSubstraction'testStoreAndPopReceiverVariableBytecodetestImportAClassCategory,testSystemPackageIsAnsweredWithLoadedPackagewhiteitemtestIntegerReadsNotOkFromStreamtestFlipByCenterAttestPushConsArrayfive+testWorkerProcessDiesAfterWorkerIsCollectedtestRemoveLastNotPresent4testImplicitEnvironmentContentForMetaclassDefinitiontestValidTraitComposition endsWithDigitasDigitsAt:in:do:testNewLineBeforeCascade2`testMoveToNodeWhenNodeIsInBlockThatCreatesContextAndBlockCreationIsFirstBytecodeInFirstStatement allButFirst:%testFileOutMultipleMethodModification testExtent test13remove(Calypso-SystemPlugins-Monticello-Browser!testDuplicateClassPreserveMethodstestRemoveTagRemoveClassestestAlltestSelectsFFIMethod testClassSlotDuplicationConflict+testImportAClassCommentWithExclamationMarkstestDefaultResultText-testsingleRemoteTempVarWrittenAfterClosedOverSystem-Caching-TestsNewTools-MethodBrowsers3testDefaultSettingValueIsNotIncludedInTheStoredFiletestScalePolyLineartestIsWeakLayout testBasic039testExtraIndentationWhenMultilineResetTheIndentWhenFinishasSortedCollection testTypestestPrimBitAnd testMarkertestBoundaryContainsWhichOf atLast:put:keystestSlotNamedIfFoundIfNone,testMouseMoveWithoutDraggingDoesNotStartDragtestJumpAheadToIftestKeyForIdentitytestAnnotationPrintStringtestOneSystem-Finalization primitive:testRemoveCounterFromMethodtestFirstTagWithValue#testTraitAliasShouldBeFromAliasName testNormalizeexp"ReflectionMirrors-Primitives-Tests anySatisfy:%testComparisonWithAnotherKindOfResulttestExampleIfFalse testOutlierstestGroupsOfAtATimeCollecttestReadStreamNotFoundtestWatchVariableReadsInClass testHasChangedForPackageItemDifftestInstallFromStreamtestDifferencePreservesOrdertestPrivateReplaceFromToKernel-Tests-WithCompiler!testDegreeSinForExceptionalValuestestCreateWeakClassWithAlltestIsRootInEnvironmentsuffix!testCompletionBeforeKeywordColumntestSetInstanceVariables-testSettingLeftDoesNotProduceInvalidRectangletestExtensionSelectors testOneGrouptestKeywordOnMultipleLine3$testLowerThanFirstBCOffsetAccessTestsigntestReturnHasNoExtraSpacetestFindCloseEnoughMethodtestRemoveProtocolAnnouncementtestOpenInWorldtestEmbeddedOrderedtestRecompiledReturnFromClass?testRecategorizeClassUnregisterTheClassMethodsFromTheOldPackagetest5testNoneSatisfy&testFallbackReplaceFromToWithForStringtestNewMethodWithHalttestLoadNonExistingMicrodowntestFormatEachStatement$testStoreIntoLiteralVariableBytecodetestWhenClassHasNoAnnotations testSize2testSelectorEnvironmentyield:testCmdCtrlRighttestPointerCanExtendPointertestDefinedSelectorstestCreationOfDefinitionstestKeywordFormatParameter Files-Tests testComposite STON-Core testCounting beginsWith:#testObservableSlotWorksAsNormalSlottestSuccessors!Refactoring-Transformations-TeststestBehaviorNameChange asFractiontestMinimumSizeOfSearchStringtestKeywordFormatReceivertestAt(testClassDefFromLegacyStringHasClassName testCreateClassWithClassVariable testContains!testExtraIndentationWhenMultilinetestFormatReceivertestWatchVariablesWritesInClassnumberOfWishedDecimaltestMultiLogScaleInverttestSelectorsInProtocoltestItalicNestedInBoldtestThereAreTwoSettingstestAllReferencesToDo2test0FixtureDictionaryKeysValuesAssociationsAccess testCreateAs accessModetestPointerCanExtendVariabletestRemoveProtocolIfEmptytestIsVariableLayoutTool-ExternalBrowser-TeststestRemoveKeys shuffledBy:testPcsForNode testBecometestWithTilteAndLabels!Calypso-SystemPlugins-FFI-Browser(testInitializeShouldOnlySeeNotHiddenFiletestAsLayoutFrame#testTrueIfFalseDoesNotEvaluateBlocktestFormatMultilineMessage2,testChangeBorderUpdatesEncompassingRectangle testBottom'testBoxShouldBeInsideContainerRectangle testDiagonals Zodiac-CoretestCopyWithFirst'NewTools-DocumentBrowser-GitHubResourcetestParseBasicValueGraphics-CanvastestRenameArgumenttestNewCompiledMethodClass testAtEndtestNoTraceForEnabledBreakpointtestRaisedToErrorConditions actionBlock testAtPathtestVariableCannotExtendWord testBorders traitSourcetestBeBetweenAndGeometrytest09addAfter hasProperty:testCollectArgumentstestVariableCannotExtendByteLtestMoveToNodeKeepsStackWhenAimedNodeIsMethodNodeThatDoesNotHaveAssociatedPCBaselineOfLibGittestGetMedianOfEvenDatasetSizetestShowOlderMethodVersion BaselineOfIDEtestExternalLinkWithStriketestWidenOnBracketstestStylerRedTickInChart*Calypso-SystemPlugins-Traits-Queries-TeststestAutoLocatorIsDefault testInstallInSpecificEnvironmenttestMetaclassClass+testMultipleAssignmentHasNoExtraSpaceInsidetestRads Calypso-Ring!testExtractDatasetFromSingleArrayErrortestNaNisLiteraltestIntoWorldDeleteOutOfWorldstderr6testBuildPresentationWithHaltShouldReturnCodePresenter testBoldsAndCorrectNestedItalics5testWordsAwareIteratorFiltersLeftOutBecauseSecondWordweighttestNetworkPathWithParentstestIfNotNilIfNil1Arg testEnqueue testItalic testIsPrime39testBroadenFilterAfterFetchCompletionShouldBroadenResultstestIncludedPackages Clipboard testBinsStratwho.testLiteralsDoNotConsiderTheInnerBlockLiteralstestRetrievesMethodQuery/testClassRepackagingShouldAnnounceClassModifiedtestSimultaneousModification-testPointerWithVariableExtensionIsNowVariable testAtPutNext pairsCollect:'testNotEnvironmentWithClassEnvironmentstestCreationByNamedSystem-History-TeststestCompleteSuper'testMethodModificationWithMethodRemovedtestFirstNElements Zodiac-Tests testFileOutSingleProtocolRemoval,testInBlockArgumentInstanceVariableShadowingtestSubscriberClass(testLastFilesForExtensionNegativeTesting isClassSidecopyReplaceAll:with:asTokens:testBmpWriteReadUsingFiles testLeaves binaryBlockLtestRemoveClassUnregisterTheClassExtensionMethodsFromTheCorrespondingPackagetestReadsThisContexttestBuilderSharedPools3testTrueIfTrueReturnsBlockValueWithTempOutsideBlocktestDoubleRepeatedMergetestInvalidPatterntest0FixtureIterateTesttestValidTraitComposition2NewTools-Scopes-TestsSystem-Benchmark(testCompletionWithNoResultsShouldBeAtEndBaselineOfReferenceFinder testObjectCentricWatchDebugPoint addAllLast:Roassal-Interaction-Tests&Calypso-SystemQueries-Tests-P5WithTagstestFillingWayOutsidetestValidTraitComposition45testUnhandledWarningShouldBeProcessedAsUnhandledError+testJPGPPreviewerCanBeUsedOnParameterStringtestWhileFalseExecutesLeftBlock$NewTools-RewriterTools-Backend-Testsceiling"testIndirectCircularHierarchyErrortestEightNeighborstestAsScaledDecimaltestClassTraitstestRevertOverrideMethodfromHexString:;testIsAffectedByChangeOfAbstractMethodWhichIsNotImplemented.testExplicitCompletionEngineIgnoresGlobalClassIceberg-LibgittestAnchorRefernce$testInstanceCreationMajorMinorSuffixtestClassifyUnderSystem-Hashing DrTests-TestCoverage-Tests-MockstestAtPathIfAbsenttestByteStringClass testFormstestAddNodesAndEdgestestLatin1EncodertestDeleteAllHistory)testAssociationsWithGarbageCollectedValuetestclassVarNames7testSubscribeToExistentNonObservablePropertyRaisesErrortestCannotReturntestNaN3,testProtocolNamedIfAbsent0testIntersectionTwoSimilarElementsInIntersection#testMethodAdditionWithMethodRemovedcollect:thenSelect:surroundString:withCharacter:testInexactRaisedTo testAssignmentOfClassNameBindinghasInterned:ifTrue: testSlots'testDontRetainBlankLinesBeforeComments2testAddOneElementtestCyclesWithAtLeastStdio detectIndex: r:g:b:range:testRendering01 isFinalQuotetestExampleTempNamedCopying(testCollectionWithSingleElementReturnsIttestPrintHaltItemtestAnnouncementtestMin includesAny:testFileOutSingleClassAdditiontestAnchorIsAttachedToItsTargettestNewLineAfterCommenttestCreationByCommaNewTools-Scopes collectBlocktestSequenceOfFormatstestMouseMoveAfterDoubleClick,testNoLeadingOrTrailingSpacesInCategoryNames%testARectangleDoesNotContainItsCornertestFirstItemIsSelectedIcebergtestDefaultValuestarttestBestNodeWithValidPlaygroundtestTraitNoSlotsNoUse lastIndexOf:startingAt:ifAbsent:sideGrowltestSyntaxErrortestWatchVariablesReadsInClass#testAllInstanceVariablesOwningClasstestUnresolveSuperclasstestStructureOfPlainText&testNotWrittenInMethodWhenItIsOnlyRead testAuthor+testDoesNotApplyForNonSuperMessageSendNodestestNoNewLineAfterTemporaries testCreateTheRightFootnoteObject"testHasBindingThatBeginsWithGlobal(testDropListChangeShouldChangeTableItemstestHierarchyRootstestLabeledOuterShapes01elementleftSize$testDeprecatedAliasesOnExistingNamestestBehaviorAdded$testTempNamedTempCopyingNestedBlock2 OSEnvironmenttestClustersHorizontal testShadowAI-Algorithms-Graph-ComponentstestInitializePresenterstestNextObject testBuilderTraitsWithComposition/testProtocolsForAllMethodsForClassWithoutTraitstestAsSortedCollection Math-Operations-Extensions-Tests printStringtestComplexDefinition PerformMessageCommandLineHandlertestStoredSettings testReverseDotestFileOutSingleMethodRemoval testPackageOftestCopyAfterLast!testLineStartIsCorrectAfterIndenttestNotifyBreakpointRemovedSystem-CommandLine-TextSupporttestWhileWithTempIsNil System-Sound DateAndTimetestAnnotatedBlocktestNewGlobalVariable slowFactorial testVariableEnvironmentAddRemovetestNoPeriodInMethodSignature!testAutoLocatorNumberOfTicksIsOk2 testOpeningtestSizeSignedInttestLiteralSymboltestMarshallingStringArgument0testBestNodeWithValidPostionOnStatementPeriodEnd testMessagestestEnsureASpace*testTwoDebugPointsOnSameTargetBothActivategroupedBy:having:testEmptyListstestCompletionBeforeWordtestTooLongBlockBodytestHasNonDefaultArgumentstestRemovePackageWithBreakpointtestShuffleModifyTheReceivertestFutureZipFailsIfSecondFails%aDictionaryOrCollectionOfAssociationstestOtherDictionaryEqualitytestSimpleResolutiontestMemoizedLRUCachetestPossibleVariablesFortestCanExecuteOnArgumentNodenewDay:month:year: testStoreOntestReplaceWithPatternCodetestIncludesIdentitytestAddEqualElementsassociationsDo:%testCompileClassifiedWithUnclassified AsciiCharsetShouttestRelativeFromStringParentNewTools-SettingsBrowser-TestsManifest-Tests0testSourceNodeExecutedWhenContextIsJustAtStartpcselect:thenCollect:!testAddBoxPlotsAddPlotsInTheCharttestBlocksShareOuterVariablesstoreStringBase:length:padded:testMajorMinorVersion secondKey9testWorkerProcessDiesAfterWorkerAndAllFuturesAreCollected testMonospacetestAddBeforeLinkatLast:ifAbsent: characterSettestOptimizedBlockReadInBlockEpiceaBrowserstestBehaviorCommentModifiedtestConvertFromIntegerWithScaleNewTools-Debugger-Extensionsbb:)testFourBackQuotesOnMultipleLinesWithText Roassal-Menu$testDiffIRecordsLastLineWhenMatching0testAssociationAtExistantKeyReturnsOkAssociationtestPopupWithoutMouseLeavetestModifyTraitComposition#testOpenWidgetPresenterAppliesStyletestReturnCoverageResulttestWhileTrueExecutesRightBlock'SystemCommands-RefactoringSupport-Tests testIndexOfisDecimalDigit:testLn delimStringletestTwoViolinPlotsClustered testRawsHandleWellCurlyIfNotLasttestJumptestBoldtestPrimNotEqual,testEvaluateWithBindingsSelfSuperThisContext/testRenamingExtenstionProtocolToClassicProtocol testIndicatorRoassal-Spec-MorphictestWriteThenRead=testRefersToLiteralsReturnsTrueWhenLiteralIsInPragmaArgumentsNewTools-DocumentBrowser-Tests-testFileOutSingleMethodModificationOfProtocoltestIntoWorldCollapseOutOfWorldtestCallbacksInOtherThread)indexOfSubCollection:startingAt:ifAbsent:testHasNonLocalReturnReflectivity-Tools-Tests testCoerciontestMethod3forMocktestExtractSetupExample2 testSignalOfTheLowSpaceFromTheVMtestClosedTallytestStoreBooleanToStontestLastBCOffsetTesttestWatchVariableWritesInObject whileFalse:testGetMeanOfDataset newDictionaryKtestBroadenFilterAfterFetchCompletionShouldBroadenResultsWhenCaseInsensitve%testSubstituteVariableAtIntervalBlocktestwhenSelectionChangedDoNewTools-Debugger-Fuel-TeststestSingleLowercaseLetter RectangletestShiftMinusOne1LeftThenRighttestLayoutNotEqualsDtestInsettingLargerThanRectangleExtentShouldNotProduceNegativeExtenttestPushTempTemptestMultiPartMixedsum.testMouseMoveWithoutDraggingDoesNotModifyValuetestBindingsWriteGlobals testIfExiststestNewFromKeysAndValues)testDictionaryPublicProtocolCompatibility testRaisedToNewTools-FindertestSignedInt64testWithCollectiontestNotifyDebugPointHittestSelectHandlersCodeLoadertestAssignmentHasNoExtraSpace testDotParent,testEncompassingRectangleContainsBorderWidthtestSmartCharactersOppositeOftestSelectsMethodWithFlagtestTestClassesShouldBeSingular}Athens-ExamplestestMultiplicationtestPutAllNegativetestAddTagsToAClass!testTraitAdditionWithTraitRemovedtestSumSignedInt64testReferenceConfigPrintStringtestMultiRequirementOrdering*Calypso-SystemPlugins-Critic-Queries-Teststest0FixtureDictionaryKeyAccess0testFindThisMethodWithFullClassIsTheCorrectclassCommander2-UI-TeststestJoinArrayUsingStringtestDefaultWithNoValue3testWorkerPoolWorkersAreStoppedAfterPoolsCollectiontestUpdateDisplay noise:y:z: testUndefinedClassClassIsDefinedtestIncludeClassWithExtensionstestAcceptEntryLogsItsSize testBitStringtestIsEmptyFromEmptyMethodScopetestRedundantClassRemoval testNewTraittestClassesShadow7testFixedLocatorNumberOfTicksIsOkWithUnsortedCollection with:with:testInitialization testBigArray.testModifyProtocolToExtensionUpdatesThePackage selectEvery:testKeyAtIdentityValueIfAbsenttestAllInstVarNames dayOfWeekNametestCentralAngletestDeadContextSourceNode testNoNils anExtensiontestNotLoadedClassMethod$testLogLocatorSmallestIndexIsCorrect testWithUses testLabeled01testTraitCompositiontestAllSatisfyTFCallbackQueuetestStructureOfAnchorReferencetestRenameClasstestPositionOfSubCollection sizeLimit7testCreateNewPackageWithConflictRaisesConflictExceptiontestExampleTwoIvarSlots testPredicatetestInvalidRadixtestExtensionClassNamestestBasicClassBuilding testBasicNewDrTests-TestCoveragetestPackageRenameWithExtensiontestNewNamedMethod"testSupplySpecificAnswerToQuestiontestVisitHttpInput testSingleRemoteReadNestedBlockstestReversedCyclenumberOfDigitsInBase:testHasSlotNamedtestCompileFromAnalysedASTtestSignatureWithArgumenttestDigitValue testScaleTotestExpressionSyntaxErrorMCMethodDefinitionSUnit-UI,testIsEmptyForExplicitlyDefinedAbstractClasstestCodePointEncodingDecodingtestLogBrowserOperationNewTools-DebugPointsBrowsertestExampleSimpleBlockArgument3testSuperclasscharBaselineOfMorphic>>eighth withIndexDo:testCopyNonEmptyWithout%testSliderMouseDownDoesNotModifyValueuEmergencyDebugger-TeststestDiffWithLinesRecordsDelete"testParagraphEnvironmentParagraph2testPrintShowingDecimalPlaces2testRaisedToInteger.testFixedLocatorDataIsOkWithCollectionTooLarge testNumeratortestReadComputedSlotCompiled testFibonaccitestIsCashingResourcesTruetestTooLongArgument2 testSorting01testResetUnwindtestStorePopIvar&testStringArgumentsAreReleasedIfNeededtestHandlerFromActionNumbertestOneSpaceIndenttestMaxMinValuestestIsRootDirectoryWindowsDrivetestWaitMaxMillisecondstestExtractAllKinds RBScannertestSelectionStart'testSmartCharacterWithEventAndSelection testWithRB3testAccessibleRealValues@testThatThereAreNoSelectorsRemainingThatAreSentButNotImplemented testBinSizetestNoCoverageCollections-Strings r:g:b:alpha:.testInitializationAllCheckBoxDictionarySetTrue!testNoChangeInSharedPoolsDetectedasStringtestMultiLogScaleScaleon:limit:limitBlock: testGroupingtestAsFormAtScale testAstScopeKeymapping-CorerelativeToReference:"testBorderDoUpdatesInvalidateShapeRoassal-Class-ExamplestestInstanceCreationtestArrayEvaluateWithBindings testSpanRow$testPlaygroundWidenOnErroneousSource testANewLineCreatesANewParagraph&,testPopularStringDoesReturnOnlyTwentyResultstestSumUnsignedInt Roassal-DSMtestImportFromReadStreamtestAddInstVarNamed$testObservableSlotAssignReturnsValuetestAsSetWithEqualsElements,testLastBcOffsetForNodeWhenMappedPcsAreEmptytestHandlingWithExclusiontestUnsignedInt testEmbeddedAnchorInTextAreDrawntestRetrievesQueryScopestestPushConstantTrueBytecode&testRehashDoesNotTransformAssociationsFileSystem-Core'testAccessingVariablesInOptimizedBlock2"testUsingMethodsFindsVariableUserstestHasProtocoltestBuilderWithTagtestHasEqualElements-testFutureSuccessCallbackExecutesInSameWorkertestIsProbablyPrime testDefaulttestInfinityCloseTotestLiteralSymbolstestSimplePasstestAddWithKeyAlreadyIntestFinalizationWithOnFork testDoubleLtestAddMethodInExtensionCategoryWithExactMatchAddMethodToTheExtendingPackagetestRelativeWithParentstestPropertyAtIfAbsent testLayoutsxor:PropertySortFunctiontestCopyUpToLastWithDuplicate@testRenameClassUpdateMetaclassDefinedSelectorsInTheParentPackage"testCreateVariableWordClassWithAlltestRelativeToReference lastValuetestRedundantPackageTagAdditionreject:thenCollect:System-OSEnvironmentstestFigureInPresenceOfParagraphtestNoRemoteMethodTemptestTopAthens-SVG-PathConvertertestWriteStreamDoExiststestClassWithCommentAndStampEquals+testCannotCreateDictionaryRepositoryFromUrltestLastwindowIsNil FFIBackendtestChangeRemoveManyDtestIsAffectedByChangeOfMethodOfTargetClassWhichOverridesAbstractOnetestUndeclareSlottestCreateEphemeronClassWithAll7testSubstringFilterReturnsValidResultsWithTheSameFilter+testThoroughWhichMethodsReferToSpecialIndexBtestSkipUpToNodeStopsOnImplicitReturnIfAimedNodeCanStillBeExecuted testNegated.testObjectCentricBreakDebugPointOnVariableReadtestNewTextStream'testSmartQuoteSurroundsEscapesSelectionSystem-DependenciesTeststestUTF32EncoderWidetestRemoveLeaf3aStringtestCommentWithImpacttestMaximizeWindow*testSelectorEnvironmentRemovesEmptyClassestestMiddleButtonOpenHalostestFormatMessagetestNewFutureIsNotFinishedindoptionInlineCaseRenraku>testCanCreateBitBucketRepositoryFromUrlWithExplicitHostAndPorttestReadIntoLargertestIsNotAbsolute;testRenameClassUpdateOrganizerClassExtendingPackagesMappingSystem-OSEnvironments-Tests aColorHex#testVersionNumberForComplexFileNametestIntersectionsWithArctestTwoSpacesInsideArray testAsFormtestProtocolEnvironmenttestMouseEnterDraggingFromMorphtestAddTraitSettingPackageTagtestAlt&test0FixtureDictionaryIncludesIdentitytestSimpleEnsureTestWithErrortestInitialMethodVersion!testRemoveFromSystemRemoveAllTags"testClassSideDefinitionIsClassSide testIncludesSortedCollection7testUncorrectJSONMetaDataProducesDictionaryWithContentstestHasCaptiontestIsAListNumberedtestMakeRelative)testPackagesAvailableInTestCoveragePlugin&testStoredValueForSettingNoStoredValuetestReadWriteCompiledtestNAtestSpaceBetweenVarAndComment2testMakeDependentPackagesDifferentOnDifferentGraph/testWordsAwareIteratorFiltersByASequenceOfWordsisIntegerPoint)testOptimizedBlockWriteInNestedBlockCase2testResolveAbsoluteReferencesXtestLoadNotFoundImage(testRemovedDependentPackagesIncludesFrom/testConfidenceIntervalMaxIsGreaterThanQuartile3 testBuildWithoutLayoutRaiseError->testTwoElementsGtestRemoveProtocolIfEmptyWithNonExistingProtocolDoesNotAnnounceAnythingBtestVariableByteClassWithTraitCreatedShouldntAnnounceClassModifiedDelaytestOneElement$testRefreshCacheWithoutScanAllSystemtestSlotDuplicationConflictMessageNotUnderstoodtestPairsCollect testVariableEnvironmentClassVarstestParameterAttestHasBindingThatBeginsWithtestObjectCentricObjectAPI testPagertestParentParenttestMoveToNodeWhenNodeIsNonInlinedAndEmbeddedInNonInlinedBlockCalypso-SystemTools-Core!testPrintSeparatedByEverySignedOn*testAnnotatedBlockOnTwoLinesWithFormatting:testRefersToLiteralsReturnsTrueWhenLiteralIsGlobalVariabletestTabsubSizetestPrintString_defaultValue>=testOnceBreakBehaviorTool-ImageCleaner-Tests!testAddInstVarNamedClassInterface subtractDays:testFromNamesWithEmptyDataBaselineOfBaseLibraries testMajorAxistestPrintStringBasetestSqrtErrorConditions)testCommentBetweenTemporariesAndStatement testAddLast$testButtonUpClickWithoutSelectOptiongroupsOf:atATimeDo:testRemoveClasstestDeclareTempAndPasteBlocktestAddIntructionstestBoldItalicAPIToAccessTextvalueWithArguments:copyReplaceFrom:to:with:last:0testFutureFirstCompleteOfFailsIfFirstFailsFastertestAsByteArraytestCoveragePercentForMock testWithWeirdValuesLineWithTickssqueezeOutNumber testAddWatch testFillingWithClassAndItsTraitstestEscapeCharacterInNestedCasetestBehaviortNamed)testTempNamedShouldFailGivenNameIsNotTemptestSizeUnsignedLongUnix Spec2-Code'testPasswordDoesNotStorePasswordInClear'testFutureFlatCollectFailsOnSelfFailure testReversedtestTallyInstructions&testSingleLevelListWithNormalNumbering'testNextIntegerOfSizeSignedBigEndianPuttestNoExtraSpaces'testEscapeCharacterWithNoCharacterAfter testSlotNamedCollections-Stack-TeststestStylerRedLabeltestSizeUnsignedInt16testBasicQuoteBlock2testBlockWithInstanceVariableReturnsLastExpressionOmStoreFactoryItestMoveToNodeWhenFromNonInlinedEmbeddedBlockToNodeThatIsNotInHomeContextblue"NewTools-SpTextPresenterDecoratorstestMethodSourceNodeAtPCtestClassRemovedFileSystem-Memory"testEqualsOtherOrderedDictionaries-testButtonDownClickShouldModifiedPreviewFinal(testWhenCanvasScaleChangedUpdatesShadowsScriptingExtensionstestWritingOverflowtestSimpleMerge*testAssociationsDoGoesOverEntireDictionarytestUpperLimit aCollectiontestShapeIsPushedFronttestDontGrowWhenUnecessary h:s:l:alpha:testAddWithOccurrences&test32BitTranslucentPixelValueKeepsRGBtestRestartContextAtspan testDurationBaselineOfAIGraphAlgorithmstest2BitReversedordertestNonCodeChangeEventtestNonObsoleteClass to:by:do: testAsArraytestNotifyTempBreakpointHit test01add!testChangeInSharedPoolsIsDetected&testWhileTrueExecutesLeftBlockWithTempnodetestRealValueModificationStartupPreferencestestFullAlphabettestStSerializationRegex-Core-TestsSymboltestPrepareResultForExecutionallRangesOfSubstring: testCenterEmptyBasedOnPointPointtestActivateReturnValue testOfSize testRedirecttestLoadNotCorrectMicrodownTool-Finder-UI testMatchestestMinMaxValue Text-Editionwith:testCopyNonEmptyWithoutAlltestPushInstanceVariablebreakInContext:node:Zinc-Character-Encoding-Tests%testFamilyListCorrectAtInitializationtestInCriticalWaittestChangeSuperclasstestAddClassSettingPackageSystemCommands-MethodCommandstestConvencienceMethodstestRemoveLeaf1 testPowScale%testUTF8SurrogateCodePointsShouldFailtestStepIntoQuickMethodMetacello-Core#testCleanUnusedUnreferencedPackagesAtestSimilarToAnnotationOfSameClassWhenBothDoNotDefinedWithContextfirstKey0testCreateAndChangeWithoutCommentDoesNotAnnouncetestBasicViolinPlotcumulativeCounts(test0FixtureIterateSequencedReadableTestexampleLiteralByteString!testHandlingWithSeveralExclusionsexpandMacrosWith:with:with:testNewLineAfterCascadetestInvalidPragma2testSupplyAnswerOfFillInTheBlankUsingDefaultAnswerSystem-HistorytestReadFromManyDigits%testAllInstanceVariablesDefiningClassround: testSNIPagetestReturnHasNoPeriodSpec2-Morphic-Backend-TeststestReadOnlyFileNamedremoveDuplicates&testSmartDoubleQuoteSurroundsSelectiontestSubtractiontestUndefinedVariabletestLazyClassVariablePrint6testRefersToLiteralsReturnsTrueWhenLiteralIsByteSymboltestSelectThenCollectOnEmptytestPushDownMethodDriverWhenAbstractClassExpectBreakingChanges testAllEasingfoo:bar:testRenamePackageToOwnTagNametestMarshallingSize_ttestExampleToDoOutsideTemp testSubtrees6testExplicitNotifyUnexistentPropertyChangedRaisesError testImportAMethodWithNoTimestampisClosePunctuation:testRehashPreservesCapacitySystemCommands-PackageCommandstestOrEnvironmenttestRemoveTaggedClassestestCopyUpToWithDuplicatetestMicInputfilePath testPrintHalttestAsFloatPoint#testConvertingWithExtraBasisObjectstestLastNElementstestOldPharoConfigurationtestPushLiteralVariableBytecodeRing-Monticello#testNewLineAfterBracesWhenMultilinetestToDoArgument)testSettingCompletionFromEditorToTextArea(testAllDependentPackagesFromSeenPackages"testSupplySameAnswerToAllQuestionsTool-ImageCleanerminSize"testNewObjectCentricBreakpointItem4testCompletionWithNoElementsToFetchShouldNotHaveMoreMtestAndMakeSureSuperTearDownIsCalledAsLastMessageInTearDownMethodsOfTestCasesnewArrayprintOn: allPairsDo:adaptToPoint:andSend:t&testSmartCharacterWithEventSelfClosingCollections-TeststestDisplayEmptySlotstestVisitHttpLinktestReentrantBlock LGitLibrarytestAsReferencetestGettingExistingClass,testWithBottomDoesNotProduceInvalidRectangle&testAsNumberNegatedWithoutDecimalPointtestLiteralVariableGlobale7testFutureFailureCallbackIsCalledAfterFailureIsDeployed#testInputFileOnOneLineWithJunkAfter+testSkipCannotSkipReturnIfItIsTheLastReturn KeyboardKeytestEmptyBlockTwoArgumentstestLastIndexOfStartingAttestSignedLongLongItestCollectionWithSingleWithALotOfElementsReturnsTheRequestedInCollectiontestExampleToDoValuetestInlineBlockCollectionSD1testExactMatchNewTools-Scopes-EditortestSqrt#testClickOnCanvasUnselectsAllShapestestAPIFromMessageSendReceivertestEnvironmentOfOrganization+testSearchingInvalidTextDoesNotReturnResulttestFloatTruncatedtestTransfersSingleClient$testExampleAccessOuterFromCleanBlocktestIsBytesLayout3testFutureSuccessCallbackExecutesInSameWorkerRunnertestParseLineWithOneCharacterpostestAllEntries ReflectivitytestNewVariableBreakpointItemtest0IndexAccessingTestFileSystem-Memory-TeststestBasedOnBasisObject testBasicGettestNoneSatisfyEmptyoptionOptimizeIRtestResumablePasstestBoldsAndNestedItalicstestCreateVariableClassNamedtestRenameProtocolAstestNewLineBeforeCascade%testMetaclassTraitImplicitEnvironment#testTerminationDuringNestedUnwindR2testAnnotatedBlockTextElementstestAllSatisfyEmptytestUnifyClassTraittestObjectAllSubclassesfirst: DictionaryMonticelloTonel-Tests-Mocks6testAnnouncementClassRemovedIsRaisedOnRemoveFromSystemtestStoreOnRoundTrip testAssignmentOfGlobalVarBinding2testGettingAllRedefinedInstancesShouldCleanGarbagetestBasedOnEmptyBasistestExampleTempNamedTempVector2!testVersionInImageHeaderIsCorrect"testConvertingToSomeHierarchyScope testPlusMinusLessThanGreaterThanThreadedFFI-TeststestUsingMethodsFFItestExtractSetupExample3testLessThanLessThan testBasicSizetestInitializeWidgetstestExistingClassWithClassSlotMorphic-Widgets-MenubartestShiftUpShortStack/testCaseInsensitiveFilterIsNotNarrowThanNegated testIsNiltestDefaultMetaclasstestTranslateMiddleRightTotestAssignTemporaryVariable*testSelectShapesWithModelOnlyUsingCommandAtestHasNOCaptiontest04addBefore6testRestoredBrowserInstanceWithExpectedFlatQueryResult testIsLiteralprintOn:delimiter:)Calypso-SystemQueries-Tests-PExtendedByP1-testMonticelloInitializersAreEnabledByDefaultCalypso-SystemTools-FullBrowser$testBlockWithEnclosedBlockSourceNodetestExampleSimpleBlocktestMultipleSequenceFormats0testAssociationAtNonexistantKeyExecutesFailBlockNautilusRefactoring-TeststestRaisedTo02-testBestNodeWithValidPostionOnMethodPeriodEnd testStackAttestComposeStackTest!testNoEquivalentSuperclassMethodstestFindThisMethodWithFullClasstestAnonymousSubclasstestChainBehaviorResetChainCtestClassSideInitializeMethodNeedsToBeInClassInitializationProtocoltestReadInContexttestModifyingSuperclass testRandomtestClassWithInstanceSideImpactPtestWhenWeHaveTheRubTextFieldAreaInsideOtherMorphHasToHonorTheExtentAssignedToIt newStreamtestZoomToFitOnStart$testStopServiceStopsUnderlyingWorker Athens-CairotestWorkingDirectoryParenttestZeroElementContainstestChangeAddOne-testSmartDoubleQuoteSurroundsEscapesSelectiontestAddSlotAndMigratetestCopyCreatesNewObjecttestPointNearestTo FooBarBaz0testHasEqualElementsOfIdenticalCollectionObjectstestIndexOfKey-testDeprecatedAliasesAreRemovedByClassRemoval lineEndingtestwhichSelectorsAccesstestWatchVariableReadsInObjecttestCommentNotBasicFormattestCanUnderstand"testExtraIndentationWhenMultiline3testResizingClosingtestAncestorMergetestProtocolNamedtestAddInheritanceDependencies testEquals3testWithPackages"testNextManyShouldReturnCollection"testCaptureIfSignalledWhenSteppingtestStepIntoReturnSelfMethod testHasOptiontestBorderWidthHomogeneous#testEnvironmentWithAnyNestedElement#testNilIfNotNilDoesNotEvaluateBlocktestPrimitiveNumbertestSkipUpToNodetest0FixtureCloneTest#testKeyStrokeBackSpaceWithMaxLength"testPassingLongStructByCopyInPharo+testBehaviorDefinitionModifiedForSuperclassGraphics-PrimitivestestIndexOfStartingAtIfAbsent!testConvertFromNonDecimalFractiontestLasttestFormatCommentWithStatement$testFlatCollectAsWithEmptyCollection@testMoveToNodeInTheMiddleOfStatementSkipsTheBeginningOfStatementHtestDoesNotContainReferenceWhenUsingDifferentInstancesOfMemoryFileSystemtestCollectThenDoOnEmpty&testParseWindowsPathWithUnixDelimiterstestShouldShowCellLabelsIsTrueSystem-CachingisCurrencySymbol:8testComparisonOfSameQueriesWithDifferentRequestedContenttestAddOneElementAndModifyClasstestInferiorWithFloat)testDontRetainBlankLinesBetweenStatementstestTestPackageNamestestConversionToTraittestMarkerShapetestExtractSetupExample4testDotDotParent testInstVarcetestSizeLongLong FileLocatortestDecreasedValueFromtestIsVariableBindingsecondtestIncludesAssociationtestCreateVariableClassWithAlltestDigitTooLargeForARadix"testAnnouncerSuspendingWithStoringtestTimesRepeatWithTempInBlocktestKeyAtValuejoinTo:testCopyEmptyMethodFonts-Infrastructure-TeststestRemoveProtocolAnnouncement38testIncludeForbiddenClassesAsSpecialForbiddenAnnotations0testBestNodeWithValidPostionOnReturningMethodEndtestDigitAtPuttestIsAssignmenttestSuperiorToMinimum"testTraitIfClassTraitAlreadyExistscompare:with:collated:sorttestThreadSafe%test0TSequencedStructuralEqualityTesttestUnorderedList Morphic-Base foundBlocktestSumSignedInt8testAllUnresolvedtestPrimeFactorselementAndIndexBlocktestCopySignTotestKeysAndValuesRemove#testHasSelectorSpecialSelectorIndexBaselineOfClassParsertestComparisontestTraitImplicitEnvironmentor:/testConfidenceIntervalMinIsGreaterThanQuartile1+testClassRepackagedNotFiredAtAClassAdditiontestBreakpointOnTempWrites splitOn:do:BaselineOfColorPicker/testConvertingToAnotherScopeClassShouldKeepName testMainPage testRemovetestMorphInline testMinorAxis+testCreateTraitUsingAnotherTraitComposition+testAsIdentitySetWithIdentityEqualsElements findSelectortestDoItHaltBindingtestUpdatingSelectionsOnUpdate Roassal-Spectest10removeFirst9testMethodsOfTheClassShouldNotBeRepeatedInItsSuperclassestestNoUnusedClassVariablesLefttestAllButLastNElementswrittentestZeroElementRectangletestFindThisMethod,testDictionaryConcatenationWithoutCommonKeystestSetBandwidthorigin:corner: testNoSearchtestMultiPackageMerge2 testLabel2 difference:testOpenPresenterIsDisplayed(testAtIfPresentWithGarbageCollectedValue testVmBinary#testConvertingWithNewRequiredResultreader=testInitializeFilterDropListSelectedItemShouldBeDefaultFiltertestAllInstructionstestExampleSimpleBlockNested%testDetectIfFoundWhenSomethingIsFoundCommander-Spec2-Compatibility secondArgtestCategoriestestOpenCanConsumeLinetestOpenPresenterIsBuilttestCompletionOpenOnUnderscore isKeywordtestDoublePragmatestBoldWrappedElements testPcInOuter*testSupplySeveralAnswersToSeveralQuestionsRoassal-Layouts-Util!testCreateWithCommentDoesAnnounce testSubstituteVariableAtIntervaltestUnclosedFigure#testCreateClassWithTwoClassVariable,testFutureOnDoFailsOnFailingExceptionHandlertestActiveHomeCleantestFutureFallbackToHasSecondValueIfFirstFailsAndSecondSuccessxz0Calypso-SystemPlugins-Reflectivity-Queries-TestsAtestPackageOfClassForClassesNotDefinedInPackageButJustExtendingItNtestOneCanProceedWhenIntroducingClasseVariablesBeginingWithLowerCaseCharacterstestAllByteEncoderDomains testIfNiltestNotNilIfNilReturnsReceivertestContainsPointInRTree testSlideBlochtestSourceNodeOptimizedBlocktestProtoObject includesSubstring:caseSensitive:encoder digitValue: testBehavior&testSubstringFilterReturnsValidResultsClassAnnotation-TeststestWatchVariableInClass#testTestCasesEndsWithTestOrTestCasetestMethodsAccessingSlot testDelayPi6testAcceptTwoEntriesAtDifferentIndexLogsSeparateCountsSystem-Object Events-TeststestDoubleWordClassz0+testEqualMethodNeedsToBeInComparingProtocol testDequeuetestLargePrimesUpTotestWithIndexDotest testReadUpTotestUpperLimitsWithtestCacheDectivationtestBehaviorRepackagedChangetestHash2testSettingEnvValueDuringChangesValueInDuringBlocktestModifyLabeltestBadPathVariableIsusedtestByteCanExtendBytetestWriteStreamtestExclamationMarktestBaseAndExtensiontest2BitDisplaytestPrimGreaterOrEqual@testChangeRecordsForMethod"testCurlyBraceDoesNotLeadToProblemBaselineOfMonticellotestBuildMessageHeuristicKernel!testEmbeddedOrderedWithFormattingSettings-Graphics*testGoodPathClassIsUnusedEmptyNoSubclassestestThreeElementstestExampleToDoInsideTemp test5kClasses combinationtestInlineBlockCollectionLR1cornertestAfterIfAbsent!testCanCreateFtpRepositoryFromUrl*testRedundantPAckageTagRenameWithAbsentTag testisUsed=testCompletionCompositionNextManyShouldStopAfterEndOfElementsspace pathStringtestDynamicDescription&testAndWithLeftFalseShortcircuitsRightcrBaselineOfSpec2 oldObjecttestAddIconToThemetestForgettingAnnotation!testServiceExecutesTearDownOnStoptestAsAbsoluteIdentity"testLinearLocatorNumberOfTicksIsOktestTwoLevelListtestOneSpaceInsideArraytestScheduleExecutestestIfEqualIsTransitive)Calypso-SystemTools-OldToolCompatibillity&testRetainBlankLinesBetweenStatements3testExtractDatasetFromValuetestRedotestSemaphoreTimeouttestBasicStatisticalMeasures testInferior1testGlobalCounterReferenceAfterRemovingFromMethodAtestInsettingSmallerThanRectangleExtentShouldProduceCorrectExtentTool-MorphicProfilertestIsPowerOfTwo)Calypso-SystemQueries-Tests-PExtendedByP5testIsVisitedOrInStack isLowercasehuetestDisableEnableBreakpointtestDefaultImage0testComparisonOfTwoAnnotationsWithDifferentClass testWidth testIsReflex)testFalseIfFalseIfTrueEvaluatesFalseBlocktestAsIntegerPointtestLocalSelectors raisedTo:(testUpdateMethodAnnounceRecategorization(testEditClassOrPackageScopeRemovingClass testIfCutDoWithCutAndUncutsFirst/testNilIfNotNilWithArgumentDoesNotEvaluateBlock%testRemoveElementReallyRemovesElement/testUndeclaredVariableWhenItIsAlreadyRegisteredunzip)testImplicitConversionFromClassProperties6testRemoveExtensionMethodDoesNotRemoveExtendingPackagetestIndexOfWithDuplicatestestCopyWithoutIndex Calypso-SystemTools-QueryBrowsertestIncludesAnyAllTheretestInferiorOrEqualsWithFloat UIManager truncatedtestChildDirectories currentIndextestReflectiveReadWritetestKeywordOnMultipleLine15OpalCompiler-UItestDoEvaluateDeclareGlobal testGhostTexttestRemoveAllExtensionMethodsRemoveTheClassFromExtendedClassesexceptionBlock'testReturnsAsManyWaitsAsSignalsReceivedtestMedianForOddSizeCollectionHalfpi1testNotIncludeForbiddenClassesAsBrokenAnnotations$SystemCommands-PackageCommands-Tests+testOnlyOneMethodInMicrodownDefinesSettings testUTF16BackprimesUpTo:do:testAllButLastDoSpec2-Code-Diff-Tests'testAsNumberNegatedWithoutDecimalPoint2Kernel-CodeModel-Tests/testPackageScopeIncludesClassCreatedAPosterioritestMessageArguments#testKeyAtValueIfAbsentLocalyDefinedtestEmptyClassVariable testCycle01testNewLinesAfterGluedComment)testFigureWithParenthesesInsteadOfBrackettestXor9testWhenChangeDirectoryShouldFilesListContainsHisChildrenIceberg-Metacello-Integration Kernel-Testsh:s:v:greentestBetatestMultipleExtensionstestPointersTotestNotifyDebugPointAddedtestSimultaneousRemove testOnErrorDo"testAddNonEmptyGrowsWhenNewElement0testRenamePackageAlsoRenameAllExtensionProtocolstestHighlightAllShapestestJustTheArgumentstestAsNumberWithoutDecimalPoint%testEnvironmentWithBrokenMotherNested testBasicstestNoNewLineAfterCascade2testPrintRelativeWithParentItestPeriodAtEndOfMethodWithMultipleElementArrayShouldNotHavePointAtTheEnd Text-Scanning testInfinity1Native-BrowsertestAddExtensionProtocoltestResolveString6testRefersToLiteralsReturnsTrueWhenLiteralIsByteStringtestJumpOnCommentsNewTools-DocumentBrowsertestSplitJoinStringOnChar asWideStringtestSimpleDefinitionClassNodecloseTo:precision:testAsIdentitySet5testIsMessageSentInSystemWithTheSelectorInsideAnArrayBasicCommandLineHandlertestRelativeToBranchtestAnnotationBasictestWritesTemporaryVariabletestAnySatisfytestReturnTrueBytecode testMerge3testPrimIdentitytestWithSharedVariable)testExampleTempNamedTempVectorNestedBlockManifest-Resources-Tests testCompacttestKeywordOnMultipleLine10testBuilderWithSlots testCycle04 testBasic testContinueEncoutersAnExceptiontestReadStreamIfAbsent FFI-Kernel testBitXortestWriteComputedSlotCompiledtestRemoveLastNElements%testNoNilAssignmentInInitializeMethodnewSizetestShortStacktestPossiblyUsingClassestestEmptyCommentDoesNotAnnounce7testOptimisedValueSpecialSendsMessageDoesNotCaptureSend1testSharedSlotNodeArePolymorphicToRBVariableNodestestCompactClassTemplatetestCreateBuilder(testComparisonOfFunctionsDefinedBySymbol testSelector+testPackageTagRemovalWithPackageTagAdditiontestUpdateAllSettingstestAreEmptyForUnusedAnnotation,testRedundantMethodRemovalWithAbsentBehaviortestNewLineBetweenStatement testMathBlock=polynomialEval:testUnresolvedValue flatCollect: Ombu-TeststestInvalidPrimitiveKernel-ExtraUtilstestBasedOnSingleBasis*testConfidencePercentageIsCorrectlyChangedtestProtocolNamestestPharoVersionFileExists1testSplitBlockLinkWithBracketInsteadOfParenthesestestNextPutAlltestExampleTwoBooleanSlotsgroupsOf:atATimeCollect:testEmptyBlockZeroArgumentsBaselineOfFueltestRightRotatedtestResetShouldRestartGeneratorfindBinary:do:ifNone:testSplitJoinStringOnStringtestAddProtocolWithRealProtocoltestUnclosedMathtestBreakDebugPointtestBuildLiteralArrayHeuristic testLiteralVariableClassVariabletestDigitsAccesstestRemoveAllErrorisStringtestInstallMinimalMockClasstestExampleSlotWithState testTooLongBlockBodyWithArgumentkwdsouttestCompileSymboltestRemoveFirstNElementstestRedundantMethodAdditiontestHasNoArguments testReadsSelf)testDictionaryConcatenationWithCommonKeystestValueWithPossibleArgumenttestByteArrayBasetestIndexOfSearch testReceiver1testComparisonOfSimilarQueriesWithDifferentScopestestUnaryNoExtraSpacesAfter2isSymboltestRemoveFirstNotPresenttestBasicCoveragetestSizeUnsignedIntEnum testEqualityperform: caseSensitivefooFormatter-SettingstestMonospacesWithBackSlashtestAsFormWithExtentargstestAnimatedColorsOutIn#testNotNilIfNilDoesNotEvaluateBlocktestDefinitionWithClasstestGroupedUndo1testTallyMethodsBaselineOfMorphicCoretestPrintStringHextestRestoreWindowtestPositionErrorstestDependenciesFrom testAcceptEntryIncrementsAverage testBitShift testLookingSubstringShowsResultstestNotifyArgumentBreakpointHit testAsBit%testNoChangeInSharedVariablesDetected testBmp16BittestUnaryNoExtraSpacesAftertestRenamePackageWithExtensions)testReadIntoStartingAtCountFromStreamWidetestLineStartStringContainingCR,testBadPathRemovingNonEmptySubWithSubclasses2testJPGPPreviewerCanBeUsedOnParameterFileReference testAreCachedtestHasPackageCaseInsensitivetestAssociationtestEndPeriodInside testIsEnabledtestLinkCreatesInnerTextfoo:$SystemCommands-MessageCommands-TeststestHasPropertytestReturnNilBytecodeparmTranscript-CoretestMarshallingOOPIsSameObjecttestMigrateTestSlotkeysAndValuesDo:testJoinStringUsingStringBaselineOfRoassalisEnclosingMark:testReferenceConfigtestUTF32EncoderExampleFromD99testGlobasPathtestRemoveSelectorByAndAndNot testDoItHaltJtestPushDownMethodDriverWhenSubclassesReferToSelectorExpectBreakingChangestestPngDecodingColors16testSaveOneValueSmallDictionaryacceptUnknownClasses: thisWritetestCreationByUnresolvedNamedtestCheckIfAnnotatesGivenClassIceberg-Plugin-MigrationtestTraitRemovalWithTraitAddedtestCustomWeight.testTrueIfTrueEvaluateBlockWithTempInsideBlocktestConvertingToInheritingScopeoptionInlineRepeattestStopRecordingRottenTestsFinder-Tests testNewFromstrtestRemoveProtocoltestEmptyIndexesArraytestPrimNewWithtestMonospaceUnevaluatedtestVariableClassWithTraitCreatedShouldntAnnounceClassModifiedtestWithSharedPooltestSimpleColumnMetacello-GitBasedRepositorytestSerializeStackFromContexttestPrintPaddedWithTotestOrderedListDuring testSetLabeladd:testWithRB10WithError%testMergeWithFontRemovePredefinedFont#testDynamicVariableBlockReturnValuetestEnvironmentWithArgumentsoptionInlineToDo+testGlobalCounterReferenceAfterInstallationPtestWhenAddACollectionOfBookmarkToCustomBookmarkShouldBeAddedToBookmarkTreeTable EventManager,testSupplyAnswerUsingOnlySubstringOfQuestion isUppercase9testBestNodeWithInvalidMethodIncompleteMidSourceOnMessagetestPushClassVariable testMinMaxtestSplitJoinOnSequenceisDigittestWithCollect.testButtonDownClickShouldModifiedArgumentsList"testSelectionInFontStyleListIsKeptsenderSpec2-MicrodowntestUnrestrictedClassVariablecc:testPrintVariableBreakpointItemtestAllMethods*testBuildVariableInstanceVariableHeuristictestCreationOnBasisObjectstestRejectAllThenCollect testReject!testPackageNamedWithDifferentCaseSpec2-Morphic-Tests testLabeled02 twoArgBlocknonEmptyStringtestValidTraitComposition3testCustomLineBreakingtestBindToEnvironmentstreamContents:limitedTo: CSSeparatorsDrTests-TestsProfiling%testNoNewLineBetweenVariableAndIfTrue groupedBy:testToDoWithTempOutsideBlockSystem-Settings-CoretestWeakClassIsWeaktestExternalLinkWithItalic testAddClasstestDeclareInstVarBlocktestCommentWithStyletestSumSignedShorttestLiteralBooleantestOnLimitLimitBlock&test0FixtureIndexAccessFotMultipliness testPalettesAnnouncements-Core-TeststestSelectedTabsWithoutBrowsertestPushTemporaryVariableelm(testSkipSkipsSuperSendBytecodesCorrectly testSpaceFillMonticelloFileTree-CoretestDoubleClickFromMorphtestMethod1forMocktestAsLargerPowerOfTwotestSignedInt32 testCopyEmptyCommander-Activators-Mouse)testRemovedSelectorsWithMultipleSelectorstestWithFromTotestNestedTimesRepeattestRedundantMethodRemovalprint:testExamplePrimitiveErrorModuletestDensityPlotDefaultValuesprivateMaxComponent%testLastClickedMorphSetUponUpdateListMonticelloTonel-FileSystem7testChangeInSuperclassShouldNotAnnounceSubclassModifiedasScaledDecimal:testNumericTypestestMouseLeaveFromMorphprintStringHextestBorderWidthNotHomogeneoustestIncludesElementIsTheretestHasLiteraltestBasenameNoParenttestDraggingModifiesValue escapingWrite)testCreationByCommaWithCompatibleArgument&test0FixtureDictionaryAssocitionAccesstestBackWindowsAreShownCodeImportCommandLineHandlers"testFileOutSingleTraitModificationtestSimpleOuterNewValueHolder-Core"testFutureAndThenFailsIfFirstFailstestAsSortedArray(testSelf_conditionBlockProducerMethodASTtestAddIdenticalElements&testDontRetainBlankLinesBeforeComments-testWeakOrderedCollectionSomeGarbageCollectedtestKeywordOnMultipleLine63testChangingPcRaisesErrorWhenPcIsLowerThanInitialPCtestCullCullCullCulltestwhichSelectorsWritetestTagsForClassesCollectionNECompletion-Morphic8testAcceptEntryIncrementsAverageEvenIfAtDifferentIndexes#testConvertingWithNewCompositeScopetestExtraProvisionstestCompileStringtestThisContextSourceNodetestPlustestOnceBreakOnVariable Spec2-LayouttestAssignSuperVariabletestPrimPointY!testRefreshCacheWithScanAllSystemtestAsStringOnDelimiterLastOne$testClampReturnsMaxIfNumberIsOverMaxtestObsoleteClasses nextToLasttestSumUnsignedInt8 aSortFunction.testConfidenceIntervalMaxIsLesserThanQuartile3 mySelectorRunArrayNewValueHolder-Tests/testBindingsWithUppercaseNameDoOverwriteGlobalsexpandMacrosWithArguments:FreeType-GraphicsSortFunctions-TeststestIsReadInMethoddeletetestReturningAnStruct testCircle!testIteratorWithEmptyBlockIsAtEndtestWatchVariablesInClass"testRetainBlankLinesBeforeCommentstestJoinStringUsingChar testResetpositiontestMultipleDocCommentsLtestBreakDebugPointOnVariableDetectsNewVariableAccessAfterCompilingNewMethod testRemoveTagcountifNotNil:ifNil:(testConvertingAsRestrictedByAnotherScopetestDemoteToRPackageNamedtestMethodContexttestSplitStringOnSubstringtestScaledDecimalLiteralstestStoreSettingNode0testBuildingClassesWithSlotsClassifiesItsMethodstestIntersectionsWithLineasDigitsToPower:do: testOpenOnce?testServiceInstancesAreCollectedAfterStartingAndStoppingServicetestSelectThenDo$testObjectCentricBreakOnceOnVariabletestPutNegativeSourceFileArraytestRemovingExtensionProtocoltestLoadAndUnloadtestBinaryFormatReceivertestExampleBlockExternal2testHandleEventFromtestIfNotEmpty isFloatPoint-testLazyClassVariableReflectiveBlockParametertestFillShiftClassBuilder$testPassingByParameterAStructInPharotestNoEmptyProtocols3testIncludeCopiesForEachSubclassOfOriginDeclarationhextestRuleLoadsCorrectlytestParallelAnimationCreationtestSignalFromHandlerActionTest#testClassAdditionWithCommentChangedtestNullEncoder(testContextSelectorForNonBuilderSelector$testNonResumableFallOffTheEndHandlertestDelayWaitTimeoutCompletedhighBitOfPositiveReceivertestPrimPointXtestAddSameWatchSameNodeFormCanvas-Teststok'testVennDiagramConvertsBigSetInputToSettest0FixtureCreationWithTesttestWaitTimeoutMSecstestWriteSeparatorOnKeymapping-Pragmasminutes: asFloatPointsplitterseparatorBlockquote testTransformBaselineOfMetacello#test0FixtureIncludeWithIdentityTest.testConfidenceIntervalMinIsLesserThanQuartile1testIncludesMethodtestPrintShowingDecimalPlaces3testLinkBoldAPIToAccessTexttestAsCommaStringEmpty-testFutureFailureCallbackExecutesInSameWorkertestTokensInUnicodeSystem-Supportboolean8AtOffset:!NewTools-Spotter-Processors-TeststestAtIfPresentIfAbsentPut testNextWordtestClassWithoutImpactBeacon-Core-Tests&testBuildClassWithSuperclassWithTraits!testHorizontalBlockFollowedByList1testRemoveSelectorDoesNotAnnounceRecategorizationtestIsCompiledMethodLayouttestLimitBlocktestSiblingBlocksTempShadowing sum:ifEmpty: testIsSortedtestDependencies MacOSX64. testHexStringtestUnmatchedCommentQuote+testSkipCanSkipReturnIfItIsNotTheLastReturntestHistoryGreaterThanThreeoccurrencesOf:to:,testTerminationDuringNestedUnwindWithReturn1"test0FixtureDictionaryRemovingTest placesDesired testBehaviornewnewShouldNotCrashtestPatternCodefindBinaryIndex:do:ifNone:(testTAddIfNotPresentWithElementAlreadyIntestHorizontal from:to:do: descendingtestMissingMessageAfterACascade Zinc-Tests testSetColor/testOtherInstancesOfSystemDictionaryPrintString testRedAreatestScaleExtensionHiedra&testCannotStartTwoServicesWithSameNametestTagsCollection#testContainsOnlyExtensionDependency:Calypso-SystemPlugins-Traits-Queries-Tests-PExtendingTrait"testTwoComplementBitLogicWithCarrytestSlotNodeBinding testIsObtuseasArray$testClassifyUnderAnnounceNewProtocol testOpenLog(testDetectOneChangeDetectedAndOneIgnoredtestForeignMethodModified)testHasProtocolWithProtocolFromOtherClassAthens-Cairo-Tests testDivision trueString*testInlinedBlockArgumentIsArgumentVariabletestDefinedClassIsUndefinedtestHeaderAPIToSetTexttestNoZoomToFitOnExtendChangedZnServerNSPerlinNoise2testIntervalStoreOn)Calypso-SystemPlugins-Deprecation-Queries:testUpdateNodesForVariableDebugPointAfterRecompilingMethodtestSelectWord*testReadIntoStartingAtCountFromStreamAtEndtestStepToReturnWithExceptiontest8BitDisplay4testArrayBindingsWithUppercaseNameDoOverwriteGlobalstestTempNamedPuttestReadStreamDoworldBtestBroaderFilterCompletionShouldBroadenResultsWhenCaseInsensitive testBuildVariableGlobalHeuristicthirdtestRetrievesActiveScopetestBreakOnAccesstestOneElementRectangletestIncludesClasstestJumpOnAssignmentproperty:collatedWith:BaselineOfExternalProjectLoadertestIfCutDoWithCutAndUncutshumanReadableSISizeOn:atEnd3testMethodsAccessingPoolVariablesFindsVariableUserstestMigrateClassVartestGmailEncryptedpositiveNumberStringtestAlphaCompositingSimulated%testThreeBackQuotesClosedByFourQuotestestRechainNilValue!testWriteTemporaryVariablesMethodText-Diff-Tests*testKeyAtNonexistantValueExecutesFailBlocktestMedianWithNumbers$testSearchingVeDoesNotIncludeIcebergCtestShouldFileLocatorBeBeforeSystemSettingsPersistenceInStartupListexponent testAddItem1)testSearchForRegexpStartWithCaseSensitivecorner: testIsIntegertestEqualityRelativeVsAbsolute!testWorkerRunsAlwaysInSameProcess'testFutureSelectFailsOnFailingPredicatetestSizeSignedShort ifNotNil:testUnclosedBold testLinksDo StrikeFont(testRevertCurrentMethodToSelectedVersiontestConfidenceIntervalIsOk'testTruncatedToSizeLargerThanCollectiontestBehaviorWithMethodTags collect:as: ReadStreamtestAddClassSettingPackageTag testAddOnetestInstanceCreationMajorMinorseed:testModifyingClassSideInstancestestUsingMethodstestStylerTitleLabel7testFutureFailureCallbackExecutesInSameNewProcessRunnertestUnaryFormatReceiver testLayouttestAsClassVariableCollectiontestBacktestServiceShouldHaveANametestNotifyDebugPointRemovedOtestAddMethodInExtensionCategoryNotRespectingCaseAddMethodToTheExtendingPackage testPrintOn allButLast#testRetainBlankLinesBeforeComments2+testNewScopeFromAPackageWithExtendedClasses#testDataMatrixShouldHaveTheSameSize3testIncludesKeyAnswerFalseForGarbageCollectedValuestestBlockAndContextSourceNode)testMergeWithPredefinedFontCanBeDecoratedtestAssignment allButFirsttestFractionPart testExactSqrttestByteCannotExtendWord testEqual classNameKey thisValueSystem-Identification-Tests%testEscapeAsLastCharacterDoesNotBreak SharedRandomtestNewHaltItemtestIntersectiontestTraitRemovaltestTraitUsersAfterClassReshape Clap-Tests testTopStackexpectedLiteralValueSystem-Settings-Browser"testExtraIndentationWhenMultiline2#testRelativeFromStringNormalizationtestPremultiplytestRedefiningInstanceTwiceSystem-Settings-Tests test2DVectortestUnregisterPackage*test32BitFormBlackShouldStayBlackAfterSavetestVersionNumberForExtensiontestAsSortFunctiontestByteArrayParenthesistestNegatedSearch FuzzyMatchertestGet075QuantileInvertedCDF1test0FixtureCopyWithOrWithoutSpecificElementsTesttestDrawingWayOutside44testFilterCompletionAfterFetchingShouldNarrowResults#testTerminationDuringNestedUnwindB2testBackWindowsAreFindtestRawWitoutClosureRing-TraitsSupport testDeepCopyroundedtestSkiptestDetectThreeChangesexampleLiteralBoxedFloattestAreasOutside1testMaxLengthIsSetsY1testNotIncludeInstancesAnnotatingForbiddenClassestestParseBogustestallMethodsAccessingSlotNewTools-Debugger-TeststestRedundantClassAdditionQtestAddMethodInExtensionCategoryNotExistingCreateANewPackageAndInstallsMethodInIttestSortResultArrayskipTo:testItalicsWithoutClosureat:BaselineOfGeometry allButLast:testSerializeContextToFileNamedtestWidenOnCommentstestFastPointersTo testLengthtestWatchDebugPoint NewTools-FueltestOccurrencesOf testSuperiortestIncludesKeytestSeriousBalance testSlotNodesHaveParentReference6testNewLineAfterFirstBracketWhenMultilineWithArgumentstestPackageNamedIfAbsent!testAnchorBlockFollowingEachOther6testPopularStringDoesReturnOnlyTwentyResultsForPackageextractBlockInTemptestIfNotNil0ArgtestTwoSingleParagraphs)testAtGarbageCollectedValueRaisesNotFoundtestExtractDatasetFromBlock$Calypso-SystemPlugins-Critic-BrowserKeymapping-TestsrunningAverage:&testButtonDownClickWithoutSelectOptiontestFullPrintOntestWriteAndReadCompiledtestMouseUpFromMorphMonticello-TeststestSimpleTableNoErrortestIdentityIndexOfKeyIfAbsenttestAccessesRef(testProperInstanceCreationProtocolIsUsed$testLineBetweenTemporariesAndComment'testProtocolAdditionWithProtocolRemoved IdentitySettestClassSideEmptyBaselineOfSlotkey Traits-TestsfillFrom:with:testNegativeZeroAbstestDifferentBases*testNextVersionAlphabeticVersionedFilename testNoChangeInSuperclassDetectedSequenceableCollectiontestChangingFormatKeepsMethodtestDisableCheckChildrenActionstestExtensionMethodModified*testMethodClassBindingShouldBeClassBindingtest0TStructuralEqualityTesttestSingleSlashDtestMethodDefinitionWithEmptyProtocolIsClassifiedAsAsYetUnclassified testLineStartIsInitializedToZerotestHighlightShapestestToDoInsideTemp#testKeywordFormatReceiverAssignmentSUnit-Support-UITesting-Tests"testBehaviorWithCategorizedMethodstestWindowsAbsolutePathName$testProtocolRemovalWithProtocolAdded testCloseTotestOnDo testFactorialNumericInterpolatortestDoNotUseNiceLabeltestSelectedTabsWithoutOwner minimumLengthtestEnsureDeletetestRemovedSelectorstestErrorCatch,testAccessingBlockArgumentNoneOptimizedBlocktestLongSingleArgumenttestDependenciesSizeTotestHasFilesTypedtestCompileCharacterwrite Association testHasFiles roundUpTo:darker testPassingNestedStructByCopyInCtestPickedChangesdecimalDigitLength!testRegisteredNumberOfPackageIsOk#testNotNilIfNotNilReturnsBlockValuetestClassSideExamples testSingleLevelList2WithNoIndenttestNoChangeOfMetaclassDetectedtestEndsWithAnyOftestKeywordOnMultipleLine9testGifWriteReadInMemory Random-TestsVariablesLibrary*testRestoredBrowserInstanceWithQueryScopestestLogLocatorSmallestIndexIsCorrectAfterChangingSmallestPower3testSkipToPcDoesNotLoopWhenAimedPcIsBeforeCurrentPc put:onStream:(testPrimitiveMethodSourceNodeAtInitialPC*testDemoteToRPackageNamedMultilevelPackagetestAssignmentValuetestRevertToInContextunescapeCharacter:testMaxYValueIsOutliertestByteEncoderFromUrltestEqualsSensitivitytestAtLastError testMerge7testBoxPlotWithOneBoxShape!Ring-Definitions-Tests-ContainerstestBuildLiteralHeuristicExternalProjectLoadertestAtLastIfAbsenttestRenameTargetExiststestAddTwoElementsHistoryReadraisedToInteger:testPath$testShouldAcceptIntegerWithoutMinMax testPercenttestTagtestFractionAsFloat2testCombinationsTakentestExampleIfTrueIfFalse BlueShifttestKeyAtValueIfAbsent!testConstPlaceInTransformedMethodtestCopyUpToEmpty.testFillingWithTwoClassWhichInheriteSameTraits testNextPutAllStartingAtToStreamnew:testDo2testIsConfigurationNameZinc-Character-Encoding-Core hslSaturationtestRemoveIfAbsentRefactoring-CriticstestHugeFontIsHuge testFromToPutGraphics-Fonts numeratortestStepIntoQuickMethodBooleantestIsInternaltestPngDecodingColors32testLinkAPIToSetText/testAsOrderedCollectionReturnsOrderedCollectiontestUndoMorphic-Widgets-TaskbartestArgumentAt flattenedtestThreeRemoveFirststreamContents: padWithZeroes(testDefinedClassesInstanceAndMetaSideAPItestSelectWordMarkPointtestInexactNthRoottestUnknownSlot++testSizeSignedInt64testBreakpointOnClassVarReadsresettestTrueOrAnythingReturnsTruetestUnixAbsolutePathNametestFirstTagValuea>testCreateSubclassOfArbitraryExpressionReturningNilThrowsError*testMethodAdditionWithMethodAlreadyRemovedtestHasParameterstestBrowserEnvironment testFileReferenceExtensionMethodDebugger-Model5testInferInstanceVariableNotUsedInInitializeHasNoType_: Spec2-Dialogs*testInitializedClassVariableReadReflectivetestAllSlotNamesFor&testChevronIsWorkingOnClassSideOnEmptyNewTools-Debugger-FueltestToDoWithTempInBlocktestParseFontVariable TaskIt-TeststestMoveClassToTagInDefaultTagtestBuilderWithTraitstestGoodPathVariableIsUnused intersection:testRemoveAllPreservesCapacitytestSignalWithTagNetwork-Protocols separators&test0FixtureCopyPartOfSequenceableTesttestRaws#testPackageOfClassForDefinedClasses)testBlockWithLiteralReturnsLastExpressiontestHasLabelTruetestConstantBlockClosure3testRemoveExtensionMethodRemoveMethodFromItsPackagetestSizeUnsignedLongLongtestSingleParagraphtestOptimizedBlockLocalNilling2!testSequenceOfMethodModifications testClearFlagtestRemoveMethodWithBreakpointexampleLiteralByteSymboltestClassMethodDefinitionotherCollectionBaselineOfSUnit uncapitalizedtestNestedNodestestPrintPathOnDelimitertestInstVarNamedPut*testClassDefFromLegacyStringHasSharedSlots testPharoCodetestComplexClassVariablesCascaelastCuttestThreeElementsContains,testModifyingClassKeepsOrganizationOfMethodstestOriginBasename!testAnnounceWhenShapesAreSelectedtestIsFloatPoint!testEscapeCharacterTwoConsecutivetestSumUpToLimit1iCalypso-NavigationModel-Tests testSetTitletestWithAxisLabeltestClassVariablesString add:before:testCascadingUnresolvedBaselineOfGeneralTestsnumberOfCombinationsTaken::testCopyAfterLastEmptytestSingleLevelMixedListNetwork-Mail-TeststestExampleSimpleBlockArgument5testRemoveSlotAndMigrate)testMethodModificationWithProtocolChangedtestProperTestProtocolIsUsedtestBinstestWithAllUnresolvedRoassal-Layouts-TestsfoundIdxtestRootReferenceNewTools-Debugger-CommandstestRemoveFromMethoda1a1testHeap$testExampleToDoOutsideTempNotInlined'testInitialCompletionEngineHasNoContexttestKeywordOnMultipleLine5testScopeOptimizedBlock testPrimBitOrtestComparisonWithSimilarResulttestEnabledHaltIsEnabled$testCanCreateGitHubRepositoryFromUrlfromCharacter:ifNone:testDescriptionTexttestDoubleBarPlotRawDatatestAllParametersIceberg-Libgit-Filetree-testMixingOrderedInsideUnorderedWithParagraphtestIntersectionsWithRayisCasedLetter:testEmbeddedUnordered badSemantictestNestedInsanity_UnpackagedPackage testAnchorIsAttachedToItsTarget2testBuildPragmaHeuristictestNoNewLinesAfterGluedCommenttestTraitAdditiontestCanonicalizationtestInstVarNamed testCachedtestEmptyStreamtestBehaviorLocalyDefined testSpaces(testAcceptTwoEntriesAtSameIndexLogsCount!testFileOutMultipleMethodAddition%testHasNonDefaultArguments_nonDefault+testFindStClassProcessorTestWithPartialTexttestDoNotBreakSmalltalkVersiontestAttachmenttestAlphaCompositing2Collections-Stack testPaddingtestCannotBeRecompiledtestwhenTextStylerChangedDotestSumWithIntegerArray testAtAllPuttest8BitReversedtestSearchStringUpdateShadow*testBlockWithArgumentReturnsLastExpressiontestItalicAPIToSetText.testSelectsAbstractMethodWhichIsNotImplemented testExiststestWrappedElementOnBoldMicrodown-RichTextPresenter"Collections-DoubleLinkedList-Tests0testFutureOnDoSucceedsOnTrappingCorrectExceptiontestMoveClassToTagtestLabelShapeHeight!testAddPoolDictionaryDependencies2testHandlingSequenceOfBasicLinesProducesAParagraph!testTallyShouldNotContainsAReturnNtestReplaceTokenWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWord$testCreateAndUseStaticCompilerPlugintestInheritableVariabletest8BitColorstestExampleSimpleBlockLocal3testGettingAllRedefiningInstancesShouldCleanGarbageCalypso-Browser-TeststestOpenFolder{'d:#s\oEXkATFLPositive64SmallIntegerCluster ~ƀZz@#oHv Ӟ3ԥ ඳdT cEx] Nr ӞVFLNegative32SmallIntegerClusterFLHookPrimitiveClusterFLNegative16SmallIntegerClusterFLHookPrimitiveClusterQ?333333@??\(\7tJM7KƧ@N?陙@f |3!@ Q@lp@lVϪ? .1@Ul@aaao@ (\)?@L@@Yfffff?o[o\(\@$fff]`@l"h ԕ?XbM?گ%?گ%?ٙ@2t@$=p =?@@$?4֡a?mR$/@lp@$@ 333333?@?zG{@?ܒ5?ə@n@i@&P@$ffffff@ ?@$vN@7iBĿ?PbM?ڹY@ !n?.B9@@7tJM@7KƧ?tzG{?zQ@? 333333@^?yc@Y@&P{`@v@ Q?Q_@ .1?ffffffFLHookPrimitiveCluster{`"W:(FLHookPrimitiveCluster'N].foo "a" "b" "c" "d" "e" "f" "g"  00220&' 89Ten ' initialIntegerOrNil >>> nil >= aString "Answer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences)." " 'def' >= 'abc' >>> true" " 'def' >= 'def' >>> true" " 'abc' >= 'def' >>> false" ^ (self compare: self with: aString) >= 011<(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A'0vector05(Return whether the receiver is a letter.(#(w x y z) atPin: 8) >>> #z ']' expected10('LOL' detect: #isLowercase ifNone: [$X]) >>> $Xlselect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver, only those elements for which aBlock evaluates to true. Answer the new collection." "(#(1 2 3 4 5) select: #even) >>> #(2 4)" "({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)}" "('heLlo wOrLd' select: #isUppercase) >>> 'LOL'" "((1 to: 10) select: #isPrime) >>> #(2 3 5 7)" "(#() select: [true]) >>> #()" | newCollection | newCollection := self copyEmpty. self do: [ :each | (aBlock value: each) ifTrue: [ newCollection add: each ] ]. ^ newCollection433044(100@200) guarded >>> (100@200)#(a b c d) middle >>> #c1411!u u. X X X X X. X X24#(1 5 10 -4) min >>> -43Networkc foo||bar||2100121111>> 30" "({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollection" anInteger timesRepeat: [ self add: newObject ]. ^ newObject+00BBBBBLLLCMMMDNNNEOOOFPPPGQQQHRRRISSSJTTT03S(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'r('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'20asOrderedDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'" ^ self as: OrderedDictionary650vector0between: #(7 8)'2345.88' isAllDigits >>> false044310jnewFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new: keys size. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dict${1@ -2. -4@0} abs >>> {(1@2). (4@0)} 00001111210WReturn true if all my elements are close to the elements of same index of the parameterSParse and materialize the STON representation in string, skipping C-style commentstrue ==> [false] >>> false16rC12.3029490834938490pppp AAAAA ^ aaaaa s n1#(1 1 1 1) argmax >>> 1180.0 aa bb cc dd0it'em13027016030 hex >>> '16r1E'1510- arg "Pairwise difference of two sequenceable collections of the same length." "#(10 20 30) - #(0 1 2) >>> #(10 19 28)" "{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}" ^ arg adaptToCollection: self andSend: #-12pharo16rFF!a := a. { [ :a | a := a }. a := a* ( [ :aaa : bbb | | ccc ddd | aaa . ] ) . 1(But use collect: or collect:as: instead!@Add newObject anInteger times to the receiver. Answer newObject.false & false >>> false#new isUnary >>> trueUmedian "Return the middle element, or as close as we can get. The collection must not be empty." "{1 . 2 . 3 . 4 . 5} median >>> 3" "{1 . 2 . 4 . 5} median >>> 3" "{1 . 2 . 5 . 5} median >>> (7/2)" "{3} median >>> 3" "([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self emptyCheck. ^ self asSortedCollection median02#(3.1479 roundDownTo: 0.01) >>> 3.142r. 320It is always a number or zero:400(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31)28 September 20184000yAnswer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it.10squeezeOutNumber "Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found" "'th is is29 a stRI4' squeezeOutNumber >>> 29" "'th is is2 9 a stRI4' squeezeOutNumber >>> 2" ^ Number squeezeNumberOutOfString: self110abc10 (10 printStringBase: 16) >>> 'A'72MockPackage-Tests That is true!010$'3.123' isAllAlphaNumerics >>> false010 3 odd >>> trueThis method return the average of the collection if it is not empty. In the other case, it return the value of the block. It means the user the user of this method decide of the return value.foo10foo2{ #foo : 1 , #bar : 2 } ppp < < n< 27Return a color from its RGB components (0 - 1.0 floats)$Optimized version based on primitive#[ 1 22we01printPathOn: aStream delimiter: aCharacter "Print the receiver's path on aStream (without 'Path' prepended)" "(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome'" (1 to: self size) do: [:index | aStream nextPutAll: (self at: index)] separatedBy: [aStream nextPut: aCharacter] abd 1(100@200) x >>> 100 progress.log20hello!n(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> trueX'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')1| 1true asInteger >>> 1\flatCollect: aBlock as: aCollectionClass "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "(#(1 2 3) flatCollect: [:each | { each. each+1 } ] as: Set) >>> #(1 2 3 4) asSet" "(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'" | col | col := OrderedCollection new: self size. self do: [ :each | col addAll: (aBlock value: each) ]. ^ aCollectionClass withAll: cole2Return a new empty collection based on the species2foo*baz431-(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)-2#[ ^ 1 ] 000011111010Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument.)#message asTestSelector >>> #testMessage13d(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300)F(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'8>> 2" "('Hello, World!' count: #isLowercase) >>> 8" | sum | sum := 0. self do: [ :each | (aBlock value: each) ifTrue: [ sum := sum + 1 ] ]. ^ sum210&(#(a b c d) allButFirst: 2) >>> #(c d)0:B :B0104 slowFactorial >>> 24 Point[1,2]eAnswer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:1/ HHH E1III111111AAA17CBBBCCCOOOCCCCCCMMMCJ NNN 'hello''worlda212b21d1Esum works with objects that understands + and - messages, like PointsVariable or expression expectedS(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r1110+a := @4100displayStringOn:capitalized "Return a copy with the first letter capitalized" "'abc' capitalized >>> 'Abc'" | cap | self isEmpty ifTrue: [ ^self copy ]. cap := self copy. cap at: 1 put: (cap at: 1) asUppercase. ^ cap [ :a || a b ]074sAnswer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences).\Return element at indexFromEnd from the last position. atLast: 1, returns the last element97%(-3.1479 truncateTo: 0.01) >>> -3.14y(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome'1xor: alternativeBlock "Nonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true." "(true xor: [true]) >>> false" "(true xor: [false]) >>> true" ^ alternativeBlock value not2103[ 1 + 2b2428cumulativeCounts "Answer with a collection of cumulative percents covered by elements so far." "#(1 2 2 3 1 1 1) asBag cumulativeCounts >>> {57.1->1 . 85.7->2 . 100.0->3}" | s n | s := self size / 100.0. n := 0. ^ self sortedCounts asArray collect: [:a | n := n + a key. (n / s roundTo: 0.1) -> a value]40%(3.1479 roundDownTo: 0.005) >>> 3.145;;h(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)Evaluate aBlock with each of my elements as the argument. Collect the resulting values into a collection that is like me. Answer the new collection. Override superclass in order to use addLast:, not at:put:.30%#(0 1 2) * #(10 20 30) >>> #(0 20 60)F(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) 20000223114115560021 ,Tests-osx-64-ThreadedFFI-UFFI-Tests-Test.xmlfoo: self ^ self + 13:(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)20charlie3, 1155Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.surroundString: aString withCharacter: aCharacter "Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them." "(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a'''" "(RubTextEditor new surroundString: 'a''b' withCharacter: $') >>> '''a''''b'''" | result stream | result := WriteStream with: ''. stream := ReadStream on: aString string. result nextPut: aCharacter. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peekBack = aCharacter ifTrue: [result nextPut: aCharacter]. result nextPut: aCharacter.]. stream peekBack = aCharacter ifTrue: [result nextPut: aCharacter]. ^result contents0aisInstanceSide "Return true whether the receiver is a class (in a couple class/metaclass sense)." "Point isInstanceSide >>> true" "Point class isInstanceSide >>> false" ^ self isClassSide not0($b > $c) asBit>>> 0itlistClass "Return the class of STON lists, Array, a system wide constant" "(STON fromString: '[1 , 2 , 3]') class >>> STON listClass" ^ Array0021316u u. X 0 :B 0. X X6103101copyWith: newElement "Answer a new collection with newElement added (as last element if sequenceable)." "(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSet" "(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet" ^ self copy add: newElement; yourself3010nsn""" s nssssn""" s nssssnn"""2((40@40 scaleTo: 400@400) >>> (10.0@10.0);'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2abc5-3.1479. foo: arg ^ ( ( ( ( arg ) ) + ( ( 1 ) ) ) ) . 1-10ab-255910OAnswer a Point whose x and y are the absolute values of the receiver's x and y.22( 4110240MTests-osx-64-Calypso-SystemPlugins-InheritanceAnalysis-Queries-Tests-Test.xml03.1479Answer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock.#( ( 0 1 2 ) )3(10.12345 round: 2) >>> 10.1230s:KPairwise integer modulo of two sequenceable collections of the same length.sdFive is {five}.ollheabc1x20323d0.0>> #(1 3 5)" "('Hello, World!' reject: #isLetter) >>> ', !'" "((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)" ^ self select: [ :element | (aBlock value: element) == false ]foov'1111' asFourCode >>> 825307441-1983is002220 )6,foo "a" "b" "c" "d" "e" "f" "g" 200992300.0051a'b9 953.67 MB`asDate "(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'" ^ self967192311abc1mobazo W01-WelcomeCAnswer the name of the day of the week on which the receiver falls.a Xuuuuuu n uuu nAB$A isLetter >>> true0de4'' expandMacros >>> OSPlatform current lineEnding1n ssss;(| x "a" "b" "c" | "d" x := 5 "e" "f" "g" Pharo is coolcollect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection. Note: the returned collection is of the same species. If this species does not accomdate the values of aBlock, look at collect:as:" "(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31)" "({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)" "('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'" "((1 to: 10) collect: [:i| i gcd: 6]) >>> #(1 2 3 2 1 6 1 2 3 2)" "(#() collect: [:x | x+1]) >>> #()" | newCollection | newCollection := self copyEmpty. self do: [:each | newCollection add: (aBlock value: each)]. ^ newCollection4404(100@200) floor >>> (100@200)360vector0$( isClosePunctuation >>> falseaqAnswer a Point that is the receiver's x and y floor. Answer the receiver if its coordinates are already integral.[booleanAt: byteIndex "Returns the boolean the byte at index byteOffset of this ByteArray represents in the C convention ( A byte representing the 0 integer corresponds to false, while all other integers corresponds to true)." "(#[1 2 0 4] booleanAt: 2) >>> true." "(#[1 2 0 4] booleanAt: 3) >>> false." ^ self boolean8AtOffset: byteIndex - 1:ifNotNil: ifNotNilBlock "Evaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block." "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(2 ifNotNil: [ :o | o + 3]) >>> 5" "(nil ifNotNil: [:o | o +3 ]) >>> nil" ^ ifNotNilBlock cull: self4(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25'1#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c' #foo : 1006(#(1 2 3 4) asSet intersection: #() asSet) >>> Set newlfromCharacter: aCharacter "For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)" "(KeyboardKey fromCharacter: $a) >>> KeyboardKey A" ^ self keyFromCharacterTable at: aCharacter ifAbsent: [ self named: aCharacter asString asUppercase ]0#() sumNumbers >>> 0a$Do the special case of integer power0 #(8 5 3 9) sorted >>> #(3 5 8 9)(Array streamContents: [:stream | 'abcde' combinations: 3 atATimeDo: [:each | stream nextPut: each copy]]) >>> #(#($a $b $c) #($a $b $d) #($a $b $e) #($a $c $d) #($a $c $e) #($a $d $e) #($b $c $d) #($b $c $e) #($b $d $e) #($c $d $e))4)((4 to: 9) anySatisfy: #isPrime) >>> true29Answers a Dictionary based on collection of Associations.1094(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)XX X # X # X X01'h' project-pharo22223331002Tests-osx-64-NewTools-Debugger-Fuel-Tests-Test.xml1epharo2a := 01split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter." "('||' split: 'foo||bar||2')>>>#('foo' 'bar' '2') asOrderedCollection" "(String streamContents: [:s | '||' split: 'foo||bar||2' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:3 s:6 e:8 s:11 e:11 '" | position oldPosition | position := 1. oldPosition := position. position := aSequenceableCollection indexOfSubCollection: self startingAt: position. [ position > 0 ] whileTrue: [ aBlock value: oldPosition value: position - 1. position := position + self size. oldPosition := position. position := aSequenceableCollection indexOfSubCollection: self startingAt: position. ]. aBlock value: oldPosition value: aSequenceableCollection sizewRunning average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information.100Uor: alternativeBlock "Nonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" "(false or: [true]) >>> true" "(false or: [3]) >>> 3" self subclassResponsibility15Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter.wsecond "1 second printString >>> '0:00:00:01'" "(1 minute + 1 second) printString >>> '0:00:01:01'" ^ self seconds10.12345Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds.3165536 == (1 bitShift: 16)3a := a. [ :a a ]. a := a200(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 7?({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e)pharo4&('Hello!' detect: #isLowercase) >>> $e1 test test(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70) 16r4000000006(true ifFalse: [ 'This statement is false!' ]) >>> nil#(10 20) size >>> 2abc{ ^ 1 }. 2. ^ 343 test test10(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)101-37includesSubstring: aString caseSensitive: caseSensitive "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> true" "('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true" "('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> true" "('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> false" ^ (self findString: aString startingAt: 1 caseSensitive: caseSensitive) > 0phuro53 [1 , 2 , 3]| TTTT | tttt n. ^ tttt\Answer the fourth element of the receiver. Raise an error if there are not enough elements.!(#(a b c d e) last: 2) >>> #(d e) (50 to: 10 by: -5) anyOne >>> 5017x107 Five is 5.4.0d 000001122211155533334111667771101010#() asByteArray >>> #[]5300111110004444422223005566666091000000221#'a''b' isAllAlphaNumerics >>> false 0101 hello worldsize "Answer how many elements the receiver contains." "#(1 2 2 3 1 1 1) asBag size >>> 7" | tally | tally := 0. contents do: [:each | tally := tally + each]. ^ tally1-10xAnswer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below.17(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 73b3pppp A pp A pp A 0 :B :B :B | | T t T | t s t s t 0-1920def0c15iAnswer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring2SgrowAtFirst "Add new empty slots to the front of array, while keeping the empty slots at the end." "OrderedCollection new capacity >>> 10" "(OrderedCollection new growAtFirst; capacity) >>> 20" | newArray newFirstIndex newLastIndex | newArray := self class arrayType new: (array size * 2 max: 1). newFirstIndex := newArray size - array size + firstIndex. newLastIndex := newFirstIndex + lastIndex - firstIndex. newArray replaceFrom: newFirstIndex to: newLastIndex with: array startingAt: firstIndex. array := newArray. firstIndex := newFirstIndex. lastIndex := newLastIndex 9 \\ 4 >>> 120 + 225?('hello world!' anySatisfy: [ :each | each isDigit ]) >>> false413#(10 20 30) sum >>> 601!'234' initialIntegerOrNil >>> 234 fred the bearyGiven a collection returns in one pass two collections containing each odd and even elements in respective subcollectionsd4nn\Answer the eighth element of the receiver. Raise an error if there are not enough elements.SAnswer a new instance where all occurrences of CRLF and LF are substituted with LF.22428diff: theOther "Returns a number between 0.0 and 1.0" "(Color red diff: Color red) >>> 0.0" "(Color white diff: Color black ) >>> 1.0" ^ ((self privateRed - theOther privateRed) abs + (self privateGreen - theOther privateGreen) abs + (self privateBlue - theOther privateBlue) abs) / 3.0 / ComponentMaxfghi20RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.00.007;({'hel','lo'. 'world'} identityIncludes: 'hello') >>> false29-309(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 0Add returns the object itself[ | 1initialIntegerOrNil "Answer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digit" "'234Whoopie' initialIntegerOrNil >>> 234" "'wimpy' initialIntegerOrNil >>> nil" "'234' initialIntegerOrNil >>> 234" "'2N' initialIntegerOrNil >>> 2" "'2' initialIntegerOrNil >>> 2" "' 89Ten ' initialIntegerOrNil >>> nil" "'78 92' initialIntegerOrNil >>> 78" "'3.1415' initialIntegerOrNil >>> 3" | firstNonDigit | (self size = 0 or: [ self first isDigit not ]) ifTrue: [ ^ nil ]. firstNonDigit := (self findFirst: [ :m | m isDigit not ]). firstNonDigit = 0 ifTrue: [ firstNonDigit := self size + 1 ]. ^ (self copyFrom: 1 to: (firstNonDigit - 1)) asNumber(String streamContents: [:s | Character space split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '-33'' ''h'' ' withoutQuoting >>> ' ''h'' '7-371100whatever1928 00000000000001121314111766685559b65string1D'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true between: 5020.Tests-osx-64-Collections-Native-Tests-Test.xml4124foo11Tests-osx-64-System-OSEnvironments-Tests-Test.xmloopsRepeatedly value aBlock with a single Array. Adjust the collection so that aBlock is presented all (self size raisedTo: anInteger) possible combinations of the receiver's elements taken as digits of an anInteger long number.10000000000000331((2@2) - 200) >>> (-198@ -198)| | . 1TInterpret the receiver pattern (<1p>, <1s>, ...) with argument passed in anArray.f22 Hello, World! ceiling "Answer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral." "(100@200) ceiling >>> (100@200)" "(100.1@200.9) ceiling >>> (101@201)" self isIntegerPoint ifTrue: [ ^ self ]. ^ x ceiling @ y ceiling12: 2z5!('*baz' match: 'mobazo') >>>falseG(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 1, 3203(OrderedCollection new growAtLast; capacity) >>> 20#between:and: isUnary >>> falsefoo < bar: baz > 133 ^ n. n. ^ n0$' isAlphaNumeric >>> falsea :foo50 | T t | t nn. t 0#(:=aa:=:==bb:==#cc:==)3 factorial >>> 61M(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)2d$(nil ifNotNil: [:o | o +3 ]) >>> nil, !14({#hello. #world} identityIncludes: #hello) >>> true20043333Invalid input/output !2valueWithPossibleArgs: anArray "Execute the receiver with the correct number of arguments taken from the argument." "([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 " "([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 " "([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 " "([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 " ^numArgs = 0 ifTrue: [self value] ifFalse: [self valueWithArguments: (numArgs = anArray size ifTrue: [anArray] ifFalse: [numArgs > anArray size ifTrue: [anArray, (Array new: numArgs - anArray size)] ifFalse: [anArray copyFrom: 1 to: numArgs]])]415fifth "Answer the fifth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) fifth >>> #e" ^ self at: 5100vector024033$(nil ifNotNil: [:o | o +3 ]) >>> nil61&(#(1 2 3 4) intersection: #()) >>> #()kCreate a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens.18J (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 #[ 1 ) 2 ]-010 That is true! ppp < <<<<100Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments.,'x isSymbol: 33' findSelector >>> #isSymbol: n ssss XnLiteral expected14 u nn. ^ usuccesspharoDocCommentNodes "Return a collection of pharo comment nodes: expressions following the pattern" "true >>> true" ^ self comments flatCollect: [:each | each pharoDocCommentNodes]-('pharo' endsWith: 'project-pharo') >>> false1db17023b102r00101000 lowBit >>> 40 :B | XXXXXXX. b 00fredabc21001b0pharo1000QfindBinary: aBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'" ^ self findBinary: aBlock do: [ :found | found ] ifNone: exceptionBlockh 'elvis ' lastSpacePosition >>> 61 0:00:00:01a10(10 to:1) size >>> 0 2(10.12345 round: 2) >>> 10.12 2T(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSet1 2r00101000d61k02255&(Color r: 1 g: 1 b: 1) >>> Color whiteMessage pattern expected #( #[ 0 1 2 )100a/(2.567 printShowingDecimalPlaces: 2) >>> '2.57'10asBag "Answer a Bag whose elements are the elements of the receiver." "{1. 2} asBag = {2. 1} asBag >>> true" "{1. 2} asBag = {1. 2. 2} asBag >>> false" "{1. 2} asBag = {1. 2. 3} asBag >>> false" "#() asBag = Bag new >>> true" ^ Bag withAll: selfa1(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'201c #'hello''0{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)}13a$a isCasedLetter >>> false4P({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSet2102100We&Tests-osx-64-Monticello-Tests-Test.xml1593%((0@0) sideOf: (100@100)) >>> #centermax "Return the maximum value of the collection" "#(1 5 10 -4) max >>> 10" "{1@5. 10@ -4} max >>> (10@5)" ^ self inject: self anyOne into: [ :max :each | max max: each ]EReturn the HSL saturation of this color, a value between 0.0 and 1.0..('heLlo wOrLd' select: #isUppercase) >>> 'LOL'aWargmax "#(1 -3 5 1) argmax >>> 3" "#(1 1 1 1) argmax >>> 1" ^ self indexOf: self max010| aCollection "Return all the elements that appear in self or in aCollection. Alias of union:" "#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)" "'abc' | 'cbe' >>> 'bcea'" ^ self union: aCollection#( #[ 0 1 2 ] )21XXVifNotNil: ifNotNilBlock ifNil: nilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42" "(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6" ^ nilBlock value61>> false" "(#(2 4) allSatisfy: [ :each | each even ]) >>> true" "('hello' allSatisfy: #isLetter) >>> true" "('hello!' allSatisfy: #isLetter) >>> false" "((3 to: 8 by: 2) allSatisfy: #isPrime) >>> true" "((3 to: 9 by: 2) allSatisfy: #isPrime) >>> false" "(#() allSatisfy: [false]) >>> true" self do: [ :each | (aBlock value: each) ifFalse: [ ^ false ] ]. ^ true0"a := a. [ | a a | . := a ]. a := aX n s n foobazzortafoodezortorfoo3zortcharlie is number 2 0000000 Pharo is cool403 Pharo is cool83-10 hex >>> '-16rA'sReturn the index of my first element for which aBlock evaluates as true. If no matching element is found, return 0210""" 00 """ n """ n """ 0 """FAnswer 1 if the receiver is greater than 0, -1 if less than 0, else 0.Answer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed.1000+('Hello, World!' count: #isLowercase) >>> 8298 ( . ^ 1 )1614keywords "Returns the keywords of the provided selector. Assumes the reciever is a valid keyword based selector (@reciever isKeyword > true). Prefer using Symbol>>#keywordsStrict if you're not sure if the reciever is keyword-based." "#foo: keywords >>> #('foo:')" "#foo:bar: keywords >>> #('foo:' 'bar:')" "#foo keywords >>> #('foo')" "Invalid input/output !" "#+ keywords >>> #('+')" "Invalid input/output !" | keywords | keywords := Array streamContents: [ :kwds | | kwd | kwd := (String new: 16) writeStream. self do: [ :char | kwd nextPut: char. char = $: ifTrue: [ kwds nextPut: kwd contents. kwd reset ] ]. kwd position = 0 ifFalse: [ kwds nextPut: kwd contents ] ]. ^ keywords 310ppp < <<<>> true1 + 2 )0b9(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> true1(1.3@2.2) isFloatPoint >>> true1'a' asByteArray >>> #[97]1<<<<34ex| super | super := 1. ^ super2| TT | tt n. tt s n$'3,123' isAllAlphaNumerics >>> false202000b-Tests-osx-64-EmergencyDebugger-Tests-Test.xml2"'78 92' initialIntegerOrNil >>> 7813102090vector0tAnswer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements.01021/Answer how many elements the receiver contains.107instVarReads ^v1 + v2 222213334444'abc' capitalized >>> 'Abc'7Tests-osx-64-NewTools-Spotter-Processors-Tests-Test.xml41-(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false100-101.025531cccallButFirst: n "Answer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements." "(#(a b c d) allButFirst: 2) >>> #(c d)" "(#(a b c d) allButFirst: 3) >>> #(d)" ^ self copyFrom: n + 1 to: self size131#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' )2345.882'abcDefgh52.010:00:00:00.00233| aBoolean "Evaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true." "true | true >>> true" "true | false >>> true" "false | true >>> true" "false | false >>> false" self subclassResponsibilitydo: elementBlock separatedBy: separatorBlock "Evaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between." "(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)" 1 to: self size do: [:index | index = 1 ifFalse: [separatorBlock value]. elementBlock value: (self at: index)]3asArray "Answer an Array whose elements are the elements of the receiver. Implementation note: Cannot use ''Array withAll: self'' as that only works for SequenceableCollections which support the replacement primitive." "'ab' asArray >>> {$a. $b}" "(1 to: 5 by: 3) asArray >>> {1. 4}" "#(1 2) asArray == #(1 2) >>> true" "'' asArray >>> #()" "(10 to: 5) asArray >>> #()" | newArray index | newArray := Array new: self size. index := 0. self do: [ :each | newArray at: (index := index + 1) put: each ]. ^ newArray73d<1?success:error>12754(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 7@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB' 'abc' < 'def' >>> truebetween: #(nil 1)IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and suffix are bytes like. Otherwise, if self or suffix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)9((200@200 scaleTo: 400@400) >>> (2.0@2.0)true | true >>> true4foo < bar: 1 1 > -888 00999000AAA030BBB000FFF0C0GGG000III00 JJJ0:00:00:01.0021Eunzip "Given a collection returns in one pass two collections containing each odd and even elements in respective subcollections" "#(1 2 3 4) unzip first asArray >>> #(1 3)" "#(1 2 3 4) unzip second asArray >>> #(2 4)" | odd even s | s := self size // 2. odd := OrderedCollection new: s. even := OrderedCollection new: s. 1 to: self size do: [ :i | (i \\ 2) = 0 ifTrue: [ even add: (self at: i) ] ifFalse: [ odd add: (self at: i) ] ]. ^ { odd . even }42172010c'1 true false nil self super thisContext1>|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 60must be exactly four characters1~(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself)0vector02432CisEmptyOrNil "Answer whether the receiver contains any elements, or is nil. Useful in numerous situations where one wishes the same reaction to an empty collection or to nil" "#() isEmptyOrNil >>> true" "nil isEmptyOrNil >>> true" "([0 isEmptyOrNil] on: MessageNotUnderstood do: ['oops']) >>> 'oops'" ^ self isEmpty5015210/{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}.Tests-osx-64-Reflectivity-Tools-Tests-Test.xmlhll 1 foo; . 2[1}2]1050vector0R((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)a := a. [ | a a := a ]. a := a(true xor: [true]) >>> falsez22164/| thisContext | thisContext := 1. ^ thisContextkIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block410( 1. 2 ) salkjsdlkgfee1Durstenfeld's version of the Fisher-Yates shuffle3Answer the number of indexable fields in the receiver. This value is the same as the largest legal subscript. Included so that a SmallInteger can behave like a LargePositiveInteger or LargeNegativeInteger.hello1429"Tests-osx-64-TaskIt-Tests-Test.xmlAW(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection)Count the occurrences of each bytecode during the execution of aBlock. Return a Array of associations using the byte as key and the occurrences as values sorted by the instruction opcode numeric values. This method uses the in-image bytecode interpreter to evaluate and count the instructions.21.00Absolute value of all elements in the collection59closeTo: aSequenceableCollection "Return true if all my elements are close to the elements of same index of the parameter" "(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> true" ^ self closeTo: aSequenceableCollection precision: Float defaultComparisonPrecisionYCreate a dictionary from the keys and values arguments which should have the same length.10211('234Whoopie' initialIntegerOrNil >>> 2342sign "Answer 1 if the receiver is greater than 0, -1 if less than 0, else 0." "#(5 -3.7 0) sign >>> #(1 -1 0)" "{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}" ^ self collect: [ :each | each sign ]0Pha5 That is true!Xnot "Negation--answer false since the receiver is true." "true not >>> false" ^false14HExecute the receiver with one or two arguments depending on the receiverEvaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan1 fred the bearedb>Answer a Point that is the difference of the receiver and arg.0(10 min: 20 max: 5) >>> 1020014(#(1 2) allSatisfy: [ :each | each even ]) >>> falseiReturn the stop element of an interval. Pay attention this is not necessary the same as the last element.allRangesOfSubstring: aSubstring "('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}" "('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()" ^ Array streamContents: [:s | | start subSize | start := 1. subSize := aSubstring size. [start isZero] whileFalse: [ start := self findString: aSubstring startingAt: start. start > 0 ifTrue: [s nextPut: (start to: start + subSize - 1). start := start + subSize]]]0b4if it is to be it is up to me0.1121That is false!c2a7Ab cd ef Ab cdfoo aR('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'7+(0 printShowingDecimalPlaces: 2) >>> '0.00'1 foo < bar: #('pharo' endsWith: 'aRo') >>> false salkjsdlkgfee1; [ :a | | a ]pppp A XXXXXXX. ^ afoo < 41LOLreplace: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self." "({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)" 1 to: self size do: [ :index | self at: index put: (aBlock value: (self at: index)) ]1(#(1 2 3 4) nextToLast) >>> 311isLetter "Return whether the receiver is a letter." "$a isLetter >>> true" "$ isLetter >>> true" "$A isLetter >>> true" ^ self characterSet isLetter: self1232032402Tests-osx-64-NewTools-CodeCritiques-Tests-Test.xml99asDigitsToPower: anInteger do: aBlock "Repeatedly value aBlock with a single Array. Adjust the collection so that aBlock is presented all (self size raisedTo: anInteger) possible combinations of the receiver's elements taken as digits of an anInteger long number." "(Array streamContents: [:stream | (0 to: 1) asDigitsToPower: 4 do: [:each | stream nextPut: each copy]]) >>> #(#(0 0 0 0) #(0 0 0 1) #(0 0 1 0) #(0 0 1 1) #(0 1 0 0) #(0 1 0 1) #(0 1 1 0) #(0 1 1 1) #(1 0 0 0) #(1 0 0 1) #(1 0 1 0) #(1 0 1 1) #(1 1 0 0) #(1 1 0 1) #(1 1 1 0) #(1 1 1 1))" | aCollection | aCollection := Array new: anInteger. self asDigitsAt: 1 in: aCollection do: aBlockdo: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. This is the general foreach method, but for most standard needs there is often a more specific and simpler method." "|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 60" "but use sum or inject:into: instead" "(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 60" "#(10 20 30) sum >>> 60" " (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'" self subclassResponsibilitydetect: aBlock ifNone: exceptionBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true. If none evaluate to true, then evaluate the argument, exceptionBlock." "(#(1 2) detect: #even ifNone: [0]) >>> 2" "(#(1 3) detect: #even ifNone: [0]) >>> 0" "('Hello' detect: #isLowercase ifNone: [$X]) >>> $e" "('LOL' detect: #isLowercase ifNone: [$X]) >>> $X" ^ self detect: aBlock ifFound: [ :element | element ] ifNone: exceptionBlock26010!""" 0 """ n """ . """ n """ 0 """102abcd52018$('foo*baz' match: 'foobaz') >>> true30.012118Trim separators from both sides of the receiving string.2311#(#(10 20 30) includes: 20) >>> truewasArray "Convert an OrderedCollection into an Array." "#(a b c) asOrderedCollection asArray >>> #(a b c)" "OrderedCollection new class >>> OrderedCollection" "OrderedCollection new asArray class >>> Array" "(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)" ^ (Array new: self size) replaceFrom: 1 to: self size with: array startingAt: firstIndexecollect: aBlock as: aClass "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection." "(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSet" "('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)" ^(aClass new: self size) fillFrom: self with: aBlock0100(Character space isAlphaNumeric >>> false'Return collection printed as 'a, b, c' (false xor: [false]) >>> false12(#(11 22 33) asOrderedCollection atWrap: 4) >>> 11280roundDownTo: aNumber "Answer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:" "(3.1479 roundDownTo: 0.01) >>> 3.14" "(3.1479 roundDownTo: 0.1) >>> 3.1" "(1923 roundDownTo: 10) >>> 1920" "(3.1479 roundDownTo: 0.005) >>> 3.145" "(-3.1479 roundDownTo: 0.01) >>> -3.15" ^(self / aNumber) floor * aNumber-40 Xs Xstring310415e71 sign;00.0indexOf: aCharacter startingAt: start "Return the index of the argument in the receiver, only elements after the start of the element are considered zero if not present." "('abcdf abcedf' indexOf: $a startingAt: 4) >>> 7" "('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 0" (aCharacter isCharacter) ifFalse: [^ 0]. ^ self class indexOfAscii: aCharacter asciiValue inString: self startingAt: start3ABC'a' asInteger >>> nil"('*baz*' match: 'mobazo') >>> truesumNumbers "This is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. The receiver should include only numbers. Different from the sum implementation, the default value is zero. While sum is more general, sumNumbers is meant to support the most often encountered use case of dealing with numbers." "#(1 2 4) sumNumbers >>> 7" "#() sumNumbers >>> 0" ^ self inject: 0 into: [ :sum :each | sum + each ]31228 December 2018o* 666 00777020888000III0F9HHH9999DDD9A EEE e6018cannot resolve fourcodensXn0AAnswer how many of the receiver's elements are equal to anObject..(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)x313hopdoneS( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)abc98311150atLast: indexFromEnd "Return element at indexFromEnd from the last position. atLast: 1, returns the last element" "(#(x y z) atLast: 1) >>> #z" "(#(x y z) atLast: 2) >>> #y" ^ self atLast: indexFromEnd ifAbsent: [self error: 'index out of range']3104.0'0abc' startsWithDigit >>> true370.667a := a. { [ :a | }. a := a0copyWithoutAll: aCollection "Answer a copy of the receiver that does not contain any elements equal to those in aCollection." "('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'" "(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)" ^ self reject: [:each | aCollection includes: each]6032EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil-400Answer the number of days between self and aDate100  3 even >>> false37over 15130120301'A' asByteArray >>> #[65]XXXs goodby: 2 my: 3dProtoObject superclass >>> nil0:B :XX07&(AsciiCharset toLowercase: $a) >>> $a.2^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.1+ foo: 7Tests-osx-64-Microdown-RichTextPresenter-Tests-Test.xml22hello(1923 roundUpTo: 10) >>> 1930pharo0{ ^ 1. 2. ^ 3 }204011.25 reciprocal >>> 0.81 0: B : B0*Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection. Note: the returned collection is of the same species. If this species does not accomdate the values of aBlock, look at collect:as:f, o, opReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set9030a := a. { [ :a }. a := a133Evaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false.350110Point instanceSide >>> Point121bS#[ 1 2 3 ] zipped >>> #[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0]*streamContents: blockWithArg "Build an instance of the receiver by writing elements to a stream. More specifically: blockWithArg will be given a WriteStream on an instance of the receiver. Inside blockWithArg you write elements to the stream to build up the collection. At the end, the contents of the stream up to that point will be returned. Note that the underlying collection grows as needed." "(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5)" ^ self new: 100 streamContents: blockWithArgd (true ifFalse: [ true ]) >>> nil-1200An executable comment must be in its own comment block (enclosed in double quotes) and can be multi-line for better readability. Code editor hint: you can double click on the inner side of a double quote to select the whole comment block, then Cmd+I to evaluate and inspect the whole executable comment.1c110]Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits).315#311112004445444778796AAAB4400ECCCCD3%#[1 2] asByteArray == #[1 2] >>> trueThat is false!a02r11classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self subclassResponsibility411a]((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false1d-2228*#(1 2 3 4) unzip second asArray >>> #(2 4) | | . a: CAnswer a number that is the minimum of the x and y of the receiver.X(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection0vector00n sss;Xfred)See `unescapeCharacter:` for the opposite | tmp | tmp := 1 . ^ tmp . 101E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 ;0foo < bar: [ 1 ] > 10 Snick asFile Files Snick's Snick1-1b2001 ('*baz' match: 'mobaz') >>> trueasNewArray "Like asArray: but return a copy if self is already an Array. This ensures that the result is always a new Array" "'foo' asNewArray >>> 'foo' asArray" "|a| a := #(1 2 3). a asNewArray == a >>> false" ^ self asArrayEMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil22412a::foo!(#() averageIfEmpty: [ 0 ]) >>> 0WindexOf: anElement startingAt: start "Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) indexOf: #c startingAt: 2) >>> 3" "(#(a b c d e) indexOf: #c startingAt: 4) >>> 0" ^self indexOf: anElement startingAt: start ifAbsent: 0sort: aSortBlock "Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one." "({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)" "({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)" "({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)" self mergeSortFrom: 1 to: self size by: aSortBlock105100e abcdf abcedf That is true!1016rFF0.13691995878400012foo: a bar: a ^ a(String streamContents: [:s | [:c | c isSeparator ] split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '#'wimpy' initialIntegerOrNil >>> nil20This statement is false!{ 2310-9includes: anObject "Answer whether anObject is one of the receiver's elements." "(#(1 2 2 3 1 1 1) asBag includes: 5) >>> false" "(#(1 2 2 3 1 1 1) asBag includes: 1) >>> true" ^ contents includesKey: anObjectFile4=Tests-osx-64-Calypso-SystemPlugins-FFI-Queries-Tests-Test.xml3<1?success:is error>Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.first4('pharo' endsWith: '' caseSensitive: false) >>> truea19'' asArray >>> #()ABA119a := a. [ :a [ :a ]. a := a000002244454448889888B8877777777DDCCCE4433333333F* """ | """ T """ | """ t """ """ n """ 23elmer[{"foo":1},{"bar":2}]20#hellosixth "Answer the sixth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) sixth >>> #f" ^ self at: 6-overlappingPairsDo: aBlock "Emit overlapping pairs of my elements into aBlock" "(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)" 1 to: self size - 1 do: [:i | aBlock value: (self at: i) value: (self at: i + 1)]b-1 1000000002 0:B| | |u012612.03nanoSeconds "2 nanoSeconds printString >>> '0:00:00:00.000000002'" "(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'" ^ Duration nanoSeconds: self1w& aCollection "Alias for intersection:" "#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)" ^ self intersection: aCollection40.01Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject.110001121314110020-1016rAb> aString "Answer whether the receiver sorts after aString. The collation order is simple ascii (with case differences)." " 'def' > 'abc' >>> true" " 'def' > 'def' >>> false" " 'abc' > 'def' >>> false" ^ (self compare: self with: aString) > 007G(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')a231$A hex >>> '16r41'ifNotNil: aBlock "If the receiver is not nil, pass it as argument to the block." "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(2 ifNotNil: [ :o | o + 3]) >>> 5" "(nil ifNotNil: [:o | o +3 ]) >>> nil" ^ self[ :a :b13112231100400556sasMutator "Return a setter message from a getter message. Return self if it is already a setter. Pay attention the implementation should be improved to return valid selector." "#name asMutator >>> #name:" "#name: asMutator >>> #name:" "#_ asMutator >>> #_:" "#foo:: asMutator >>> #'foo::'" self endsWithAColon ifTrue:[ ^ self ]. ^ (self copyWith: $:) asSymbol*Tests-osx-64-NewTools-FontChooser-Test.xmlpppp AAAA ^ aaaa s n1.05946309435929531aXb 89Ten elmer is number 323.000vector02In \{1\} you can escape \{ by prefixing it with \\S(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5)) 2018-09-28IIf the receiver is true (i.e., the condition is true), then the value is the true alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line.1922Unmatched " in comment.2.0(Answer the integer nearest the receiver.Pharo (, { exist ]7('pharo' endsWith: 'aRo' caseSensitive: false) >>> true#(-10 printStringBase: 10) >>> '-10'-0.5Color red hsvSaturation >>> 1.01630endsWithDigit "Answer whether the receiver's final character represents a digit." "'foo10' endsWithDigit >>> true" "'foo10foo' endsWithDigit >>> false" "'foo1' endsWithDigit >>> true" ^ self notEmpty and: [self last isDigit]1530043.{ 'foo'. ('fo','o') } asIdentitySet size >>> 23001122JRunning min. See the comment of self >> #running:of: for more information.removeAllSuchThat: aBlock "Evaluate aBlock for each element and remove all that elements from the receiver for that aBlock evaluates to true. Use a copy to enumerate collections whose order changes when an element is removed (i.e. Sets)." "(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection" self copy do: [:each | (aBlock value: each) ifTrue: [self remove: each]]truncateTo: aNumber "Answer the next multiple of aNumber toward zero that is nearest the receiver." "(3.1479 truncateTo: 0.01) >>> 3.14" "(3.1479 truncateTo: 0.1) >>> 3.1" "(1923 truncateTo: 10) >>> 1920" "(1929 truncateTo: 10) >>> 1920" "(-1929 truncateTo: 10) >>> -1920" "(3.1479 truncateTo: 0.005) >>> 3.145" "(-3.1479 truncateTo: 0.01) >>> -3.14" ^(self quo: aNumber) * aNumber10a122 'hello10;'test test ' withSeparatorsCompacted >>> 'test test ' """"""""" | | . :a | Unknown annotation#foo:: asMutator >>> #'foo::'<0000224455655597777855CCDDEDDDHFFFFGGDDICCBBBBBBAAAJ44333333?(Context tallyInstructions: [3.14159 printString]) size >>> 1200[Answer the fifth element of the receiver. Raise an error if there are not enough elements.7((0@0 corner: 100@100) containsPoint: 100@50) >>> false(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' (Character space isControlOther >>> false41 00011121314111asBit "convert myself to an Integer representing 1 for true and 0 for false" "($b > $c) asBit>>> 0" "true asBit >>> 1" "(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 3" self subclassResponsibilityB'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'foo*Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the lowest number. If collection empty, return nil.2019-08-17T13:33:00+02:001000000000000030152xzb30#(()) isNotEmpty >>> true29g2Answer the receiver's element immediately before target. Raise an error if target is not an element of the receiver, or if there are no elements before it (i.e. it is the first element).110<(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'2uAnswer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements.06string1 salkjsdlkgfee21is error&#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)#(10 20 30) sum >>> 60asSortedCollection: aSortBlock "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Note that it is better to use #sorted if you don't really need a SortedCollection, but a sorted collection!!" "('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}." | aSortedCollection | aSortedCollection := SortedCollection new: self size. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollection1200Too many arguments$(#() anySatisfy: [ true ]) >>> falseaYnot "Negation -- answer true since the receiver is false." "false not >>> true" ^true1111111110000000002222222222222322 10r89 abcdxa15(median "Return the middle element, or as close as we can get." "{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 3" | size middle | size := self size. middle := (size + 1) // 2. ^ size even ifTrue: [ ((self at: middle) + (self at: middle + 1)) / 2 ] ifFalse: [ self at: middle ]2 00111000444222230005566600 XXXX""XXX""X16kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block1151Emit overlapping pairs of my elements into aBlocklowBit " Answer the index of the low order one bit. First we skip bits in groups of 8, then do a lookup in a table. While not optimal, this is a good tradeoff; long integer #lowBit always invokes us with bytes." "2r00101000 lowBit >>> 4" "2r-00101000 lowBit >>> 4" | n result lastByte | n := self. n = 0 ifTrue: [ ^ 0 ]. result := 0. [(lastByte := n bitAnd: 16rFF) = 0] whileTrue: [ result := result + 8. n := n bitShift: -8 ]. "The low bits table can be obtained with: ((1 to: 8) inject: #[1] into: [:lowBits :rank | (lowBits copy at: 1 put: lowBits first + 1; yourself) , lowBits]) allButFirst." ^result + ( #[1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 7 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 8 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 7 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1] at: lastByte)NReturn the class of the couple class/metaclass. Useful to avoid explicit test.20asSet "Answer a Set whose elements are the unique elements of the receiver." "{1. 2} asSet = {2. 1} asSet >>> true" "{1. 2} asSet = {1. 2. 2} asSet >>> true" "{1. 2} asSet = {1. 2. 3} asSet >>> false" "{} asSet = Set new >>> true" ^ Set withAll: selfPOr it can follow full superclass chain which will ends at Object and ProtoObject12b(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'|:a|12*('salkjsdlkgfeesd' findString: 'sd') >>> 6ifFalse: alternativeBlock "If the receiver is true (i.e., the condition is true), then the value is the true alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'" "(true ifFalse: [ 'This statement is false!' ]) >>> nil" self subclassResponsibilityword041asaanyOne "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." "#(10 20 30) anyOne >>> 10" "'hello' anyOne >>> $h" "(50 to: 10 by: -5) anyOne >>> 50" " ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' " self emptyCheck. self do: [ :each | ^ each ]&[ :x "a""b""c""d" :y "e""f" | "g""h" ]9(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 00GcontractTo: smallSize "return myself or a copy shortened by ellipsis to smallSize" "('abcd' contractTo: 10) >>> 'abcd'" "('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'" "('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'" | leftSize | self size <= smallSize ifTrue: [^ self]. "short enough" smallSize < 5 ifTrue: [^ self copyFrom: 1 to: smallSize]. "First N characters" leftSize := smallSize-2//2. ^ self copyReplaceFrom: leftSize+1 "First N/2 ... last N/2" to: self size - (smallSize - leftSize - 3) with: '...'+((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)*kkkk sssssss 0 ^ n 0 ssssssss 0 ^ n 0. ^ n42round: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(10.12345 round: 2) >>> 10.12 " ^(self asFraction round: numberOfWishedDecimal) asFloat022 (false or: [3]) >>> 32 foo < bar 6| | . :a40oEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item(^1)1. "a" "b" "c" 2 "d"test longone stringwReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.;Answer a Point that is the product of the receiver and arg. -234.5670012730l(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))'d10415234pharo15wat: firstKey at: secondKey ifAbsent: aZeroArgBlock "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey. Execute aZeroArgBlock in case one of the key is wrong." " (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 " ^ dictionary at: firstKey at: secondKey ifAbsent: aZeroArgBlock d65022a ppp <<<<< X VAnswer a copy of the receiver that does not contain any elements equal to oldElement.{guarded "Return a positive nonzero extent." "(100@200) guarded >>> (100@200)" "(0@5) guarded >>> (1@5)" ^self max: 1@11containsPoint: aPoint "Answer whether aPoint is within the receiver. Pay attention the self origin is considered less than but the corner is strict" "((0@0 corner: 100@100) containsPoint: 50@50) >>> true" "((0@0 corner: 100@100) containsPoint: 0@0) >>> true" "((0@0 corner: 100@100) containsPoint: 100@50) >>> false" "((0@0 corner: 100@100) containsPoint: 100@100) >>> false" ^origin <= aPoint and: [aPoint < corner]11d32(#(11 22 33) atWrap: 4) >>> 1110(1 to: 10 by: 2) last >>> 9two1033,(#(10 20 30) includesAll: #(30 20)) >>> true2102def188string21011#u u. 0 :B | X b b XX b 0. X X3Graphical User InterfaceOascending "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')" ^self asSortFunctionA1110010isDashPunctuation "Return whether the receiver is one of these characters: $-" "$- isDashPunctuation >>> true" "$_ isDashPunctuation >>> false" ^ self characterSet isDashPunctuation: self"Tests-osx-64-ReleaseTests-Test.xml10243 Pharoiscoolab760$> isControlOther >>> false6120043d*[(#("a"("b"###("c"###["d"]#["e"]["f"]))))]311(0 to: 10 by: 2) last >>> 10min: maxValue max: minValue "Take the minimum between self and maxValue, then the maximum with minValue" "(10 min: 20 max: 5) >>> 10" "(10 min: 20 max: 11) >>> 11" "(24 min: 20 max: 5) >>> 20" ^ (self min: maxValue) max: minValue540-3#foo: keywords >>> #('foo:')32768 == (1 bitShift: 15)A man, a plan, a canal, panama()64'on: aStream "Create a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens." "((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $(" | scanner | scanner := self new on: aStream. scanner step; stripSeparators. ^scanner[ "a""b""f" 1. "c" "d" 2 "e" ]99 appreciate112Answer the set theoretic union of two collections.36155z1R(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)0addMonths: monthCount "((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018'" |year month maxDaysInMonth day | year := self year + (monthCount + self monthIndex - 1 // 12). month := self monthIndex + monthCount - 1 \\ 12 + 1. maxDaysInMonth := Month daysInMonth: month forYear: year. day := self dayOfMonth min: maxDaysInMonth. ^ Date year: year month: month day: day Xuuuuu n true >>> true8141tcollect: aBlock from: firstIndex to: lastIndex "Refer to the comment in Collection|collect:." "(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) " | size result j | size := lastIndex - firstIndex + 1. result := self species new: size. j := firstIndex. 1 to: size do: [:i | result at: i put: (aBlock value: (self at: j)). j := j + 1]. ^ result1fouruEvaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true.2capacity "Answer the current capacity of the receiver." "OrderedCollection new capacity >>> 10" "(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20" ^ array size10131asDate "Convert the receiver in a date object." "(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString" ^ Date starting: selfExample of usages:string3 W01-Welcome12555print: positiveNumberString on: aStream prefix: prefix length: minimum padded: zeroFlag "Return a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length." "(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10'" | padLength | padLength := minimum - positiveNumberString size - prefix size. padLength > 0 ifTrue: [zeroFlag ifTrue: [aStream nextPutAll: prefix; nextPutAll: (String new: padLength withAll: $0)] ifFalse: [aStream nextPutAll: (String new: padLength withAll: Character space); nextPutAll: prefix]] ifFalse: [aStream nextPutAll: prefix]. aStream nextPutAll: positiveNumberString8('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'2414(OrderedCollection new growAtFirst; capacity) >>> 20 nothing to doabddf0222222(((100@200) min: (330@400)) >>> (100@200)10000000281001410.51printStringHex "Returns the hex digit part of the integer when printed in hexadecimal format." "30 printStringHex >>> '1E'" "30 hex >>> '16r1E'" ^ self printStringBase: 16 00111111000444444222230055666666131 ; foo211930 between: 11Note: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement.103[ | 1000000000vector0nameb202018abc2foo: a a := 10. ^ a2EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil30up2seventh "Answer the seventh element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) seventh >>> #g" ^ self at: 7|| a2(Array streamContents: [:stream | (0 to: 1) asDigitsToPower: 4 do: [:each | stream nextPut: each copy]]) >>> #(#(0 0 0 0) #(0 0 0 1) #(0 0 1 0) #(0 0 1 1) #(0 1 0 0) #(0 1 0 1) #(0 1 1 0) #(0 1 1 1) #(1 0 0 0) #(1 0 0 1) #(1 0 1 0) #(1 0 1 1) #(1 1 0 0) #(1 1 0 1) #(1 1 1 0) #(1 1 1 1))S((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018'6-('abcdefgh' includesSubstring: 'de') >>> truedef30 { 1 ]. 2 }n uuuuuuu n uuu 2Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.0 Size of replacement doesnt matcheRReturns a string representation of the receiver as hexadecimal, prefixed with 16r. . #( foo bar )a114hex "Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this." "$A hex >>> '16r41'" ^ self asInteger hexwriteStreamDo: aBlock "Evaluates the argument with the write stream of the collection. Answers the result." "(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}" ^ aBlock value: self writeStream1g4cmonth "(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'" ^ self asMonth+Tests-osx-64-ClassAnnotation-Tests-Test.xmlhello00#n0121.4 rounded >>> 13%OrderedCollection new capacity >>> 104def21b0.98orange104*Primitive does not fail properly right nowasValidSelector "Returns a symbol that is a valid selector by removing any space or forbidden characters" "'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'" "'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2" ^((( $: join: ( ( $: split: ( self select: [ :char | (char charCode < 128) and: [ char isAlphaNumeric or: [ char = $: ] ] ] ) ) select: [ :split | split isNotEmpty ] thenCollect: [ :nonEmptyString | nonEmptyString first isLetter ifTrue: [ nonEmptyString uncapitalized ] ifFalse: [ 'v' , nonEmptyString ] ] ) ) ifEmpty: [ 'v' ]), ((self isNotEmpty and: [ self last = $: ]) ifTrue: [ ':' ] ifFalse: [ #() ]) )asSymbol1LAnswer whether any element of aCollection is one of the receiver's elements.3210002e-2 reciprocal >>> (-1/2)137,remove the initial and final quote marks (single quote for string, or double quotes for comments), if present (and if matches nesting quotes). Have a look at testWithoutQuoting. If you want to remove single/double quotes not in first and last positions of the strings, have a look at copyWithout: $' isEmpty "Answer whether the receiver contains any elements." "{} isEmpty >>> true" "{{}} isEmpty >>> false" "'' isEmpty >>> true" "' ' isEmpty >>> false" "(1 to: 10) isEmpty >>> false" "(10 to: 1) isEmpty >>> true" ^self size = 01instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self soleInstance21113002m({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary0 :BBBBBB | bbbbbb s n 0'''h''' withoutQuoting >>> 'h'2AAnswer a Point with coordinates that are the reciprocals of mine.255Return the key that will be used to add a property with the class name when an unknown class is read and the option STONReader>>#acceptUnknownClasses: is true, by default #className. Such unknown classes are returned as generic maps.f9101. := 2-1010sortedElements "Answer with a collection of elements with counts, sorted by element." "#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}" ^contents associations sort; yourself12#( #( 0 1r2 3 ) ) Hello, World!*(#(1 2 3 4 5) reject: #even) >>> #(1 3 5)#$> isConnectorPunctuation >>> false3 hellotheworld000111213333141100015707 a, b and c11 0DDD00000EEE04377733888399A0CCC0[2includes: anObject "Answer whether anObject is one of the receiver's elements." "(#(10 20 30) includes: 20) >>> true" "(#(10 20 30) includes: 21) >>> false" "((1 to:9 by:2) includes: 3) >>> true" "((1 to:9 by:2) includes: 4) >>> false" "('Hello' includes: $l) >>> true" "('Hello' includes: $h) >>> false" "({'hello'. 'world'} includes: 'hello') >>> true" "({'hel','lo'. 'world'} includes: 'hello') >>> true" ^ self anySatisfy: [:each | each = anObject]a9removeAll: aCollection "Remove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message." "(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollection" aCollection == self ifTrue: [^self removeAll]. aCollection do: [:each | self remove: each]. ^ aCollection(Color hex: 0.2) >>> '33'Like in SQL operation - Split the recievers contents into collections of elements for which keyBlock returns the same results, and return those collections allowed by selectBlock.2ereject: rejectBlock thenDo: aBlock "Refer to the comment in Collection>>#reject:thenDo:" "(Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)" | each | 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ aBlock value: each ]]UwithoutQuoting "remove the initial and final quote marks (single quote for string, or double quotes for comments), if present (and if matches nesting quotes). Have a look at testWithoutQuoting. If you want to remove single/double quotes not in first and last positions of the strings, have a look at copyWithout: $' " "'''h''' withoutQuoting >>> 'h'" "' ''h'' ' withoutQuoting >>> ' ''h'' '" | quote | self size < 2 ifTrue: [ ^ self ]. quote := self first. ^ (quote = self last and: [ quote = $' or: [ quote = $" ] ]) ifTrue: [ self copyFrom: 2 to: self size - 1 ] ifFalse: [ self ]groupByRuns: aBlock "Answer a new collection of the same species as the receiver with elements being collections (of the receiver species) containing those elements of the receiver for which the given block consecutively evaluates to the same object." "(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))" "(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))" "((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))" | str eStr r | str := Array new writeStream. r := nil. eStr := Array new writeStream. self do: [ :e | | t | (t := aBlock value: e) = r ifFalse: [ r := t. eStr isEmpty ifFalse: [ str nextPut: (eStr contents as: self species). eStr reset ] ]. eStr nextPut: e ]. eStr isEmpty ifFalse: [ str nextPut: (eStr contents as: self species) ]. ^ str contents as: self species30223102104291 2101101X({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)abcAnswer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections.20421-2classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self classW(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'1c one:1;two:2;2 Point[1,2]11bc10eEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between. 222222222 0vector0u u. X X X. X X"('pharo' endsWith: 'aro') >>> true0split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. optimized version for single delimiters." "(String streamContents: [:s | Character space split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" | position oldPosition | position := 1. oldPosition := position. position := aSequenceableCollection indexOf: self startingAt: position. [ position > 0 ] whileTrue: [ aBlock value: oldPosition value: position - 1. position := position + 1. oldPosition := position. position := aSequenceableCollection indexOf: self startingAt: position. ]. aBlock value: oldPosition value: aSequenceableCollection sizeRemove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message.u a116r00A214201830103013010((#(a b c d e) identityIndexOf: #x) >>> 0010>Return number that represents digit at given decimal position.33d1 + ^This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects.*Return the maximum value of the collection20 1 sign;;barM= aString "Answer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences)." " 'abc' = 'def' >>> false" " 'abc' = 'abc' >>> true" " 'def' = 'abc' >>> false" (aString isString and: [ self size = aString size ]) ifFalse: [ ^ false ]. ^ (self compare: self with: aString) = 0pReturn true if all my elements are close to the elements of same index of the parameter with a certain precision}>>> anObject "Return a pair. It is handy to support the tweaking of pharo doc expression. A pharo doc expression is a comment as the following one:" "4 + 3 >>> 7" "Pay attention when you write an executable comment for keyword-based method: surround with parentheses your expression because, otherwise the executable comment won't work as the message is binary." "(1 max: 1000) >>> 1000" "An executable comment must be in its own comment block (enclosed in double quotes) and can be multi-line for better readability. Code editor hint: you can double click on the inner side of a double quote to select the whole comment block, then Cmd+I to evaluate and inspect the whole executable comment." "Note: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement." "| rectangles | rectangles := OrderedCollection new add: (Rectangle left: 5 right: 10 top: 0 bottom: 15); add: (Rectangle left: 0 right: 15 top: 5 bottom: 10); yourself. (Rectangle merging: rectangles) >>> (Rectangle left: 0 right: 15 top: 0 bottom: 15)" ^ self -> anObject1epharo!6between: #(7 8)0192015'Tests-osx-64-ClassParser-Tests-Test.xml5xAnswer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements.0vector03 [ | | . 1131c115even " 0 even >>> true" " 2 even >>> true" "-2 even >>> true" " 3 even >>> false" "-3 even >>> false" ^(self bitAnd: 1) = 018051<(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28'22324454AA51That is false!1OrderedCollection new class >>> OrderedCollectionisSeparator "Returns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPage" "Character space isSeparator >>> true" "Character lf isSeparator >>> true" "Character cr isSeparator >>> true" "Character newPage isSeparator >>> true" "Character tab isSeparator >>> true" "$' isSeparator >>> false" | in | ^ (in := self asInteger) == 32 or: [ in == 13 or: [ in == 9 or: [ in == 10 or: [ in == 12 ] ] ] ]'{1. 2} asSet = {2. 1} asSet >>> true30000ABC1((2@2) + 200) >>> (202@202)1 slowFactorial >>> 1 'abc' <= 'abc' >>> trueLIf the receiver is false (i.e., the condition is false), then the value is the false alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line.1410 ( 1 }. 2 )e150 :BBBB | bbbb s n 01g11EReturn the HSV saturation of this color, a value between 0.0 and 1.0.expandMacros "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" ^self expandMacrosWithArguments: #()G(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)VChroma is zero for black and white, which are the two cases of division by zero below.10:('pharo' endsWith: 'phuro' caseSensitive: false) >>> false256B(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}c({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)1000.4 *foo*zort3two9Answer whether the receiver is an unary message selector./0777000000888030999000000III0A0JJJ0CCGGGCD0HHH0%('hello' includesAny: 'hop') >>> true33d41f-615200Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber.-12(#(11 22 33) asOrderedCollection atWrap: 5) >>> 22yAnswer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValueP((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'#FFCCAA X n45!'ABA' asByteArray >>> #[65 66 65]1119(Character space asString, 'a') isAllSeparators >>> false#( 9(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) That is true!3.0foo: }6(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15#(3 5 7 7) average >>> (11/2) 1001223pdetectMax: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the highest magnitude. If collection empty, return nil. This method might also be called elect:." "({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3)" "({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6)" "((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12" "('Hello' detectMax: #asciiValue) >>> $o" | maxElement maxValue | self do: [:each | | val | maxValue == nil ifFalse: [ (val := aBlock value: each) > maxValue ifTrue: [ maxElement := each. maxValue := val]] ifTrue: ["first element" maxElement := each. maxValue := aBlock value: each]. "Note that there is no way to get the first element that works for all kinds of Collections. Must test every one."]. ^ maxElementiReturn a new sequenceable collection which contains the same elements as self but its elements are sorted50 kkkk XX kkkk10241550"100000000 decimalDigitLength >>> 922| a a | a := 10. ^ a0000038Tests-osx-64-Collections-DoubleLinkedList-Tests-Test.xml00 1 n n n 1 00vector0&((100@200) min: (30@400)) >>> (30@200) #(a b c d e f g h ) fifth >>> #eb0vector0ifTrue: alternativeBlock "If the receiver is false (i.e., the condition is false), then the value is the false alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'" "(false ifTrue: [ 'This statement is true!' ]) >>> nil" self subclassResponsibility, s110+Concatenate the receiver with the argument. ab ab ac depolynomialEval: thisX "Treat myself as the coeficients of a polynomial in X. Evaluate it with thisX. First element is the constant and last is the coeficient for the highest power. #(1 2 3) polynomialEval: 2 is 3*X^2 + 2*X + 1 with X = 2" "(#(1 2 3) polynomialEval: 2) >>> 17" | sum valToPower | sum := self first. valToPower := thisX. 2 to: self size do: [ :ind | sum := sum + ((self at: ind) * valToPower). valToPower := valToPower * thisX ]. ^ sum#(100.1@200.9) ceiling >>> (101@201)(Tests-osx-64-Zinc-HTTP-Examples-Test.xml1;foo50findBinary: aBlock do: actionBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the found element as argument If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements or nil as arguments." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 11" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(11 15)'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(nil 1)'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'" ^ self findBinaryIndex: aBlock do: [ :foundIndex | actionBlock value: (self at: foundIndex) ] ifNone: [ :prevIndex :nextIndex | exceptionBlock cull: (prevIndex > 0 ifTrue: [ self at: prevIndex ]) cull: (nextIndex <= self size ifTrue: [ self at: nextIndex ]) ]2.4668517113662407This statement is true!3oops'abc' isByteString >>> true(1 to:10 by:2) size >>> 5::1asCamelCase "Convert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase." "'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama'" "'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'" ^ self species streamContents: [:stream | self substrings do: [:sub | stream nextPutAll: sub capitalized]]4221(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)3=Answer a copy of the receiver without any duplicated elements121a3v( #('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b] ) >>> 'if it is to be it is up to me'36r1halt this string will be trimmed rounded "Answer the integer nearest the receiver." "1.4 rounded >>> 1" "1.5 rounded >>> 2" "2 rounded >>> 2" "-1.5 rounded >>> -2" ^(self + (self sign / 2)) truncated17;(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'1200indexOfSubCollection: aSubCollection startingAt: anIndex "Answer the index of the receiver's first element, such that that element equals the first element of aSubCollection, and the next elements equal the rest of the elements of aSubCollection. Begin the search at element anIndex of the receiver. If no such match is found, answer 0." "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 3" "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 0" ^self indexOfSubCollection: aSubCollection startingAt: anIndex ifAbsent: [0]0.0qPrint elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:. #( # ## )14{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 3 | Object | Object := 1. ^ Object0vector07aprintOn: aStream delimiter: delimString last: lastDelimString "Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'" "(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'" "Note: Feel free to improve the code to detect the last element." | n sz | n := 1. sz := self size. self do: [:elem | n := n + 1. aStream print: elem] separatedBy: [ n = sz ifTrue: [aStream nextPutAll: lastDelimString] ifFalse: [aStream nextPutAll: delimString]]1000000000200000xAnswer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digit0:00:00:00.001000002minutes "2 minutes printString >>> '0:00:02:00'" "(1 hour + 2 minutes) printString >>> '0:01:02:00'" ^ Duration minutes: selfReturns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space characterI(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 6+('abc' sameAs: 'aBc' asWideString) >>> true1111TAdd new empty slots to the front of array, while keeping the empty slots at the end. 12r89ab cd 16r80000000helloNonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument.1)(#() ifNotEmpty: [:x| x average]) >>> #() [:a| | |b] X -3(1@2) isFloatPoint >>> false-624110 2r-001010004SEvaluates the argument with the write stream of the collection. Answers the result.abcdfAdd the argument, newObject, as an element of the receiver. Put it in the sequence just succeeding oldObject. Answer newObject. Raises an error if oldObject is not found32639Evaluate the given block with the receiver as argument, answering its value unless the receiver is empty, in which case answer the receiver.11 110000044106('pharo' beginsWith: '' caseSensitive: false) >>> true1Point instanceSide >>> Point&Tests-osx-64-CodeImport-Tests-Test.xml0/({'hello'. 'world'} includes: 'hello') >>> true40.2charlie1010000033\ aCollection "Return all the elements in self that are not in aCollection. Alias of difference:" "#(10 20 30) \ (0 to: 15) >>> #(20 30)" "'abc' \ 'cbe' >>> 'a'." ^ self difference: aCollectionLadaptToCollection: rcvr andSend: selector "If I am involved in arithmetic with another Collection, return a Collection of the results of each element combined with the scalar in that expression. Is used to implement Collection>>+, Collection>>-, etc." "(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}" (rcvr isSequenceable and: [ self isSequenceable ]) ifFalse: [self error: 'Only sequenceable collections may be combined arithmetically']. ^ rcvr with: self collect: [:rcvrElement :myElement | rcvrElement perform: selector with: myElement]20S ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' 223171$(#[1 2 0 4] booleanAt: 3) >>> false.13"0 :BBBBBBBBBBB | bbbbbbbbbbb s n 01('ab' compare: 'aa') >>> 3vaestringssplit: aSequenceableCollection "Split the argument using the receiver as a separator." "optimized version for single delimiters" "($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollection" "([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollection" | result | result := OrderedCollection new: aSequenceableCollection size //2. self split: aSequenceableCollection do: [ :item | result add: item ]. ^ resultZReturn an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.040* arg "Pairwise product of two sequenceable collections of the same length." "#(0 1 2) * #(10 20 30) >>> #(0 20 60)" "{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}" ^ arg adaptToCollection: self andSend: #*2121211laO|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nilXaX0vector0(1 max: 1000) >>> 1000he'llocollect: collectBlock thenReject: rejectBlock "Optimized version of Collection>>#thenReject:" "(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)" | each | ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [:index | each := collectBlock value: (self at: index). (rejectBlock value: each) ifFalse: [ stream nextPut: each ]]]Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one.7ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'" ^falseAlternativeBlock value=Return the class of STON lists, Array, a system wide constant?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)10twolastIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 5" "(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 7" ^self lastIndexOf: anElement startingAt: self size ifAbsent: exceptionBlock22P(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'101.5 rounded >>> 23XX XX n XX# n X3$h. $w13322200&Answer the receiver raised to aNumber.5Tests-osx-64-Transcript-NonInteractive-Tests-Test.xmlH('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em'''@{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one' [: a : b]2151_Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false.trim "Trim separators from both sides of the receiving string." "' this string will be trimmed ' trim >>> 'this string will be trimmed'" ^ self trimBoth1dd20true asBit >>> 1/ "a" 1 "b" max: "c" 2 "d" ; "e" min: "f" 3 "g" "fear is the little death that the.1({Character space. Character space} join: #('Pharo' 'is' 'cool')) >>> {$P. $h. $a. $r. $o. Character space. Character space. $i. $s. Character space. Character space. $c. $o. $o. $l}0.01| | *({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 46611193.141041GReturn a ByteArray containing a GZIP compressed version of the receiver'('ab ab ac de' howManyMatch: 'a') >>> 1${#a. #b. #z. #d} sort >>> #(a b d z)D('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> falseW('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true12220vector0 Pharo is coolround: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(1/3 round: 2) >>> (33/100) " "(111/100 round: 2) >>> (111/100) " ^self roundTo: (10 raisedTo: numberOfWishedDecimal negated)XXXXXXXXXXXXXXXXXXXXXXXXXX5152That is false!Warning signal: 'false error'213976Remove the copies of elements, but keep the same order|isSorted "Return true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b]." "#(1 2 3) isSorted >>> true" "#(1 2 3 0) isSorted >>> false" | lastElm elm | self isEmpty ifTrue: [^ true]. lastElm := self first. 2 to: self size do: [:index | elm := self at: index. lastElm <= elm ifFalse: [^ false]. lastElm := elm]. ^ true3This should not happen1 foobazortone#(#[1 2 0 4] booleanAt: 2) >>> true.2-10vector0printOn: stream base: base length: minimumLength padded: padWithZeroes "Return a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set" "(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'" "(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'" | n numberOfDigits totalLength divisor | self < 0 ifTrue: [ n := self negated. totalLength := 1 ] ifFalse: [ n := self. totalLength := 0 ]. numberOfDigits := n numberOfDigitsInBase: base. totalLength := totalLength + numberOfDigits. padWithZeroes ifFalse: [ [ totalLength < minimumLength ] whileTrue: [ stream space. totalLength := totalLength + 1 ] ]. n = self ifFalse: [ stream nextPut: $- ]. padWithZeroes ifTrue: [ [ totalLength < minimumLength ] whileTrue: [ stream nextPut: $0. totalLength := totalLength + 1 ] ]. divisor := (base raisedToInteger: numberOfDigits - 1). [ divisor > 0 ] whileTrue: [ | digit | digit := n // divisor. stream nextPut: ('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' at: digit + 1). n := n - (digit * divisor). divisor := divisor // base ]6-9860000224455655597777855BBBCBBBEBBAAAAAAAAGGFFFH44333333 [ :a | 1 ]cAnswer the angle in radians. Implementation note: use sign in order to catch cases of negativeZero3e1.07 GBremoveDuplicates "Remove the copies of elements, but keep the same order" "#(7 42 7 42 9) asOrderedCollection removeDuplicates asArray >>> #(7 42 9)" "#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)" | iterator seen | self ifEmpty: [ ^ self ]. iterator := 1. seen := Set new. [ iterator <= self size ] whileTrue: [ | each | each := self at: iterator. (seen includes: each) ifTrue: [ self removeAt: iterator ] ifFalse: [ seen add: each. iterator := iterator + 1. ]. ]00000BBB08888888888888880EEE09999999999999990HHH02'(6 numberOfCombinationsTaken: 3) >>> 201.01{1@5. 10@ -4} max >>> (10@5)abcisCasedLetter "We are sorry but this method is unclear and will probably be removed. This method only returning false." "$a isCasedLetter >>> false" "$A isCasedLetter >>> false" ^ self characterSet isCasedLetter: self12]xor: alternativeBlock "Nonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock." "(true xor: [true]) >>> false" "(true xor: [false]) >>> true" "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" self subclassResponsibility3(1 decimalDigitAt: 2) >>> 0c1 expandMacrosWithArguments: anArray "Interpret the receiver pattern (<1p>, <1s>, ...) with argument passed in anArray." " writes the N-th argument using #printString, but without trancating it." "('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'" " writes the N-th argument, which should be a String, or a collection of printable objects. Note also important distinction for single-quotes inside the argument; with

they will be doubled." "('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em'''" "Whitespace characters:" "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" "'' expandMacros >>> String lf" "Writing '<' character: To write '<', prepend it with a percent sign." "'%' expandMacros >>> ''" "Ternary operator: An if-else string can be written with . The N-th argument must be a Boolean. Yes-string cannot contain colon ':', as it terminates the yes-string. No-string cannot contain closing angle bracket '>', as it terminates the no-string." "('<1?success:error>' expandMacrosWith: true) >>> 'success'" "('<1?success:is error>' expandMacrosWith: false) >>> 'is error'" | readStream char index | ^ self species new: self size streamContents: [ :newStream | readStream := self readStream. [ readStream atEnd ] whileFalse: [ char := readStream next. char == $< ifTrue: [ | nextChar | nextChar := readStream next asUppercase. nextChar == $R ifTrue: [ newStream cr ]. nextChar == $L ifTrue: [ newStream lf ]. nextChar == $T ifTrue: [ newStream tab ]. nextChar == $N ifTrue: [ newStream nextPutAll: OSPlatform current lineEnding ]. nextChar isDigit ifTrue: [ index := nextChar digitValue. [ readStream atEnd or: [ (nextChar := readStream next asUppercase) isDigit not ] ] whileFalse: [ index := index * 10 + nextChar digitValue ] ]. nextChar == $? ifTrue: [ | trueString falseString | trueString := readStream upTo: $:. falseString := readStream upTo: $>. readStream position: readStream position - 1. newStream nextPutAll: ((anArray at: index) ifTrue: [ trueString ] ifFalse: [ falseString ]) ]. nextChar == $P ifTrue: [ (anArray at: index) printOn: newStream ]. nextChar == $S ifTrue: [ newStream nextPutAll: (anArray at: index) ]. readStream skipTo: $> ] ifFalse: [ newStream nextPut: (char == $% ifTrue: [ readStream next ] ifFalse: [ char ]) ] ] ]"2 ** (1/12) >>> 1.0594630943592953$1 isDigit >>> truefoo*baz12 between: 11!Return a positive nonzero extent.~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.6&#(0 1 2) + #(10 20 30) >>> #(10 21 32) 0001003343500"Evaluate aBlock for each of the receiver's elements (key/value associations). If any non-association is within, the error is not caught now, but later, when a key or value message is sent to it. The point of this method it to do the *right thing* on Dictionaries and related classes. -0.98D(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass2n((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))3Class structural inspection - Class/Metaclass shift'"a" [ "b" | "c" x "d" y "e" | "f" ] "g"ppp X asHexString "Return a string representing the receiver in HEX (i.e., 6 elements in 16 basis)" "(Color red asHexString) >>> 'FF0000'" | s | s := '000000' copy. s at: 1 put: (Character digitValue: ((rgb bitShift: -6 - RedShift) bitAnd: 15)). s at: 2 put: (Character digitValue: ((rgb bitShift: -2 - RedShift) bitAnd: 15)). s at: 3 put: (Character digitValue: ((rgb bitShift: -6 - GreenShift) bitAnd: 15)). s at: 4 put: (Character digitValue: ((rgb bitShift: -2 - GreenShift) bitAnd: 15)). s at: 5 put: (Character digitValue: ((rgb bitShift: -6 - BlueShift) bitAnd: 15)). s at: 6 put: (Character digitValue: ((rgb bitShift: -2 - BlueShift) bitAnd: 15)). ^ s:ae30111-2 even >>> true67112225EAnswer the value of the alternativeBlock since the receiver is false.30%Tests-osx-64-Ring-Core-Tests-Test.xml6$) isClosePunctuation >>> truerunningAverage: aSubsetSize "Running average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}" ^ self running: [ :subset | subset average ] of: aSubsetSize21Repeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations.50Answer the element after target. Answer the result of evaluation the exceptionBlock if target is not in the receiver, or if there are no elements after it.26p true | true >>> true4210aSpecial case of self = 031111200445555555766A88889*0011"""2"""3333"""1111"""111"""1#"""#321003041Return a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length.-(Date today equals: Date yesterday) >>> falseMReturns the hex digit part of the integer when printed in hexadecimal format.44/ """ n """ ssss """ n """ ; """ ssss """ n """ 11#(-10 printStringBase: 10) >>> '-10')Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:51''~reduceLeft: aBlock "Fold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments." "(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3)" "(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4" "(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)" "(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -1" | arguments | self emptyCheck. arguments := Array new: aBlock argumentCount. (arguments size = 0 or: [ (self size + 1) \\ (arguments size - 1) > 0 ]) ifTrue: [ self error: 'Collection size and block argument count do not match.' ]. arguments at: 1 put: self first. 2 to: self size by: arguments size - 1 do: [ :index | arguments replaceFrom: 2 to: arguments size with: self startingAt: index; at: 1 put: (aBlock valueWithArguments: arguments) ]. ^ arguments firstU(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'10000 00002222222(1 -> 'one') value >>> 'one'PThe receiver is assumed to represent radians. Answer the conversion to degrees.SHIFT_L1 111111100228 August 2018 short enough104\Answer the second element of the receiver. Raise an error if there are not enough elements.100201000.67474094222355260s:291102minute "Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed." "(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 33" ^ self localSeconds // SecondsInMinute \\ 6004000(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4)#a := a. [ :a | | a a := a ]. a := a33 & -2d19 000102220300zmax "Answer a number that is the maximum of the x and y of the receiver." "(100@200) max >>> 200" ^ self x max: self y13Tests-osx-64-Refactoring-Environment-Tests-Test.xmlThis statement is false!a12worldD(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true12Tests-osx-64-Spec2-Adapters-Morphic-Tests-Test.xml2:at: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ dictionary at: firstKey at: secondKey22bifNil: nilBlock ifNotNil: ifNotNilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42" "(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6" ^ ifNotNilBlock cull: self255T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'6Return number that represents digit at given position.3*(100@200) reciprocal >>> ((1/100)@(1/200))25XX XX n XX# n X X pharo-project102333333B('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> trueXXnXaeiou11001|:aremoveAll "Remove each element from the receiver and leave it empty. ArrayedCollections cannot respond to this message. There are two good reasons why a subclass should override this message: 1) the subclass does not support being modified while being iterated 2) the subclass provides a much faster way than iterating through each element" "#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new" self do: [:each | self remove: each];#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 62Answer whether the receiver contains any elements. foo swap: oneIndex with: anotherIndex "Move the element at oneIndex to anotherIndex, and vice-versa." "({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)" | element | element := self at: oneIndex. self at: oneIndex put: (self at: anotherIndex). self at: anotherIndex put: element1-114(#(11 22 33) before: 33) >>> 22YCreate a dictionary from the keys and values arguments which should have the same length.127G('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'1242Unused variable foo < + 1> 0220:00:00:00.0011000810, 15, 20, 250vector04#(10 storeStringBase: 16) >>> '16rA'21 foo. 220vector01/ """ pppp """ A """ pppp """ A """ ^ """ a """ 1 1, 2, 3 and 43The low bits table can be obtained with: ((1 to: 8) inject: #[1] into: [:lowBits :rank | (lowBits copy at: 1 put: lowBits first + 1; yourself) , lowBits]) allButFirst.]Answer the last n elements of the receiver. Raise an error if there are not enough elements.3421220+ 6Z{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself)10 hexString >>> '16rA'>(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)2barMReturn whether the receiver is https://www.compart.com/en/unicode/category/Pf1dBReturns a copy of the string doubling all occurence of aCharacter.0vector0019Answer the set theoretic intersection of two collections.'See `escapeCharacter:` for the opposite20 fred the bearRReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.defb0$A printStringHex >>> '41'n(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)KAnswer with a collection of cumulative percents covered by elements so far.10000010000200003055555555555556676869666CBBBDAAAE3.2 11200300445 0001002000400def330103b5(Array streamContents: [:stream | #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]] do: [:each | stream nextPut: each size]]) >>> #(1 5 3)31100111100044442222300556666fghi0vector031412332bfalse & false >>> false2x2a | M(Character space asString, Character space asString) isAllSeparators >>> true10005034XXXXXXXX| aBoolean "Evaluating disjunction (OR) -- answer true since the receiver is true." "true | true >>> true" "true | false >>> true" ^selfindex out of range1min "Return the minimum value of the collection" "#(1 5 10 -4) min >>> -4" "{1@5. 10@ -4} min >>> (1@ -4)" ^ self inject: self anyOne into: [:min :each | min min: each]That is false!('aa' compare: 'ab') >>> 150d2311abcdefgh'1234' asFourCode >>> 825373492 over index: N(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'21300 11 n n n 1 009810.160s3KNonevaluating conjunction -- answer with false since the receiver is false.E('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'20'A' asHex >>> '16r41'13.1510.12X#####0151oneu u. X X X. X X 'h' 2.2x isSymbol: 33&(Color white asColorref) >>> 167772152510000222oReturn index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock."result will cover the range [-1,1]#(a b c d e) last >>> #e Tests-osx-64-Slot-Tests-Test.xml11salkjsdlkgfeealXnX nXbetween: #(23 nil)10:00:00:00.0000000021 between: -218allPairsDo: aBinaryBlock "Iterate over all the pairs of the receiver and apply the binaryBlock to each pair. " "(Array streamContents: [ :stream | #(0 1 2 3) allPairsDo: [ :first :second | stream nextPut: { first . second } ] ]) >>> #(#(0 0) #(0 1) #(0 2) #(0 3) #(1 0) #(1 1) #(1 2) #(1 3) #(2 0) #(2 1) #(2 2) #(2 3) #(3 0) #(3 1) #(3 2) #(3 3))" self do: [ :first | self do: [ :second | aBinaryBlock value: first value: second ] ]{3} median >>> 3313020gePoint isInstanceSide >>> true(Answer the first element of the receiverMockPackage-tests0400#-130!(10 printStringBase: 10) >>> '10'c222kEvaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block.20>( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)0 factorial >>> 111*'displayStringOn:' endsWithAColon >>> true6c2 ('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' >isExtension "I return true if a method is an extension method. Which means that the methods is not packaged in the package of the class containing the method, but in another package." "(self >> #selector) isExtension >>> false" "(self >> #traitSource) isExtension >>> true" ^ self hasProperty: #extensionPackage##11 includes:XX X n X"#(a b c d e f g h ) eighth >>> #hdPerform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.DNonevaluating disjunction -- answer true since the receiver is true.0vector04detectIndex: aBlock ifNone: exceptionBlock "Return index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock." "(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 2" "(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found'" self doWithIndex: [:each :index | (aBlock value: each) ifTrue: [^ index]]. ^ exceptionBlock valueabcEnd of statement expected13! A shortcut method for raisedTo: do: elementBlock separatedBy: separatorBlock "Evaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between." "(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3'" | beforeFirst | beforeFirst := true. self do: [:each | beforeFirst ifTrue: [beforeFirst := false] ifFalse: [separatorBlock value]. elementBlock value: each]512101n s @ foo: 4&(OrderedCollection new add: 42) >>> 423036[ :self | self + 1 ]063at: anInteger "Answer my element at index anInteger. at: is used by a knowledgeable client to access an existing element." "((OrderedCollection new add: 34; yourself) at: 1) >>> 34" "(#(40 41 42) asOrderedCollection at: 1) >>> 40" "(#(40 41 42) asOrderedCollection at: 2) >>> 41" "(#(40 41 42) asOrderedCollection at: 3) >>> 42" | index | anInteger < 1 ifTrue: [ self errorSubscriptBounds: anInteger ]. (index := anInteger + firstIndex - 1) > lastIndex ifTrue: [ self errorSubscriptBounds: anInteger ]. ^ array at: indexround: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(10.12345 round: 2) >>> 10.12" "(10.199999999 round: 2) >>>10.2" ^ self subclassResponsibility%Answer the factorial of the receiver.0.0-42 1 foo: ^2>('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'222r xfrom: start to: stop do: aBlock "Evaluate aBlock for all elements between start and stop (inclusive)." "(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30)" start to: stop do: [:index | aBlock value: (self at: index)]1EAnswer an instance of me containing the same elements as aCollection. 9 % -4 >>> -3100002Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber.!"a" ( "b" ( "c" 1 "d" ) "e" ) "f"10001082longoneR(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)31ZEvaluate twoArgBlock with corresponding elements from this collection and otherCollection.-3.15WJust like do: except that the iteration index supplies the second argument to the block 111110000T(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)10'hello' copyEmpty >>> ''helloTheRollingStonesPharo/foo "a" < "b" bar: "c" 1 "d" z: "e" 2 "f" > "g"852|escapeCharacter: aCharacter "Returns a copy of the string doubling all occurence of aCharacter." "See `unescapeCharacter:` for the opposite" "('abc' escapeCharacter: $X) >>> 'abc'" "('aXb' escapeCharacter: $X) >>> 'aXXb'" "('XaX' escapeCharacter: $X) >>> 'XXaXX'" "('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'" | result stream | result := WriteStream with: ''. stream := ReadStream on: self. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peekBack = aCharacter ifTrue: [ result nextPut: aCharacter. result nextPut: aCharacter ] ]. ^ result contents2"{3@5. 7@ -4} average >>> (5@(1/2)) Answer the index of the low order one bit. First we skip bits in groups of 8, then do a lookup in a table. While not optimal, this is a good tradeoff; long integer #lowBit always invokes us with bytes.1020({1. 2} asSet = {1. 2. 3} asSet >>> falseThat is false!35;#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan10detectMin: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the lowest number. If collection empty, return nil." "({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)" "({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)" "('Hello!' detectMin: #asciiValue) >>> $!" | minElement minValue | self do: [:each | | val | minValue == nil ifFalse: [ (val := aBlock value: each) < minValue ifTrue: [ minElement := each. minValue := val]] ifTrue: ["first element" minElement := each. minValue := aBlock value: each]. "Note that there is no way to get the first element that works for all kinds of Collections. Must test every one."]. ^ minElement-322018321200& aBoolean "Evaluating conjunction -- answer aBoolean since receiver is true." "true & true >>> true" "true & false >>> false" ^aBoolean20Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver, only those elements for which aBlock evaluates to true. Answer the new collection.(100@200) min >>> 100hFormat the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long.._select elements from the receiver that the block evaluates true with the element and its index.20032224=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)a:foo 16r800000001023 pharo-projectd1 'def' > 'def' >>> false3312P(#(1 2 3) flatCollect: [:each | { each. each+1 } ] as: Set) >>> #(1 2 3 4) asSet=Answer a Bag whose elements are the elements of the receiver. Answer 1 since receiver is true./(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> 2def234{1}{2}200action1iAnswer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint.$' isEnclosingMark >>> false12-(#(10 20 30) includesAll: #(30 40)) >>> false+first method faster from 27 accesses and onx1/('word before index' wordBefore: 16) >>> 'inde'y30Unknown characterd1hAnswer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint.0)('abab ac de' howManyMatch: 'abab') >>> 410Wreturns the difference between the max and min element, their positions notwithstanding.(#(40 41 42) asOrderedCollection at: 3) >>> 42 hello world15213000 rx0.01136-1$] isClosePunctuation >>> true10.2abc222220000111113013 [:a|| |a]0011##########0114Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0.124'a' asByteArray >>> #[97] Not founddo5FSupport collection enumeration with a counter, even though not ordered10130100!(100.1@200.9) floor >>> (100@200)2334'abc' | 'cbe' >>> 'bcea'2#'hellozaNumber cannot be negative330301 '' expandMacros >>> String cryh: hue s: saturation l: lightness "Create a color with the given hue, saturation, and lightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and lightness are numbers in [0.0..1.0] where larger values are more saturated or lighter colors. The difference with brightness in the HSV coordinates is that colors go from black at lightness 0, through vivid hues at lightness 0.5, to white at lightness 1. For example, (Color h: 0 s: 1 l: 0.5) is pure red." " (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0)" ^ self h: hue s: saturation l: lightness alpha: 1.0galike: aString "Answer some indication of how alike the receiver is to the argument, 0 is no match, twice aString size is best score (but see example with 7). Case is ignored. This method is used to help find mistyped variable names in methods." "('abc' alike: 'abc') >>> 7." "('action' alike: 'actions') >>> 7." "('action' alike: 'caption') >>> 5." "('action' alike: 'name') >>> 0." | i j k minSize bonus | minSize := (j := self size) min: (k := aString size). bonus := (j - k) abs < 2 ifTrue: [ 1 ] ifFalse: [ 0 ]. i := 1. [(i <= minSize) and: [((self at: i) asInteger bitAnd: 16rDF) = ((aString at: i) asciiValue bitAnd: 16rDF)]] whileTrue: [ i := i + 1 ]. [(j > 0) and: [(k > 0) and: [((self at: j) asInteger bitAnd: 16rDF) = ((aString at: k) asciiValue bitAnd: 16rDF)]]] whileTrue: [ j := j - 1. k := k - 1. ]. ^ i - 1 + self size - j + bonus1b41 Pharo is coolc10foo < bar: 1 + 1 > 3101MReturn a collection of pharo comment nodes: expressions following the pattern((2@2) * 200) >>> (400@400)00vector0-3hello20vector020or: alternativeBlock "Nonevaluating disjunction -- answer value of alternativeBlock." "(false or: [true]) >>> true" "(false or: [3]) >>> 3" ^alternativeBlock value!'' expandMacros >>> String tab21Optimized to go through the primitive if possible1000101eflatCollect: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. optimized version for Sequencable Collection and subclasses implementing #writeStream" "(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)" "(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)" self isEmpty ifTrue: [ ^ self copy ]. ^self species new: 0 streamContents: [ :stream | self do: [ :each | stream nextPutAll: (aBlock value: each) ] ]@foo210-' test ' withSeparatorsCompacted >>> ' test '3016200110100000004/Negated value of all elements in the collectionDE(#(1 3 5 7 11 15 23) findBinary: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(11 15)'Y({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)101(-23.4567 printShowingDecimalPlaces: 0) >>> '-23'e0.0asTestSelector "Converts a method selector into a test selector in form of #testOriginalSelector" "#+ asTestSelector >>> #testPlus" "#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan" "#message asTestSelector >>> #testMessage" "#mySelector asTestSelector >>> #testMySelector" "#at:putNext: asTestSelector >>> #testAtPutNext" self isBinary ifTrue: [ ^ (#test, (self flatCollect: [ :each | (((Character specialCharacterNames at: each) copyReplaceAll: '-' with: ' ') substrings collect: #capitalized) joinUsing: ''])) asSymbol ]. ^ (#test, (((self copyReplaceAll: ':' with: ' ') substrings collect: #capitalized) joinUsing: '')) asSymbol60*Tests-osx-64-System-History-Tests-Test.xml00n#n#n0b1Tests-osx-64-Collections-Unordered-Tests-Test.xml<<<<>> #[1 2]110z(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)102010.156s27(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 34011011tAnswer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray.!#(a b c d e f g h ) fourth >>> #d(Character delete isControlOther >>> true23411100BEnumerate the receiver with all the keys (aka indices) and values.31oasStringOn: aStream delimiter: delimString last: lastDelimString "Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'. Uses #asString instead of #print: Note: Feel free to improve the code to detect the last element." "(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'" | n sz | n := 1. sz := self size. self do: [:elem | n := n + 1. aStream nextPutAll: elem asString] separatedBy: [ aStream nextPutAll: (n = sz ifTrue: [lastDelimString] ifFalse: [delimString])]31 10.199999999 00000000001#$} isConnectorPunctuation >>> falserNonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true.AAnswer how many of the receiver's elements are equal to anObject. '' expandMacros >>> String cr3(1 minute + 2 seconds) printString >>> '0:00:01:02'61"A"true"B"false"C"nil"D"self"E"super"F"thisContext"G"0aBc1;2001022033304550670880 100000000 [ | a b | (RuntimeSyntaxError signal: 'false error'20311*Tests-osx-64-System-Support-Tests-Test.xml1joinUsing: joiner last: last "Append the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument." "(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'" (self size = 0) ifTrue: [ ^ '' ]. (self size = 1) ifTrue: [ ^ self first asString ]. ^ last join: (Array with: (joiner join: self allButLast) with: self last)3200?Answer whether the receiver begins with the given prefix string40065Xs2compare: string1 with: string2 collated: order "'abc' = 'abc' asWideString >>> true" "'abc' asWideString = 'abc' >>> true" "(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> true" "('abc' sameAs: 'aBc' asWideString) >>> true" "('aBc' asWideString sameAs: 'abc') >>> true" "('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true" "((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false" "('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false" (string1 isByteString and: [ string2 isByteString ]) ifTrue: [ ^ string1 compareWith: string2 collated: order ]. "Primitive does not fail properly right now" ^ String compare: string1 with: string2 collated: order4210GEmit overlapping pairs of my elements into aBlock, along with an index.)Tests-osx-64-Commander2-UI-Tests-Test.xml11_(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection309numberOfCombinationsTaken: k "Return the number of combinations of (self) elements taken k at a time. It is calculated as C(n,k) = n! / (k! (n-k)!) For 6 numberOfCombinationsTaken: 3, this is 6*5*4 / (1*2*3)" "(6 numberOfCombinationsTaken: 3) >>> 20" | numerator denominator | k < 0 ifTrue: [^ 0]. k > self ifTrue: [^ 0]. numerator := 1. self to: (k max: self-k) + 1 by: -1 do: [ :factor | numerator := numerator * factor ]. denominator := 1. 1 to: (k min: self-k) do: [ :factor | denominator := denominator * factor ]. ^ numerator // denominator011e:520GifNotEmpty: aBlock "Evaluate the given block with the receiver as argument, answering its value unless the receiver is empty, in which case answer the receiver." "(#(10 20) ifNotEmpty: [:x| x average]) >>> 15" "(#() ifNotEmpty: [:x| x average]) >>> #()" ^ self isEmpty ifTrue: [ self ] ifFalse: [ aBlock cull: self ]1528047Tests-osx-64-MetacelloCommandLineHandler-Tests-Test.xml17234instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self26foo ^ [ :a | [ | a | a := 10. a ] value + a ] value: 1 ('foo*' match: 'foozo') >>> true 9 % 4 >>> 15(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 6:Answer whether anObject is one of the receiver's elements.212((Color white diff: Color black ) >>> 1.0atWrap: index "Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds." "(#(11 22 33) asOrderedCollection atWrap: 2) >>> 22" "(#(11 22 33) asOrderedCollection atWrap: 4) >>> 11" "(#(11 22 33) asOrderedCollection atWrap: 5) >>> 22" ^ self at: index - 1 \\ self size + 14' ' asLowercase >>> ' '33(1 sign: 2);bar31 nanoSecond printString >>> '0:00:00:00.000000001'0.016 factorial >>> 7202%Answer 0 since the receiver is false.Sunday2.0,(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet#+ asTestSelector >>> #testPlus010h(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollection~(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString$Tests-osx-64-Sindarin-Tests-Test.xml15042430 + [Store the elements of valueArray into the slots of this collection selected by indexArray.11 kkk XX kkk'(1 to: 10) asOpenInterval >>> (2 to: 9)53.147964s:1 e:5 s:7 e:8 s:10 e:13 (Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)00 r22\|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)This statement is false!6Answer true if the receiver is equivalent to aBoolean.63 average "Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock" "#(2 6 7) average >>> 5 " "#(3 5 7 7) average >>> (11/2) " "{3@5. 7@ -4} average >>> (5@(1/2))" ^ self sum / self size.Tests-osx-64-Shift-ClassBuilder-Tests-Test.xml20G(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)rBuild an instance of the receiver by writing elements to a stream. More specifically: blockWithArg will be given a WriteStream on an instance of the receiver. Inside blockWithArg you write elements to the stream to build up the collection. At the end, the contents of the stream up to that point will be returned. Note that the underlying collection grows as needed.foo: Object ^ Object + 1 4(#(1 3) anySatisfy: [ :each | each even ]) >>> falseIParse and materialize the STON representation in the character readStreamdisplayStringOn:foo(1 to: 10 by: 2) last >>> 9360e420canySatisfy: aBlock "Evaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false." "(#(1 3) anySatisfy: [ :each | each even ]) >>> false" "(#(1 2) anySatisfy: [ :each | each even ]) >>> true" "('hello world!' anySatisfy: [ :each | each isLetter ]) >>> true" "('hello world!' anySatisfy: [ :each | each isDigit ]) >>> false" "((4 to: 9) anySatisfy: #isPrime) >>> true" "((4 to: 50 by: 2) anySatisfy: #isPrime) >>> false" "(#() anySatisfy: [ true ]) >>> false" self do: [ :each | (aBlock value: each) ifTrue: [ ^ true ] ]. ^ false, +#(("A")"B"."C":"D";"E"["F"]"G"{"H"}"I"^"J")Object := ObjectpermutationsDo: aBlock "Repeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations." "(Array streamContents: [:stream | (1 to: 3) permutationsDo: [:each | stream nextPut: each copy]]) >>> #(#(1 2 3) #(1 3 2) #(2 1 3) #(2 3 1) #(3 2 1) #(3 1 2))" self shallowCopy permutationsStartingAt: 1 do: aBlock22210u uu 2z-2103115 001022230605XXXX50.5417r: r g: g b: b "Return a color with the given r, g, and b components in the range [0.0..1.0]." "(Color r: 1 g: 1 b: 1) >>> Color white" ^ self r: r g: g b: b alpha: 1.0Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection.213/(#(1 2 3 4) count: [ :each | each even ]) >>> 21673078(true and: [false]) >>> false0010223010-3O('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'1abc1.00 GB101abcd ('Hello' includes: $h) >>> falseisClassSide "Return true whether the receiver is a metaclass (in a couple class/metaclass sense)." "Point isClassSide >>> false" "Point class isClassSide >>> true" ^self == self classSide3-OrderedCollection new asArray class >>> Array2r3%'isSymbol' findSelector >>> #isSymbol 2r00101000v1 ^v1e!(3.1479 truncateTo: 0.1) >>> 3.1a16Returns the instance of myself having aString as name.splitOn: splitter indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(String streamContents: [:s | 'Pharo is cool' splitOn: Character space indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" ^ splitter split: self indicesDo: aBlock97U(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)2e5c11intersection: aCollection "Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessary" "(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSet" "(#(1 2 3 4) asSet intersection: #() asSet) >>> Set new" "( #() asSet intersection: #(1 2 3 4) asSet) >>> Set new" | outputSet | outputSet := self class new. aCollection do: [ :each | (self includes: each) ifTrue: [ outputSet add: each ] ]. ^ outputSet143 + 1. - a. - 1. - 1 "A"[ :Object | Object + 1 ]113Class structural inspection - Class/Metaclass shift303C('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2.h100 XX 00 n n n 06-4two <1s> vs <1p>40.04"fear is the little death that the....41022003zda104('*foo*zort' match: 'afoodezortorfoo3zort') >>> true0vector020[ | b ]((#(1 2) detect: #even ifNone: [0]) >>> 22 14000y3foohello1s:1 e:5 s:7 e:8 s:10 e:13  a: :food1test test Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.Abcd11100elvis '('hello world' occurrencesOf: $l) >>> 3#() isNotEmpty >>> false1lvi '>' expected222334&ProtoObject class superclass >>> ClassbarAnswer the y coordinate.0"'FFF 00GGG044999464AAA4B0DDD000EEE00 HHH0hReturn element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element'#(10 20 30) // #(1 3 4.0) >>> #(10 6 7) That is true!nanoSecond "1 nanoSecond printString >>> '0:00:00:00.000000001'" "(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'" ^ self nanoSeconds@({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)_Return the integer present in the receiver, or nil. In case of float, returns the integer part.100(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) 2e014220-SmallInteger maxVal decimalDigitLength >>> 19e:50G({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)1mapClass "Return the class of STON maps, Dictionary, a system wide constant" "(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass" ^ Dictionary3#'10pReturns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned.40201#( #( 0 1 r2 3 ) )10000 00######################### ###002033-Tests6-('Hello, World!' reject: #isLetter) >>> ', !'reject: rejectBlock thenCollect: collectBlock "Optimized version of Collection>>#reject:thenCollect:" "(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ stream nextPut: (collectBlock value: each) ]]]c20 9//4 >>> 2102 0035554466602y208Return the sum (+) of the elements held in the receiver.8(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> true19pharo2;12.3028c1328-61 Pharo is coolfoo < bar: 1 > 2(Character euro isCurrencySymbol >>> true214 { 1 ). 2 }0001020000112223445666778888990/Answer a set with the elements of the receiver.32Pharo is 'cool'21508(Color r: 0.5 g: 0.5 b: 1) green >>> 0.5004887585532747+001"""1"""#"""#"""#"""#"""#"""#"""#"""#"""02put: object onStream: writeStream "Write the STON serialization of object to the character writeStream" "(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]'" "FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]" (self writer on: writeStream) nextPut: object/Tests-osx-64-Roassal-Interaction-Tests-Test.xml116Missing opener for closer: }35&('foo*baz' match: 'foo23baz') >>> true1 goodby: 2 my: 1920(false and: [true]) >>> false10{ }241106('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 12233^ <dxy:= 23.1479g(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{"foo":1},{"bar":2}]'20foo ^ [ :a | [ :a | a ] value: 10 + a ] value: 1*#(1 2 3 4) unzip first asArray >>> #(1 3):(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 600(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 427Answer a Point scaled by factor (an instance of Point).115Invalid input/output !50vector09 \\ -4 >>> -330foo:bar:1((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBazpwn15Preduce: aBlock "Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified." "(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 6" "1 + 2 + 3" "(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3)" "(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15" "(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)" ^ self reduceLeft: aBlock10uminute "1 minute printString >>> '0:00:01:00'" "(1 hour + 1 minute) printString >>> '0:01:01:00'" ^ self minutes011&noise: xin y: yin z: zin "(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.13691995878400012" | x0 y0 z0 x y z u v w a aa ab b ba bb | x0 := xin floor & 255. y0 := yin floor & 255. z0 := zin floor & 255. x := xin - xin floor. y := yin - yin floor. z := zin - zin floor. u := self fade: x. v := self fade: y. w := self fade: z. a := (p at: x0)+y0. aa := (p at: a)+z0. ab := (p at: a+1)+z0. b := (p at: x0+1)+y0. ba := (p at: b) + z0. bb := (p at: b+1) + z0. "result will cover the range [-1,1]" ^ self lerp: w a: (self lerp: v a: (self lerp: u a: (self grad: (p at: aa) x: x y: y z: z) b: (self grad: (p at: ba) x: x-1 y: y z: z) ) b: (self lerp: u a: (self grad: (p at: ab) x: x y: y-1 z: z) b: (self grad: (p at: bb) x: x-1 y: y-1 z: z) ) ) b: (self lerp: v a: (self lerp: u a: (self grad: (p at: aa+1) x: x y: y z: z-1) b: (self grad: (p at: ba+1) x: x-1 y: y z: z-1) ) b: (self lerp: u a: (self grad: (p at: ab+1) x: x y: y-1 z: z-1) b: (self grad: (p at: bb+1) x: x-1 y: y-1 z: z-1) ) )$1 isAlphaNumeric >>> true ;(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))select: selectBlock thenCollect: collectBlock "Optimized version of Collection>>#select:thenCollect:" "(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (selectBlock value: (each := self at: index)) ifTrue: [ stream nextPut: (collectBlock value: each) ]]]EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil5Optimized version of Collection>>#select:thenCollect:11 *- 1 + 1 -- 1 + 1 - -1219blueReturn an instantiated color from parm. If parm is already a color, return it, else return the result of my performing it if it's a symbol or, if it is a list, it can either be an array of three numbers, which will be interpreted as RGB values, or a list of symbols, the first of which is sent to me and then the others of which are in turn sent to the prior result, thus allowing entries of the form #(blue darker). Else just return the thing { 1 }. { 2 }1:= [:aa31112removeAllFoundIn: aCollection "Remove each element of aCollection which is present in the receiver from the receiver. Answer aCollection. No error is raised if an element isn't found. ArrayedCollections cannot respond to this message." "(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollection" aCollection do: [:each | self remove: each ifAbsent: []]. ^ aCollectionP(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]'67666666686555516rDFxaalgAnswer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semantics00002222222326555109([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'isTestPackage "1. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: " "(RPackage named: 'MockPackage-Tests') isTestPackage >>> true" "(RPackage named: 'MockPackage-tests') isTestPackage >>> true" "(RPackage named: 'MockPackage') isTestPackage >>> false" "(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true" ^ (self name endsWith: '-Tests' caseSensitive: false) or: [ self name includesSubstring: '-Tests-' caseSensitive: false ]205215aeiou -(#(10 20) ifNotEmpty: [:x| x average]) >>> 15%tokenish "Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon." "$' tokenish >>> false" "$: tokenish >>> true" "${ tokenish >>> false" "Character space tokenish >>> false" ^ self isLetter or: [ self isDigit or: [ self = $_ or: [ self = $: ] ] ]a3r: r g: g b: b range: range "Return a color with the given r, g, and b components specified as integers in the range [0..r]. This avoids the floating point arithmetic in the red:green:blue: message and is thus a bit faster for certain applications (such as computing a sequence of colors for a palette)." "(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)" ^ self basicNew initializeRed: r green: g blue: b range: range; yourself1510100copyEmpty "Return a new empty collection based on the species" "{1@2} copyEmpty >>> #()" "'hello' copyEmpty >>> ''" "(1 to: 10) copyEmpty >>> #()" ^ self species newd1121#('' ifEmpty: ['(nil)']) >>> '(nil)'+('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'100foobazarodc00 100.1pharo10seperategroupsOf: n atATimeCollect: aBlock "Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:" "(#(16 17 17 16 18 17 18 19 19 19 18 19 19 20 19 20 19 20 20 20 19 20) groupsOf: 7 atATimeCollect: [ :x | x ]) >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20 19))" "(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300)" "(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))" | passArray | passArray := aBlock numArgs <= 1. ^ (n to: self size by: n) collect: [ :index | | args | args := (self copyFrom: index - n + 1 to: index) asArray. passArray ifTrue: [ aBlock value: args ] ifFalse: [ aBlock valueWithArguments: args ] ]/({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)08fold: binaryBlock "Alias of Collection>>reduce" "Evaluate the block with the first two (or more) elements of the receiver, then with the result of the first evaluation and the next element, and so on. Answer the result of the final evaluation. If the receiver is empty, raise an error. If the receiver has a single element, answer that element." "( #('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b] ) >>> 'if it is to be it is up to me'" ^self reduce: binaryBlocktwoX(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')'12(#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0)'optimized version for single delimiters1factorial "Answer the factorial of the receiver." "The factorial on n is defined as: n * (n-1)*(n-2)*... while n>0. Factorial of 0 is 1. We also know Factorial of 1 and 2 are themselves. This implementation uses a 2-partition algorithm. For a recursive (but slower) implementation see 'slowFactorial' Without verbose detail: If'm an even number,some optimization can be applied: Instead of doing all multiplication we can halving the number of multiplication regrouping terms, so: n*(n-1)*(n-2)*....*3*2*1 can be rearranged as: (n*1)*((n-1)*2)*((n-2)*3)*... And the use the fact n is even to rewrite in a more efficient way. If I'm an odd number then compute for n-1 and multily by n. " "Example of usages:" "0 factorial >>> 1" "1 factorial >>> 1" "2 factorial >>> 2" "3 factorial >>> 6" "4 factorial >>> 24" "5 factorial >>> 120" "6 factorial >>> 720" | nex nexnext acc | "Guard for know cases (0,1,2,error)" self < 3 ifTrue: [ ^ self < 0 ifTrue: [ self error: 'Not valid for negative integers' ] ifFalse: [ self > 0 ifTrue: [ self ] ifFalse: [ 1 ] ] ]. acc := 2. nex := 2. nexnext := 10. self // 2 - 1 timesRepeat: [ nex := nex + nexnext. nexnext := nexnext + 8. acc := acc * nex ]. self odd ifTrue: [ acc := acc * self ]. ^ acce:11,Tests-osx-64-UndefinedClasses-Tests-Test.xmlx,Answer the current capacity of the receiver.#(10 20 30) anyOne >>> 10 hello: 2000011111122233221015102309222201 || a)Tests-osx-64-SortFunctions-Tests-Test.xml8reduce: aBlock "Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified." "( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)" "( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)" "Maybe look at the related method Collection>>inject:into:" ^self asOrderedCollection reduce: aBlock!((2@2) * (100@200)) >>> (200@400)Uintersection: aCollection "Answer the set theoretic intersection of two collections." "(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)" "(#(1 2 3 4) intersection: #()) >>> #()" "(#() intersection: #(1 2 3 4)) >>> #()" "('hello' intersection: 'world') >>> 'ol'" ^ self species withAll: (self asSet intersection: aCollection) asArrayCAnswer a number that is the maximum of the x and y of the receiver.101103is1 a {1 . 2 . 5 . 5} median >>> (7/2)test te string512#(1 -3 5 1) argmax >>> 31.1. 131290#(1 2 3 0) isSorted >>> false116$' isFinalQuote >>> false1 over index: 73.147950305-isClosePunctuation "Return whether the receiver is one of these characters: )]}" "$a isClosePunctuation >>> false" "$( isClosePunctuation >>> false" "$) isClosePunctuation >>> true" "$] isClosePunctuation >>> true" "$} isClosePunctuation >>> true" ^ self characterSet isClosePunctuation: selfAnswer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections.13RReturn all the elements in self that are not in aCollection. Alias of difference:range "returns the difference between the max and min element, their positions notwithstanding" "#( 1 51 10 ) range >>> 50" "{1@50. 10@ -10. 5@5} range >>> (9@60)" ^ self max - self min0vector0 n ssss;Xsss041510021(10 min: 20 max: 11) >>> 1130 :BBBBB | bbbbb s n 01(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2000001053333442266741Pay attention when you write an executable comment for keyword-based method: surround with parentheses your expression because, otherwise the executable comment won't work as the message is binary.+(#(a b c d e) indexOfAnyOf: #(x y z)) >>> 01201000000000000000005({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet4reduceRight: aBlock "Fold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments." "(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))" "(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> 2" "(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5))" "(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1" | arguments | self emptyCheck. arguments := Array new: aBlock argumentCount. (arguments size = 0 or: [ (self size + 1) \\ (arguments size - 1) > 0 ]) ifTrue: [ self error: 'Collection size and block argument count do not match.' ]. arguments at: arguments size put: self last. self size - arguments size + 1 to: 1 by: 1 - arguments size do: [ :index | arguments replaceFrom: 1 to: aBlock argumentCount - 1 with: self startingAt: index; at: arguments size put: (aBlock valueWithArguments: arguments) ]. ^ arguments last10-0.9//0.4 >>> -330rReturn the index of my last element for which aBlock evaluates as true. If no matching element is found, return 0n sss X?Create a color with the given hue, saturation, and brightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1) is pure red.12('Hello' detect: #isLowercase ifNone: [$X]) >>> $e2hellod01)(STON fromString: 'Point[1,2]') >>> (1@2)-421)([:x | x + 1] cull: 13 cull: 12) >>> 14 10f%[ "a""b""g" | x "c" "d" y "e" | "f" ]10ggggggg sssssss '''''''''''''23101101.21224ab cd ab ef abseconds "2 seconds printString >>> '0:00:00:02'" "(1 minute + 2 seconds) printString >>> '0:00:01:02'" ^ Duration seconds: self(#() sumNumbers: #abs) >>> 0isDigit "Return whether the receiver is a digit." "$1 isDigit >>> true" "$0 isDigit >>> true" ^ self characterSet isDigit: selfFFFFFF '' size >>> 0named: aString "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aStringKReturns the reciprocal of self. In case self is 0 the / signals ZeroDivide201[ :a | a := 10. a ]fromStream: readStream "Parse and materialize the STON representation in the character readStream" "(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)" "FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]" ^ (self reader on: readStream) next13;Convert to a ByteArray with the ascii values of the string.3Answer whether the receiver is a letter or a digit. X11abcd65536Treat myself as the coeficients of a polynomial in X. Evaluate it with thisX. First element is the constant and last is the coeficient for the highest power. #(1 2 3) polynomialEval: 2 is 3*X^2 + 2*X + 1 with X = 2T{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)2-Optimized version of Collection>>#thenReject:2XXXXXXXXXXXXXXXXXX1453pharo Xuuuuuu Xuu 2721 frd th bar=([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'ggggggggg sssssss '''''''''''''30#$) isConnectorPunctuation >>> false1(Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)546333877729111A0000BB('action' alike: 'name') >>> 0.30rremove: oldObject "Remove oldObject from the receiver's elements. Answer oldObject unless no element is equal to oldObject, in which case, raise an error. ArrayedCollections cannot respond to this message." "(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection" ^ self remove: oldObject ifAbsent: [self errorNotFound: oldObject]+('hello!' noneSatisfy: #isLetter) >>> false200001542 0 :B |X b X X#name asMutator >>> #name:5|Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found [ )([:x :y | x + y] cull: 3 cull: 2) >>> 5 2 #(1 2 3) negated >>> #(-1 -2 -3)withUnixLineEndings "Answer a new instance where all occurrences of CRLF and LF are substituted with LF." "(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lf" ^ self withLineEndings: String lf20 &(#(a b c d) at: 5 ifAbsent: #z) >>> #z1hello18"[ :thisContext | thisContext + 1 ]y'#foo:bar: keywords >>> #('foo:' 'bar:')(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)52.00777777DDD88EEE999999999FFFAAAGGGBBHHHCCCIII0 XXXXXXXXXXXXSearch for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the index as argument If no matching element is found, evaluate exceptionBlock, with the indexes of the 'bounding' elements as arguments. Warning: Might give invalid indexes, see examples below(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'0255Answer a new collection of the same species as the receiver with elements being collections (of the receiver species) containing those elements of the receiver for which the given block consecutively evaluates to the same object.5*11We6520V('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'fooReturn the receiver as a string with the adequate file size identified, e.g. '50 KB'. The difference with humanReadableByteSISizeString is that the current one counts by 1024 and not 1000.5100vector0104.00aeiou7( #() asSet intersection: #(1 2 3 4) asSet) >>> Set newThis statement is true!26helloassociationClass "Return the class of STON associations, Association, a system wide constant" "(STON fromString: '#foo : 100') class >>> STON associationClass" ^ Association [:a||||a] HELLOWORLD(2 raisedTo: 8) >>> 2567200311112004445484400B9999A1CasBit "Answer 1 since receiver is true." "true asBit >>> 1" ^ 1242X X ppp <<<<>> 1" "(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 3" lastIndex to: 1 by: -1 do: [:index | (self at: index) = anElement ifTrue: [^ index]]. ^ exceptionBlock valuef2000?Answer true if the receiver starts with the argument collection11:Helper to tranform any `do:`-like method into a generator. XXXXXXXXXXXXX20 00000000200000111Z(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'52abc-00200^ "pppp AAAAAAAAAAA ^ aaaaaaaaaaa s n515'('pharo' beginsWith: 'phuro') >>> false1Take the items in the receiver, kk at a time, and evaluate the block for each combination. Hand in an array of elements of self as the block argument. Each combination only occurs once, and order of the elements does not matter. There are (self size take: kk) combinations.21 1 sign; ; barG(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')-611/('pharo' beginsWith: 'pharo-project') >>> false0Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds.| | affoo: 1Example of usages:1 ( 1 and: 4)ZThe following example creates an association whose key is number 1 and value string 'one'.FEvaluating disjunction (OR) -- answer true since the receiver is true.sAnswer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substringO( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)20 000000020.001$(#(a b a d a) lastIndexOf: #a) >>> 5$Print the receiver showing precisely the given number of places desired. If placesDesired is positive, a decimal point and that many digits after the decimal point will always be shown. If placesDesired is zero, a whole number will be shown, without a decimal point. Here are some examples:0220010292018140330(1 hour + 1 minute) printString >>> '0:01:01:00'010 2018strings[1)2]0d"000111111111110004444444444433350010.12)Color black rgbTriplet >>> #(0.0 0.0 0.0)*0222FFF9999AAAAAAABBBBBBBBCCCCCCDAAAEA922010002002{} asSet = Set new >>> true8(1. 2)310-3abc6ppp ^ 0 | T | t n. 1 :B | b 1 ssssss nn s t 0 sssss*splitOn: splitter "Split a collection of objects based on a splitter. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(#(1 2 3 3 4 1 2 3 5 4 6) splitOn: 4) >>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection" "(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection" "(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollection" ^ splitter split: self12abc8('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 2[ 1,((1 to: 10) select: #isPrime) >>> #(2 3 5 7)5groupsOf: n atATimeDo: aBlock "Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:" "(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70)" | passArray | passArray := (aBlock numArgs = 1). n to: self size by: n do: [:index | | args | args := (self copyFrom: index - n + 1 to: index) asArray. passArray ifTrue: [ aBlock value: args ] ifFalse: [ aBlock valueWithArguments: args ]]41200"'foo10foo' endsWithDigit >>> falsescaleBy: factorPoint "Answer a Point scaled by factor (an instance of Point)." "(200@200 scaleBy: 2@3) >>> (400@600)" ^(factorPoint x * x) @ (factorPoint y * y)20 'def' <= 'abc' >>> false23070vector0934 28/9/20182asInteger "Return the integer present in the receiver, or nil. In case of float, returns the integer part." "'1' asInteger >>> 1" "'-1' asInteger >>> -1" "'10' asInteger >>> 10" "'a' asInteger >>> nil" "'1.234' asInteger >>> 1" ^self asSignedInteger34 1 foo: ; bar486aa1 decimalDigitLength >>> 1[ :super | super + 1 ]ppp < <<<<>>'Pharoiscool'cool!((2@2) + (100@200)) >>> (102@202)193132MasOrderedCollection "Answer an OrderedCollection whose elements are the elements of the receiver. The order in which elements are added depends on the order in which the receiver enumerates its elements. In the case of unordered collections, the ordering is not necessarily the same for multiple requests for the conversion." "(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollection" "'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true" "'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> false" ^ self as: OrderedCollection411||3.15-42false ==> [false] >>> true\\ aNumber "modulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber." "9 \\ 4 >>> 1" "-9 \\ 4 >>> 3" "9 \\ -4 >>> -3" ^self - (self // aNumber * aNumber)34love1'{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}2-8-010201[ :a | | a b ]3222214>(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'G(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)12e33(Evaluate the block with the first two (or more) elements of the receiver, then with the result of the first evaluation and the next element, and so on. Answer the result of the final evaluation. If the receiver is empty, raise an error. If the receiver has a single element, answer that element.7-3isFinalQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pf" "$' isFinalQuote >>> false" ^ self characterSet isFinalQuote: self20{1 . 2 . 4 . 5} median >>> 3EWriting '<' character: To write '<', prepend it with a percent sign.d2.2 hello world!v (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2#but use sum or inject:into: instead311112004444466676655B9999AThis destructively replaces elements from start to stop in the receiver. Answer the receiver itself. Use copyReplaceFrom:to:with: for insertion/deletion which may alter the size of the result.{} isEmpty >>> true0zAnswer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences).105(false ifTrue: [ 'This statement is true!' ]) >>> nil24i(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'1100:00:00:00.000000001)(1.2 arcTan: 1.5) >>> 0.6747409422235526108c30Convert me to a float point transforming both of my coordinates to floats using #asFloat. If x and y are already represented by floats return myself, otherwise create a new Point instance.,(#(1 2 3) noneSatisfy: [:x|x odd]) >>> falsehex "Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this." "Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true" "12 hex >>> '16rC'" "10 hex >>> '16rA'" "-10 hex >>> '-16rA'" ^ self storeStringBase: 16Ufoo ^ [ :a1 :a2 :a3 :a4 :a5 :a6 :a7 :a8 :a9 :a10 :a11 :a12 :a13 :a14 :a15 :a16 | a1 ]Pharo is really super cool0533023.45670123456789ABCDEFabcdefaEAnswer an instance of me containing the same elements as aCollection.9b2 slowFactorial >>> 2iList elements betwen () and separated by spaces. Is used by printOn: and other related printing methods.4330 {1 . 2 . 3 . 4 . 5} median >>> 3c28Morphic UI Process:40Nonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock.6$: tokenish >>> true102$Given Collections do not match. Got left := an IdentitySet(RBVariableNode(v1)). instead of right :=an IdentitySet(RBVariableNode(v1) RBVariableNode(v1)). Collection size does not match: left=1 vs. right=2 Got 1 additional element(s) in the right collection: an Array(RBVariableNode(v1)) ppp | TTT | ttt n . ^ ttt . 20:Tests-osx-64-System-BasicCommandLineHandler-Tests-Test.xml1(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> truedo #[ 1 a 2 ]Snick16111%Tests-osx-64-PharoDocComment-Test.xml(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) Zjoin: aCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "({Character space. Character space} join: #('Pharo' 'is' 'cool')) >>> {$P. $h. $a. $r. $o. Character space. Character space. $i. $s. Character space. Character space. $c. $o. $o. $l}" "NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection." ^ self class streamContents: [:stream | aCollection do: [:each | each joinTo: stream] separatedBy: [stream nextPutAll: self]] Answer a dictionary whose keys are the result of evaluating aBlock for all my elements, and the value for each key is the selection of my elements that evaluated to that key. Uses species.13-1!"a" [ "b" 1 "c" . "d" 2 "e" ] "f"Answer a ByteArray whose elements are the elements of the receiver. Implementation note: Cannot use ''ByteArray withAll: self'' as that only works for SequenceableCollections which support the replacement primitive.45L writes the N-th argument using #printString, but without trancating it.81101000u XXXXX1-5%(3.1479 truncateTo: 0.005) >>> 3.145###'X u206244 ; ; 13e 3 #( #'^' 1 )11$1\(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)1532 pppp Xppp ytwoabc36_Return true if both of my x and y coordinates are represented by float values, otherwise false0Tests-osx-64-Collections-Abstract-Tests-Test.xml1403sort "Sort this collection into ascending order using the '<=' operator." "{8. 5. 3. 9} sort >>> #(3 5 8 9)" "{#a. #b. #z. #d} sort >>> #(a b d z)" self sort: [:a :b | a <= b]30.00000011103344445555555555544466666666644442209previous: dayName "Answer the previous date whose weekday name is dayName." "((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'" | days | days := 7 + self weekdayIndex - (self class dayOfWeek: dayName) \\ 7. days = 0 ifTrue: [ days := 7 ]. ^ self subtractDays: days;(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false>{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)uu2withIndexCollect: elementAndIndexBlock "Just like with:collect: except that the iteration index supplies the second argument to the block." "(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)" | result | result := self species new: self size. 1 to: self size do: [:index | result at: index put: (elementAndIndexBlock value: (self at: index) value: index)]. ^ result! foo: arg bar: arr ^ arg + arr . love50Tests-osx-64-DrTests-TestCoverage-Tests-Test.xmlal a := 10. ^ a322211'2342(true xor: [false]) >>> true3111120044444666666A888894('abcdefgh' includesSubstring: 'de' at: 1) >>> false12({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3)1 max: 2065536 bytesCount >>> 31xzu(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection*#('a' 'b' 'c') asCommaString >>> 'a, b, c'xcUnexpected negative weight30pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set30000000'Now is the time for all good people to come to the aid of the cause of world peace. It is just fine, even desirable, to love your country, if that means wanting it to play a beneficial role in the course of world events and be the best possible example of a good society. But if it means wanting dominion over the rest of the world, it is not love but defensiveness or self-glorification, and will lead only to oblivion.' piecesCutWhere: [:a :b| a = $. and: [b isSeparator]]27That is false!eyAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.1-1 - 1abs-1 - 1max:-1 zipped "Return a ByteArray containing a GZIP compressed version of the receiver" "#[ 1 2 3 ] zipped >>> #[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0]" ^ ByteArray streamContents: [ :out | (GZipWriteStream on: out) nextPutAll: self; close ]10101b3f('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string'*2222111111111335563311111111117799A7700BBC,""" n """ ssss """ n """ s """ n """ sss """ foo*baz*zort$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZh22103-234.56781.0Number('aa' compare: 'aa') >>> 2ATry to match aColorHex with known named colors, case insensitive.(false xor: [false]) >>> false1000000000000000cmake(Color red asColorref) >>> 255f({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'302(42 decimalDigitAt: 2) >>> 41726006$Here123should%Be6TheName6OfTheMethod4100101/#( aa:bb:cc #'aa:bb:cc' #cc #'==' #'==' #= #= )Edetect: aBlock ifFound: foundBlock "Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock. If no element matches the criteria then do nothing. Always returns self to avoid misuse and a potential isNil check on the sender." "|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 20" "|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nil" self detect: aBlock ifFound: foundBlock ifNone: [ "Do nothing on purpose" ]/Tests-osx-64-EnlumineurFormatter-Tests-Test.xml 'def' >= 'def' >>> true11. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: hscaleTo: anExtent "Return a Point scalefactor for shrinking a thumbnail of the receiver's extent to fit within anExtent. self and anExtent are expected to have positive nonZero x and y." "(200@200 scaleTo: 400@400) >>> (2.0@2.0)" "(40@40 scaleTo: 400@400) >>> (10.0@10.0)" | factor sX sY | factor := 3.0 reciprocal. "EccentricityThreshhold reciprical" sX := anExtent x / self x asFloat. sY := anExtent y / self y asFloat. sX = sY ifTrue: [ ^ sX @ sY ]. "Same aspect ratio" ^ sX < sY ifTrue: [ sX @ (sX max: sY * factor) ] ifFalse: [ (sY max: sX * factor ) @ sY ]208Answer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring. ifTokens (valid for Strings only) specifies that the characters surrounding the replacement must not be alphanumeric (space). When ifTokens is set, it means that the replacement will not occur inside word.reciprocal "Return the reciever full of reciprocated elements" "#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}" "{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}" ^ self collect: [ :a | a reciprocal ]3<(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'noneSatisfy: aBlock "Evaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return false" "(#(2 4 6) noneSatisfy: [:x|x odd]) >>> true" "(#(1 2 3) noneSatisfy: [:x|x odd]) >>> false" "('hello!' noneSatisfy: #isUppercase) >>> true" "('hello!' noneSatisfy: #isLetter) >>> false" "(#() noneSatisfy: ['oops']) >>> true" self do: [:item | (aBlock value: item) ifTrue: [^ false]]. ^ true%('pharo' endsWith: 'phuro') >>> falsemax: aPoint "Answer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint." "((100@200) max: (330@400)) >>> (330@400)" "((100@200) max: (30@400)) >>> (100@400)" ^ (x max: aPoint x) @ (y max: aPoint y)0vector0de13#(^1)30510'Tests-osx-64-Roassal-UML-Tests-Test.xml% pppp AAA ^ aaa ssss aaa s n ; sss . 1112uonNextMonth "(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'" ^ self addMonths: 1`ifNotNil: ifNotNilBlock ifNil: nilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42" "(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6" ^ ifNotNilBlock cull: selfyThis is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. aBlock is expected to return a number for every element in the collection. Different from the sum: implementation, the default value is zero. While sum: is more general, sumNumbers: is meant to support the most often encountered use case of dealing with numbers.1'((100@200) max: (30@400)) >>> (100@400). pppp AAA ^ 0 1 2 3 aaa 3 2 s 2 3 n 3 2 1 0 . 41393a}Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection.3B([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'eighth "Answer the eighth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) eighth >>> #h" ^ self at: 842it101-4100@|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 44(#() ifEmpty: [0]) >>> 00.5004887585532747foo10C#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new31651005('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()b3r12345310oops0y31(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1)5219111(1923 roundDownTo: 10) >>> 19203@ foo: 51030zwithSeparatorsCompacted "Returns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space character" "' test ' withSeparatorsCompacted >>> ' test '" "' test test' withSeparatorsCompacted >>> ' test test'" "'test test ' withSeparatorsCompacted >>> 'test test '" self isEmpty ifTrue: [ ^ self ]. ^ self species new: self size streamContents: [:stream | | lastBlank | lastBlank := false. self do: [ :eachChar | lastBlank ifTrue: [ (lastBlank := eachChar isSeparator) ifFalse: [ stream nextPut: eachChar ] ] ifFalse: [ (lastBlank := eachChar isSeparator) ifTrue: [ stream nextPut: $ ] ifFalse: [ stream nextPut: eachChar ] ] ] ]abcword before index1atRandom: aRandom weighting: aBlock "Retrieve an element with a probability related to the weighting block. The block takes an element as argument and provides a positive number as result (the retative weight). An implicit normalization is performed on all weights. Multiple occurences of equal elements multiply the probability to be choosen. Warning: empty collections and negative weights will signal errors." "({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4'" "({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'" | sum | self emptyCheck. sum := self sum: aBlock. sum := sum * aRandom next. self do: [ :each | | weight | weight := aBlock value: each. weight < 0 ifTrue: [ self error: 'Unexpected negative weight' ]. sum := sum - weight. sum <= 0 ifTrue: [ ^ each ] ]. self error: 'This should not happen'/Tests-osx-64-HeuristicCompletion-Tests-Test.xmlAnswer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0.194I(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 2&(#() intersection: #(1 2 3 4)) >>> #()10 storeStringHex >>> '16rA'231255Append the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument.21001230-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6 book-result% aNumber "modulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber." "9 % 4 >>> 1" "-9 % 4 >>> 3" "9 % -4 >>> -3" ^ self \\ aNumber20fooxyn. ######X#####111 foo 2abc.(#(40 41 42) asOrderedCollection at: 2) >>> 411nXsss | T | X t96epppp X 400123450b1.05946309435929531(1 hour + 2 minutes) printString >>> '0:01:02:00'Answer whether the receiver contains any elements, or is nil. Useful in numerous situations where one wishes the same reaction to an empty collection or to nilsum "This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects." "#(1 2 4) sum >>> 7" "([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'" "sum works with objects that understands + and - messages, like Points" "{1@5. 2@3. 4@7} sum >>> (7@15)" "or even Collections" "#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6)" | sum sample | self emptyCheck. sample := self anyOne. sum := self inject: sample into: [ :accum :each | accum + each ]. ^ sum - sampleDE1Durstenfeld's version of the Fisher-Yates shufflea503Tests-osx-64-Tool-DependencyAnalyser-Tests-Test.xml2251b42#( 1 #']' 2 #'}' 3 )cool130.04((#(x y z) atLast: 4 ifAbsent: #a) >>> #a01Alias of Collection>>reducep(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30)0000000230220yactions <= aString "Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences)." " 'abc' <= 'def' >>> true" " 'abc' <= 'abc' >>> true" " 'def' <= 'abc' >>> false" ^ (self compare: self with: aString) <= 0 one:1;two:2;23foo: a x: a y: b [ :a :a :b | | a a b | a + a + b ]69BBB888877777777666666555555544444444DDD00000000000EEEep(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert0.0toLowercase: aCharacter "(AsciiCharset toLowercase: $A) >>> $a." "(AsciiCharset toLowercase: $a) >>> $a." "(AsciiCharset toLowercase: $!) >>> $!" (aCharacter between: $A and: $Z) ifFalse: [ ^ aCharacter ]. ^ Character value: aCharacter asciiValue + $a asInteger - $A asInteger132a-2aAnswer whether the receiver ends with the given prefix string. The comparison is case-sensitive.42foo*baz10Answer the index of the receiver's first element, such that that element equals the first element of aSubCollection, and the next elements equal the rest of the elements of aSubCollection. Begin the search at element anIndex of the receiver. If no such match is found, answer 0.-81a7n ssss n;atPin: index "Return the index'th element of me if possible. Return the first or last element if index is out of bounds." "(#(w x y z) atPin: 2) >>> #x" "(#(w x y z) atPin: 4) >>> #z" "(#(w x y z) atPin: 8) >>> #z" index < 1 ifTrue: [^ self first]. index > self size ifTrue: [^ self last]. ^ self at: index2001,(#(11 22 33) before: 44 ifAbsent: 55) >>> 551997111*-1 + 1--1 + 1- -1101green "Return the green component of this color, a float in the range [0.0..1.0]." "Color red green >>> 0.0" "(Color r: 0.5 g: 0.5 b: 1) green >>> 0.5004887585532747" ^ self privateGreen asFloat / ComponentMax312311017rcull: firstArg cull: secondArg "Execute the receiver with one or two arguments depending on the receiver" "([:x | x + 1] cull: 13 cull: 12) >>> 14 " "([:x :y | x + y] cull: 3 cull: 2) >>> 5 " ^numArgs < 2 ifTrue: [self cull: firstArg] ifFalse: [self value: firstArg value: secondArg]1false. := false:a foo1241e1 e1<(RPackage named: 'MockPackage-tests') isTestPackage >>> true22pppp AAAAAA ^ aaaaaa s nStore value into the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds. Answer value.3Answer an OrderedCollection whose elements are the elements of the receiver. The order in which elements are added depends on the order in which the receiver enumerates its elements. In the case of unordered collections, the ordering is not necessarily the same for multiple requests for the conversion.11546888333A9992BDDD111E0000FFHHHfred1#h: hue s: saturation v: brightness alpha: alpha "Create a color with the given hue, saturation, brightness, and alpha. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1 alpha: 1) is pure red." "(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red " ^ self basicNew initializeHue: hue saturation: saturation brightness: brightness alpha: alpha ; yourselfSpecial case for fraction powerXX XX n XXXX n X X(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(0 1)'Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock and answer the result of this evaluation. If none evaluate to true, then evaluate exceptionBlock.16second "Answer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed." "(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 12" ^ self localSeconds \\ 60040NReturn the class of the couple class/metaclass. Useful to avoid explicit test.(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73) 12r89abcd1 writes the N-th argument, which should be a String, or a collection of printable objects. Note also important distinction for single-quotes inside the argument; with

they will be doubled. '}' expectedmobazo110106#( #( 0 1 r2 3 )13{1@5. 2@3. 4@7} sum >>> (7@15)+ arg "Pairwise sum of two sequenceable collections of the same length." "#(0 1 2) + #(10 20 30) >>> #(10 21 32)" "{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)}" ^ arg adaptToCollection: self andSend: #+171pharoSplit a collection of objects based on a splitter. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.<(RPackage named: 'MockPackage-Tests') isTestPackage >>> true&#(10 20 30) - #(0 1 2) >>> #(10 19 28)/ppp """ < """ <<<< """ n """ << """ n """ < """2abc](Color colorFrom: #(blue darker)) >>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) last: n "Answer the last n elements of the receiver. Raise an error if there are not enough elements." "(#(a b c d e) last: 2) >>> #(d e)" "(#(a b c d e) last: 3) >>> #(c d e)" | size | size := self size. ^ self copyFrom: size - n + 1 to: size and 1225Return the middle element, or as close as we can get.10.5d%({1@ -4. -10@1} sum: #abs) >>> (11@5)225BAD boy!|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11)33 hello: 2foo: 62at: index incrementBy: value "({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 5" "({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 4" ^self at: index put: (self at: index) + value*baz*1 0:00:00:02$('pharo' beginsWith: 'pha') >>> true#(1 5 10 -4) max >>> 10130 | | . :. :afoo*1000000000000020(((100@201) closeTo: (100@200)) >>> false3.0tox$({} averageIfEmpty: [0@0]) >>> (0@0)0vector0111 'ziggie' lastSpacePosition >>> 0"(#(1 -2 4) sumNumbers: #abs) >>> 7*Tests-osx-64-Refactoring-UI-Tests-Test.xml!(10 printStringBase: 10) >>> '10'255317mozo2310* 00000111000222000334443555333666330000 11111110000000002222222222222XXaXbXXcXXXdXX 0findBinaryIndex: aBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments." "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' " "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' " ^ self findBinaryIndex: aBlock do: [ :found | found ] ifNone: exceptionBlock[Print the receiver's path on aStream (without 'Path' prepended) using the default delimiter7.50Since the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line.162aMReturn whether the receiver is https://www.compart.com/en/unicode/category/PiPharo1foo < bar: { 1 } > n u n:(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 3Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.23Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true.'2' initialIntegerOrNil >>> 2 goodby: my: 3IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct 10000000000zort11 (#(1 -4 -10 1) sum: #abs) >>> 163013xzhello324_(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollectionSpecial case of exponent=010Evaluate aBlock with each of the receiver's elements as the argument. This is the general foreach method, but for most standard needs there is often a more specific and simpler method.15#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)21621004421foo202Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.21"('abcd' contractTo: 10) >>> 'abcd'5(false ifTrue: [ 'This statement is true!' ]) >>> nil3 [ :a :b | Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock. If no element matches the criteria then do nothing. Always returns self to avoid misuse and a potential isNil check on the sender.First N/2 ... last N/220(0@5) guarded >>> (1@5)(true xor: [true]) >>> falsejasStringOn: aStream delimiter: delimString "Print elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:." "(String streamContents: [:s| 'abcd' asStringOn: s delimiter: '->']) >>> 'a->b->c->d'" self do: [ :elem | aStream nextPutAll: elem asString ] separatedBy: [ aStream nextPutAll: delimString ]c100000000000000201'(#(1 2 3 4 5) select: #even) >>> #(2 4)114128EidentityIncludes: anObject "Answer whether anObject is one of the receiver's elements." "({#hello. #world} identityIncludes: #hello) >>> true" "({'hel','lo'. 'world'} identityIncludes: 'hello') >>> false" "({'hel','lo'. 'world'} includes: 'hello') >>> true" self do: [:each | anObject == each ifTrue: [^true]]. ^falsetrue not >>> false2-3.142120"(#() allSatisfy: [false]) >>> true017 That is true!6 2018-09-27*true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]. ^ 311(24 min: 20 max: 5) >>> 201XXXXXXXXXXXXXXfindString: substring "Answer the index of the first substring within the receiver. If the receiver does not contain substring, answer 0." "('salkjsdlkgfee' findString: 'al') >>> 2" "('salkjsdlkgfeesd' findString: 'sd') >>> 6" ^self findString: substring startingAt: 1400b>[ #( #( #( #[ ] #[ ] #'[' #']' ) ) ) "a" "b" "c" "d" "e" "f" ]allButLast: n "Answer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements." "(#(a b c d) allButLast: 2) >>> #(a b)" "(#(a b c d) allButLast: 3) >>> #(a)" ^ self copyFrom: 1 to: self size - ny72{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}1005inject: thisValue into: binaryBlock "Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments." "Look at Collection>>reduce: for a related method." "(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r1110" "(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 60" "But use sum or sum: instead!" "#(10 20 30) sum >>> 60" "(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection" "But use collect: or collect:as: instead!" "(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31)" | nextValue | nextValue := thisValue. self do: [:each | nextValue := binaryBlock value: nextValue value: each]. ^nextValue41isNotEmpty "Answer whether the receiver contains any elements." "#() isNotEmpty >>> false" "#(()) isNotEmpty >>> true" "'' isNotEmpty >>> false" "' ' isNotEmpty >>> true" ^ self isEmpty not1415$A isAlphaNumeric >>> true3,foo | a | a := 1. ^ [ :a | a ] value: 10 + a2133333320f|Retrieve an element with a probability related to the weighting block. The block takes an element as argument and provides a positive number as result (the retative weight). An implicit normalization is performed on all weights. Multiple occurences of equal elements multiply the probability to be choosen. Warning: empty collections and negative weights will signal errors. . :00002222222667665555bezRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal194a[ ^ 1 ]. 2. ^ 329(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 31 Point[1,2]"(true or: [Error signal]) >>> true3pha5 | TTTTTT | tttttt n. ^ ttttttAnswer the x coordinate.(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' c111dA(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si)super := super3420141(KeyboardKey fromCharacter: $a) >>> KeyboardKey A0.5@foo:*(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 6(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'a1: a1 a2: a2 a3: a3 a4: a4 a5: a5 a6: a6 a7: a7 a8: a8 a9: a9 a10: a10 a11: a11 a12: a12 a13: a13 a14: a14 a15: a15 a16: a16 ^ a1100$sideOf: otherPoint "Returns #left, #right or #center if the otherPoint lies to the left, right or on the line given by the vector from 0@0 to self" "((0@0) sideOf: (100@100)) >>> #center" | side | side := (self crossProduct: otherPoint) sign. ^ { #right . #center . #left } at: side + 2foo2bOCreate a color with the given hue, saturation, brightness, and alpha. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1 alpha: 1) is pure red.7raisedTo: aNumber "Answer the receiver raised to aNumber." "(2 raisedTo: 8) >>> 256" "(8 raisedTo: 2) >>> 64" "(2 raisedTo: (1/12)) >>> 1.0594630943592953" "(2 raisedTo: -1) >>> (1/2)" aNumber isInteger ifTrue: [ "Do the special case of integer power" ^ self raisedToInteger: aNumber]. aNumber isFraction ifTrue: [ "Special case for fraction power" ^ self raisedToFraction: aNumber]. self < 0 ifTrue: [ ^ ArithmeticError signal: 'Negative numbers can''t be raised to float powers.' ]. 0 = aNumber ifTrue: [^ self class one]. "Special case of exponent=0" 1 = aNumber ifTrue: [^ self]. "Special case of exponent=1" 0 = self ifTrue: [ "Special case of self = 0" ^ aNumber < 0 ifTrue: [ (ZeroDivide dividend: 1) signal] ifFalse: [ self]]. ^ (aNumber * self ln) exp "Otherwise use logarithms"2;([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 12 ** -1 >>> (1/2):({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)20K(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')1Tests-osx-64-System-Identification-Tests-Test.xml210@. 5172215022nprintPathOn: aStream "Print the receiver's path on aStream (without 'Path' prepended) using the default delimiter" "(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'" self printPathOn: aStream delimiter: self delimiter510 00102235026c3O(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)1.231001082018 [ 1 ). 2 ])(1.2 arcTan: -1.5) >>> 2.4668517113662407:::a3howManyMatch: string "Count the number of characters in a substring that matches up in self and aString." "('ab ab ac de' howManyMatch: 'ab') >>> 2" "('abab ac de' howManyMatch: 'abab') >>> 4" "('ab ab ac de' howManyMatch: 'a') >>> 1" "('ab ab ac de' howManyMatch: 'z') >>> 0" | count shorterLength | count := 0. shorterLength := self size min: string size. 1 to: shorterLength do: [:index | (self at: index) = (string at: index ) ifTrue: [ count := count + 1 ]]. ^ countabcdefghb1a#( )Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements.second23 September 2018abc project-pharo342.0 000000002000003printShowingDecimalPlaces: placesDesired "Print the receiver showing precisely the given number of places desired. If placesDesired is positive, a decimal point and that many digits after the decimal point will always be shown. If placesDesired is zero, a whole number will be shown, without a decimal point. Here are some examples:" "(23 printShowingDecimalPlaces: 2) >>> '23.00'" "(23.5698 printShowingDecimalPlaces: 2) >>> '23.57'" "(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700'" "(23.4567 printShowingDecimalPlaces: 0) >>> '23'" "(-23.4567 printShowingDecimalPlaces: 0) >>> '-23'" "(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0'" "(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'" "(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'" "(2.567 printShowingDecimalPlaces: 2) >>> '2.57'" "(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'" "(0 printShowingDecimalPlaces: 2) >>> '0.00'" ^String new: placesDesired + 10 streamContents: [:aStream | self printOn: aStream showingDecimalPlaces: placesDesired]34012#(1 2 3 4) combinations >>> #(#(1) #(2) #(3) #(4) #(1 2) #(1 3) #(1 4) #(2 3) #(2 4) #(3 4) #(1 2 3) #(1 2 4) #(1 3 4) #(2 3 4) #(1 2 3 4))c&(AsciiCharset toUppercase: $A) >>> $A.withIndexDo: elementAndIndexBlock "Just like do: except that the iteration index supplies the second argument to the block" "Support collection enumeration with a counter, even though not ordered" "|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 124" "|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)" | index | index := 0. self do: [:item | elementAndIndexBlock value: item value: (index := index+1)]2b6000022444544499AABAAAECCCCDDAAF99888888777G4433333333H1z-9112031mcloseTo: aSequenceableCollection precision: aPrecision "Return true if all my elements are close to the elements of same index of the parameter with a certain precision" "(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true" self with: aSequenceableCollection do: [ :a :b | (a closeTo: b precision: aPrecision) ifFalse: [ ^ false ] ]. ^ true40.01Answer a SortedCollection whose elements are the elements of the receiver. The sort order is the default less than or equal. Note that you should use #sorted if you don't really need a SortedCollection, but a sorted collection.789[ [ 02printElementsOn: aStream "List elements betwen () and separated by spaces. Is used by printOn: and other related printing methods." "(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')'" "(String streamContents: [:s| #() printElementsOn: s]) >>> '()'" "Note: The original code used #skip:, but some streams do not support that, and we don't really need it." aStream nextPut: $(. self do: [:element | aStream print: element] separatedBy: [aStream space]. aStream nextPut: $)9Tests-osx-64-SystemCommands-MethodCommands-Tests-Test.xml200282pharo52091true & false >>> falseUser10 W01-WelcomeWJust like do: except that the iteration index supplies the second argument to the block4124zk(Array streamContents: [:stream | (1 to: 3) permutationsDo: [:each | stream nextPut: each copy]]) >>> #(#(1 2 3) #(1 3 2) #(2 1 3) #(2 3 1) #(3 2 1) #(3 1 2))11 "com"1"ment"2foo | tmp | tmp := 1. ^ tmp5&(AsciiCharset toLowercase: $A) >>> $a.Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection.b2410120^({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)0pharo1f2ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA ^ aa#(5 -3.7 0) sign >>> #(1 -1 0)>({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3)=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)$h$wc22e15-1asFourCode "'abcd' asFourCode >>> -513645724" "'1111' asFourCode >>> 825307441" "'1234' asFourCode >>> 825373492" | result | self size = 4 ifFalse: [^self error: 'must be exactly four characters']. result := self inject: 0 into: [:val :each | 256 * val + each asciiValue ]. (result bitAnd: 16r80000000) = 0 ifFalse: [ Error signal: 'cannot resolve fourcode' ]. (result bitAnd: 16r40000000) = 0 ifFalse: [ ^ result - 16r80000000 ]. ^ result0DDD 000EEE090FFF0AAA0GGG0BBBBBBCBBBBBB0JJJ00 KKK197asByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" | b | b := ByteArray new: self byteSize. 1 to: self size * 4 do: [:i | b at: i put: (self byteAt: i)]. ^ b4'' expandMacros >>> OSPlatform current lineEnding32100('foo' match: 'Foo') >>> true88}Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments.22lo3342 . #hello 2110033$a isClosePunctuation >>> false(Tests-osx-64-Network-Mail-Tests-Test.xmldo: aBlock without: anItem "Enumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item" "Refer to the comment in Collection|do:." "(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)" 1 to: self size do: [:index | anItem = (self at: index) ifFalse:[aBlock value: (self at: index)]]#(# ## #ab #10 #. 10)0000222222888884AA00055CCC6667DDD889EEEAAABBFFF0e(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')0:Xsu0413%#(10 20 30) \ (0 to: 15) >>> #(20 30)123bi(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollectionb000rxifTrue: alternativeBlock "Since the condition is false, answer the value of the false alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." "(false ifTrue: [ 'This statement is true!' ]) >>> nil" ^nil1125cuNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.10100fourth "Answer the fourth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) fourth >>> #d" ^ self at: 41an integer greater than 1 as valid radix expected%1 minute printString >>> '0:00:01:00'1164[ 1allButFirst "Answer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements." "#(a b c) allButFirst >>> #(b c)" ^ self allButFirst: 111#(().:;[]{}^#a)-(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> false . 'hello'b A-('hello!' noneSatisfy: #isUppercase) >>> true1 000000000000098abc114414034#[ -10110Return whether the receiver is close to the argument aPoint. The precision for point holding floats is defined by Float >> #closeTo:precision:. For points holding integer, closeTo: corresponds to equalsTo:16rA0vector261-Tests-251001024h20$Tests-osx-64-Graphics-Tests-Test.xmld63Class structural inspection - Class/Metaclass shift$#( #':=' aa: #= #':=' #= cc: #'==' )2001120030044500ahWe are sorry but this method is unclear and will probably be removed. This method only returning false. fromString: aString "Return a color for HTML color spec: #FFCCAA or white/black passed as string." "(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) " "(Color fromString: 'orange') >>> Color orange" | aColorHex | aString isEmptyOrNil ifTrue: [ ^ self white ]. aColorHex := aString first = $# ifTrue: [ aString allButFirst ] ifFalse: [ aString ]. "Try to match aColorHex with known named colors, case insensitive." ^ self registeredColorNames detect: [ :each | each sameAs: aColorHex ] ifFound: [ :namedColor | self named: namedColor ] ifNone: [ (aColorHex size = 6 and: [ aColorHex allSatisfy: [ :character | '0123456789ABCDEFabcdef' includes: character ] ]) ifTrue: [ self fromHexString: aColorHex ] ifFalse: [ self white ] ]42a := a. [ :a | a ]. a := a10001111100044444333500({1. 2} asBag = {1. 2. 3} asBag >>> false42']) >>> 'a->b->c->d'bhellodfirst "Answer the first element of the receiver" "#(a b c d e f g h ) first >>> #a" ^ self at: 1fghi Xuuuuu 1e[:a b]#( 1 + 26(printOn: aStream base: base length: minimum padded: zeroFlag "Return a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set" "(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'" "(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'" | prefix | prefix := self negative ifTrue: ['-'] ifFalse: [ '' ]. self print: (self abs printStringBase: base) on: aStream prefix: prefix length: minimum padded: zeroFlaga. :foo12last "Answer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below." "(1 to: 10 by: 2) last >>> 9" "(0 to: 10 by: 2) last >>> 10" ^stop - (stop - start \\ step)abs "Answer a Point whose x and y are the absolute values of the receiver's x and y." "(100 @ -200) abs >>> (100@200)" ^ x abs @ y abs|piecesCutWhere: binaryBlock "Answer substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements." "( #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]]) asArray >>> #(#(1) #(2 3 1 6 1) #(2 3 4))" | pieces | pieces := OrderedCollection new. self piecesCutWhere: binaryBlock do: [ :piece | pieces add: piece ]. ^pieces "'Now is the time for all good people to come to the aid of the cause of world peace. It is just fine, even desirable, to love your country, if that means wanting it to play a beneficial role in the course of world events and be the best possible example of a good society. But if it means wanting dominion over the rest of the world, it is not love but defensiveness or self-glorification, and will lead only to oblivion.' piecesCutWhere: [:a :b| a = $. and: [b isSeparator]]"5010 {8. 5. 3. 9} sort >>> #(3 5 8 9)2yAnswer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits.isDecimalDigit "Return whether the receiver is a digit." "$1 isDecimalDigit >>> true" "$0 isDecimalDigit >>> true" ^ self characterSet isDecimalDigit: selfXXaXX3020bc,Tests-osx-64-System-Benchmark-Tests-Test.xml1000000reverseWithIndexDo: elementAndIndexBlock "Just like reverseWith:do: except that the iteration index supplies the second argument to the block." "(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)" self size to: 1 by: -1 do: [:index | elementAndIndexBlock value: (self at: index) value: index]0GPairwise difference of two sequenceable collections of the same length.6"0 :B :B :B | | T t T | t s t s t 0h/(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 421-2a(1 to: 10) isEmpty >>> false>Returns an array composed of the three color float components.559100.1 'abc' = 'abc' >>> true(#(x y z) atLast: 1) >>> #z39Maybe look at the related method Collection>>inject:into:0MPairwise integer quotient of two sequenceable collections of the same length.1 max: 2; "e"min: 3220012 hex >>> '16rC' nil. := nil00100022445220086666770.01p(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollection1nEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self.Character expectedThis statement is true!1flatCollect: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)" "( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)" ^ self flatCollect: aBlock as: self species{ 1 + 2901(Color fromHexString: 'FFFFFF')>>> (Color white) 2-({10. 20} asOrderedCollection add: 30) >>> 30b1c'indexOf: aCharacter "Return the index starting at 1 of the argument in the receiver, zero if not present." "('abcdf' indexOf: $a) >>> 1" "('abddf' indexOf: $k) >>> 0" aCharacter isCharacter ifFalse: [^ 0]. ^ self class indexOfAscii: aCharacter asciiValue inString: self startingAt: 13.123((#(a b c d e) identityIndexOf: #c) >>> 3(#(w x y z) atPin: 2) >>> #x8XXXu,(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 7elmer'foo1' endsWithDigit >>> true3637EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil3131s:1 e:3 s:6 e:8 s:11 e:11 19| T | 0 ^ t 0. t nn31([:x | x + 12] cull: 3)>>> 1510008charliel(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'21100201!sumNumbers: aBlock "This is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. aBlock is expected to return a number for every element in the collection. Different from the sum: implementation, the default value is zero. While sum: is more general, sumNumbers: is meant to support the most often encountered use case of dealing with numbers." "(#(1 -2 4) sumNumbers: #abs) >>> 7" "(#() sumNumbers: #abs) >>> 0" ^ self inject: 0 into: [ :sum :each | sum + (aBlock value: each) ]4922 'h' XXXXXXXXX-231oneL(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollection,ppp | T | t n. ^ 0 :B | b 0 ssssss nn s t30.3333s41middle "Answer the middle element of the receiver." "#(a b c d e) middle >>> #c" "#(a b c d) middle >>> #c" ^ self at: self size // 2 + 1~normalizeCamelCase " 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones' " ^ self class streamContents: [ : stream | self do: [ : char | (char isUppercase and: [ (stream position > 0 and: [ stream peekLast isUppercase not ]) and: [ stream peekLast isSpaceSeparator not ] ]) ifTrue: [ stream nextPut: Character space ]. stream nextPut: char ] ]22('fred the bear' copyWithout: $e) >>> 'frd th bar'This statement is false!10120725a3false not >>> true!#(a b c d e f g h i) ninth >>> #i000r1xb66100'1' asInteger >>> 16size "Answer how many elements the receiver contains." "#(10 20) size >>> 2" "#() size >>> 0" "#((())) size >>> 1" "'' size >>> 0" "' ' size >>> 2" "(1 to:10) size >>> 10 " "(1 to:10 by:2) size >>> 5" "(10 to:1) size >>> 0" | tally | tally := 0. self do: [:each | tally := tally + 1]. ^ tally28detectIndex: aBlock "Return index of first element that satisfies aBlock. If no matching element is found, raise an error." "(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2" ^ self detectIndex: aBlock ifNone: [ self errorNotFound: aBlock ]41424sorted: aSortBlockOrNil "Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison." "(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)" "('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'" "((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)" ^self asArray sort: aSortBlockOrNil13320187n sss1JisConnectorPunctuation "Return whether the receiver is one of these characters: _" "$_ isConnectorPunctuation >>> true" "$( isConnectorPunctuation >>> false" "$) isConnectorPunctuation >>> false" "$> isConnectorPunctuation >>> false" "$} isConnectorPunctuation >>> false" ^ self characterSet isConnectorPunctuation: selfAnswer substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements.13+(#(a b c d e f g h ) first: 3) >>> #(a b c) (10.156s round: 2) >>> 10.160s3 22Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection.n X?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 02210.12345 test test 1((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12:(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25'13*ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Same as ifTrue:ifFalse:." "(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'" "(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'" self subclassResponsibility213b220202XXXXaXXbXXXXcXXXXXXdXXXX11122y$0 isDecimalDigit >>> true230(42 digitAt: 1 base: 10) >>> 2:(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 0foo < 320(#() sum: #abs) >>> 0sum "Return the sum (+) of the elements held in the receiver." "Faster than the superclass implementation when you hold many instances of the same value (which you probably do, otherwise you wouldn't be using a Bag)." "#(1 2 2 3 1 1 1) asBag sum >>> 11" | sum first | first := true. contents keysAndValuesDo: [ :value :count | first ifTrue: [ sum := value * count. first := false ] ifFalse: [ sum := sum + (value * count) ] ]. first ifTrue: [ self errorEmptyCollection ]. ^ sum20180foo "a" < "b" bar "c" > "d" < "e" baz "f" > "g" 04$('hello' includesAll: 'ho') >>> trueS(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)Return a Point scalefactor for shrinking a thumbnail of the receiver's extent to fit within anExtent. self and anExtent are expected to have positive nonZero x and y.45OReturn all the elements that appear in self or in aCollection. Alias of union: 001111111122222222233344555067700310 #( #( 0 1 2 )||TAdd new empty slots to the end of array, while keeping the empty slots at the front.xb boy!21"(1 to: 5 by: 3) asArray >>> {1. 4}0('abcdf abcedf' indexOf: $a startingAt: 4) >>> 7book-result|W01-Welcome7{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}22222133344444findString: substring startingAt: start "Answer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0." "('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 12" "('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 0" "('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 2" ^self findString: substring startingAt: start caseSensitive: true9E(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'22-40.0[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'/newFrom: aCollection "Answer an instance of me containing the same elements as aCollection." "(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet" "({1. 2. 3} as: Set) >>> #( 1 2 3) asSet" | newCollection | newCollection := self new: aCollection size. newCollection addAll: aCollection. ^ newCollection20-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 634010MCreates an array with anObject followed by elements contained in aCollection.nil isEmptyOrNil >>> trueG({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)xy6H(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1101s1s12h03(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2[:a|||a]33_(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollection12,"a" 1 "b" max: "c" 2 "d" + "e" 3 "f" abs "g"0XXXXXXXXXXXXXXXX0vector02b2552u <42-#foo:bar: keywordsStrict >>> #('foo:' 'bar:')0({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)whoa2XXXXXXX### XXn XX nnXppp < <<<< n>> 'ol'31000Remove each element of aCollection which is present in the receiver from the receiver. Answer aCollection. No error is raised if an element isn't found. ArrayedCollections cannot respond to this message.expandMacrosWith: anObject "('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'" "('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''" ^self expandMacrosWithArguments: (Array with: anObject)-d510acollect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection." "(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) " | newCollection | newCollection := self species new: self size. 1 to: self size do: [:index | newCollection at: index put: (aBlock value: (self at: index))]. ^ newCollection0 X X11Answer a Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle. 4 + 3 >>> 7uNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.1511(10 to: 5) asArray >>> #()K(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10)122222 beBetween: minValue and: maxValue "Answer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValue" "(10 beBetween: 12 and: 20) >>> 12" "(10 beBetween: 20 and: 12) >>> 12" "(13 beBetween: 12 and: 20) >>> 13" "(12 beBetween: 12 and: 20) >>> 12" "(100 beBetween: 12 and: 20) >>> 20" ^ minValue <= maxValue ifTrue: [ (self min: maxValue) max: minValue ] ifFalse: [ (self min: minValue) max: maxValue ]Z(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14)100pharo10vector410| rectangles | rectangles := OrderedCollection new add: (Rectangle left: 5 right: 10 top: 0 bottom: 15); add: (Rectangle left: 0 right: 15 top: 5 bottom: 10); yourself. (Rectangle merging: rectangles) >>> (Rectangle left: 0 right: 15 top: 0 bottom: 15)12defworld2018 #[ 1 256 2 ]6bind: aBlock "Extract items from the receiver and use them as arguments of aBlock. Signal an error (ArgumentsCountMismatch) when the arguments count of aBlock does not match the receiver size." "(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 6" ^ aBlock valueWithArguments: selffReturn index of first element that satisfies aBlock. If no matching element is found, raise an error.?(STON fromString: '#foo : 100') class >>> STON associationClass(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 5"('action' alike: 'actions') >>> 7.2303.1415(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'abca32e1.4$Point class isInstanceSide >>> false1$1 isDecimalDigit >>> true^Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/MeAnewFrom: aCollection "Answer an instance of me containing the same elements as aCollection." "(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray)" "({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3)" "({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)" | runs values lastRun lastValue | runs := (Array new: aCollection size // 2) writeStream. values := (Array new: aCollection size // 2) writeStream. lastRun := 0. lastValue := Object new. aCollection do: [ :x | lastValue = x ifTrue: [ lastRun := lastRun + 1 ] ifFalse: [ lastRun > 0 ifTrue: [ runs nextPut: lastRun. values nextPut: lastValue ]. lastRun := 1. lastValue := x ] ]. lastRun > 0 ifTrue: [ runs nextPut: lastRun. values nextPut: lastValue ]. ^ self basicNew setRuns: runs contents setValues: values contents00ppp """ < """ <<< """ < """ < """ <<< """ < """ 1#'abc' = 'abc' asWideString >>> true00002222222326685556foo ^ [ | a | a := 1. [ :a | a ] value: 10 + a ] value2423 0001000201010jIf the receiver is true (i.e., the condition is true), then answer the value of the argument trueAlternativeBlock. If the receiver is false, answer the result of evaluating the argument falseAlternativeBlock. If the receiver is a nonBoolean then create an error notification. Execution does not actually reach here because the expression is compiled in-line.2streamContents: blockWithArg limitedTo: sizeLimit "A variant of #streamContents: with a strict size limit" "(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'" | stream | stream := LimitedWriteStream on: (self streamSpecies new: (100 min: sizeLimit)) limit: sizeLimit limitBlock: [ ^ stream contents ]. blockWithArg value: stream. ^ stream contents197ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'" ^trueAlternativeBlock valueC([0 isEmptyOrNil] on: MessageNotUnderstood do: ['oops']) >>> 'oops'xa122"#(a b c d e f g h i) second >>> #bb20Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock}Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments.threeK(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)}onPreviousMonth "(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'" ^ self addMonths: -1coolXXXXXXX390.04JReturn the class of STON associations, Association, a system wide constant11test4151.1.17 ###'hello-1.52That is false!book-result/W01-WelcomeThis statement is true! book-result23 slowFactorial >>> 6'a'0Tests-osx-64-NewTools-FileBrowser-Tests-Test.xml6ppp ^ 0 :B | 1 | T | t nn. t 1 sssss s b 0 ssssss n11 X 21shuffleBy: aRandom "Durstenfeld's version of the Fisher-Yates shuffle" "({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)" self size to: 2 by: -1 do: [ :i | self swap: i with: (aRandom nextInteger: i) ]4.0201.9283-4 2r. 3foo23baz400010203a-1u XXXX210I('hello' collect: #asciiValue into: Set new) >>> #(104 101 108 111) asSet1(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))234znak ::x43 ) :2(1 sign: 2) ; bar2241pEvaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true.120DnextToLast "(#(1 2 3 4) nextToLast) >>> 3" ^self at: self size - 1 between: 018-bit integer expected, 1cidentityIndexOf: anElement "Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) identityIndexOf: #c) >>> 3" "(#(a b c d e) identityIndexOf: #x) >>> 0" ^self identityIndexOf: anElement ifAbsent: [0]0--stage-name=Tests-osx-64first: n "Answer the first n elements of the receiver. Raise an error if there are not enough elements." "(#(a b c d e f g h ) first: 3) >>> #(a b c)" ^ self copyFrom: 1 to: n82rAnswer the index of the first substring within the receiver. If the receiver does not contain substring, answer 0.53#hello. #worldwith: otherCollection do: twoArgBlock "Evaluate twoArgBlock with corresponding elements from this collection and otherCollection." "(Array streamContents: [:stream | #(1 2 3) with: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(5 7 9)" otherCollection size = self size ifFalse: [self errorSizeMismatch]. 1 to: self size do: [:index | twoArgBlock value: (self at: index) value: (otherCollection at: index)]-1h+Tests-osx-64-System-Settings-Tests-Test.xmla := a. [ :a | [ :a | a := a1031100120=atAllPut: anObject "Put anObject at every one of the receiver's indices." "({#x .#y. #z} atAllPut: #a) >>> #(a a a)" | size | (size := self size) > 26 "first method faster from 27 accesses and on" ifTrue: [self from: 1 to: size put: anObject] ifFalse: [1 to: size do: [:index | self at: index put: anObject]]1579((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)10!""" 0 """ n """ """ n """ 0 """VAnswer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. Note: it is user responsibility to provide aCollection that behaves relatevily fast when asked for includes: (like a Set)2!'' expandMacros >>> String tabtaz(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)3Grepeat: aNumber "Returns a new string concatenated by itself repeated n times" "('abc' repeat: 3) >>> 'abcabcabc'" aNumber < 0 ifTrue: [ self error: 'aNumber cannot be negative' ]. ^ self species new: self size * aNumber streamContents: [ :stringStream | 1 to: aNumber do: [ :idx | stringStream nextPutAll: self ] ]30B({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)040>> 1" "1 slowFactorial >>> 1" "2 slowFactorial >>> 2" "3 slowFactorial >>> 6" "4 slowFactorial >>> 24" "5 slowFactorial >>> 120" "6 slowFactorial >>> 720" self > 0 ifTrue: [ ^ self * (self - 1) slowFactorial ]. self = 0 ifTrue: [ ^ 1 ]. self error: 'Not valid for negative integers'PnewFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dictv(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'0.01@({10. 20} asOrderedCollection add: 30 withOccurrences: 2) >>> 30For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)43Signal CollectionIsEmpty if the collection is emptya120E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 DPairwise product of two sequenceable collections of the same length."[ :a :a :b | | a a b | a + a + b ]1Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated iusing aSortFunction.30 foo 2{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}a15 '11abc' startsWithDigit >>> truey$mergeSortFrom: startIndex to: stopIndex by: aBlock "Sort the given range of indices using the mergesort algorithm. Mergesort is a worst-case O(N log N) sorting algorithm that usually does only half as many comparisons as heapsort or quicksort." "Details: recursively split the range to be sorted into two halves, mergesort each half, then merge the two halves together. An extra copy of the data is used as temporary storage and successive merge phases copy data back and forth between the receiver and this copy. The recursion is set up so that the final merge is performed into the receiver, resulting in the receiver being completely sorted." "({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)" self size <= 1 ifTrue: [^ self]. "nothing to do" startIndex = stopIndex ifTrue: [^ self]. [startIndex >= 1 and: [startIndex < stopIndex]] assert. "bad start index" [stopIndex <= self size] assert. "bad stop index" self mergeSortFrom: startIndex to: stopIndex src: self copy dst: self by: aBlock65| a b | 1x'-1' asInteger >>> -13021030sAnswer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral.5&'a3123abc' isAllAlphaNumerics >>> trueEMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil11310305101322F(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true1 goodby: my: readStreamDo: aBlock "Evaluates the argument with the read stream of the collection. Answers the result." "(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)" ^ aBlock value: self readStream7"#foo: keywordsStrict >>> #('foo:')bCround: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal." "(10.156s round: 2) >>> 10.160s3 " "(1/3.0s round: 4) >>> 0.3333s4 " ^(super round: numberOfWishedDecimal) asScaledDecimal: (scale max: numberOfWishedDecimal)b01P(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 3#{ 2. 1+1 } asIdentitySet size >>> 1bat: index ifAbsent: exceptionBlock "Answer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d) at: 3 ifAbsent: #z) >>> #c" "(#(a b c d) at: 5 ifAbsent: #z) >>> #z" (index between: 1 and: self size) ifTrue: [^ self at: index]. ^ exceptionBlock value00023455101543Class structural inspection - Class/Metaclass shift300112131116444455117000vector01 X | t t t | t s t s t1 Five is 5.5566 2221333444czRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal2runningMax: aSubsetSize "Running max. See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}" ^ self running: [ :subset | subset max ] of: aSubsetSize'(#(10 20 30) includesAll: #()) >>> true#( 1 51 10 ) range >>> 50238Perform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=1;({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6)kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block3action-10 self := self2K(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) ToolscemptyCheck "Signal CollectionIsEmpty if the collection is empty" "#(10 20) emptyCheck >>> #(10 20)" "([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self isEmpty ifTrue: [self errorEmptyCollection]21331mReturn true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b]. ' hello '6T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'20001401-3.14796growAtLast "Add new empty slots to the end of array, while keeping the empty slots at the front." "OrderedCollection new capacity >>> 10" "(OrderedCollection new growAtLast; capacity) >>> 20" | newArray | newArray := self class arrayType new: (array size * 2 max: 1). newArray replaceFrom: firstIndex to: lastIndex with: array startingAt: firstIndex. array := newArray22oops'A' asByteArray >>> #[65]0.0-418UReturn whether the receiver is composed entirely of digits and has at least one digit1+Tests-osx-64-NewTools-Finder-Tests-Test.xmlradiansToDegrees "The receiver is assumed to represent radians. Answer the conversion to degrees." "Float pi radiansToDegrees >>> 180.0" ^self asFloat radiansToDegrees1342 XX n XX n X54463337228111900AA18165 X X XXifNil: nilBlock ifNotNil: ifNotNilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42" "(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6" ^ nilBlock value"Point class instanceSide >>> Point Xuuuuuu n uuu 128nnumericSuffix "'abc98' numericSuffix >>> 98" "'98abc' numericSuffix >>> 0" ^ self stemAndNumericSuffix last1:. :aabd43.0sc!31111200445555555A888897766DBBBBChello30({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)cool,(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 351IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self or prefix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)0 ^ n n ^ n 029'Color red rgbTriplet >>> #(1.0 0.0 0.0)201281x1ba'{1. 2} asBag = {2. 1} asBag >>> true8Ab cd ef Ab cdclassNameKey "Return the key that will be used to add a property with the class name when an unknown class is read and the option STONReader>>#acceptUnknownClasses: is true, by default #className. Such unknown classes are returned as generic maps." "((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBaz" ^ #className1224443FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]42030L('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'2;(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -2201((4 to: 50 by: 2) anySatisfy: #isPrime) >>> false45{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}4030XX sss^^110-13/Return a copy with the first letter capitalizednXXn'' lastSpacePosition >>> 0Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.LRemove each element from the receiver and leave it empty. ArrayedCollections cannot respond to this message. There are two good reasons why a subclass should override this message: 1) the subclass does not support being modified while being iterated 2) the subclass provides a much faster way than iterating through each element10-23.45670d1013Subclasses should decide what meta level of given class should be used to retrieve/build hierarchy. For example superclass hierarchy of ProtoObject class can stop at it according to instance side hierarchya(((104 to: 120) detect: #isPrime) >>> 107e 2 even >>> truexzdtFold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments.4( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5) [ :a :a | a ]3barD('||' split: 'foo||bar||2')>>>#('foo' 'bar' '2') asOrderedCollection ppp < <<<<<122(1 minute + 1 second) printString >>> '0:00:01:01'aRome51&(AsciiCharset toUppercase: $a) >>> $A.pppp A pppp A ^ aA({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)}%Answer the factorial of the receiver.3coneHello30Hello2160+(self >> #traitSource) isExtension >>> true809({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 300"Character space tokenish >>> false131.pharo-21x2d10+Character backspace isControlOther >>> true[ | | !('*baz*' match: 'mozo') >>> false7#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSet-2 odd >>> falsek(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)3001oflatCollectAsSet: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSet" ^ self flatCollect: aBlock as: Set30240foo: + -10Dconvert myself to an Integer representing 1 for true and 0 for falseindexOfAnyOf: aCollection startingAt: start "Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index." "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 0" ^self indexOfAnyOf: aCollection startingAt: start ifAbsent: [0]foo: super ^ super + 1( 1 + 2('pharo' endsWith: '') >>> true002230033abs "Absolute value of all elements in the collection" "#(1 -2 -4 0) abs >>> #(1 2 4 0)" "{1@ -2. -4@0} abs >>> {(1@2). (4@0)}" ^ self collect: [:a | a abs]4211Tests-osx-64-Spec2-Morphic-Backend-Tests-Test.xmlaction0341%1 second printString >>> '0:00:00:01'(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;':('<1?success:error>' expandMacrosWith: true) >>> 'success'2116abc#. 116320XXsifFalse: alternativeBlock "Answer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'" ^alternativeBlock value2+Tests-osx-64-NewTools-Scopes-Tests-Test.xml13.14792010}Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.'hello'210910zk cd zk ef zk (#(1 2) ifEmpty: [0]) >>> #(1 2)6Collection size and block argument count do not match.(true and: [ false ]) >>> falsereciprocal "Returns the reciprocal of self. In case self is 0 the / signals ZeroDivide" "1/2 reciprocal >>> 2" "2 reciprocal >>> (1/2)" "1.25 reciprocal >>> 0.8" "-2 reciprocal >>> (-1/2)" ^1 / self85Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattenedc(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> true200.98000 is number 0vector00dJust like reverseWith:do: except that the iteration index supplies the second argument to the block.D(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray)412830|odd " 0 odd >>> false" " 2 odd >>> false" "-2 odd >>> false" " 3 odd >>> true" "-3 odd >>> true" ^(self bitAnd: 1) = 13111120044667685999A4400DBBBBC0vector0206 8253734922[:a:b]def#(-3.1479 roundUpTo: 0.01) >>> -3.14TReturn true whether the receiver is a metaclass (in a couple class/metaclass sense).2-320c3btoverlappingPairsWithIndexDo: aBlock "Emit overlapping pairs of my elements into aBlock, along with an index." "(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73)" 1 to: self size - 1 do: [:i | aBlock value: (self at: i) value: (self at: i + 1) value: i ]-3 even >>> falseXsXXXXc/foo/bar2Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in descending order using the <=> method.602eA clear ...summarybJust like with:collect: except that the iteration index supplies the second argument to the block.[(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found'11 + 2 ]W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'1pharo201afromHexString: aColorHex "Returns a color instance from HEX (6 element elements)." "(Color fromHexString: 'FFFFFF')>>> (Color white) " | green red blue alpha hexString | hexString := aColorHex withoutPrefix: '#'. red := (Integer readFrom: (hexString first: 2) base: 16) / 255. green := (Integer readFrom: (hexString copyFrom: 3 to: 4) base: 16) / 255. blue := (Integer readFrom: (hexString copyFrom: 5 to: 6) base: 16) / 255. alpha := hexString size = 8 ifFalse: [ 1.0 ] ifTrue: [ (Integer readFrom: (hexString copyFrom: 7 to: 8) base: 16) / 255 ]. ^ self r: red g: green b: blue alpha: alpha2Color red hue >>> 0.0143R(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}?reject: rejectBlock thenCollect: collectBlock "Optimized implementation" "(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)" | newCollection | newCollection := self copyEmpty. self do: [ :e | (rejectBlock value: e) ifFalse: [ newCollection add: (collectBlock value: e) ] ]. ^ newCollection72D('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X200 hello worldkkkkk XX kkkkk32223331C('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0.MPrint elements on a stream separated with a delimiter String like: 'a, b, c'121Ternary operator: An if-else string can be written with . The N-th argument must be a Boolean. Yes-string cannot contain colon ':', as it terminates the yes-string. No-string cannot contain closing angle bracket '>', as it terminates the no-string.72(#(11 22 33) asOrderedCollection atWrap: 2) >>> 22akeywordsStrict "Returns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned." "#foo: keywordsStrict >>> #('foo:')" "#foo:bar: keywordsStrict >>> #('foo:' 'bar:')" "#foo keywordsStrict >>> #()" "#+ keywordsStrict >>> #()" ^ self isKeyword ifTrue: [ self keywords ] ifFalse: [ #( ) ]3yfindFirst: aBlock "Return the index of my first element for which aBlock evaluates as true. If no matching element is found, return 0" "(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2" "(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 0" | index | index := 0. [(index := index + 1) <= self size] whileTrue: [(aBlock value: (self at: index)) ifTrue: [^index]]. ^ 0%('abc' escapeCharacter: $X) >>> 'abc'22r-00101000 lowBit >>> 4&2 seconds printString >>> '0:00:00:02'5foo3.145a120cAnswer whether the receiver begins with the given prefix string. The comparison is case-sensitive.3Replace all occurrences of oldObject with newObject6z1b-3.75DEvaluate aBlock for all elements between start and stop (inclusive).cHello! bytestring13| a ||aatLast: indexFromEnd put: obj "Set the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last element" "({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z)" ^ self at: self size + 1 - indexFromEnd put: obj122 X Xsss X 102aXXb2'' isNotEmpty >>> false30indexOfSubCollection: sub startingAt: start ifAbsent: exceptionBlock "Answer the index of the receiver's first element, such that that element equals the first element of sub, and the next elements equal the rest of the elements of sub. Begin the search at element start of the receiver. If no such match is found, answer the result of evaluating argument, exceptionBlock." "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 7" | first index | sub isEmpty ifTrue: [^ exceptionBlock value]. first := sub first. start to: self size - sub size + 1 do: [:startIndex | (self at: startIndex) = first ifTrue: [index := 1. [(self at: startIndex+index-1) = (sub at: index)] whileTrue: [index = sub size ifTrue: [^startIndex]. index := index+1]]]. ^ exceptionBlock valuey<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'1112:storeOn: aStream "Print inside string quotes, doubling inbedded quotes." "(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''" | x | aStream nextPut: $'. 1 to: self size do: [ :i | aStream nextPut: (x := self at: i). x = $' ifTrue: [ aStream nextPut: x ] ]. aStream nextPut: $'10009111-4<<<<<<( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)2word before index#Tests-osx-64-Morphic-Tests-Test.xmlNot valid for negative integers0vector011115xyaallButLastDo: block "Executes aBlock on each of the receiver's elements except for the last one" "(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)" 1 to: self size - 1 do: [:index | block value: (self at: index)]2C(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)cbe:bara31 + 2 }m(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollectionYAnswer true if the receiver contains the substring str exactly at index, false otherwise.!(2 ifNotNil: [ :o | o + 3]) >>> 51!(13 beBetween: 12 and: 20) >>> 131107substrings "Answer an array of non-empty substrings from the receiver separated by one or more whitespace characters." "'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')" ^ self substrings: CSSeparators9' hello ' surroundedBySingleQuotes >>> ''' hello '''Return the number of combinations of (self) elements taken k at a time. It is calculated as C(n,k) = n! / (k! (n-k)!) For 6 numberOfCombinationsTaken: 3, this is 6*5*4 / (1*2*3)'h: hue s: saturation v: brightness "Create a color with the given hue, saturation, and brightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1) is pure red." "Note: By convention, brightness is abbreviated 'v' to to avoid confusion with blue." "(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)" ^ self h: hue s: saturation v: brightness alpha: 1.01.02 rounded >>> 2*Answer the middle element of the receiver.11:Answer whether anObject is one of the receiver's elements.1"Guard for know cases (0,1,2,error) #( 0 1r2 4 )Special case of exponent=10, third "Answer the third element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) third >>> #c" ^ self at: 31031123b27foo: arg bar: arr ^ arg + arr0:00:00:01.001 234Whoopie83300001110-3B(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'1after: target "Answer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it." "(#(a b c d) after: #b) >>> #c" ^ self after: target ifAbsent: [self errorNotFound: target]h200xc0022324a423Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan10022003includesSubstringAnywhere: testString "Answer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substring" "(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> true" self do: [:element | (element isString) ifTrue: [(element includesSubstring: testString) ifTrue: [^ true]]. (element isCollection) ifTrue: [(element includesSubstringAnywhere: testString) ifTrue: [^ true]]]. ^ false1. 2la10255*Tests-osx-64-Tool-Profilers-Tests-Test.xml10abcwhoEisAllSeparators "Returns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPage" "(Character space asString, Character space asString) isAllSeparators >>> true" "(Character space asString, 'a') isAllSeparators >>> false" self do: [ :c | c isSeparator ifFalse: [ ^false ] ]. ^true10>(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'y(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionary6reversed "Answer a copy of the receiver with element order reversed. " "#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection" | newCol | newCol := self speciesForTransform new: self size. self reverseDo: [ :elem | newCol addLast: elem ]. ^ newCol-10201findBinaryIndex: aBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error." "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ]) >>> 5" ^ self findBinaryIndex: aBlock do: [ :found | found ] ifNone: [ self errorNotFound: aBlock ]3c[Answer the ninth element of the receiver. Raise an error if there are not enough elements.2ho :. a: foo332Tests-osx-64-NewTools-RewriterTools-Tests-Test.xml15theCascade message expectedPoint classSide >>> Point class@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'212(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> false9(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false [ : | a: b ]b2PReturn true whether the receiver is a class (in a couple class/metaclass sense).2hello(1111111111111111110000000002222222222222, aCollection "Concatenate the receiver with the argument." "#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)" ^self copy addAll: aCollection; yourself(100@200) max >>> 2001[:a 1]threee300000100002000030555655755855599A9B9C999FEEEGDDDH55152X''''''>> #(5 7 9)iassociationsDo: aBlock "Evaluate aBlock for each of the receiver's elements (key/value associations). If any non-association is within, the error is not caught now, but later, when a key or value message is sent to it. The point of this method it to do the *right thing* on Dictionaries and related classes. " "(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'" "(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'" self do: aBlock17Parse and materialize the STON representation in string1000 'def' < 'abc' >>> false232false ==> [true] >>> true52 AAnswer whether the receiver's final character represents a digit.4240 ((#(10 20 30) includesAny: #()) >>> false5 8 ** 2 >>> 64330vector0110.Tests-osx-64-Metacello-TestsReference-Test.xml-130.5This statement is true!Eformat: collection "Format the receiver by interpolating elements from collection, as in the following examples:" "('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'" "('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'" "('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' " "('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' " ^ self species new: self size streamContents: [ :result | | stream | stream := self readStream. [ stream atEnd ] whileFalse: [ | currentChar | (currentChar := stream next) == ${ ifTrue: [ | expression index | expression := stream upTo: $}. index := Integer readFrom: expression ifFail: [ expression ]. result nextPutAll: (collection at: index) asString ] ifFalse: [ currentChar == $\ ifTrue: [ stream atEnd ifFalse: [ result nextPut: stream next ] ] ifFalse: [ result nextPut: currentChar ] ] ] ]120011200Optimized implementation4120.0Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the found element as argument If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements or nil as arguments.Color red hslSaturation >>> 1.0 [ 1 ]. [ 2 ]2TIterate over all the pairs of the receiver and apply the binaryBlock to each pair. (1923 truncateTo: 10) >>> 1920]select: selectBock thenDo: aBlock "Refer to the comment in Collection>>#select:thenDo:" "(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)" | each | 1 to: self size do: [ :index | (selectBock value: (each := self at: index)) ifTrue: [ aBlock value: each ]]1.928390123490234812=Return true if the receiver is sorted by the given criterion.1028f-33Class structural inspection - Class/Metaclass shift!(10 beBetween: 20 and: 12) >>> 123Returns whether the receiver contains the argument.02330-> anObject "Answer an Association between self and anObject" "The following example creates an association whose key is number 1 and value string 'one'." "(1 -> 'one') key >>> 1" "(1 -> 'one') value >>> 'one'" "Note that key and value can be ANY object." ^ Association key: self value: anObject10H' this string will be trimmed ' trim >>> 'this string will be trimmed'3-4Unitialized variableyabcdeJ('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}#() asCommaString >>> '''hello' anyOne >>> $h2Xsuuu7#'hello''worldkIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock blockbcea#(a b c d e) size >>> 51120 goodby: my: 2('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'a000011110004444333500100(#(w x y z) atPin: 4) >>> #z1.01031%Tests-osx-64-Microdown-Tests-Test.xml30112'he'llo'1$_ isDashPunctuation >>> falsec30Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'. Uses #asString instead of #print: Note: Feel free to improve the code to detect the last element.&A clear but rather long-winded summary22-1 between: 46141^(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))10 Phar...ool31R(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)2foo | a | a := 1. ^ [ | a | a := 10. a ] value + a$(#(10 20 30) includes: 21) >>> false0helloABAaddIfNotPresent: anObject "Include anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject." "({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 30" "({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)" "({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)" (self includes: anObject) ifFalse: [ self add: anObject ]. ^ anObject2@Pairwise sum of two sequenceable collections of the same length.242575=(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 Not found>> 'aXXb'100vector0100J(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'Vsize "#(a b c d e) size >>> 5" "#(x y z) size >>> 3" ^ self subclassResponsibilityfromStringWithComments: string "Parse and materialize the STON representation in string, skipping C-style comments" "(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)" ^ self fromStreamWithComments: string readStream60200222w1 'abc' = 'def' >>> false4asSet "Answer a set with the elements of the receiver." "#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSet" ^ contents keys asSet111021RExecute the receiver with the correct number of arguments taken from the argument.32ya!DDD 00EEE0548884449994A0CCC00 FFFa1xa?Print the receiver's path on aStream (without 'Path' prepended)2420vector23^Append the elements of the argument, aSequenceableCollection, separating them by the receiver. 1 foo:;bar2009({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet13e:!#(1 2) asArray == #(1 2) >>> true12523R(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)415-2.571hel210396eu u. 0 X X X XX X 0. X X3.1ZReplace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters0vector0.Tests-osx-64-NewTools-Inspector-Tests-Test.xml16777215MReturn a color with the given r, g, and b components in the range [0.0..1.0].420piecesCutWhere: binaryBlock do: pieceBlock "Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements." "(Array streamContents: [:stream | #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]] do: [:each | stream nextPut: each size]]) >>> #(1 5 3)" | size lastCut this next | (size := self size) <= 1 ifTrue: [size = 1 ifTrue: [pieceBlock value: self]. ^self]. lastCut := 1. this := self at: 1. 2 to: size do: [:i| next := self at: i. (binaryBlock value: this value: next) ifTrue: [pieceBlock value: (self copyFrom: lastCut to: i - 1). lastCut := i]. this := next]. pieceBlock value: (self copyFrom: lastCut to: size)4SNote: By convention, brightness is abbreviated 'v' to to avoid confusion with blue.isFloatPoint "Return true if both of my x and y coordinates are represented by float values, otherwise false" "(1@2) isFloatPoint >>> false" "(1@2.2) isFloatPoint >>> false" "(1.3@2.2) isFloatPoint >>> true" "((1/3)@(2/2)) isFloatPoint >>> false" ^ x isFloat and: [ y isFloat ]abcdefgh11`(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))031014'he''llo' surroundedBySingleQuotes >>> '''he''llo'''42b10000000000000000>mmddyyyy "Print the receiver in standard U.S.A format mm/dd/yyyy. Note that the name here is slightly misleading -- the month and day numbers don't show leading zeros, so that for example February 1 1996 is 2/1/96" "(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'" ^ self printFormat: #(2 1 3 $/ 1 1)14(100@200) y >>> 200!#(a b c d e f g h i) third >>> #c- arg "Answer a Point that is the difference of the receiver and arg." "((2@2) - (100@200)) >>> (-98@ -198)" "((2@2) - 200) >>> (-198@ -198)" arg isPoint ifTrue: [^ (x - arg x) @ (y - arg y)]. ^ arg adaptToPoint: self andSend: #-p(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself)0 003 "nothing" {endsWith: suffix "Answer whether the receiver ends with the given prefix string. The comparison is case-sensitive." "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct" "('pharo' endsWith: '') >>> true" "('pharo' endsWith: 'project-pharo') >>> false" "('pharo' endsWith: 'phuro') >>> false" "('pharo' endsWith: 'aro') >>> true" "('pharo' endsWith: 'aRo') >>> false" | requiredStart | suffix ifEmpty: [ ^ true ]. (self class isBytes and: [ suffix class isBytes ]) ifFalse: [^super endsWith: suffix]. requiredStart := self size - suffix size + 1. requiredStart <= 0 ifTrue: [ ^false ]. ^ (self findSubstring: suffix in: self startingAt: requiredStart matchTable: CaseSensitiveOrder) = requiredStartto#(#(1 2 3) polynomialEval: 2) >>> 17QAnswer the next multiple of aNumber toward infinity that is nearest the receiver.21Nonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument.E({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}11031011 hello worldvweekdayIndex "Sunday=1, ... , Saturday=7" "(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 6" ^ self dayOfWeeknnnnnnnn11|Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division.25 511111444440317*#( aa:bb: cc #'aa:bb:cc' #cc #'++' #'++' )Foo1 000000000000#foo keywords >>> #('foo')xz0Tests-osx-64-Refactoring-DataForTesting-Test.xml21 sign; FcopyWithoutDuplicates "Answer a copy of the receiver without any duplicated elements" "(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSet" "(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')" "(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si)" ^ self asSet asArray4Pharo0vector0SprintStringHex "$A printStringHex >>> '41'" ^ self asInteger printStringBase: 161:1243Name already defined033ehllo1020?Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error.3 #( 0 1 r2 4 ) 1 foo: . ^ 2111false | true >>> truec""" n """. """ n """qjoin: aCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz'" ^ self species new: (aCollection size * self size) streamContents: [:stream | aCollection do: [:each | stream nextPutAll: each asString] separatedBy: [stream nextPutAll: self]]400651Zat: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ self at: firstKey at: secondKey ifAbsent: [self errorKeyNotFound: secondKey]18(#(a b c d) after: #b) >>> #c101a05.lastIndexOf: anElement "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b a d a) lastIndexOf: #a) >>> 5" "(#(a b a d e) lastIndexOf: #a) >>> 3" ^ self lastIndexOf: anElement startingAt: self size ifAbsent: [0]2025hello2400isSortedBy: aBlock "Return true if the receiver is sorted by the given criterion." "(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> true" "(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> false" "(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false" "(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true" | lastElm elm | self isEmpty ifTrue: [^ true]. lastElm := self first. 2 to: self size do: [:index | elm := self at: index. (aBlock value: lastElm value: elm) ifFalse: [^ false]. lastElm := elm]. ^ true3{1]2} ; 119222222000011111120vector010isCurrencySymbol "Return whether the receiver is one of these characters: $ and euro" "$$ isCurrencySymbol >>> true" "Character euro isCurrencySymbol >>> true" "$} isControlOther >>> false" ^ self characterSet isCurrencySymbol: self3bc0"'( 1 and: 4)' findSelector >>> nilM|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 1241| TTTTT | ttttt n. ^ ttttt"Tests-osx-64-Kernel-Tests-Test.xml surroundedBySingleQuotes "Answer the receiver with leading and trailing quotes." "'hello' surroundedBySingleQuotes >>> '''hello'''" "'he''llo' surroundedBySingleQuotes >>> '''he''llo'''" "' hello ' surroundedBySingleQuotes >>> ''' hello '''" ^ self surroundedBy: ($' asString)xfghi11 0:01:01:001011select: selectBlock thenCollect: collectBlock "Optimized implementation" "(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4)" "('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'" | selectedItems | selectedItems := self copyEmpty. self do: [ :e | (selectBlock value: e) ifTrue: [ selectedItems add: (collectBlock value: e) ] ]. ^ selectedItemsnamed: aString ifNone: aBlock "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString ifAbsent: aBlockabcd65138asOpenInterval "Return a new interval representing the open version of the receiver. In other words, the new inteval does not contain the upper and lower boundaries of the receiver " "(1 to: 10) asOpenInterval >>> (2 to: 9)" "(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2)" ^ start + step to: stop - step0"a" #( "b" 1 "c" two "d" ( "e" 3 "f" ) "g" ) "h"not "Negation. Answer true if the receiver is false, answer false if the receiver is true." "true not >>> false" "false not >>> true" self subclassResponsibility1 That is true!3X X 13191610r(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))Print the receiver in standard U.S.A format mm/dd/yyyy. Note that the name here is slightly misleading -- the month and day numbers don't show leading zeros, so that for example February 1 1996 is 2/1/9610hexString "Returns a string representation of the receiver as hexadecimal, prefixed with 16r." "Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true" "12 hexString >>> '16rC'" "10 hexString >>> '16rA'" "-10 hexString >>> '-16rA'" ^ self storeStringBase: 1612115ifEmpty: aBlock "Evaluate the given block, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its receiver in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: (myProtocol ifEmpty: [ Protocol unclassified ])" "(#(1 2) ifEmpty: [0]) >>> #(1 2)" "(#() ifEmpty: [0]) >>> 0" "('' ifEmpty: ['(nil)']) >>> '(nil)'" ^ self isEmpty ifTrue: [ aBlock value ] ifFalse: [ self ]XsXafter: target ifAbsent: exceptionBlock "Answer the element after target. Answer the result of evaluation the exceptionBlock if target is not in the receiver, or if there are no elements after it." "(#(a b c d) after: #b ifAbsent: #z) >>> #c" "(#(a b c d) after: #x ifAbsent: #z) >>> #z" | index | index := self indexOf: target. ^ (index = 0 or: [index = self size]) ifTrue: [exceptionBlock value] ifFalse: [self at: index + 1]240.0(1 -> 'one') key >>> 1720#(1 2 3) anyOne >>> 1:(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0':(true or: [false]) >>> trueB('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true('abc' alike: 'abc') >>> 7.111storeStringBase: base "Returns a string representation of the receiver in base 16 in a way that executing it will return the receiver." "(10 storeStringBase: 16) >>> '16rA'" "(10 storeStringBase: 10) >>> '10'" ^ String streamContents: [:strm | self storeOn: strm base: base]3.1479| T | 0 t nn 0. ^ t TestFailure Given Collections do not match. Got left := an IdentitySet(RBVariableNode(v1)). instead of right :=an IdentitySet(RBVariableNode(v1) RBVariableNode(v1)). Collection size does not match: left=1 vs. right=2 Got 1 additional element(s) in the right collection: an Array(RBVariableNode(v1)) VariableBreakpointTest(TestAsserter)>>assert:description:resumable: VariableBreakpointTest(TestAsserter)>>assert:description: VariableBreakpointTest(TestAsserter)>>assertCollection:equals: VariableBreakpointTest>>testWatchVariableReadsInClass VariableBreakpointTest(TestCase)>>performTest +(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 30vector0#[ ]21?(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4)10*d(1@2.2) isFloatPoint >>> falseb2 100000000000203| tmp | tmp := 1. ^ tmp5"000001111111111103355555555555444604X51000a$'foo' asByteArray >>> #[102 111 111]Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method.dg3ppppXppp131milliSeconds "2 milliSeconds printString >>> '0:00:00:00.002'" "(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'" ^ Duration milliSeconds: self52Not valid for negative integers30000222222266655528toUppercase: aCharacter "(AsciiCharset toUppercase: $a) >>> $A." "(AsciiCharset toUppercase: $A) >>> $A." "(AsciiCharset toUppercase: $!) >>> $!" (aCharacter between: $a and: $z) ifFalse: [ ^ aCharacter ]. ^ Character value: aCharacter asciiValue - $a asInteger + $A asInteger1c,#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6) Five is {1}.de0c'hello' sorted >>> 'ehllo'#(#(a b c d) allButLast: 3) >>> #(a)book-result/W01-Welcome3d%Point class classSide >>> Point class179Print the receiver in standard French format dd/mm/yyyy.2233 n uuuuuu (1/3 round: 2) >>> (33/100) bar:22004-02-29T13:33:12+02:001&(#(a b c d) at: 3 ifAbsent: #z) >>> #chop{ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "If the receiver is true (i.e., the condition is true), then answer the value of the argument trueAlternativeBlock. If the receiver is false, answer the result of evaluating the argument falseAlternativeBlock. If the receiver is a nonBoolean then create an error notification. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'" "(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'" self subclassResponsibilityover 233019add: newObject "Include newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message." "({10. 20} asOrderedCollection add: 30) >>> 30" "({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollection" "({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollection" "({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet" "({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet" self subclassResponsibility2101hello and 242oReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.YCreate a dictionary from the keys and values arguments which should have the same length.3550zmin "Answer a number that is the minimum of the x and y of the receiver." "(100@200) min >>> 100" ^ self x min: self y3Refer to the comment in Collection>>#reject:thenDo:wimpy3< aString "Answer whether the receiver sorts before aString. The collation order is simple ascii (with case differences)." " 'abc' < 'def' >>> true" " 'abc' < 'abc' >>> false" " 'def' < 'abc' >>> false" ^ (self compare: self with: aString) < 01!(12 beBetween: 12 and: 20) >>> 124#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' #a )0100isEnclosingMark "Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/Me" "$' isEnclosingMark >>> false" ^ self characterSet isEnclosingMark: self4XX n # n3.1420201Returns the boolean the byte at index byteOffset of this ByteArray represents in the C convention ( A byte representing the 0 integer corresponds to false, while all other integers corresponds to true).2000343033312c4"Character tab isSeparator >>> true216rDF1171-Tests-osx-64-Roassal-Animation-Tests-Test.xml1replaceFrom: start to: stop with: replacement "This destructively replaces elements from start to stop in the receiver. Answer the receiver itself. Use copyReplaceFrom:to:with: for insertion/deletion which may alter the size of the result." "({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)" replacement size = (stop - start + 1) ifFalse: [self error: 'Size of replacement doesnt match']. ^self replaceFrom: start to: stop with: replacement startingAt: 110V{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2) 33333044444431030LOL 'def' >= 'abc' >>> true3 'Number': 5323#((())) size >>> 1asHex "'A' asHex >>> '16r41'" "'AA' asHex >>> '16r4116r41'" ^ self species new: self size * 4 streamContents: [ :stream | self do: [ :ch | stream nextPutAll: ch hex ]]360.042 nanoSeconds printString >>> '0:00:00:00.000000002'2fillFrom: aCollection with: aBlock "Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self." "(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollection" "(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSet" "({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary" aCollection do: [ :each | self add: (aBlock value: each) ]?Evaluating conjunction -- answer false since receiver is false.1534Unexpected block parameter 00100022411(({#x .#y. #z} atAllPut: #a) >>> #(a a a)$) isControlOther >>> false6,'th is is2 9 a stRI4' squeezeOutNumber >>> 2rindexOfAnyOf: aCollection "Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index." "(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y z)) >>> 0" ^self indexOfAnyOf: aCollection startingAt: 1 ifAbsent: [0]cSet the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last element2100)(self >> #selector) isExtension >>> falseibbytesCount "Answer the number of indexable fields in the receiver. This value is the same as the largest legal subscript. Included so that a SmallInteger can behave like a LargePositiveInteger or LargeNegativeInteger." "32768 == (1 bitShift: 15)" "32768 bytesCount >>> 2" "65536 == (1 bitShift: 16)" "65536 bytesCount >>> 3" | value length | length := 1. value := self. value >= 0 ifTrue: [[value > 255] whileTrue: [value := value bitShift: -8. length := length + 1]] ifFalse: [[value < -255] whileTrue: [value := value bitShift: -8. length := length + 1]]. ^length2-2401510000002eEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.I(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'310a #(aa:bb:cc#aa:bb:cc#cc==#== =#=)100011121344151100'abc' startsWithDigit >>> false5I({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)1161Extract a selector with keyword parts from the receiver. While this doesn't give a true parse, in most cases it does what we want, in where it doesn't, we're none the worse for it.z9C(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSet$fromStreamWithComments: readStream "Parse and materialize the STON representation in the character readStream, skipping C-style comments" "(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)" ^ (self reader on: (STONCStyleCommentsSkipStream on: readStream)) next7ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'" ^falseAlternativeBlock value0vector050EPairwise quotient of two sequenceable collections of the same length.3(Date year: 2018 month: 9 day: 28) monthIndex >>> 9i 1 + 2 + 300000000Details: recursively split the range to be sorted into two halves, mergesort each half, then merge the two halves together. An extra copy of the data is used as temporary storage and successive merge phases copy data back and forth between the receiver and this copy. The recursion is set up so that the final merge is performed into the receiver, resulting in the receiver being completely sorted.6a11a4-110391310n0X 0n ssss0Xsssde0vector0yyyymmdd "Format the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long.." "(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28'" ^ String new: 10 streamContents: [ :aStream | self printOn: aStream format: #(3 2 1 $- 1 1 2) ]ac"Tests-osx-64-Deprecated12-Test.xmlis4l11]Answer the seventh element of the receiver. Raise an error if there are not enough elements.###1_findFirstInByteString: aByteString startingAt: start "Find the index of first character starting at start in aByteString that is included in the receiver. Default is to use a naive algorithm. Subclasses might want to implement a more efficient scheme. Return 0 if not found." "('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2." "('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5." "('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0." start to: aByteString size do: [:index | (self includes: (aByteString at: index)) ifTrue: [^ index]]. ^ 0weekday "Answer the name of the day of the week on which the receiver falls." "(Date year: 2018 month: 9 day: 28) weekday >>> #Friday" ^ self dayOfWeekName7e|a:/2 milliSeconds printString >>> '0:00:00:00.002'/foo/gloops.taz a: foo1.0collect: collectBlock thenSelect: selectBlock "Optimized version of Collection>>#collect:thenSelect:" "(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)" | each | ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [:index | each := collectBlock value: (self at: index). (selectBlock value: each) ifTrue: [ stream nextPut: each ]]]100492That is false!1101lo5{ [ ( (Tests-osx-64-OpalCompiler-Tests-Test.xml7Answer a Point that is the sum of the receiver and arg.abcu(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: trueabcN({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}if100oReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.##(a b c d e f g h i) seventh >>> #g>Nonevaluating disjunction -- answer value of alternativeBlock.0.51(false or: [true]) >>> trueReturn the index of the argument in the receiver, only elements after the start of the element are considered zero if not present. 1000000000000elmer204Negation -- answer true since the receiver is false.-""" 0 """ : """ B """ : """ B """ | """ 0 """3256asLowercase "Answer a String made up from the receiver whose characters are all lowercase." "'PhaRo' asLowercase >>> 'pharo'" "'' asLowercase >>> ''" "' ' asLowercase >>> ' '" ^ self copy asString translateToLowercase103-1A('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> true41 a->b->c->d502fromString: string "Parse and materialize the STON representation in string" "(STON fromString: 'Point[1,2]') >>> (1@2)" ^ self fromStream: string readStream0-41 - 1 - 1 abs - 1 - 1 max: -1 Pharo is <1p>[:a ::b] 0 :B :B | b 00(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet3RUtility method to improve readability. Do not create the intermediate collection. 000000000 startsWithDigit "Answer whether the receiver's first character represents a digit" "'abc' startsWithDigit >>> false" "'0abc' startsWithDigit >>> true" "'1abc' startsWithDigit >>> true" "'11abc' startsWithDigit >>> true" ^ self size > 0 and: [self first isDigit]1+Tests-osx-64-Spec2-Code-Diff-Tests-Test.xml5020c752010*Tests-osx-64-System-Caching-Tests-Test.xmlone3SHIFT_L33C('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)115510kAnswer my element at index anInteger. at: is used by a knowledgeable client to access an existing element.431.0a)Tests-osx-64-Roassal-Chart-Tests-Test.xml$((1 to:9 by:2) includes: 3) >>> true1a1a1xb2 ** 8 >>> 256((#(1 3) detect: #even ifNone: [0]) >>> 0#. 1 r05('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 010.#(aa:bb:"A"cc"B"#aa:bb:cc"C"#cc"D"++"E"#++"F"))Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified.(true and: [true]) >>> true/00111111111110004444444444422223005566666666666-313 'def' = 'abc' >>> false210131 00000000000BAnswer the index of the high order bit of the receiver, or zero if the receiver is zero. Raise an error if the receiver is negative, since negative integers are defined to have an infinite number of leading 1's in 2's-complement arithmetic. Use >>highBitOfMagnitude if you want to get the highest bit of the magnitude.20.(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red 760.0decimalDigitLength "Answer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits." "1 decimalDigitLength >>> 1" "100000000 decimalDigitLength >>> 9" "SmallInteger maxVal decimalDigitLength >>> 19" ^self < 10000 ifTrue: [self < 100 ifTrue: [self < 10 ifTrue: [1] ifFalse: [2]] ifFalse: [self < 1000 ifTrue: [3] ifFalse: [4]]] ifFalse: [self < 100000000 ifTrue: [self < 1000000 ifTrue: [self < 100000 ifTrue: [5] ifFalse: [6]] ifFalse: [self < 10000000 ifTrue: [7] ifFalse: [8]]] ifFalse: [self < 1000000000000 ifTrue: [self < 10000000000 ifTrue: [self < 1000000000 ifTrue: [9] ifFalse: [10]] ifFalse: [self < 100000000000 ifTrue: [11] ifFalse: [12]]] ifFalse: [self < 10000000000000000 ifTrue: [self < 100000000000000 ifTrue: [self < 10000000000000 ifTrue: [13] ifFalse: [14]] ifFalse: [self < 1000000000000000 ifTrue: [15] ifFalse: [16]]] ifFalse: [self < 1000000000000000000 ifTrue: [self < 100000000000000000 ifTrue: [17] ifFalse: [18]] ifFalse: [self < 10000000000000000000 ifTrue: [19] ifFalse: [20]]]]]]20:x "Answer the x coordinate." "(100@200) x >>> 100" ^ x0.9198435972629521440103wreverseDo: aBlock "Evaluate aBlock with each of the receiver's elements as the argument, starting with the last element and taking each in sequence up to the first. For SequenceableCollections, this is the reverse of the enumeration for do:." "(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)" self size to: 1 by: -1 do: [:index | aBlock value: (self at: index)]3.1x0-(#(1 2 2 3 1 1 1) asBag includes: 1) >>> trueFF000017({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)3,123foozoLReturn a color for HTML color spec: #FFCCAA or white/black passed as string.bar:1"also unfinished""1.#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}256130.811.3((Color colorFrom: #blue)>>> (Color blue)2an OrderedDictionary(true->#(1 3 5) false->#(2 4))XX#X#XU({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollection1abc41G((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'110!#(1 2 2 3 1 1 1) asBag sum >>> 11NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection. |||| a19#(a b c) allButFirst >>> #(b c)1File asFile Files File's File21(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'05"'3.1415' initialIntegerOrNil >>> 3c0103LAdd a new object at the end of the collection, and returns the object itself100433.14 "z" foo "a" 1 "b". "c" ^ 2 "d" 15Optimized version of Collection>>#reject:thenCollect:Optimized implementation,('s' charactersExactlyMatching: 'abc') >>> 00vector0XXsuuu122.302910bar000000000000000Jequals: aDate "Perform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=" "(Date today equals: Date yesterday) >>> false" ^self year = aDate year and: [ self monthIndex = aDate monthIndex and: [ self dayOfMonth = aDate dayOfMonth ] ]0vector03g'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'groupedBy: aBlock "Answer a dictionary whose keys are the result of evaluating aBlock for all my elements, and the value for each key is the selection of my elements that evaluated to that key. Uses species." "(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))'" | groups | groups := OrderedDictionary new. self do: [ :each | (groups at: (aBlock value: each) ifAbsentPut: [ OrderedCollection new ]) add: each ]. self species ~~ OrderedCollection ifTrue: [ groups associationsDo: [ :association | association value: (self species withAll: association value) ]]. ^ groupsy,Refer to the comment in Collection|collect:.foo "z" "a" 1. "b" "c" ^ 2 "d" 555 0066601 777 415Optimized version of Collection>>#collect:thenSelect:#1r032-((10 to: 13) copyWithout: 11) >>> #(10 12 13)0asa250112atAll: indexArray "Answer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray." "(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')" | newCollection | newCollection := self species ofSize: indexArray size. 1 to: indexArray size do: [:index | newCollection at: index put: (self at: (indexArray at: index))]. ^ newCollection2210010020eIExecute the receiver with one or zero arguments depending on the receiver0^ aabcHello! [ :a | a ]2 first element23cyisAllAlphaNumerics "Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits)." "'3.123' isAllAlphaNumerics >>> false" "'a3123abc' isAllAlphaNumerics >>> true" "'3123' isAllAlphaNumerics >>> true" "'3,123' isAllAlphaNumerics >>> false" "'a''b' isAllAlphaNumerics >>> false" self do: [:c | c isAlphaNumeric ifFalse: [^ false]]. ^ true20%Character end isControlOther >>> true3>> 'zk cd zk ef zk'" | idx | self = oldSubstring ifTrue: [ ^ newSubstring copy ]. oldSubstring isEmpty ifTrue: [ ^ self copy ]. idx := 1. ^ self species new: self size streamContents: [ :stream | | foundIdx | [ (foundIdx := self findString: oldSubstring startingAt: idx) isZero ] whileFalse: [ stream next: (foundIdx - idx) putAll: self startingAt: idx; nextPutAll: newSubstring. idx := foundIdx + oldSubstring size ]. idx <= self size ifTrue: [ stream next: (self size - idx + 1) putAll: self startingAt: idx ] ]3 sorted "Return a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator." "#(8 5 3 9) sorted >>> #(3 5 8 9)" "#(a b z d) sorted >>> #(a b d z)" ^self sorted: [ :a :b| a <= b ](Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)3310gloops10[descending "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in descending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de')" ^self asSortFunction reversed-23 goodby: 2 my: 30 #(10 20) emptyCheck >>> #(10 20)#() isEmptyOrNil >>> true2cfrdthbrDAnswer a Set whose elements are the unique elements of the receiver.18C(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)5 "unfinished#( 1 ). #( 2 )0.001T(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found'hello11111(1/3.0s round: 4) >>> 0.3333s4 09Answers a Dictionary based on collection of Associations.0Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil.1Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method.BSort this collection into ascending order using the '<=' operator.1.5$a isAlphaNumeric >>> true571([ 12 ] cull: 13)>>> 12 1.234.'displayStringOn:foo' endsWithAColon >>> falsen s n X+(#(2 4 6) noneSatisfy: [:x|x odd]) >>> true3Class structural inspection - Class/Metaclass shifth'|' or variable expected12/Tests-osx-64-System-Finalization-Tests-Test.xmlppp <<<<< XX XX X< fghi>('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'22dfalse := false0Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'"#(a b c d) allButLast >>> #(a b c)0J(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them.YmakeRoomAtFirst "Make some empty slots at the front of the array. If we have more than 50% free space, then just move the elements, so that the first 50% of the slots are free, otherwise add new free slots to the front by growing. Precondition: firstIndex = 1" "#(1 2 3) asOrderedCollection capacity >>> 3" "#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 6" | tally newFirstIndex newLastIndex | tally := self size. tally * 2 >= array size ifTrue: [ ^self growAtFirst ]. tally = 0 ifTrue: [ ^self resetTo: array size + 1 ]. newFirstIndex := array size // 2 + 1. newLastIndex := newFirstIndex - firstIndex + lastIndex. 0 to: tally - 1 do: [ :offset | array at: newLastIndex - offset put: (array at: lastIndex - offset) ]. array from: firstIndex to: newFirstIndex - 1 put: nil. firstIndex := newFirstIndex. lastIndex := newLastIndex2100tFold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments.$a isLetter >>> true10 hex >>> '16rA'110010'ab' asArray >>> {$a. $b} That is true!aWWWWW1Return the reciever full of reciprocated elements(((100@200) max: (330@400)) >>> (330@400)30-424(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)3 1 + . ^ 2reciprocal "Answer a Point with coordinates that are the reciprocals of mine." "(100@200) reciprocal >>> ((1/100)@(1/200))" ^ x reciprocal @ y reciprocal2220,Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:a31020 12'Answer the last element of the receiver3foo2(10 to: 1) isEmpty >>> true240.03"00010020030004454647444A999B888C00111 ; + 1zzzz14(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3)az1fo633(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)101!pppp A ^ 0 :B | b 0 ssssss nn s amatch: text "Answer whether text matches the pattern in this string. Matching ignores upper/lower case differences. Where this string contains #, text may contain any character. Where this string contains *, text may contain any sequence of characters." "('*' match: 'zort') >>> true" "('*baz' match: 'mobaz') >>> true" "('*baz' match: 'mobazo') >>>false" "('*baz*' match: 'mobazo') >>> true" "('*baz*' match: 'mozo') >>> false" "('foo*' match: 'foozo') >>> true" "('foo*' match: 'bozo') >>> false" "('foo*baz' match: 'foo23baz') >>> true" "('foo*baz' match: 'foobaz') >>> true" "('foo*baz' match: 'foo23bazo') >>> false" "('foo' match: 'Foo') >>> true" "('foo*baz*zort' match: 'foobazort') >>> false" "('foo*baz*zort' match: 'foobazzort') >>> true" "('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true" "('*foo*zort' match: 'afoodezortorfoo3zort') >>> true" ^ self startingAt: 1 match: text startingAt: 1510100d XX XX n n n X2003This statement is true!split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter." "(String streamContents: [:s | [:c | c isSeparator ] split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" | position | position := 1. aSequenceableCollection withIndexDo: [:element :idx | (self value: element) ifTrue: [ aBlock value: position value: idx - 1. position := idx + 1 ]]. aBlock value: position value: aSequenceableCollection size(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 11:y "Answer the y coordinate." "(100@200) y >>> 200" ^ ybeiReturn a new interval representing the open version of the receiver. In other words, the new inteval does not contain the upper and lower boundaries of the receiver 1iAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0.cd Not foundAReturn the class of STON maps, Dictionary, a system wide constant1 $1d nil := nil3#(:="A"aa:="B":=="C"cc:=="D")23d110includesAll: aCollection "Answer whether all the elements of aCollection are in the receiver." "(#(10 20 30) includesAll: #(30 20)) >>> true" "(#(10 20 30) includesAll: #(30 40)) >>> false" "(#(10 20 30) includesAll: #()) >>> true" "('hello' includesAll: 'ho') >>> true" "('hello' includesAll: 'hop') >>> false" aCollection do: [:elem | (self includes: elem) ifFalse: [^ false]]. ^ true5('hello' surroundedBy: ' abd ') >>> ' abd hello abd 'foo8'Concatenate two Strings or Collections.Put anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObject That is true!1'('hello world' occurrencesOf: 10) >>> 0,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6065Missing opener for closer: )17(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> true16b1674(OrderedCollection new add: 42; yourself) size >>> 1105 beginsWith: prefix "Answer whether the receiver begins with the given prefix string. The comparison is case-sensitive." "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct" "('pharo' beginsWith: '') >>> true" "('pharo' beginsWith: 'pharo-project') >>> false" "('pharo' beginsWith: 'phuro') >>> false" "('pharo' beginsWith: 'pha') >>> true" prefix ifEmpty: [ ^true ]. (self class isBytes and: [ prefix class isBytes ]) ifFalse: [^super beginsWith: prefix]. self size < prefix size ifTrue: [^ false]. ^ (self findSubstring: prefix in: self startingAt: 1 matchTable: CaseSensitiveOrder) = 141(KeyboardKey fromCharacter: $a) >>> KeyboardKey AoverlappingPairsCollect: aBlock "Answer the result of evaluating aBlock with all of the overlapping pairs of my elements." "(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)" | retval | retval := self species ofSize: self size - 1. 1 to: self size - 1 do: [:i | retval at: i put: (aBlock value: (self at: i) value: (self at: i + 1)) ]. ^retval>> 3.15" "(3.1479 roundUpTo: 0.1) >>> 3.2" "(1923 roundUpTo: 10) >>> 1930" "(3.1479 roundUpTo: 0.005) >>> 3.15" "(-3.1479 roundUpTo: 0.01) >>> -3.14" ^(self / aNumber) ceiling * aNumber(#() select: [true]) >>> #()1.0601Point instanceSide >>> Point3de20(('Hello!' detectMin: #asciiValue) >>> $!xAnswer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Note that it is better to use #sorted if you don't really need a SortedCollection, but a sorted collection!!124Tests-osx-64-Collections-Sequenceable-Tests-Test.xml16:31eqv: aBoolean "Answer true if the receiver is equivalent to aBoolean." "(false eqv: true) >>> false" "((1 == 1) eqv: true) >>> true" "(( 1 > 2) eqv: false) >>> true" ^ self == aBoolean0319200hello0vector00 2r3/0000CCC08888888888888889888888888888A8888880III%(-3.1479 roundDownTo: 0.01) >>> -3.1520117 ^ 1. 2. ^ 31053?('hello world!' anySatisfy: [ :each | each isLetter ]) >>> true6`pathString "Return a string containing the path elements of the receiver, without the 'Path *' part" "((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome'" ^String streamContents: [ :stream | self printPathOn: stream delimiter: self delimiter ]1(2)20 ^ n. n. ^ n 0281.('word before index' wordBefore: 4) >>> 'word'$(#() noneSatisfy: ['oops']) >>> truejoin: aSequenceableCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'" ^ self asString join: aSequenceableCollection!Character cr isSeparator >>> true11[ | | ]09a : foo """""n""""""34atWrap: index "Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds." "Optimized to go through the primitive if possible" "(#(11 22 33) atWrap: 3) >>> 33" "(#(11 22 33) atWrap: 2) >>> 22" "(#(11 22 33) atWrap: 4) >>> 11" ^ self at: index - 1 \\ self size + 11100112(gggggggggggggggggg sssssss '''''''''''''/#( #':=' aa: #= #':=' #= bb: #'==' #cc: #'==' )11 absb2d(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5)11923IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct4 foo | tmp | tmp := 1 . ^ tmp . Variable name expectedxy2indexOf: anElement startingAt: start ifAbsent: exceptionBlock "Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 7" start to: self size do: [:index | (self at: index) = anElement ifTrue: [^ index]]. ^ exceptionBlock valueEvaluate aBlock with the elements of the receiver. If aBlock returns false for any element return false. Otherwise return true.#() asCommaStringAnd >>> ''0vector01!'x isSymbol' findSelector >>> nil351510$A isCasedLetter >>> false51015{The material conditional, also known as the material implication or truth functional conditional. Correspond to not ... or ... and does not correspond to the English if...then... construction. known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication: p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T !(3.1479 roundUpTo: 0.01) >>> 3.15hel2018!'elvis ' lastSpacePosition >>> 7''fred the bear' lastSpacePosition >>> 9L(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''5 #(#"A"##"B")0(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.00 X X X0111Return the receiver as a string with SI binary (International System of Units) file size, e.g. '50 KB'. It means that it takes 1000 and not 1024 as unit as humanReadableByteSizeString does.104200r<('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false11thisContext := thisContext130782630ninth "Answer the ninth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) ninth >>> #i" ^ self at: 9#(1]2}3)b11|| u "a" ^ "b" 5 "c" 30117Returns a color instance from HEX (6 element elements).11000000000000000000allButLast "Answer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements." "#(a b c d) allButLast >>> #(a b c)" ^ self allButLast: 125&('hello' includesAll: 'hop') >>> false30 n ssssXsss-101CodeError signal: 'false error'3z | T | ^ t:#_ asMutator >>> #_:(nil)1100002((1 == 1) eqv: true) >>> true2210mobaz -9//4 >>> -3123119230vector413yab>(#(a b a d a) lastIndexOf: #a startingAt: 1 ifAbsent: 7) >>> 10s:12-416r1E$' isSeparator >>> false10'2N' initialIntegerOrNil >>> 23'('XaX' escapeCharacter: $X) >>> 'XXaXX'((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome' 1 hello: (String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'3c1 MockPackage1Remove oldObject from the receiver's elements. Answer oldObject unless no element is equal to oldObject, in which case, raise an error. ArrayedCollections cannot respond to this message. between: 5101abc0111Point classSide >>> Point class20,'th is is29 a stRI4' squeezeOutNumber >>> 29c{1@5. 10@ -4} min >>> (1@ -4)0vector00200.9 Point[1,2]E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 71a0:return myself or a copy shortened by ellipsis to smallSize311112004455555766A88889paddedWith: otherCollection do: twoArgBlock "Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil." "(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) " "(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) " "(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))" 1 to: (self size max: otherCollection size) do: [:index | twoArgBlock value: (self at: index ifAbsent: []) value: (otherCollection at: index ifAbsent: [])]21d111xcarcTan: denominator "Answer the angle in radians. Implementation note: use sign in order to catch cases of negativeZero" "(-0.5 arcTan: -0.5) >>> -2.356194490192345" "(1.2 arcTan: 1.5) >>> 0.6747409422235526" "(1.2 arcTan: -1.5) >>> 2.4668517113662407" ^ self = 0.0 ifTrue: [denominator signBit = 0 ifTrue: [ 0 ] ifFalse: [ self signBit = 0 ifTrue: [ Pi ] ifFalse: [ Pi negated ]]] ifFalse: [denominator = 0.0 ifTrue: [self > 0.0 ifTrue: [ Halfpi ] ifFalse: [ Halfpi negated ]] ifFalse: [denominator > 0 ifTrue: [ (self / denominator) arcTan ] ifFalse: [self > 0 ifTrue: [ ((self / denominator) arcTan) + Pi ] ifFalse: [ ((self / denominator) arcTan) - Pi ]]]]-(Color fromString: 'orange') >>> Color orange14#('''' unescapeCharacter: $') >>> ''Whitespace characters: ppp < < X 2I(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')'pppp A ^ 0 | T | t nn. t 0 sssss s a?Answer whether the receiver is above and to the left of aPoint.661#(1 2 3 4) selectEverySecond asArray >>> #(2 4) 0Point isClassSide >>> false42%Point class classSide >>> Point class5combinations: kk atATimeDo: aBlock "Take the items in the receiver, kk at a time, and evaluate the block for each combination. Hand in an array of elements of self as the block argument. Each combination only occurs once, and order of the elements does not matter. There are (self size take: kk) combinations." "(Array streamContents: [:stream | 'abcde' combinations: 3 atATimeDo: [:each | stream nextPut: each copy]]) >>> #(#($a $b $c) #($a $b $d) #($a $b $e) #($a $c $d) #($a $c $e) #($a $d $e) #($b $c $d) #($b $c $e) #($b $d $e) #($c $d $e))" | aCollection | aCollection := Array new: kk. self combinationsAt: 1 in: aCollection after: 0 do: aBlockabcdefgh03200?Note: Feel free to improve the code to detect the last element.100;(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018'5Split the argument using the receiver as a separator.Unreachable statement14(true and: [ true ]) >>> truedrasCommaStringAnd "Return collection printed as 'a, b and c' " "#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c'" "#('a') asCommaStringAnd >>> 'a'" "#() asCommaStringAnd >>> ''" "'foo' asCommaStringAnd >>> 'f, o and o'" "(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25'" ^String streamContents: [:s | self asStringOn: s delimiter: ', ' last: ' and ']groupedBy: aBlock having: aSelectionBlock "Like in SQL operation - Split the recievers contents into collections of elements for which keyBlock returns the same results, and return those collections allowed by selectBlock." "In the following example, the group `3->#(34)` is filtered out because there is not 2 elements." "(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionary" ^ (self groupedBy: aBlock) select: aSelectionBlock111|- 12100onelet us make seperate stringsEPut anObject at every index specified by the elements of aCollection.d2410vector0JtallyInstructions: aBlock "Count the occurrences of each bytecode during the execution of aBlock. Return a Array of associations using the byte as key and the occurrences as values sorted by the instruction opcode numeric values. This method uses the in-image bytecode interpreter to evaluate and count the instructions." "(Context tallyInstructions: [3.14159 printString]) size >>> 120" | tallies | tallies := Bag new. thisContext sender runSimulated: aBlock contextAtEachStep: [:current | tallies add: current instructionStream peekByte ]. ^tallies sortedElements60.0d121.0.(#(1 2 2 3 1 1 1) asBag includes: 5) >>> false4' ' isEmpty >>> falseHello6A variant of #streamContents: with a strict size limit7between: #(23 nil)1:=2Z(#(1 2 3 3 4 1 2 3 5 4 6) splitOn: 4) >>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection[ :a atwo20.092170 :B | X b X X405Answer the receiver with leading and trailing quotes.000111213141100KasInteger "Answer 1 since receiver is true." "true asInteger >>> 1" ^ 1'atWrap: index put: value "Store value into the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds. Answer value." "(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection" "(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollection" "(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollection" ^ self at: index - 1 \\ self size + 1 put: value5X X XAnswer some indication of how alike the receiver is to the argument, 0 is no match, twice aString size is best score (but see example with 7). Case is ignored. This method is used to help find mistyped variable names in methods.0vector010'lastIndexOfAnyOf: aCollection startingAt: lastIndex ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 1" lastIndex to: 1 by: -1 do: [:index | (aCollection includes: (self at: index)) ifTrue: [^ index]]. ^ exceptionBlock valuee 0:00:01:010000114 0:00:01:00X c10244OReturn a string representing the receiver in HEX (i.e., 6 elements in 16 basis)0.4995112414467253424191111is331222withIndexSelect: elementAndIndexBlock "select elements from the receiver that the block evaluates true with the element and its index." "(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')" ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [ :index | | each | (elementAndIndexBlock value: (each := self at: index) value: index) ifTrue: [ stream nextPut: each ] ] ]23131ppp < <<<<>> #c12 hexString >>> '16rC'C('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5.A-2a1fred is number 130 highBit >>> 0cool#[ 1 ]. #[ 2 ]1019pairsDo: aBlock "Evaluate aBlock with my elements taken two at a time. If there's an odd number of items, ignore the last one. Allows use of a flattened array for things that naturally group into pairs. See also pairsCollect:" "(Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)" 1 to: self size // 2 do: [ :index | aBlock value: (self at: 2 * index - 1) value: (self at: 2 * index) ] 0010022230phuro(Array streamContents: [ :stream | #(0 1 2 3) allPairsDo: [ :first :second | stream nextPut: { first . second } ] ]) >>> #(#(0 0) #(0 1) #(0 2) #(0 3) #(1 0) #(1 1) #(1 2) #(1 3) #(2 0) #(2 1) #(2 2) #(2 3) #(3 0) #(3 1) #(3 2) #(3 3))30It is always a number or zero:'00000103366778777B9999AA77C66555555444D1s256(Character pageUp isControlOther >>> true416rDF4(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 312-1981a*(#(a b c d) after: #x ifAbsent: #z) >>> #zIf the write position of stream is at the end of the internal buffer of stream (originalContents), we can return it directly instead of making a copy as contents would do2130420 [ :a :b | ]ol421foo < bar ; baz. > ZEvaluate aBlock with my elements taken two at a time, and return an Array with the results2* 0 0 :BBB : BBB | | TTT TTT | bbb . 0 0 . g0$- isDashPunctuation >>> trueJRunning max. See the comment of self >> #running:of: for more information.y30 0 odd >>> falseC(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 331823ed37Answer the previous date whose weekday name is dayName.3052false | false >>> false0In {1} you can escape \{ by prefixing it with \\431"$_ isConnectorPunctuation >>> true1 max: 2 + 3 absDAnswer with a collection of elements with counts, sorted by element.c XX n XXX n X00000 | | . a: | (false and: [true]) >>> falseC('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}.0(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'2222222222200001111111111110H(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lfa000134410213027 September 201824 3344435553c233Class structural inspection - Class/Metaclass shift?(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.4995112414467253#(1 2 4) sumNumbers >>> 71.9283901234902349100400#+ keywords >>> #('+')"""04215Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.$$X$1615:(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false4001202512findLast: aBlock "Return the index of my last element for which aBlock evaluates as true. If no matching element is found, return 0" "(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 5" "(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 0" | index | index := self size + 1. [(index := index - 1) >= 1] whileTrue: [(aBlock value: (self at: index)) ifTrue: [^index]]. ^ 042120+((100@200) translateBy: 5@10) >>> (105@210)1&Tests-osx-64-Roassal-Mondrian-Test.xml1110+1. -a. - 1. -"A"130c16rDF1n uuuuuuu Xuu nfghi590Find the index of first character starting at start in aByteString that is included in the receiver. Default is to use a naive algorithm. Subclasses might want to implement a more efficient scheme. Return 0 if not found.storeStringBase: base length: minimum padded: zeroFlag "(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A'" ^ String streamContents: [:s| self storeOn: s base: base length: minimum padded: zeroFlag ]12 nnnnnuuuu6' test test' withSeparatorsCompacted >>> ' test test' hello world!nhue "Return the hue of this color, an angle in the range [0.0..360.0]." "Color red hue >>> 0.0" "(Color r: 0.5 g: 0.5 b: 1) hue >>> 240.0" | r g b max min span h | r := self privateRed. g := self privateGreen. b := self privateBlue. max := (r max: g) max: b. min := (r min: g) min: b. span := (max - min) asFloat. span = 0.0 ifTrue: [ ^ 0.0 ]. h := r = max ifTrue: [ (g - b) asFloat / span * 60.0 ] ifFalse: [ g = max ifTrue: [ 120.0 + ((b - r) asFloat / span * 60.0) ] ifFalse: [ 240.0 + ((r - g) asFloat / span * 60.0) ] ]. h < 0.0 ifTrue: [ h := 360.0 + h ]. ^ hX y"Tests-osx-64-Rubric-Tests-Test.xmlReturn a setter message from a getter message. Return self if it is already a setter. Pay attention the implementation should be improved to return valid selector. a: . :2abafsorted "Return a new sequenceable collection which contains the same elements as self but its elements are sorted" "#(3 1 4 2) sorted >>> #(1 2 3 4)" "'hello' sorted >>> 'ehllo'" "(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)" ^self asArray sorted32true ==> [true] >>> true-0.98de12105-2.356194490192345rgbTriplet "Returns an array composed of the three color float components." "Color black rgbTriplet >>> #(0.0 0.0 0.0)" "Color red rgbTriplet >>> #(1.0 0.0 0.0)" ^ Array with: (self red roundTo: 0.01) with: (self green roundTo: 0.01) with: (self blue roundTo: 0.01)366_In the following example, the group `3->#(34)` is filtered out because there is not 2 elements.?(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)0* arg "Answer a Point that is the product of the receiver and arg." "((2@2) * (100@200)) >>> (200@400)" "((2@2) * 200) >>> (400@400)" arg isPoint ifTrue: [^ (x * arg x) @ (y * arg y)]. ^ arg adaptToPoint: self andSend: #*2004-02-29T13:33:00+02:0020a000X X.onDo: aBlock "Helper to tranform any `do:`-like method into a generator." "|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11)" ^ self on: [ :generator | aBlock value: [ :arg | generator yield: arg ] ]te2wisControlOther "Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert" "Character delete isControlOther >>> true" "Character backspace isControlOther >>> true" "Character space isControlOther >>> false" "Character home isControlOther >>> true" "Character pageUp isControlOther >>> true" "Character arrowDown isControlOther >>> true" "Character end isControlOther >>> true" "$) isControlOther >>> false" "$> isControlOther >>> false" "$} isControlOther >>> false" ^ self characterSet isControlOther: self42That is false!hello!0pLike asArray: but return a copy if self is already an Array. This ensures that the result is always a new Array20000 00 n n n 0 00vector0#$( isConnectorPunctuation >>> false1-2001115 slowFactorial >>> 120o (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2% foo: arg ^ arg min: arg + 2 ; abs . Same aspect ratiobasenameWithoutExtension: anExtension "Returns the basename without specified extension (if any) " "('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'" | extensionWithDelimiter | extensionWithDelimiter := anExtension copyWithFirst: self extensionDelimiter. ^ (self basename endsWith: extensionWithDelimiter) ifTrue: [ self basename allButLast: extensionWithDelimiter size ] ifFalse: [ self basename ]d '' expandMacros >>> String lf6Tests-osx-64-DrTests-TestCoverage-Tests-Mocks-Test.xmlcombinations "Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations." "#(1 2 3 4) combinations >>> #(#(1) #(2) #(3) #(4) #(1 2) #(1 3) #(1 4) #(2 3) #(2 4) #(3 4) #(1 2 3) #(1 2 4) #(1 3 4) #(2 3 4) #(1 2 3 4))" ^ Array streamContents: [ :stream | 1 to: self size do: [ :take | self combinations: take atATimeDo: [ :combination | stream nextPut: combination copy ] ] ]Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. optimized version for Sequencable Collection and subclasses implementing #writeStream1?asFloatPoint "Convert me to a float point transforming both of my coordinates to floats using #asFloat. If x and y are already represented by floats return myself, otherwise create a new Point instance." "((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)" self isFloatPoint ifTrue: [ ^ self ]. ^ x asFloat @ y asFloat5o (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 23Refer to the comment in Collection>>#select:thenDo:2?('<1?success:is error>' expandMacrosWith: false) >>> 'is error'humanReadableSISizeString "Return the receiver as a string with SI binary (International System of Units) file size, e.g. '50 KB'. It means that it takes 1000 and not 1024 as unit as humanReadableByteSizeString does." "(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'" "(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'" "(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'" ^ String streamContents: [ :s| self humanReadableSISizeOn: s ]=If the receiver is not nil, pass it as argument to the block.16Answer the receiver with leading and trailing aString.12CAnswer whether all the elements of aCollection are in the receiver.E((Date year: 2018 month: 9 day: 28) subtractDate: '2018-09-27') >>> 1314307$Character space isSeparator >>> true213(('foo*baz' match: 'foo23bazo') >>> false12In strings you can escape { by prefixing it with \a:acc-3#((2@2) - (100@200)) >>> (-98@ -198) 953.67 MB2531000 r1'6555554444443333222221111110000000000001000>> #()h41s1 s122032-1.5 rounded >>> -2"(true or: [Error signal]) >>> trueasByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" self subclassResponsibilityaddAll: aCollection "Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument." "({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}" "({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollection" "({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSet" aCollection do: [ :each | self add: each ]. ^ aCollection11| a b3 565555554444Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index.3'10' asInteger >>> 1003hello10#>> isUnary >>> false2xb [ :a : | ]!""" 0 """ 1 """ n """ 1 """ 0 """0vector0"foo: thisContext ^ thisContext + 13,highBit is not defined for negative integers2(2 raisedTo: -1) >>> (1/2)(10.199999999 round: 2) >>>10.2h(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'540030z20K('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'141 a, b, c and d Pharo is coolaQmonthIndex "(Date year: 2018 month: 9 day: 28) monthIndex >>> 9" ^ super month(true xor: [false]) >>> true*bazabcPhsvSaturation "Return the HSV saturation of this color, a value between 0.0 and 1.0." "Color red hsvSaturation >>> 1.0" "(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.4995112414467253" | max | max := self privateMaxComponent. ^ max isZero ifTrue: [ 0.0 ] ifFalse: [ (max - self privateMinComponent) asFloat / max asFloat ][:a :]60a30b11abc+ arg "Answer a Point that is the sum of the receiver and arg." "((2@2) + (100@200)) >>> (102@202)" "((2@2) + 200) >>> (202@202)" arg isPoint ifTrue: [^ (x + arg x) @ (y + arg y)]. ^ arg adaptToPoint: self andSend: #+abab2:(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)!000000111000000222044666555777330collatedBy: aSortFunction "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated iusing aSortFunction." "(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')" ^PropertySortFunction property: self collatedWith: aSortFunction asSortFunction/Tests-osx-64-Kernel-Tests-WithCompiler-Test.xml ab ab ac de 1 sign ; bar.1 milliSecond printString >>> '0:00:00:00.001'2018cU(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'1002222a3dAnswer whether text matches the pattern in this string. Matching ignores upper/lower case differences. Where this string contains #, text may contain any character. Where this string contains *, text may contain any sequence of characters.1002#(3.1479 truncateTo: 0.01) >>> 3.141foo <> 139(STON fromString: '[1 , 2 , 3]') class >>> STON listClass327685select: selectBlock thenDo: doBlock "Utility method to improve readability. Do not create the intermediate collection." "|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 44" self do: [: each | ( selectBlock value: each ) ifTrue: [ doBlock value: each ] ]e0vector023.57Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.?((1 to: 10) collect: [:i| i gcd: 6]) >>> #(1 2 3 2 1 6 1 2 3 2)2({'hel','lo'. 'world'} includes: 'hello') >>> true78 921<('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz'd between: 07({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z)12-641I return true if a method is an extension method. Which means that the methods is not packaged in the package of the class containing the method, but in another package.'Return whether the receiver is a digit.This method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchy03*printStringBase: base "Return a String representation of this number in base b." "(10 printStringBase: 10) >>> '10'" "(-10 printStringBase: 10) >>> '-10'" "(10 printStringBase: 2) >>> '1010'" "(10 printStringBase: 16) >>> 'A'" ^ String streamContents: [:strm | self printOn: strm base: base]4splitOn: splitter do: aBlock "Perform an action specified as aBlock to each of the elements of the receiver that have been split using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(String streamContents: [:s | 'Pharo is cool' splitOn: Character space do: [:each | s << each ]])>>>'Pharoiscool'" ^ splitter split: self do: aBlock10"('action' alike: 'caption') >>> 5.>($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollection11*('hello!' allSatisfy: #isLetter) >>> falsec(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030'phuro631 book-result0.5)Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified.08--junit-xml-output50 000000000000310foo 0002304('abcdf' indexOf: $a) >>> 1,(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> true15'a := a. [ :a | | a a | . := a ]. a := a6oops-316n"""uuuu uuuuu uuu uuuu"""uuuuu"""uuuuuuuuuuu"""1881101910501.01isSymbolg2100 00010203001610vector0b41'foo10' endsWithDigit >>> trueJTake the minimum between self and maxValue, then the maximum with minValue1.0fghiincludesSubstring: substring at: index "Answer true if the receiver contains the substring str exactly at index, false otherwise." "('abcdefgh' includesSubstring: 'de' at: 1) >>> false" "('abcdefgh' includesSubstring: 'de' at: 4) >>> true" | pos | pos := index - 1. ^ index > 0 & (self size - pos >= substring size) and: [ substring allSatisfy: [ :char | pos := pos + 1. (self at: pos) = char ] ]('Hello' includes: $l) >>> true', otherCollection "Concatenate two Strings or Collections." "#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)" "((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'" ^ self copyReplaceFrom: self size + 1 to: self size with: otherCollection 001002230213 hello world2100hello!11421 abdhelloabd101510vector0100de-53(#(2 4) allSatisfy: [ :each | each even ]) >>> truefear is22000031/(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 4216r41e2true & false >>> false^ . ^ 1B(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'02SReturns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPage3bd4230X u Tests-osx-64(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)d3Returns whether the receiver contains the argument.blast "Answer the last element of the receiver" "#(a b c d e) last >>> #e" ^ self at: self sizennn.n251012611000n0Xn054n s n10inde125gReturns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPageabcnsn s nssssn s nssssnn 3r12. 345903MockPackage-Tests-Packageadd: newObject "Add a new object at the end of the collection, and returns the object itself" "((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)" "Add returns the object itself" "(OrderedCollection new add: 42) >>> 42" "You may want to use yourself to return the collection itself" "(OrderedCollection new add: 42; yourself) class >>> OrderedCollection" "(OrderedCollection new add: 42; yourself) size >>> 1" ^self addLast: newObject32Faster than the superclass implementation when you hold many instances of the same value (which you probably do, otherwise you wouldn't be using a Bag).a-1.5-2(1 to:10) size >>> 10 22| T |Xt3< aPoint "Answer whether the receiver is above and to the left of aPoint." "((100@200) < (330@400)) >>> true" "((100@200) < (330@100)) >>> false" ^ x < aPoint x and: [y < aPoint y]true | false >>> true/((3 to: 8 by: 2) allSatisfy: #isPrime) >>> true'""" 0 """ | """ T """ T """ | """ 0 """J#(1 2 2 3 1 1 1) asBag cumulativeCounts >>> {57.1->1 . 85.7->2 . 100.0->3}[Answer the third element of the receiver. Raise an error if there are not enough elements.16rC1.041"(3.1479 roundUpTo: 0.005) >>> 3.15isAllDigits "Return whether the receiver is composed entirely of digits and has at least one digit" "'2345' isAllDigits >>> true" "'0002345' isAllDigits >>> true" "'2345.88' isAllDigits >>> false" self do: [:c | c isDigit ifFalse: [^ false]]. self ifEmpty: [^false]. ^ true"a" #[ "b" 1 "c" 2 "d" ] "e"Point classSide >>> Point class(String streamContents: [:s | '||' split: 'foo||bar||2' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:3 s:6 e:8 s:11 e:11 '1020vector03AReturn the hue of this color, an angle in the range [0.0..360.0].xbTReturn the index starting at 1 of the argument in the receiver, zero if not present.40010ee3101Look at Collection>>reduce: for a related method.eMAnswer the next multiple of aNumber toward zero that is nearest the receiver.-10301230difference: aCollection "Answer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important." "(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)" "(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)" "('hello' difference: 'aeiou') >>> 'hll'" | set | set := self asSet removeAllFoundIn: aCollection; yourself. ^ self species withAll: set asArray XXXXXXXXXXXabc15 (#(a b c d e) indexOf: #x) >>> 02.57#(1 2 4) sum >>> 7?Tests-osx-64-Calypso-SystemPlugins-Flags-Queries-Tests-Test.xml119 0:00:02:0010vector0b(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}[:a :b]1^Answer the first n elements of the receiver. Raise an error if there are not enough elements.includesAny: aCollection "Answer whether any element of aCollection is one of the receiver's elements." "(#(10 20 30) includesAny: #(30 40)) >>> true" "(#(10 20 30) includesAny: #(50 40)) >>> false" "(#(10 20 30) includesAny: #()) >>> false" "('hello' includesAny: 'hop') >>> true" "('hello' includesAny: 'pwn') >>> false" aCollection do: [:elem | (self includes: elem) ifTrue: [^ true]]. ^ falsecd3ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'" ^trueAlternativeBlock value1-40 0Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations.11QAnswer a new collection with newElement added (as last element if sequenceable).422Answer whether the receiver contains any elements.Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey. Execute aZeroArgBlock in case one of the key is wrong.W(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'foo:AAnswer whether the tail end of the receiver is the same as suffix+Convert an OrderedCollection into an Array.X([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollection/('hello' surroundedBy: 'abd') >>> 'abdhelloabd'z'((100@200) closeTo: (100@200)) >>> true1-Here 123should % be 6 the name6 of the method2keysAndValuesDo: aBlock "Enumerate the receiver with all the keys (aka indices) and values." "(Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)" 1 to: self size do: [:index | aBlock value: index value: (self at: index)]3'2 between: ( 1 and: 4)' findSelector >>> #between:10243022.0+Character arrowDown isControlOther >>> true#( #[ 0 1000 2 ] )0100000201true & true >>> trueRwith: anObject withAll: aCollection "Creates an array with anObject followed by elements contained in aCollection." "(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4)" | newArray | newArray := self new: aCollection size + 1. newArray at: 1 put: anObject. newArray replaceFrom: 2 to: newArray size with: aCollection. ^newArrayaAEvaluating conjunction -- answer aBoolean since receiver is true.4abetween: #(5 6)420 [ | b | ]:Returns the basename without specified extension (if any) sInclude anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject.?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)?Optimized version of SequenceableCollection>>#withIndexSelect: 00110(false or: [true]) >>> truefoo|::a1010248;Convert to a ByteArray with the ascii values of the string.$(200@200 scaleBy: 2@3) >>> (400@600) 'abc' > 'def' >>> false22one0vector05{ ^ 1 }1E'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> false20vector0-42longonest longone string2400:Answer a Point translated by delta (an instance of Point).0:00:00:00.001000001NConvert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bits100446003asIdentitySet "Return a new IdentitySet based on self." "{ 2. 1+1 } asIdentitySet size >>> 1" "{ 'foo'. ('fo','o') } asIdentitySet size >>> 2" ^(IdentitySet new: self size) addAll: self; yourselfisInsideRectangle: aRectangle "Answer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semantics" "(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false" "(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false" ^ aRectangle containsPoint: self1abnAnswer whether the receiver sorts after aString. The collation order is simple ascii (with case differences).11101+Tests-osx-64-FileSystem-Core-Tests-Test.xmlhello1200vector02Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.0.8u u. 0 :B X 0. u uwithIndexSelect: elementAndIndexBlock "Optimized version of SequenceableCollection>>#withIndexSelect: " "(#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')" | newCollection element | newCollection := self copyEmpty. firstIndex to: lastIndex do: [ :index | (elementAndIndexBlock value: (element := array at: index) value: index) ifTrue: [ newCollection addNoSort: element ] ]. ^ newCollection1AaBbCc0101.25&Character home isControlOther >>> trueZ(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'!(3.1479 roundDownTo: 0.1) >>> 3.1/(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 4XXXor: alternativeBlock "Nonevaluating disjunction -- answer true since the receiver is true." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" ^ self#Float pi radiansToDegrees >>> 180.021!000001033555655585544444444AA999B#[1]#[2]%000000111033BBB5555558887779AAAAAA220RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.new: newSize streamContents: blockWithArg "A variant of #streamContents: where the initial or even final size is given to optimize memory consumption" "(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)" | stream | stream := WriteStream on: (self streamSpecies new: newSize). blockWithArg value: stream. "If the write position of stream is at the end of the internal buffer of stream (originalContents), we can return it directly instead of making a copy as contents would do" ^ stream position = stream originalContents size ifTrue: [ stream originalContents ] ifFalse: [ stream contents ]fromCharacter: aCharacter ifNone: aBlock "For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)" "(KeyboardKey fromCharacter: $a) >>> KeyboardKey A" ^ self keyFromCharacterTable at: aCharacter ifAbsent: [ self named: aCharacter asString asUppercase ifNone: aBlock ]10vector00S ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' 1foo: a x: a y: b [ :a :a :b | | a a b | a + a + bV{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)31'1abc' startsWithDigit >>> true20world4016""""" 130 ')' expected1220251qendsWith: suffix caseSensitive: aBoolean "Answer whether the tail end of the receiver is the same as suffix" "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and suffix are bytes like. Otherwise, if self or suffix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)" "('pharo' endsWith: '' caseSensitive: false) >>> true" "('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> false" "('pharo' endsWith: 'phuro' caseSensitive: false) >>> false" "('pharo' endsWith: 'aRo' caseSensitive: false) >>> true" suffix ifEmpty: [ ^ true ]. aBoolean ifTrue: [ ^self endsWith: suffix ]. self size < suffix size ifTrue: [^ false]. (self class isBytes and: [suffix class isBytes]) ifTrue: [ "Optimized version based on primitive" ^ (self findSubstring: suffix in: self startingAt: self size - suffix size + 1 matchTable: CaseInsensitiveOrder) = (self size - suffix size + 1) ]. suffix withIndexDo: [ :each :index | (self at: self size - suffix size + index) asLowercase = each asLowercase ifFalse: [ ^false ] ]. ^true3#(1 2 3) isSorted >>> trueB(String streamContents: [:s| #() printElementsOn: s]) >>> '()'a3-1201cbe1between: #(0 1)13021321e93e/Answer an Association between self and anObject'abc98' numericSuffix >>> 98Create a color with the given hue, saturation, and lightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and lightness are numbers in [0.0..1.0] where larger values are more saturated or lighter colors. The difference with brightness in the HSV coordinates is that colors go from black at lightness 0, through vivid hues at lightness 0.5, to white at lightness 1. For example, (Color h: 0 s: 1 l: 0.5) is pure red.4humanReadableByteSizeString "Return the receiver as a string with the adequate file size identified, e.g. '50 KB'. The difference with humanReadableByteSISizeString is that the current one counts by 1024 and not 1000." "(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'" "(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'" "(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'" ^ self humanReadableByteSizeStringPrecision: 232 and But use sum or sum: instead!22206310020'n uuuu uuuuu uuu uuuu uuuuu uuuuuuuuuuu1.0b'0002345' isAllDigits >>> true12gEvaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. 1-1 heLlo wOrLdAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.3defpcloseTo: aPoint "Return whether the receiver is close to the argument aPoint. The precision for point holding floats is defined by Float >> #closeTo:precision:. For points holding integer, closeTo: corresponds to equalsTo:" "((100@200) closeTo: (100@200)) >>> true" "((100@201) closeTo: (100@200)) >>> false" ^ (x closeTo: aPoint x) and: [ y closeTo: aPoint y ]| T t | t nn. ^ tpharo appreciate 16r4116r41[Answer the sixth element of the receiver. Raise an error if there are not enough elements.31.0420>> 03J((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $( ||| a20d100300K'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama'1 -9 % 4 >>> 3This implementation is recursive and very canonical. This implementation is intended for demo purposes, but for better performance another version 'factorial' is provided. Hello, World!410001000533334422600A(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)c3reverseWith: aSequenceableCollection do: aBlock "Evaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. " "(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)" self size ~= aSequenceableCollection size ifTrue: [^ self errorSizeMismatch]. self size to: 1 by: -1 do: [:index | aBlock value: (self at: index) value: (aSequenceableCollection at: index)]3+Answer whether the receiver is a ByteString2'bar' asSortedCollection asArray >>> {$a. $b. $r}.41abc3323154 'abc' < 'abc' >>> falseAnswer the receiver's element immediately before target. Answer the result of evaluating the exceptionBlock if target is not an element of the receiver, or if there are no elements before it.w)Optimized version of Collection>>#select:Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter.z21103a := a. [ :a [ :a. a := a40@(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)5-2E(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a''' ](false xor: [true]) >>> true1%(false and: [Error signal]) >>> false10,(#(10 20 30) includesAny: #(30 40)) >>> true71Do nothing on purpose30({1. 2} asBag = {1. 2. 2} asBag >>> false20000112111533334116699AABAAAECCCCDDAAF99888888777G3replaceAll: oldObject with: newObject "Replace all occurrences of oldObject with newObject" "({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e)" | index | index := self indexOf: oldObject startingAt: 1 ifAbsent: [0]. [index = 0] whileFalse: [self at: index put: newObject. index := self indexOf: oldObject startingAt: index + 1 ifAbsent: [0]]1030('*' match: 'zort') >>> true <1p>: <2p> foofoofooa,000011211153333411668889888B8877777777DDCCCE,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6| 1e7ppp X X a: abc3a3123abcb122[((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'0vector0Evaluate aBlock with my elements taken two at a time. If there's an odd number of items, ignore the last one. Allows use of a flattened array for things that naturally group into pairs. See also pairsCollect:2#(1 -2 -4 0) abs >>> #(1 2 4 0)#('a') asCommaString >>> 'a'40 Pharo is <1s>$beginsWith: prefix caseSensitive: aBoolean "Answer whether the receiver begins with the given prefix string" "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self or prefix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)" "('pharo' beginsWith: '' caseSensitive: false) >>> true" "('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> false" "('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false" "('pharo' beginsWith: 'Pha' caseSensitive: false) >>> true" prefix ifEmpty: [ ^true ]. aBoolean ifTrue: [ ^self beginsWith: prefix ]. self size < prefix size ifTrue: [^ false]. (self class isBytes and: [prefix class isBytes]) ifTrue: [ "Optimized version based on primitive" ^ (self findSubstring: prefix in: self startingAt: 1 matchTable: CaseInsensitiveOrder) = 1 ]. prefix withIndexDo: [ :each :index | (self at: index) asLowercase = each asLowercase ifFalse: [ ^false ] ]. ^true2801000[ : | XX n X n X1330elvis !#(1 2 2 3 1 1 1) asBag size >>> 71"Point class instanceSide >>> Point12r1110,select: aBlock "Optimized version of Collection>>#select:" "(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)" | each | ^ self species new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (aBlock value: (each := self at: index)) ifTrue: [ stream nextPut: each ]]]662{{}} isEmpty >>> false nnnnnnnuu4y47 100000000001Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver only those elements for which aBlock evaluates to false. Answer the new collection.(true or: [false]) >>> true| a | [ ^ a ]. a := 10$(#(10) averageIfEmpty: [ 0 ]) >>> 10nuuuu360112228"atLast: indexFromEnd ifAbsent: block "Return element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element" "(#(x y z) atLast: 1 ifAbsent: #a) >>> #z" "(#(x y z) atLast: 4 ifAbsent: #a) >>> #a" ^ self at: self size + 1 - indexFromEnd ifAbsent: block'hello'Message expected[ :a | | a b | ]1((#(10 20 10 30) occurrencesOf: 10) >>> 222a2,(#(11 22 33) before: 22 ifAbsent: 55) >>> 11(#(1 'fred' 2 'charlie' 3 'elmer') pairsCollect: [:a :b | b, ' is number ', a printString]) >>> #('fred is number 1' 'charlie is number 2' 'elmer is number 3')disByteString "Answer whether the receiver is a ByteString" "'abc' isByteString >>> true" ^ trueE(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3b[ :a | b3'Refer to the comment in Collection|do:.longone2[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'510 foo*baz*zort1|Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessaryfrom: startIndex to: endIndex put: anObject "Put anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObject" "({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)" | written toWrite thisWrite | startIndex > endIndex ifTrue: [^self]. self at: startIndex put: anObject. written := 1. toWrite := endIndex - startIndex + 1. [written < toWrite] whileTrue: [ thisWrite := written min: toWrite - written. self replaceFrom: startIndex + written to: startIndex + written + thisWrite - 1 with: self startingAt: startIndex. written := written + thisWrite ]. ^anObject100xy0def(#(1 3 5 7 11 15 23) findBinary: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(nil 1)'1003.147932or even Collections, '2345' isAllDigits >>> true 51111144440vector0nnnuu53('abcdefgh' includesSubstring: 'de' at: 4) >>> true76510002ppp | T | t n. ^ 0 | T | t nn. t 0 sssss s tfalse & true >>> false3.1479100#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) 11join: aSequenceableCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'" ^ (Array with: self) join: aSequenceableCollection30x1100isInitialQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pi" "$' isInitialQuote >>> false" ^ self characterSet isInitialQuote: self'hello** exponent " A shortcut method for raisedTo: " "2 ** 8 >>> 256" "8 ** 2 >>> 64" "2 ** (1/12) >>> 1.0594630943592953" "2 ** -1 >>> (1/2)" ^ self raisedTo: exponentunion: aCollection "Answer the set theoretic union of two collections." "(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSet" "('hello' union: 'world') >>> 'whlorde' " | set | set := self asSet addAll: aCollection; yourself. ^ self species withAll: set asArrayz That is true!335('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true | a | | a(1}2)-3.141-(23 printShowingDecimalPlaces: 2) >>> '23.00'000111213441511ifFalse: alternativeBlock "Since the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." "(true ifFalse: [ true ]) >>> nil" ^nild(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10''('hello' union: 'world') >>> 'whlorde' -"a" [ "b" : "c" x "d" : "e" y "f" | "g" ] "h"01010oselectEverySecond "#(1 2 3 4) selectEverySecond asArray >>> #(2 4) " ^ self selectEvery: [ :i | i \\ 2 = 0 ]do@Tests-osx-64-Calypso-SystemPlugins-Traits-Queries-Tests-Test.xml0 002Ncollect: aBlock "Evaluate aBlock with each of my elements as the argument. Collect the resulting values into a collection that is like me. Answer the new collection. Override superclass in order to use addLast:, not at:put:." "(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)" "(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10)" | newCollection | newCollection := self speciesForTransform new: self size. firstIndex to: lastIndex do: [ :index | newCollection addLast: (aBlock value: (array at: index)) ]. ^ newCollection.In {1} you can escape { by prefixing it with \1.0al50.0110*Note that key and value can be ANY object.3230abcDefgh200.#mySelector asTestSelector >>> #testMySelectorPoint[1,/*comment*/2]>> '''a''''b'''Sunday=1, ... , Saturday=70 X0### ###0232r1000cc1.92841325milliSecond "1 milliSecond printString >>> '0:00:00:00.001'" "(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'" ^ self milliSeconds"(16rFF digitAt: 1 base: 16) >>> 15NReturn the class of the couple class/metaclass. Useful to avoid explicit test.one2wAnswer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements.()313((0@0 corner: 100@100) containsPoint: 0@0) >>> true1xor: alternativeBlock "Answer the value of the alternativeBlock since the receiver is false." "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" ^ alternativeBlock value0a hex: aFloat "Return an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.0" "(Color hex: 0.2) >>> '33'" | str | str := (aFloat * 255) asInteger printStringHex asLowercase. ^ str size = 1 ifTrue: [ '0' , str ] ifFalse: [ str ]ccAbc102 This should be fast: 1. Integer>>to:do: is inlined in the bytecode (no block). 2. The Array>>at: callsite should be monomorph to a primitive method. 32 + foo: - 310.115z 0:01:02:00a!(10 beBetween: 12 and: 20) >>> 121p(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3'1/2 reciprocal >>> 200000100000020445 XX n XX# n X###'hello''world234znak ::x43 ') _ : 220188411H(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de')300-10 0001112131415410findBinaryIndex: aBlock do: actionBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the index as argument If no matching element is found, evaluate exceptionBlock, with the indexes of the 'bounding' elements as arguments. Warning: Might give invalid indexes, see examples below" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 5" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(0 1)'" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' " | index low high test | low := 1. high := self size. [ index := high + low // 2. low > high ] whileFalse: [ test := aBlock value: (self at: index). test = 0 ifTrue: [ ^ actionBlock value: index ] ifFalse: [ test > 0 ifTrue: [ low := index + 1 ] ifFalse: [ high := index - 1 ] ] ]. ^ exceptionBlock cull: high cull: low1015 222200001111312,444 10555000000AAA076BBB666HHH6ECIIICCCC JJJ32221wReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.111(42 digitAt: 2 base: 10) >>> 44.0lastSpacePosition "Answer the character position of the final space or other separator character in the receiver, and 0 if none" "'fred the bear' lastSpacePosition >>> 9" "'ziggie' lastSpacePosition >>> 0" "'elvis ' lastSpacePosition >>> 6" "'elvis ' lastSpacePosition >>> 7" "'' lastSpacePosition >>> 0" self size to: 1 by: -1 do: [:i | ((self at: i) isSeparator) ifTrue: [^ i]]. ^ 04U(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> truehslSaturation "Return the HSL saturation of this color, a value between 0.0 and 1.0." "Color red hslSaturation >>> 1.0" "(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.0" | chroma | chroma := self chroma. "Chroma is zero for black and white, which are the two cases of division by zero below." chroma isZero ifTrue: [ ^ chroma ]. ^ chroma / (1.0 - (self lightness * 2.0 - 1.0) abs)5 factorial >>> 12081This statement is false!110, 'hello' & $x[ :a | aK(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 7c205asSortedCollection "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is the default less than or equal. Note that you should use #sorted if you don't really need a SortedCollection, but a sorted collection." "'bar' asSortedCollection asArray >>> {$a. $b. $r}." "('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}." ^ self as: SortedCollectionG(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)4 -9 \\ 4 >>> 360uscfred10001Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. optimized version for single delimiters.Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison.22nX9 10r89abcd20fghi14The factorial on n is defined as: n * (n-1)*(n-2)*... while n>0. Factorial of 0 is 1. We also know Factorial of 1 and 2 are themselves. This implementation uses a 2-partition algorithm. For a recursive (but slower) implementation see 'slowFactorial' Without verbose detail: If'm an even number,some optimization can be applied: Instead of doing all multiplication we can halving the number of multiplication regrouping terms, so: n*(n-1)*(n-2)*....*3*2*1 can be rearranged as: (n*1)*((n-1)*2)*((n-2)*3)*... And the use the fact n is even to rewrite in a more efficient way. If I'm an odd number then compute for n-1 and multily by n. -1208[ | a b/'between:and:' findSelector >>> #'between:and:'17x%OrderedCollection new capacity >>> 1040022011LOLe02989->3424 factorial >>> 24100-42e103.145b22413%(#(a b c d) allButLast: 2) >>> #(a b)X((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'*Tests-osx-64-NewValueHolder-Tests-Test.xmlWWWWW*W EW*zzzz"'foo' asNewArray >>> 'foo' asArray0vector01255b31 goodby: my: 32{Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences).200xEvaluate aBlock with each of the receiver's elements as the argument. Answer the number of elements that answered true.f3]('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false12.(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)27| | u2 factorial >>> 2~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.15X 1#'abc' asWideString = 'abc' >>> trueU000022333443355336633773388339933AA33BB33CC33DDD33EEE33FFF33GGG33HHH33III33JJJ333LL33309 0[1][2]0.52"(10 printStringBase: 2) >>> '1010'2441a210.0404Q('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 720c1#(a b c d e) middle >>> #cIf I am involved in arithmetic with another Collection, return a Collection of the results of each element combined with the scalar in that expression. Is used to implement Collection>>+, Collection>>-, etc.10>Add each element of aCollection at my end. Answer aCollection.233 (10 printStringBase: 16) >>> 'A'1010-16rA1910bjA variant of #streamContents: where the initial or even final size is given to optimize memory consumption2asColorref "Convert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bits" "(Color red asColorref) >>> 255" "(Color white asColorref) >>> 16777215" ^(self red * 255) asInteger + ((self green * 255) asInteger << 8) + ((self blue * 255) asInteger << 16)6Returns the instance of myself having aString as name.def>(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 3false not >>> true0vector0tunescapeCharacter: aCharacter "Unescape an escaped string. Assume the string has all occurrences of aCharacter are escaped. That is, they are in pairs. This method returns a copy of the string replacing all pairs of aCharacter by a single appearance of it." "See `escapeCharacter:` for the opposite" "('''''' unescapeCharacter: $') >>> ''''" "('''' unescapeCharacter: $') >>> ''" | result stream | result := WriteStream with: ''. stream := ReadStream on: self. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peek ifNotNil: [result nextPut: stream next]]. ^result contents00110004422223006655571 test Sbefore: target "Answer the receiver's element immediately before target. Raise an error if target is not an element of the receiver, or if there are no elements before it (i.e. it is the first element)." "(#(11 22 33) before: 22) >>> 11" "(#(11 22 33) before: 33) >>> 22" ^ self before: target ifAbsent: [self errorNotFound: target] 0 even >>> true20022041000261A 0000222222223<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB' 'abc' >= 'def' >>> falsea::170Answer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important.%((1 to:9 by:2) includes: 4) >>> false12=Tests-osx-64-SystemCommands-RefactoringSupport-Tests-Test.xml1(1 to: 10 by: 2) stop >>> 10includesSubstring: substring "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de') >>> true" ^ substring isEmpty or: [ (self findString: substring startingAt: 1) > 0 ]0do 2 odd >>> falsexc9107zInclude newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message.(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' hello16103(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)((#(x y z) atLast: 1 ifAbsent: #a) >>> #zbetween: #(11 15)Unexpected tokenReturn a color with the given r, g, and b components specified as integers in the range [0..r]. This avoids the floating point arithmetic in the red:green:blue: message and is thus a bit faster for certain applications (such as computing a sequence of colors for a palette).[ a: ]42[ | a a | a := 10. a ]72016r41 Answer 1 since receiver is true.2:. :75jAnswer an array of non-empty substrings from the receiver separated by one or more whitespace characters.3fromRgbTriplet: list "Return a color from its RGB components (0 - 1.0 floats)" "(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)" ^ self r: list first g: list second b: list last'%' expandMacros >>> ''110 Xuuuuuu Xuu ndi0223(String streamContents: [:s | 'Pharo is cool' splitOn: Character space indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '6 slowFactorial >>> 720XanyOne "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." "#(1 2 3) anyOne >>> 1" " ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' " ^ self firstabcfred(1 digitAt: 2 base: 10) >>> 0('abddf' indexOf: $k) >>> 04negated "Negated value of all elements in the collection" "#(1 2 3) negated >>> #(-1 -2 -3)" "{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}" ^ self collect: [ :a | a negated ]300!((100@200) < (330@100)) >>> false23 (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0)2531averageIfEmpty: aBlock "This method return the average of the collection if it is not empty. In the other case, it return the value of the block. It means the user the user of this method decide of the return value." "(#(10) averageIfEmpty: [ 0 ]) >>> 10" "(#() averageIfEmpty: [ 0 ]) >>> 0" "({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))" "({} averageIfEmpty: [0@0]) >>> (0@0)" self ifEmpty: [ ^ aBlock value ]. ^ self averagezz#(x y z) size >>> 3 ###'hello''10 [ :a ::b | ]^Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true.2011#*baz*hello3 between: 6e209720#(Color red diff: Color red) >>> 0.0abc(#(11 22 33) before: 22) >>> 11Point[1,/*comment*/2]de4 Hello--world-11102561010, 'hello', $xO( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSet18copyWithout: oldElement "Answer a copy of the receiver that does not contain any elements equal to oldElement." "('fred the bear' copyWithout: $e) >>> 'frd th bar'" "(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)" "((10 to: 13) copyWithout: 11) >>> #(10 12 13)" ^ self reject: [:each | each = oldElement]2! pppp AAA pppp AAA ^ aaa s aaa . \at: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ self at: firstKey at: secondKey ifAbsent: [ self errorKeyNotFound: secondKey ]2WReturns a symbol that is a valid selector by removing any space or forbidden characters10false | true >>> true3220nXn011#( # ## #ab # 10 # #'.' 10 )01(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)11-0.9iNote: The original code used #skip:, but some streams do not support that, and we don't really need it.$} isControlOther >>> falseoccurrencesOf: anObject "Answer how many of the receiver's elements are equal to anObject." "(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 4" ^ (self includes: anObject) ifTrue: [ contents at: anObject] ifFalse: [ 0 ]/Answer how many elements the receiver contains.e12974 Point class isClassSide >>> true1 true := true1{ 1. 2 }"" 193foo4indexOf: anElement "Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) indexOf: #c) >>> 3" "(#(a b c d e) indexOf: #x) >>> 0" ^ self indexOf: anElement ifAbsent: 0%(false and: [Error signal]) >>> falseabcclassSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ selfppp Xu 1e1e11000##"""####"""###"""#####"""0pharo1 ((100@200) < (330@400)) >>> true1300460077900AEEECbefore: target ifAbsent: exceptionBlock "Answer the receiver's element immediately before target. Answer the result of evaluating the exceptionBlock if target is not an element of the receiver, or if there are no elements before it." "(#(11 22 33) before: 22 ifAbsent: 55) >>> 11" "(#(11 22 33) before: 44 ifAbsent: 55) >>> 55" | index | index := self indexOf: target. ^ (index = 0 or: [index = 1]) ifTrue: [exceptionBlock value] ifFalse: [self at: index - 1]11000001111110335555554446 foo23bazop(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'0^ 5M(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'd4136@5100aeiou311unzipped "Assuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data." "#[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0] unzipped >>> #[1 2 3]" ^ (GZipReadStream on: self) upToEnd232454Tests-osx-64-Coverage-Test.xml1bad stop indexKExecutes aBlock on each of the receiver's elements except for the first one232768 bytesCount >>> 2.00######"""##"""#########"""###"""##"""###"""05001000depdetect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true." "({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)" "((104 to: 120) detect: #isPrime) >>> 107" "('Hello!' detect: #isLowercase) >>> $e" ^ self detect: aBlock ifNone: [ self errorNotFound: aBlock ]15XAnswer the result of evaluating aBlock with all of the overlapping pairs of my elements.30(1)(2)d[ ^ 1. 2. ^ 3 ]$(Color red asHexString) >>> 'FF0000'S#[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0] unzipped >>> #[1 2 3]%2-10 hexString >>> '-16rA'2Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison.115X(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)20-('foo*baz*zort' match: 'foobazort') >>> false2Nd | | . - 12B('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''1XX ctoJsonString: object "Return a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary)" "(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{""foo"":1},{""bar"":2}]'" ^ String streamContents: [ :stream | self put: object asJsonOnStream: stream ](#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')d2`({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)10| aBoolean "Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false." "false | true >>> true" "false | false >>> false" ^aBooleanETests-osx-64-Calypso-SystemPlugins-Deprecation-Queries-Tests-Test.xml`('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'MAnswer a String made up from the receiver whose characters are all lowercase.32 (1 sign);bar2030 abddf bcdef.(#(a b c d e) indexOf: #c startingAt: 4) >>> 00:B|||b0 00010220300!(2 ifNotNil: [ :o | o + 3]) >>> 5pairsCollect: aBlock "Evaluate aBlock with my elements taken two at a time, and return an Array with the results" "(#(1 'fred' 2 'charlie' 3 'elmer') pairsCollect: [:a :b | b, ' is number ', a printString]) >>> #('fred is number 1' 'charlie is number 2' 'elmer is number 3')" ^ (1 to: self size // 2) collect: [ :index | aBlock value: (self at: 2 * index - 1) value: (self at: 2 * index) ]3ddmmyyyy "Print the receiver in standard French format dd/mm/yyyy." "(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018'" ^ self printFormat: #(1 2 3 $/ 1 1) 0001023304003100100 216true asBit >>> 1.#at:putNext: asTestSelector >>> #testAtPutNext2U({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollection 222222333333.(#(a b c d e) indexOf: #c startingAt: 2) >>> 3150122u u. X X . X X10, 15, 20 and 251 foo;23(#(1 2) anySatisfy: [ :each | each even ]) >>> trueReturns the keywords of the provided selector. Assumes the reciever is a valid keyword based selector (@reciever isKeyword > true). Prefer using Symbol>>#keywordsStrict if you're not sure if the reciever is keyword-based.4zz10102 between: 0 and: 4true | false >>> true0312m(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)~Returns #left, #right or #center if the otherPoint lies to the left, right or on the line given by the vector from 0@0 to self0:B :Xziggie42-2-1Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed.110111"'3123' isAllAlphaNumerics >>> true10007 (10 'hello')x3102.3029490834938990=Answer whether the final character of the receiver is a colon#(1)#(2)x(8 raisedTo: 2) >>> 64220 Hello, world!$$h11-1"A" - 1abs-1"B" - 1max:-1"C"[ :a | $' isInitialQuote >>> false1whlorde10.5l({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollection1Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan0 'Foo''Bar'00n0X0n0136Collection size and block argument count do not match.1112400f11 factorial >>> 11variable expected in assigment001000226444455220077842 825307441 aa4PConverts a method selector into a test selector in form of #testOriginalSelector655057worldb 311112200445aRo314.Results are not defined non-integer arguments.4`Answer a copy of the receiver that does not contain any elements equal to those in aCollection.100.5112digitAt: anExponent base: base "Return number that represents digit at given position." "(42 digitAt: 2 base: 10) >>> 4" "(42 digitAt: 1 base: 10) >>> 2" "It is always a number or zero:" "(16rFF digitAt: 1 base: 16) >>> 15" "(1 digitAt: 2 base: 10) >>> 0" "Results are not defined for base smaller than 2 and non-integer arguments." ^ self // (base raisedToInteger: anExponent - 1) \\ basea15;Return whether the receiver is one of these characters: _2r00101000 highBit >>> 6| a | [ a := 10 ]. ^ a\withIndexDo: elementAndIndexBlock "Just like do: except that the iteration index supplies the second argument to the block" "(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)" 1 to: self size do: [ :index | elementAndIndexBlock value: (self at: index) value: index ]31000ppp < <<<< n>> 570ppp ^ 0 :B | 1 :B | b 1 ssssss nn s b 0 ssssss n128221a43'98abc' numericSuffix >>> 0100111000255XReturn the middle element, or as close as we can get. The collection must not be empty.30 printStringHex >>> '1E'1@(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 6020d2IasBit "Answer 0 since the receiver is false." "false asBit >>> 0" ^ 0310a || 'abcd' asFourCode >>> -513645724#() size >>> 052010010!#(a b c d e f g h i) sixth >>> #fC(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.136919958784000124abc41aa%OrderedCollection new capacity >>> 1071JResults are not defined for base smaller than 2 and non-integer arguments.05d2001XnXnX0allSentMessagesREvaluates the argument with the read stream of the collection. Answers the result.'|' or parameter expected2b4add: newObject before: oldObject "Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject." "(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)" ^ self insert: newObject before: (self find: oldObject)b001040shuffledBy: aRandom "Durstenfeld's version of the Fisher-Yates shuffle" "({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)" ^ self copy shuffleBy: aRandom30423xa1 eOtherwise use logarithmsb1628#one41G('ab cd ab ef ab' copyReplaceAll: 'ab' with: 'zk') >>> 'zk cd zk ef zk'9 -5136457245(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4)121111100001111110004444443335002101 a1a1M('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 0100/ arg "Pairwise quotient of two sequenceable collections of the same length." "#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}" "{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}" ^ arg adaptToCollection: self andSend: #/20 (#(a b c d e) indexOf: #c) >>> 3K(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 3136strings1 100addAll: aCollection "Add each element of aCollection at my end. Answer aCollection." "(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)" ^ self addAllLast: aCollection0vector0-10!"a" { "b" 1 "c" . "d" 2 "e" } "f"21002211{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)}:metaLevelForHierarchyOf: aClass "Subclasses should decide what meta level of given class should be used to retrieve/build hierarchy. For example superclass hierarchy of ProtoObject class can stop at it according to instance side hierarchy" "ProtoObject superclass >>> nil" "Or it can follow full superclass chain which will ends at Object and ProtoObject" "ProtoObject class superclass >>> Class" "This method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchy" self subclassResponsibility'for the style (aa max:bb) with no space52(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 0J('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}.12601213100102a@ foo3112002270$((1/3)@(2/2)) isFloatPoint >>> false$$ isCurrencySymbol >>> trueu s aa5^This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects.4Evaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return false20.5Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.301eParse and materialize the STON representation in the character readStream, skipping C-style comments^ u23runningMin: aSubsetSize "Running min. See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}" ^ self running: [ :subset | subset min ] of: aSubsetSize1235p( #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]]) asArray >>> #(#(1) #(2 3 1 6 1) #(2 3 4))0oops10e5Return a String with the STON serialization of objectAnswer an instance of me containing the same associations as the argument. If the same key appears twice, the last one enumerated will win1100(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'0n sssss n0Xsss21012^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.'AA' asHex >>> '16r4116r41'abc'''''457.125100.05Print inside string quotes, doubling inbedded quotes.Color red green >>> 0.017Return a String representation of this number in base b. For SmallIntegers, it is more efficient to print directly in a String, rather than using a Stream like super.Answer an Array whose elements are the elements of the receiver. Implementation note: Cannot use ''Array withAll: self'' as that only works for SequenceableCollections which support the replacement primitive.2142120192911015'('''''' unescapeCharacter: $') >>> ''''.(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2),Tests-osx-64-Collections-Weak-Tests-Test.xml5((0@0 corner: 100@100) containsPoint: 50@50) >>> true24112(100@200) ceiling >>> (100@200)101 October 2018-522(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}5thirde1kReturn the index'th element of me if possible. Return the first or last element if index is out of bounds.+(2 raisedTo: (1/12)) >>> 1.05946309435929531289#( #( 0 1r2 3 )7-3192016e1#(a b c) asOrderedCollection asArray >>> #(a b c)2008-0.54010-(#(10 20 30) includesAny: #(50 40)) >>> falsepppp Unmatched ' in string literal.8 1000000002018a, b, c&cull: anArg "Execute the receiver with one or zero arguments depending on the receiver" "([ 12 ] cull: 13)>>> 12 " "([:x | x + 12] cull: 3)>>> 15" ^numArgs = 0 ifTrue: [self value] ifFalse: [self value: anArg]four&('hello' includesAny: 'pwn') >>> false,Tests-osx-64-VariablesLibrary-Tests-Test.xml [ :a | b ];(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'41[ 1indexOfAnyOf: aCollection startingAt: start ifAbsent: exceptionBlock "Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. Note: it is user responsibility to provide aCollection that behaves relatevily fast when asked for includes: (like a Set)" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 7" start to: self size do: [:index | (aCollection includes: (self at: index)) ifTrue: [^ index]]. ^ exceptionBlock value,Tests-osx-64-Kernel-CodeModel-Tests-Test.xml>asDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)" "{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)" "#() asDictionary >>> Dictionary new" ^ self as: DictionarySystem70((3 to: 9 by: 2) allSatisfy: #isPrime) >>> false(false or: [3]) >>> 333/(23.4567 printShowingDecimalPlaces: 0) >>> '23'0.0 abcabcabc-3200$' tokenish >>> false-('foo*baz*zort' match: 'foobazzort') >>> true::a8Return a String representation of this number in base b.-2.5670227e3:. :. :a8((OrderedCollection new add: 34; yourself) at: 1) >>> 34235abc13120102812({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))210216116rA(('hello' allSatisfy: #isLetter) >>> true1310awordBefore: anIndex "('word before index' wordBefore: 4) >>> 'word'" "('word before index' wordBefore: 16) >>> 'inde'" | sep tok | tok := false. sep := anIndex. [ sep > 0 and: [ (self at: sep) tokenish ] ] whileTrue: [ tok := true. sep := sep - 1 ]. ^ tok ifTrue: [ self copyFrom: sep + 1 to: anIndex ] ifFalse: [ String new ]10.5'('Hello' detectMax: #asciiValue) >>> $o20103(10@10 corner: 100@100) >>> (10@10 corner: 100@100)Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true. If none evaluate to true, then evaluate the argument, exceptionBlock.7 00002222266651.00vector0 #(foo bar)2!EccentricityThreshhold reciprical1610X X X X-13def14 'abc' <= 'def' >>> true6210teg7201#111N|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 202CWrite the STON serialization of object to the character writeStream519& aBoolean "Evaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true." "true & true >>> true" "true & false >>> false" "false & true >>> false" "false & false >>> false" self subclassResponsibility | TTT | ttt n . ^ ttt . d(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))c102abcB({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)No Groupbozo0vector0endsWithAColon "Answer whether the final character of the receiver is a colon" "'displayStringOn:' endsWithAColon >>> true" "'displayStringOn:foo' endsWithAColon >>> false" ^ self notEmpty and: [ self last == $: ]D(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSet3isd##() asDictionary >>> Dictionary new22!(#() collect: [:x | x+1]) >>> #()Return a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator.212=do: aBlock without: anItem "Enumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item" "(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030'" ^ self do: [ :each | anItem = each ifFalse: [ aBlock value: each ] ]888 000999060AAA070BBB00 CCC0vector2032204 #(3 1 4 2) sorted >>> #(1 2 3 4)3230vector0(#(11 22 33) atWrap: 3) >>> 333026[ | ]@Answer whether the receiver's first character represents a digit(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)a := a. [ :a | [ :a | ]. a := a0.5c11300110.0and: alternativeBlock "Nonevaluating conjunction -- answer with false since the receiver is false." "(false and: [true]) >>> false" "(false and: [Error signal]) >>> false" ^self'Tests-osx-64-Zinc-Zodiac-Tests-Test.xml between:and:B('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> false31 a digit between 0 and 1 expectedXX XX # X # X Xx1122(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}d2!Character lf isSeparator >>> true5XX n n foo: bar: \Format the receiver by interpolating elements from collection, as in the following examples:001133201431113a6$(#(a b c d) allButFirst: 3) >>> #(d)2sum: aBlock "This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects." "(#(1 -4 -10 1) sum: #abs) >>> 16" "({1@ -4. -10@1} sum: #abs) >>> (11@5)" "(#() sum: #abs) >>> 0" ^ self sum: aBlock ifEmpty: [ 0 ]120 . 504234{1)2}17216// aNumber "Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division." "9//4 >>> 2" "-9//4 >>> -3" "-0.9//0.4 >>> -3" ^(self / aNumber) floor25floor "Answer a Point that is the receiver's x and y floor. Answer the receiver if its coordinates are already integral." "(100@200) floor >>> (100@200)" "(100.1@200.9) floor >>> (100@200)" self isIntegerPoint ifTrue: [ ^ self ]. ^ x floor @ y floor000000000000000000world2Answer the index of the receiver's first element, such that that element equals the first element of sub, and the next elements equal the rest of the elements of sub. Begin the search at element start of the receiver. If no such match is found, answer the result of evaluating argument, exceptionBlock.7Make some empty slots at the front of the array. If we have more than 50% free space, then just move the elements, so that the first 50% of the slots are free, otherwise add new free slots to the front by growing. Precondition: firstIndex = 1Foo'Barc0:B X010!('pharo' beginsWith: '') >>> true!(10 storeStringBase: 10) >>> '10'32'PhaRo' asLowercase >>> 'pharo'W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'100.01foo: ('foo*' match: 'bozo') >>> falsewReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.qcollect: aBlock into: aCollection "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection." "({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}" "('hello' collect: #asciiValue into: Set new) >>> #(104 101 108 111) asSet" ^aCollection fillFrom: self with: aBlock)Optimized version of Collection>>#reject:98 001000223| self | self := 1. ^ self1Negative numbers can't be raised to float powers.20060.012 #hello#world01 #( #[ 0 1 2 ]2('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 01|a:|dThat is false!b*Return the minimum value of the collection{1@2} copyEmpty >>> #() 9/28/20181.0(nil)findSelector "Extract a selector with keyword parts from the receiver. While this doesn't give a true parse, in most cases it does what we want, in where it doesn't, we're none the worse for it." "'isSymbol' findSelector >>> #isSymbol" "'x isSymbol' findSelector >>> nil" "'x isSymbol: 33' findSelector >>> #isSymbol:" "'between:and:' findSelector >>> #'between:and:'" "'2 between: 0 and: 4' findSelector >>> #'between:and:'" "'2 between: ( 1 and: 4)' findSelector >>> #between:" "'( 1 and: 4)' findSelector >>> nil" | sel possibleParens | sel := self trimBoth. sel := sel copyReplaceAll: '#' with: ''. sel := sel copyReplaceAll: '[' with: ' [ '. (sel includes: $:) ifTrue: [sel := sel copyReplaceAll: ':' with: ': '. "for the style (aa max:bb) with no space" possibleParens := sel findTokens: Character separators. sel := self species streamContents: [:s | | level | level := 0. possibleParens do: [:token | | n | (level = 0 and: [token endsWith: ':']) ifTrue: [s nextPutAll: token] ifFalse: [(n := token occurrencesOf: $( ) > 0 ifTrue: [level := level + n]. (n := token occurrencesOf: $[ ) > 0 ifTrue: [level := level + n]. (n := token occurrencesOf: $] ) > 0 ifTrue: [level := level - n]. (n := token occurrencesOf: $) ) > 0 ifTrue: [level := level - n]]]]]. sel isEmpty ifTrue: [^ nil]. sel isOctetString ifTrue: [sel := sel asOctetString]. Symbol hasInterned: sel ifTrue: [:aSymbol | ^ aSymbol]. ^ nil126[ :a bxcp X0 ^ n 012!777 00888000999000AAA000BBB00 CCC5indexOf: anElement ifAbsent: exceptionBlock "Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 3" "(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 7" ^ self indexOf: anElement startingAt: 1 ifAbsent: exceptionBlock131FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]1one' ' size >>> 2string215a8((0@0 corner: 100@100) containsPoint: 100@100) >>> false316rA3Class structural inspection - Class/Metaclass shift3compare: aString "Answer a comparison code telling how the receiver sorts relative to aString: 1 - before 2 - equal 3 - after. The collation sequence is ascii with case differences ignored. To get the effect of a <= b, but ignoring case, use (a compare: b) <= 2." "('aa' compare: 'ab') >>> 1" "('aa' compare: 'aa') >>> 2" "('ab' compare: 'aa') >>> 3" ^self compare: aString caseSensitive: false1565505AcopyReplaceAll: oldSubstring with: newSubstring asTokens: ifTokens "Answer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring. ifTokens (valid for Strings only) specifies that the characters surrounding the replacement must not be alphanumeric (space). When ifTokens is set, it means that the replacement will not occur inside word." "('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'" "('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string'" | aString startSearch currentIndex endIndex | aString := self. startSearch := 1. [(currentIndex := aString indexOfSubCollection: oldSubstring startingAt: startSearch) > 0] whileTrue: [endIndex := currentIndex + oldSubstring size - 1. (ifTokens not or: [(currentIndex = 1 or: [(aString at: currentIndex-1) isAlphaNumeric not]) and: [endIndex = aString size or: [(aString at: endIndex+1) isAlphaNumeric not]]]) ifTrue: [aString := aString copyReplaceFrom: currentIndex to: endIndex with: newSubstring. startSearch := currentIndex + newSubstring size] ifFalse: [ ifTokens ifTrue: [startSearch := currentIndex + 1] ifFalse: [startSearch := currentIndex + newSubstring size]]]. ^ aString2433333330worldinstanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self subclassResponsibilitylAnswer the character position of the final space or other separator character in the receiver, and 0 if none*Return collection printed as 'a, b and c' a(100 @ -200) abs >>> (100@200)40pharo110230<({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)200 true. := true0000000000000000abcdefgh'{1. 2} asSet = {1. 2. 2} asSet >>> trueXXXXu4333326<2#() asBag = Bag new >>> true5161add: newObject after: oldObject "Add the argument, newObject, as an element of the receiver. Put it in the sequence just succeeding oldObject. Answer newObject. Raises an error if oldObject is not found" "(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)" "(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)" ^self insert: newObject before: (self find: oldObject) + 131'hello' surroundedBySingleQuotes >>> '''hello'''+#(1 2 3) asOrderedCollection capacity >>> 310a09 foo: arg ^ arg min: arg + 2; abs500.919843597262952122123whatevera;(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSett({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollection792abc1/ "a" foo: "b" x "c" bar: "d" y "e" ^ "f" x "g" 230000222222266866555 #[ 1 } 2 ]8(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700'=Move the element at oneIndex to anotherIndex, and vice-versa.31&#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)1 highBit "Answer the index of the high order bit of the receiver, or zero if the receiver is zero. Raise an error if the receiver is negative, since negative integers are defined to have an infinite number of leading 1's in 2's-complement arithmetic. Use >>highBitOfMagnitude if you want to get the highest bit of the magnitude." "2r00101000 highBit >>> 6" "0 highBit >>> 0" self < 0 ifTrue: [^ self error: 'highBit is not defined for negative integers']. ^ self highBitOfPositiveReceiver3(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSet20#Fast initialization with the items of a given array. This initializes elements faster that the generic withAll: or newFrom: methods. The main selling point is that dynamic arrays, like {1. 2. 3}, are really fast in Pharo. So other collections can be easily and efficiently initialized with `{1. 2. 3} asFoo` syntax. Important: Subclasses of Collection that redefine withAll: or newFrom: should also redefine this method either by having a proper implementation (specific to Arrays) or by calling the redefined versions of withAll:/newFrom:.11 XXX30(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 4272B#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)darker001123456789AA00.01"a" 1 "b". "c" 2 "d"1114/Tests-osx-64-NumericInterpolator-Tests-Test.xml23isUnary "Answer whether the receiver is an unary message selector." "#new isUnary >>> true" "#>> isUnary >>> false" "#between:and: isUnary >>> false" ^ self precedence = 110100 f, o and o;Message sending and code execution - Runtime and Evaluationhello3zz200000111103355554446-452rx """ ^ """ n """ V( #('string1' #('string2' 'string3')) flattened ) >>> #('string1' 'string2' 'string3')10070.005zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal412019340e ) ] }c0vector02324123300vector0N(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'11+#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}5103Unescape an escaped string. Assume the string has all occurrences of aCharacter are escaped. That is, they are in pairs. This method returns a copy of the string replacing all pairs of aCharacter by a single appearance of it.4a1001, 2, 323+('aBc' asWideString sameAs: 'abc') >>> true0.1213333false asBit >>> 032.567&atAll: indexArray putAll: valueArray "Store the elements of valueArray into the slots of this collection selected by indexArray." "({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)" indexArray with: valueArray do: [:index :value | self at: index put: value]. ^ valueArray!(111/100 round: 2) >>> (111/100) dAssuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data. 00001111111021X X X 1('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' 1009decimalDigitAt: anExponent "Return number that represents digit at given decimal position." "(42 decimalDigitAt: 2) >>> 4" "(42 decimalDigitAt: 1) >>> 2" "It is always a number or zero:" "(1 decimalDigitAt: 2) >>> 0" "Results are not defined non-integer arguments." ^ self digitAt: anExponent base: 10148(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 3'' asLowercase >>> ''513b13second "Answer the second element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) second >>> #b" ^ self at: 20X106'2 between: 0 and: 4' findSelector >>> #'between:and:'s:2(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)afoo3zortthenfoo3zort 0:00:01:02201012Literal constant expected^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.Since the condition is false, answer the value of the false alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line.1+^20W EW%(AsciiCharset toUppercase: $!) >>> $!2Negation--answer false since the receiver is true.newFrom: aDictionaryOrCollectionOfAssociations "Answer an instance of me containing the same associations as the argument. If the same key appears twice, the last one enumerated will win" "(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)" | newDictionary | newDictionary := self new: aDictionaryOrCollectionOfAssociations size. aDictionaryOrCollectionOfAssociations associationsDo: [:x |newDictionary add: x]. ^ newDictionaryabcd*baz%Point class classSide >>> Point classcee10true & true >>> true2013$} isControlOther >>> false1035 test [ ]1DeHello30342/Tests-osx-64-NautilusRefactoring-Tests-Test.xml*Tests-osx-64-EpiceaBrowsers-Tests-Test.xml(('salkjsdlkgfee' findString: 'al') >>> 22"(10 printStringBase: 2) >>> '1010'a6(Date year: 2018 month: 9 day: 28) weekday >>> #Friday''foo' asCommaStringAnd >>> 'f, o and o'000de0a(false xor: [true]) >>> true2r101(false eqv: true) >>> falseHello34b1 ||X u00100201%(STON toString: 1@2) >>> 'Point[1,2]'qselectEveryFirst "#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) " ^ self selectEvery: [ :i | (i+1 \\ 2) = 0 ]Same as ifTrue:ifFalse:.(1)2232(23.5698 printShowingDecimalPlaces: 2) >>> '23.57'*(-0.5 arcTan: -0.5) >>> -2.3561944901923451#name: asMutator >>> #name:1.0#( #( 0 1 2 ) )b:Answer whether anObject is one of the receiver's elements.4 x isSymbol20a1pppp Xtrue not >>> false1abc4Use a proper symbol literal028 October 2018* "a" | "b" x "c" | "d" x "e" := "f" 5 "g" 30 slowFactorial >>> 1Extract items from the receiver and use them as arguments of aBlock. Signal an error (ArgumentsCountMismatch) when the arguments count of aBlock does not match the receiver size.identityIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 3" "(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 7" 1 to: self size do: [:i | (self at: i) == anElement ifTrue: [^ i]]. ^ exceptionBlock value302'Tests-osx-64-BeautifulComments-Test.xml130$0 isDigit >>> true423400.01 0:B|||Xb01subtractDays: dayCount "((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'" ^ (self asDateAndTime - (dayCount days)) asDate\(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection0.0130Missing opener for closer: ]110oopswe0 | a | ^ a53'({1. 2. 3} as: Set) >>> #( 1 2 3) asSet31E(OrderedCollection new add: 42; yourself) class >>> OrderedCollection ab ab ac dedclo(('ab ab ac de' howManyMatch: 'ab') >>> 2<{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}10131(42 decimalDigitAt: 1) >>> 2100006 (1]2)bad start index38false | false >>> false#(2 6 7) average >>> 5 a.(#(40 41 42) asOrderedCollection at: 1) >>> 4012410-41Answer a comparison code telling how the receiver sorts relative to aString: 1 - before 2 - equal 3 - after. The collation sequence is ascii with case differences ignored. To get the effect of a <= b, but ignoring case, use (a compare: b) <= 2.#('a') asCommaStringAnd >>> 'a'43.14795test te stringSeptember 2018&Character newPage isSeparator >>> true442I#(7 42 7 42 9) asOrderedCollection removeDuplicates asArray >>> #(7 42 9)1C(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 12400122043Return a pair. It is handy to support the tweaking of pharo doc expression. A pharo doc expression is a comment as the following one:2 between: ( 1 and: 4)Sort the given range of indices using the mergesort algorithm. Mergesort is a worst-case O(N log N) sorting algorithm that usually does only half as many comparisons as heapsort or quicksort.2Answer whether the receiver can be represented as a byte string. This is different from asking whether the receiver *is* a ByteString (i.e., #isByteString)c2 reciprocal >>> (1/2)RCount the number of characters in a substring that matches up in self and aString.335000102'Return whether the receiver is a digit.200.910;Message sending and code execution - Runtime and EvaluationXn. Xu. X n. X"""n2oopsEvaluate aBlock for each element and remove all that elements from the receiver for that aBlock evaluates to true. Use a copy to enumerate collections whose order changes when an element is removed (i.e. Sets).123451 #(a b z d) sorted >>> #(a b d z)12 abab ac de11XX n120;({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)DReturn whether the receiver is one of these characters: $ and euro'hello'' foo||bar||2B('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> falsei (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'210341!foo: a ^ [ :a | a ] value: 10 + aJExecutes aBlock on each of the receiver's elements except for the last one7-3 odd >>> true [ 1 }. 2 ]9('pharo' beginsWith: 'Pha' caseSensitive: false) >>> true1FooBarBaz { #foo : 100 }B 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones'  ||Xu uWe1#[ 1 2 ]e101 #[ 1 1.0 2 ]storeStringHex "Returns a string representation of the receiver in base 16 in a way that executing it will return the receiver." "10 storeStringHex >>> '16rA'" ^ self storeStringBase: 16{Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self.64(( 1 > 2) eqv: false) >>> trueit'em vs 'it''em'20D(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20T#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection1VConvert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase.1nuun s nssn s ns nn*((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)-16rA-nnnnXnnoEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given itema0003corner: aPoint "Answer a Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle." "(10@10 corner: 100@100) >>> (10@10 corner: 100@100)" ^ Rectangle origin: self corner: aPoint22021000 """ ppp """ n """. """ ^ n """ #( 1 two #( 3 ) )9(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 553twoz00211130de128.*(#(16 17 17 16 18 17 18 19 19 19 18 19 19 20 19 20 19 20 20 20 19 20) groupsOf: 7 atATimeCollect: [ :x | x ]) >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20 19))11000002XXXXXX'a''b'PhaRo& aBoolean "Evaluating conjunction -- answer false since receiver is false." "false & true >>> false" "false & false >>> false" ^self 100000000.0TThis is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. The receiver should include only numbers. Different from the sum implementation, the default value is zero. While sum is more general, sumNumbers is meant to support the most often encountered use case of dealing with numbers.1i743(#(11 22 33) atWrap: 2) >>> 22202a10yAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.10sorted: aSortBlockOrNil "Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison." "(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)" "(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1)" "(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)" ^self copy sort: aSortBlockOrNil$Returns a number between 0.0 and 1.00131phuro113.14159204:a0100vector00def1\\ arg "Pairwise integer modulo of two sequenceable collections of the same length." "#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0)" "{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}" ^ arg adaptToCollection: self andSend: #\\absi0abc10030and: alternativeBlock "Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true." "(true and: [ false ]) >>> false" "(true and: [ true ]) >>> true" ^ alternativeBlock value'foo: a ^ [ | a | a := 10. a ] value + aifTrue: alternativeBlock "Answer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'" ^alternativeBlock value201.00 GBPerform an action specified as aBlock to each of the elements of the receiver that have been split using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.1111 foo < + > Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the highest magnitude. If collection empty, return nil. This method might also be called elect:.1003s:1 e:5 s:7 e:8 s:10 e:13 3<#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}1 abd hello abd 1th is is2 9 a stRI4pharo!$Optimized version based on primitive!'foo' asCommaString >>> 'f, o, o'si40abc0Uppp ^ 0 :BB :BB :BB :BB :BB :BB :BB :BB :BB :BBB :BBB :BBB :BBB :BBB :BBB :BBB | bb 03?Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error.911' ' isNotEmpty >>> true.|a| a := #(1 2 3). a asNewArray == a >>> false111 + 2(1 to: 10) copyEmpty >>> #()`(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')2333-1929hel%(AsciiCharset toLowercase: $!) >>> $! #( 1 #+ 2134305 Not found10000vector02toString: object "Return a String with the STON serialization of object" "(STON toString: 1@2) >>> 'Point[1,2]'" ^ String streamContents: [ :stream | self put: object onStream: stream ]41>({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)The Rolling Stones30 *foo#zortthis string will be trimmed3200G(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -117(RPackage named: 'MockPackage') isTestPackage >>> falseone33x9######200nXn0!'ABA' asByteArray >>> #[65 66 65]20[ :aaa :bbb | | ccc ddd | aaa ]130701027.5-910022S(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)0.020100033333a({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4'3'1.234' asInteger >>> 110100/(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4n uuuuuuu Xuu  XXXXXX433%printStringBase: b "Return a String representation of this number in base b. For SmallIntegers, it is more efficient to print directly in a String, rather than using a Stream like super." "(10 printStringBase: 10) >>> '10'" "(-10 printStringBase: 10) >>> '-10'" "(10 printStringBase: 2) >>> '1010'" "(10 printStringBase: 16) >>> 'A'" self < 0 ifTrue: [^ '-' , (self negated printStringBase: b)]. self < b ifTrue: [^ String with: (Character digitValue: self)]. ^ self printStringBase: b nDigits: (self numberOfDigitsInBase: b)3&Convert the receiver in a date object.JReturn the green component of this color, a float in the range [0.0..1.0].2324%{1@50. 10@ -10. 5@5} range >>> (9@60)findBinary: aBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 " ^ self findBinary: aBlock do: [ :found | found ] ifNone: [ self errorNotFound: aBlock ]helloFirst N characters23111foo:X X@foo:51023-4// arg "Pairwise integer quotient of two sequenceable collections of the same length." "#(10 20 30) // #(1 3 4.0) >>> #(10 6 7)" "{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)}" ^ arg adaptToCollection: self andSend: #//9Tests-osx-64-NewTools-Debugger-Breakpoints-Tools-Test.xml301100cand: alternativeBlock "Nonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument." "(true and: [true]) >>> true" "(true and: [false]) >>> false" "(false and: [true]) >>> false" "(false and: [Error signal]) >>> false" self subclassResponsibilitydeg001002200.0For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)&Tests-osx-64-Commander2-Tests-Test.xmlfoo1 1103Tests-osx-64-Zinc-Character-Encoding-Tests-Test.xml5'(#(1 2 3 4 5) beginsWith: #()) >>> true11'abc' \ 'cbe' >>> 'a'.310detect: aBlock ifFound: foundBlock ifNone: exceptionBlock "Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock and answer the result of this evaluation. If none evaluate to true, then evaluate exceptionBlock." "(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -2" "(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 0" "('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $E" "('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X" self do: [ :each | (aBlock value: each) ifTrue: [ ^ foundBlock cull: each ] ]. ^ exceptionBlock value3312two21.5-1 Not found4600.005 That is true! #(a b c d e f g h ) first >>> #a1150 0:B| ||b0translateBy: delta "Answer a Point translated by delta (an instance of Point)." "((100@200) translateBy: 5@10) >>> (105@210)" ^ (delta x + x) @ (delta y + y)whatever5ea4 [ :a :a :b | | a a b | a + a + bBoccurrencesOf: anObject "Answer how many of the receiver's elements are equal to anObject." "(#(10 20 10 30) occurrencesOf: 10) >>> 2" "('hello world' occurrencesOf: $l) >>> 3" "('hello world' occurrencesOf: 10) >>> 0" | tally | tally := 0. self do: [:each | anObject = each ifTrue: [tally := tally + 1]]. ^tally0.000 000001100000220000033000004400000550000066000007700000880000099000000AAA000000BBB000000CCC000000DDD000000EEE000000FFF000000GGG0IIJJ^Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon.00102000533334400667AMan,APlan,ACanal,PanamaasByteArray "Answer a ByteArray whose elements are the elements of the receiver. Implementation note: Cannot use ''ByteArray withAll: self'' as that only works for SequenceableCollections which support the replacement primitive." "{1. 2} asByteArray >>> #[1 2]" "#[1 2] asByteArray == #[1 2] >>> true" "'foo' asByteArray >>> #[102 111 111]" "#() asByteArray >>> #[]" | array index | array := ByteArray new: self size. index := 0. self do: [:each | array at: (index := index + 1) put: each]. ^ arrayAnswer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index.385.7 do1[newFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dict1052({'hel','lo'. 'world'} includes: 'hello') >>> true22100000000000000000004210-1(#(x y z) atLast: 2) >>> #ya91.02WeisAlphaNumeric "Answer whether the receiver is a letter or a digit." "$a isAlphaNumeric >>> true" "$A isAlphaNumeric >>> true" "$' isAlphaNumeric >>> false" "$1 isAlphaNumeric >>> true" "Character space isAlphaNumeric >>> false" ^ self isLetter or: [ self isDigit ]0245subtractDate: aDate "Answer the number of days between self and aDate" "((Date year: 2018 month: 9 day: 28) subtractDate: '2018-09-27') >>> 1" ^ (self start - aDate asDateAndTime) days200!foo: x bar: y "d" "e" ^ x "f" "g"10isOctetString "Answer whether the receiver can be represented as a byte string. This is different from asking whether the receiver *is* a ByteString (i.e., #isByteString)" "'abc' isOctetString >>> true" ^ true+Tests-osx-64-PharoDocComment-Tests-Test.xml0000011111033555554446d2whateverad125${ tokenish >>> false$ isLetter >>> true5th is is29 a stRI4@(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSet&2 minutes printString >>> '0:00:02:00'(3.1479 roundUpTo: 0.1) >>> 3.2aBc1111210030312c3572r1Evaluate aBlock with each of the receiver's elements as the argument, starting with the last element and taking each in sequence up to the first. For SequenceableCollections, this is the reverse of the enumeration for do:.0b5$} isClosePunctuation >>> true111hello-4#foo keywordsStrict >>> #())({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 50.153a'b3aeioucharactersExactlyMatching: aString "Do a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly." "('s' charactersExactlyMatching: 'abc') >>> 0" "('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 0" "('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 7" | count | count := self size min: aString size. 1 to: count do: [:i | (self at: i) = (aString at: i) ifFalse: [ ^ i - 1]]. ^ count31a8reject: rejectBlock "Optimized version of Collection>>#reject:" "(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ stream nextPut: each ]]]-Tests-osx-64-Roassal-Inspector-Tests-Test.xml 3222222561225HasCommaString "Return collection printed as 'a, b, c' " "#('a' 'b' 'c') asCommaString >>> 'a, b, c'" "#('a') asCommaString >>> 'a'" "#() asCommaString >>> ''" "'foo' asCommaString >>> 'f, o, o'" "(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25'" ^ String streamContents: [ :s | self asStringOn: s delimiter: ', ' ]100000(1929 truncateTo: 10) >>> 1920"Point class instanceSide >>> Point51a4120NcopyReplaceTokens: oldSubstring with: newSubstring "Replace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters" "('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'" ^ self copyReplaceAll: oldSubstring with: newSubstring asTokens: true1Undeclared variable0010024222>([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 30""" 00 """ n """ ### """ 1 """ n """ 1 """ 0 """Do a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly.#(#(a b c d e) last: 3) >>> #(c d e)12523.56984Alias for intersection:3salkjsdlkgfeesdlacolorFrom: parm "Return an instantiated color from parm. If parm is already a color, return it, else return the result of my performing it if it's a symbol or, if it is a list, it can either be an array of three numbers, which will be interpreted as RGB values, or a list of symbols, the first of which is sent to me and then the others of which are in turn sent to the prior result, thus allowing entries of the form #(blue darker). Else just return the thing" "(Color colorFrom: #(blue darker)) >>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) " "(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))" "(Color colorFrom: #blue)>>> (Color blue)" "(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)" | aColor firstParm | (parm isKindOf: self) ifTrue: [ ^ parm ]. parm isSymbol ifTrue: [ ^ self perform: parm ]. parm isString ifTrue: [ ^ self fromString: parm ]. ((parm isKindOf: SequenceableCollection) and: [ parm isNotEmpty ]) ifTrue: [ firstParm := parm first. (firstParm isKindOf: Number) ifTrue: [ ^ self fromRgbTriplet: parm ]. aColor := self colorFrom: firstParm. parm doWithIndex: [ :sym :ind | ind > 1 ifTrue: [ aColor := aColor perform: sym ] ]. ^ aColor ]. ^ parme1104221(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31)01 | a102[ ^ 1 ]2366131120'' isEmpty >>> true3false & true >>> falseaddDays: dayCount "((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'" ^ (self asDateAndTime + (dayCount days)) asDate32.0-3.14793$(#(a b a d e) lastIndexOf: #a) >>> 3122!CCC 00DDD040777000888090BBB00 EEE0vector01.0a1pppp A pp A pp A X | t t t | t s t s t10.0!('abc' repeat: 3) >>> 'abcabcabc'0({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)2100010003343500-4((Color r: 0.5 g: 0.5 b: 1) hue >>> 240.02atAll: aCollection put: anObject "Put anObject at every index specified by the elements of aCollection." "({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)" aCollection do: [:index | self at: index put: anObject]. ^ anObject [:a| ||a]2$Tests-osx-64-Geometry-Tests-Test.xmldasSortFunction "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')" ^PropertySortFunction property: self5d2064 hello 112372oopsallButFirstDo: aBlock "Executes aBlock on each of the receiver's elements except for the first one" "(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)" 2 to: self size do: [:index | aBlock value: (self at: index)]with: otherCollection collect: twoArgBlock "Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection." "(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)" | result | otherCollection size = self size ifFalse: [self errorSizeMismatch]. result := self species new: self size. 1 to: self size do: [:index | result at: index put: (twoArgBlock value: (self at: index) value: (otherCollection at: index))]. ^ result1-Tests-osx-64-System-Installers-Tests-Test.xml3'Tests-osx-64-DebugPoints-Tests-Test.xml22018a1 between: 1000123430 ^ n 0. n. ^ n'('hello' difference: 'aeiou') >>> 'hll'F('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $Euflattened "Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattened" "( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5)" "( #('string1' #('string2' 'string3')) flattened ) >>> #('string1' 'string2' 'string3')" ^ Array streamContents: [ :stream | self flattenOn: stream ]"(100 beBetween: 12 and: 20) >>> 20~(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)10z!(-1929 truncateTo: 10) >>> -1920BEvaluate the given block, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its receiver in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: (myProtocol ifEmpty: [ Protocol unclassified ])1 Assignment to read-only variabled1a30 ( 1 ]. 2 ):a:foo523122aWReturn a string containing the path elements of the receiver, without the 'Path *' partstop "Return the stop element of an interval. Pay attention this is not necessary the same as the last element." "(1 to: 10 by: 2) last >>> 9" "(1 to: 10 by: 2) stop >>> 10" ^ stop19(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3):(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 78Tests-osx-64-NewTools-SpTextPresenterDecorators-Test.xml+surroundedBy: aString "Answer the receiver with leading and trailing aString." "('hello' surroundedBy: 'abd') >>> 'abdhelloabd'" "('hello' surroundedBy: ' abd ') >>> ' abd hello abd '" ^ self species streamContents: [ :s| s nextPutAll: aString. s nextPutAll: self. s nextPutAll: aString ]>printOn: aStream delimiter: delimString "Print elements on a stream separated with a delimiter String like: 'a, b, c'" "(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'" self do: [:elem | aStream print: elem] separatedBy: [aStream nextPutAll: delimString]162 'def' > 'abc' >>> truethe11.00 GB60b0164Return a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary){Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal.0-198130(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 50 first elementThat is false!kindexOfAnyOf: aCollection ifAbsent: exceptionBlock "Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 7" ^self indexOfAnyOf: aCollection startingAt: 1 ifAbsent: exceptionBlockbeginsWith: aSequenceableCollection "Answer true if the receiver starts with the argument collection" "(#(1 2 3 4 5) beginsWith: #()) >>> true" "(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> false" "(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false" "(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> true" aSequenceableCollection ifEmpty: [ ^true ]. self size < aSequenceableCollection size ifTrue: [^false]. aSequenceableCollection withIndexDo: [:each :index | (self at: index) ~= each ifTrue: [^false]]. ^true3bb4Put anObject at every one of the receiver's indices.1003oAnswer whether the receiver sorts before aString. The collation order is simple ascii (with case differences).-8031133411005006671min: aPoint "Answer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint." "((100@200) min: (330@400)) >>> (100@200)" "((100@200) min: (30@400)) >>> (30@200)" ^ (x min: aPoint x) @ (y min: aPoint y)139foo < bar ; baz > 2 0:B|| |b037406bworldH#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)12 ==> aBlock "The material conditional, also known as the material implication or truth functional conditional. Correspond to not ... or ... and does not correspond to the English if...then... construction. known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication: p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T " "true ==> [true] >>> true" "true ==> [false] >>> false" "false ==> [true] >>> true" "false ==> [false] >>> true" ^ self not or: [ aBlock value ]ns0000000ynewFromArray: anArray "Fast initialization with the items of a given array. This initializes elements faster that the generic withAll: or newFrom: methods. The main selling point is that dynamic arrays, like {1. 2. 3}, are really fast in Pharo. So other collections can be easily and efficiently initialized with `{1. 2. 3} asFoo` syntax. Important: Subclasses of Collection that redefine withAll: or newFrom: should also redefine this method either by having a proper implementation (specific to Arrays) or by calling the redefined versions of withAll:/newFrom:." "{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)" "{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself)" "{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)" "({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)" "({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)" "({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)" | newCollection size | size := anArray size. newCollection := self new: size. " This should be fast: 1. Integer>>to:do: is inlined in the bytecode (no block). 2. The Array>>at: callsite should be monomorph to a primitive method. " 1 to: size do: [ :i | newCollection add: (anArray at: i) ]. ^ newCollection242XXsX3^XnFLNegative8SmallIntegerCluster  *(bFLPositive8SmallIntegerClustertY>#|aF+؄iN3qV; y^C( ՁfK0݉nS8v[@% ~cH-چkP5sX="{`E*׃hM2ߋpU:x]B' ԀeJ/܈mR7uZ?$ }bG,مjO4rW testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster2 sourceNode bytecodeIndexsequenceliteralFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterw testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFails tarjanPackagepackageApackageBpackageCpackageDpackageEpackageFpackageGpackageHanArrayFLFixedObjectClusterC testSelector expectedFailsdocCommentNodeFLFixedObjectCluster$ testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusterS testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailstestingEnvironment conflictsFLFixedObjectClusterr testSelector expectedFailsFLFixedObjectClusterkeysvaluessizeFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster collectionposition readLimit writeLimitFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster/ testSelector expectedFailstestingEnvironmenttestEnvironmenta1b1a2b2xPackageyPackagezPackageFLFixedObjectCluster testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5equalNotIdenticalElement elementToCopy'identityBagNonEmptyNoDuplicate5ElementsFLFixedObjectCluster7widthstylepaintFLFixedObjectClusterf testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailslineFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparserFLFixedObjectClusterUexecutionEnvironment isEnabled testFailuresshouldSuspendBackgroundFailuresshouldFailTestLeavingProcessesshouldTerminateProcessesFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectCluster [ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterP xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster,! testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFails vennDiagramFLFixedObjectCluster i testSelector expectedFailsFLFixedObjectClustername environmentFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterdomainrange interpolate uninterpolatelinearFLFixedObjectClusterY testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLContextClustersenderpcstackpmethod closureOrNilreceiverFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassinstanceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFailsresolverFLFixedObjectCluster - testSelector expectedFailsparametersToUsescaleFLFixedObjectClustername environmentFLFixedObjectCluster testSelector expectedFails searchPanelFLFixedObjectClusteri testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster*FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster: testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLVariableObjectClusterL testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsmodel environmentFLFixedObjectCluster. testSelector expectedFailsFLFixedObjectClusterH testSelector expectedFailsFLFixedObjectClustertermcap outStreamcurrentBackground currentColorlightblinkFLFixedObjectClusterM testSelector expectedFailsresultbuilderFLFixedObjectCluster  testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails presenterFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster   testSelector expectedFails environmentbrowsernavigationStateFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectCluster|pnameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFailseditorstringFLFixedObjectCluster testSelector expectedFailstestingEnvironmentcollectionWithElementotherCollectionnonEmptyempty elementNotIn collectResultexpectedElementByDetect speciesClasselementTwiceIndoWithoutNumberelementexpectedSizeAfterRejectcollectionNotIncluded!nonEmpty5ElementsWithoutDuplicatesameAtEndAndBeginingnonEmpty1Element indexArray subCollectionduplicateElementcollectionWithDuplicateElementcollectionWith4ElementsstringCollectionFLFixedObjectCluster testSelector expectedFailschartFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClustero testSelector expectedFailspackageAaPDPackageDependencyWrapperFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailsFLGlobalClassVariableCluster # N&*FN%)w a.HFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster ( testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparserFLFixedObjectClusterp testSelector expectedFailstestingEnvironmentFLFixedObjectClusteriCarray firstIndex lastIndex sortBlockFLFixedObjectCluster' testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster4 testSelector expectedFailsmethodNameEditorFLFixedObjectCluster testSelector expectedFails breakpointclspreviousBreakpointsobserveroldSystemAnnouncerFLFixedObjectCluster messageTextnodeFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFailsparsersubjectFLFixedObjectClusterl testSelector expectedFailstestingEnvironmenttestEnvironmenta1t1t2xPackageyPackagezPackageFLFixedObjectCluster$ testSelector expectedFails nonEmptyDictFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationFLFixedObjectCluster 6parent propertiesselectorkeywordsPositions argumentsleftrightpragmaFLFixedObjectCluster  testSelector expectedFailscircleFLFixedObjectCluster testSelector expectedFails filesystememptyFilesystemFLFixedObjectCluster sourceNode bytecodeIndexsequenceindexFLFixedObjectCluster testSelector expectedFailscritiqueToolbarFLFixedObjectCluster testSelector expectedFailsreaderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterE testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailstriangleFLFixedObjectClusterq testSelector expectedFailstestingEnvironmentFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompilerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsemptybFLFixedObjectCluster7I testSelector expectedFails controllereditorFLFixedObjectCluster testSelector expectedFailsaStringFLFixedObjectClusterparent properties parenthesesnamevariablestartFLFixedObjectClusterexponentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterH testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFails rulesHelperFLFixedObjectCluster^ testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster K testSelector expectedFailsFLFixedObjectClusters testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterv testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster( testSelector expectedFails breakpoint1 breakpoint2instance inspection breakpoint3 breakpoint4FLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterk testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogFLFixedObjectCluster% testSelector expectedFailsclassDefinitionFLFixedObjectCluster' testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustertallyarrayFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailsedsessiondebugAPImockDisplayAPIcurrentDebuggingAPIFLFixedObjectClusterCA testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectCluster1 testSelector expectedFailsxyplotFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectClusterG testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsanalyzerFLFixedObjectCluster#I dictionary orderedKeysFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterQ sourceNode bytecodeIndexsequenceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClusterb testSelector expectedFailsparsersubjectFLFixedObjectCluster; testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster  testSelector expectedFailstestingEnvironment workingCopyrepositoryGroupversions versions2FLFixedObjectClusterinvertedFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectClusterP testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster X testSelector expectedFailsFLFixedObjectCluster,filehandleforWrite semaphoresemaphoreIndex peekBufferFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFails presenterpresenterModelpreviousLogSettingFLFixedObjectCluster_ testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsellipseFLFixedObjectCluster4 testSelector expectedFailsemptyRectangle rectangle1FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectClusterh testSelector expectedFailsparametersToUseFLFixedObjectClusterR testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailsFLFixedObjectClusterN testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster)Z testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterdomainrange interpolate uninterpolateconstantlinearFLFixedObjectClusterS testSelector expectedFailswindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsexpressionFinderFLFixedObjectCluster  testSelector expectedFailsparametersToUsecanvasanimationClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterX testSelector expectedFailstestingEnvironmentFLFixedObjectClusterB testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustername priorityListsFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterN testSelector expectedFailsFLFixedObjectCluster ? testSelector expectedFailsshapesconsearchcanvasFLFixedObjectClusterF testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterh3options environmentproductionEnvironment parserClasssemanticAnalyzerClassastTranslatorClassbytecodeGeneratorClass encoderClassastTransformPluginsastParseTransformPluginsrequestorScopeClassbindingscompiledMethodClass semanticScopeFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUse decorationFLFixedObjectCluster V testSelector expectedFails identifier preferencesFLFixedObjectClusterb testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectClustersxshxxshysyyFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterrgb cachedDepthcachedBitPatternalphaFLFixedObjectCluster :startstopstepFLFixedObjectClustervsourcenodecachedExpressionNodeFLFixedObjectCluster  testSelector expectedFailspluginpackagepluginConfigurationFLFixedObjectCluster& testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster sourceNode bytecodeIndexsequenceselectorsuperOfFLFixedObjectCluster 2 testSelector expectedFailstestingEnvironmentstreamwriterFLFixedObjectCluster. testSelector expectedFailsobj1obj2wpobj3obj4observer testClass testSubclassFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster@ testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClusterh testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterB testSelector expectedFailspointFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster9 testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectCluster testSelector expectedFailsivarForTestingFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherFLFixedObjectClustert xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster[, parent properties parenthesesleftrightcolons argumentsbarbodyscope bcToASTCacheFLFixedObjectCluster testSelector expectedFailsmanagerwindowFLFixedObjectCluster testSelector expectedFailscachecompiledMethodFLFixedObjectClusterI testSelector expectedFailsbrowserFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterJ testSelector expectedFailsparametersToUseFLFixedObjectCluster1 testSelector expectedFailstallyFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterW testSelector expectedFailsbackendForTest application presenterFLFixedObjectClusterdomainrange interpolate uninterpolatelinearbasepositiveFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterT collectionposition readLimit writeLimitstreamcrlfprevious lineEndingFLFixedObjectCluster  testSelector expectedFailsinstancebackendFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster^ testSelector expectedFailsdpnodeobserverFLFixedObjectCluster testSelector expectedFailsfunctionFLFixedObjectCluster5 testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterp testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster; testSelector expectedFailsFLFixedObjectCluster*f testSelector expectedFailsFLFixedObjectClusterz testSelector expectedFailscanvascameraFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectClusternanossecondsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster nextLinksuspendedContextprioritymyListnameenveffectiveProcess terminatinglevel errorHandlerFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster s testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster 3 testSelector expectedFailstestingEnvironmentemptynonEmptyone elementIn elementNotInsubCollectionNotIncollectionOfFloatanotherCollectionnonEmpty1Element subCollectioncollectionWithSubCollectionsubCollectionInNonEmptycollectionWithoutNil collectResultcollectionOfLargeIntegerscollectionWith5ElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustere suitestream suitePosition suiteTime suiteFailures suiteErrorsnodeName stageNameprogressFileNameprogressStreamshouldSerializeErrorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster> testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsoldRelationGraphnewRelationGraphpackageRelationGraphDiffpackageApackageBFLFixedObjectCluster< testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentuniversalEnvironmentFLFixedObjectClustergnameescapingindexscopeusage originalVarFLFixedObjectCluster  testSelector expectedFailstestingEnvironment workingCopyFLFixedObjectCluster announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex baseRectanglematrixconnectedLinesshouldUpdateLines cornerRadiusFLFixedObjectClusterFLFixedObjectClusterO testSelector expectedFailsforkvalueFLFixedObjectCluster+ testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterhM outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectCluster,0 testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster] testSelector expectedFailssycRefactoringPreviewFLFixedObjectCluster  testSelector expectedFailspreviousBreakpointsclsoldSystemAnnouncerFLFixedObjectCluster  testSelector expectedFails classFactory impactFilterFLFixedObjectCluster[ testSelector expectedFailsparsersubject splitterClasslinkFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster) testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster, testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails coordinatesFLFixedObjectClusterSm parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster  testSelector expectedFailsbaseUrlofflineSettingFLWordObjectClustere #aecto?edFa*xedO^fster~= tes\r ex{ ilsؘinitz"ZxedO~19ster tesz9r ex+EilsCbjecL'tSel_;expesFL{b ectC'{dT1elecxcted2rWassh|AnnoC;sFLHiectC;EsecӐ;ixed-uste{{ te~/gor eaails'2sfiniWixed_=Wuste*6 texor e ailsvObjeV}, teEMor e͎.uailsObje!r[PxtLixFndedh"priobist\eff#LWocesQatinEg3errokFLF,ctClO  lect@QtedFLfere8sist*wcker* Obje ^rM;%stSeXzxpecFLF]ctCl<& sҞElecttedFaHixedPuusteϠ0 te =or ęails̷*ObjeWr⿮stSes1#KxpecqwtesМronmg9ynoNΞ!ne e% eleԦnsuionNFLFixedObjectCluster  testSelector expectedFails resetWindowFLFixedObjectCluster" testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailswriter fileStream fileReferenceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustery testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsvectorFLFixedObjectClusterBjparent properties parenthesesmessages semicolonsFLFixedObjectCluster$ testSelector expectedFailstestingEnvironmentFLFixedObjectCluster&" testSelector expectedFailsparserFLFixedObjectClusterI testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterb testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClass announcementcollectedAnnouncementsFLFixedObjectCluster parent properties parenthesesreceiverselectorkeywordsPositions argumentssuperOfFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectCluster   testSelector expectedFailsivarForTestingFLFixedObjectClusterT testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectClusterL" testSelector expectedFailstestingEnvironmentFLFixedObjectClusterj testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster testSelector expectedFailsoccurrencesBrowserPresenterFLFixedObjectCluster} testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterO testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectClusterr primitiveNumspecFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectClusterN testSelector expectedFailsclassDefinitionFLFixedObjectCluster5 testSelector expectedFailsFLFixedObjectCluster \ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails slotDisplayFLFixedObjectCluster testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterZ testSelector expectedFailsplotyFLFixedObjectClusterCq testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectClusterR testSelector expectedFails commandLineFLFixedObjectCluster# testSelector expectedFailsFLFixedObjectCluster y testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailspackageApackageBpackageCpackageDpackageEaPackageCycleDetectioncycleAcycleBcycleCFLFixedObjectCluster$ testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusteru announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex attachPointfromtomarkers startPointendPointFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLWordObjectCluster-#!#. !#( (  ! Y ) )#(!Y)!#'Y'#Y| Y | Y := 1. Y + 1`!Y"!Y" $!#'!Y'Y#( #(  ! Y ) ) #(  ! Y )'!Y'FLFixedObjectCluster testSelector expectedFailsoldValueFLFixedObjectCluster  testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster6 conditionlinknodeleveloptionstargetInstanceonceenabledgrouponCountcount breakOnCounttargetVariableNamesaccessStrategy isInstalledtargetClassOrMethodFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterm testSelector expectedFails environment groupProvider builtGroupsFLWordObjectCluster|FLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFailsparsersubject splitterClassFLFixedObjectCluster!g testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationliteralExampleexpectedLiteralValueFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster" outerScopetargetReceiverFLFixedObjectClusterl testSelector expectedFailscritiqueBrowserrulesFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationoptimisationsActivereplacedMethodsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFails presenterpresenterModelFLFixedObjectCluster4 testSelector expectedFailspolygonFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster8 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster Lparent properties parenthesesvaluekeywordPositionsFLFixedObjectCluster L testSelector expectedFailsmorphFLFixedObjectClustero testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasboxesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster&0 testSelector expectedFailslocatorFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster; testSelector expectedFailscommandFLFixedObjectCluster testSelector expectedFailsmatchToolPresenterFLFixedObjectCluster$ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFails previewerFLFixedObjectClustere testSelector expectedFailsFLFixedObjectClusterg testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFails filesystemFLFixedObjectCluster  testSelector expectedFailscachehaltController testObjecttrace oldTracer breakpointFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFails environmentscoperesultFLFixedObjectCluster@ testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster~ testSelector expectedFailsFLFixedObjectCluster s testSelector expectedFailscanvasshapesFLFixedObjectClusterx testSelector expectedFailsbuilderFLFixedObjectCluster0+ testSelector expectedFailsaBlockcontextOfaBlockFLFixedObjectCluster / testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster  testSelector expectedFails identifier preferencesFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster S testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsFLFixedObjectCluster sourceNode expressionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterfilehandleforWrite semaphoresemaphoreIndexFLFixedObjectCluster[ testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterV testSelector expectedFailstestingEnvironmentversionvisitedFLFixedObjectClustere outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectClusterW testSelector expectedFails historyListsavedFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster~parent propertiesvaluestartFLFixedObjectCluster selector arguments lookupClassmethodFLFixedObjectCluster8F testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectClusterVa outerScopetempVars copiedVars tempVectorid tempVectorVarnode isInlinedLoopFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectClusteru testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster r testSelector expectedFailsrayFLFixedObjectCluster 0parent propertiesleftBarrightBar statementsperiods temporariesFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClustert testSelector expectedFailsFLFixedObjectCluster J testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster^ testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster; testSelector expectedFailscompletionClasssystemNavigation completion mockFilterFLFixedObjectCluster testSelector expectedFailsc1c2FLFixedObjectClusterdparent properties parenthesesleftright statementsperiodsFLFixedObjectCluster  testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFailscurrentCompilerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster| testSelector expectedFailsparametersToUseFLFixedObjectClusterf testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails inspectorFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterZ testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster+ testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailslabel1morph1label2morph2panelFLFixedObjectClusterw testSelector expectedFailsFLFixedObjectCluster+ testSelector expectedFailsdpnodecontextdp2cls testClass testSubclassFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsaClassFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterq testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2FLFixedObjectCluster)i testSelector expectedFailsclassFLFixedObjectCluster testSelector expectedFails decoratoradapterwidgetFLFixedObjectClusterH testSelector expectedFailsclassDefinitionFLFixedObjectCluster & testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsvarFLFixedObjectCluster- testSelector expectedFailseditortextAreaFLFixedObjectClusterhj testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20otherCollectionindexCollectioncollectionWithElementcollectionOfFloat elementNotIn indexArraywithoutEqualElementsduplicateElementcollectionWithDuplicateElementcollection5ElementscollectionWith4ElementscollectionOfCollectionsOfInts collectionOfCollectionsOfStringswithCharacterssimpleCollectioncollectionOfStringcollectionWithSameBeginingEndFLFixedObjectClusterT testSelector expectedFailsticksFLFixedObjectClusterk testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailsmockObjFLFixedObjectCluster r testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster properties breakpointnodesFLFixedObjectCluster testSelector expectedFailspackageCollectionAbstractpackageCollectionsSequenceable packageKernelpackageRegexCorepackageStringsaPackageRelationGraphpackagePackageDependenciespackageApackageBpackageCpackageDpackageMorphicBasepackageTextCoreFLFixedObjectClustera testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster 3 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsFLWeakVariableObjectClusterSaFLFixedObjectClusterq testSelector expectedFailsFLFixedObjectClusterW arguments conditionconditionArgumentscontrollevel metaObjectnodesselectoroptionsFLFixedObjectClusterR testSelector expectedFailsFLFixedObjectClustertestCasemaxTimeForTest testCompletedservicesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster 7 testSelector expectedFailscountercounter2nodenode2FLFixedObjectCluster& testSelector expectedFailsmonitor classFactory logBuilder chunkExporter chunkImporterFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster` testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentnumberOfAnnouncementsFLFixedObjectClusterDselectorvaluableFLFixedObjectClusterb testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment errorMessage errorLocation errorSourcetext interactiveFLFixedObjectClusterE testSelector expectedFailsmergerFLFixedObjectCluster2 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterp testSelector expectedFailsempty withItemsfiredFLFixedObjectCluster testSelector expectedFails prototypesFLFixedObjectClusterX testSelector expectedFailsFLFixedObjectCluster) testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster{ testSelector expectedFailsFLFixedObjectClustercacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster5 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassFLFixedObjectCluster Sdomainrange interpolate uninterpolateiuFLFixedObjectCluster testSelector expectedFailsmorphhandeventFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectClusterx testSelector expectedFailstreeFLFixedObjectClusterf testSelector expectedFailsFLFixedObjectCluster J testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster5registeredClassNameFLFixedObjectClustern numerator denominatorscaleFLFixedObjectCluster* testSelector expectedFails replacePanelFLFixedObjectClusterA testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster& testSelector expectedFailsresultleftrightFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster! testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLWordObjectClusteriN +(\H/"%5dNGI :JX3!) S  %dpV @ 5An~vHQap! [*ncw u&3$ @j#3 "'C +('  6>XfI- 1|`j A e:4H5 )Y`qWf3+N=Ep7OH Z $@7~ J*&Nkbt r  "4ND##d2    -97v&0,  $&|    $)=xE< {%!% /H:  Ql5R*3H@(K! 4=I T[     M"wIWRFw yI#(-5LNW *3` >,C 2).' +@LX!+;;O6? "=#H,`n|3C0zCS-,g" ` 7B 4&112 *>"  V OCMy&Y WB$Z.a/| B \ot^f"p C+Du  b D(  9E5OM" X(3d.#!  %;='&4p$  cj\ 1!)'A -6 ;#,:3o`N  M*GRM{,4?MH9x )qz1"$<j. c$ &<-x  /4 B!)%5KQrT$/ %$/8B>  % ,3=  5%&$Lw#O ()$ w T(90<"9<2 EN!)/X#$A&&3;RY -J0S -lCC= lY 6Iz$j Y ,e9h,   F/:1: U3 &  V9 JZ-G4 8 4%1 C=-z 4$3B6MC^&(~1M&t j # _&:C!6as+ $   #M&3 5) ?)2:B;3;%<=&`B$.5:04C$P9, .TP 'P] )nrRbm  *_mv# 9HVb  2a, ",I>k&  % >>& m;'0$-bO / 'Zc;0l&[$. ($T"(K]1H 3N,#op= ..J?TN|l %4)#.7A #   +  +Y|YpKW<`! * VP` DMa/   RWB*=H C#,A-_ T   kF<) $-5=M3y! g|" $O{;3@ tYt_ 7[ =&i' %}  )$0  9H  h+ ; /!E#e} y"/ hFeG  $-) y L#r+:H==V!tkuy :"; "ey+`{"8b" 5;7* FLys@$# r/HP^% - (KE-Ze )   & %v-C  % !<'$(?H #x"g0'Q%*7lRd%s #&4OYAD -M ENmrh%Q!/r" gsG ~ U$28E<8  +Nl 3%$2%;.#CJ$NH.[s#c   (;MZ&%=1' z# ,D$.0S^B8>#N(,$!. J%-@&4<2  &8 0K? /"EO& 2 A*  `3!.2,]g %!1~;"&*A9!> 16G((YQ   _3i9A=- G1?  V ,B' tj   6Mm <zG\Q}3\:j2/}# 3O4..5<RcX_zL D 67! 6JY)!!Km /(K$9&.tA  E  &5)_4?O  wTTZ!+-",- <$EQ:    >&,Z%"Z2& [-APY1$ 2%7N0 ezL *m(T  I^L8 ! $,8*So $zcN!\&.Aj0X.n<$kp3}YB0k;-=&B  D'M5e .C G: , a1jk$ fM6P- #  x4=IDA2c, #:#1=lV /*.HC=*  >^"j.03 )Tv.jI1 $ * R\/. 47$$r *j  VR*-0u. #< %=1#. 1E(8!-6F2(. u|:DF=%^Z qFV7&( "ET    n5(:PbU17o)  l`/#(TZ  1t|R-  !*2C$,;  o8 P   ,g  ).d>:j}0c =o  C ,  " V@6$J J 4O2(^dk1 8$'?j6v-`Eo} vH&W)1(+  iB1!6m %/%"R&o 4/ l0\P )V . 5 1N/%${` '55?:5(S@ 2*% Q 8!(,^ d GsZ  V8R$+   $(8 ,F0>"6%k5N(%;& G 1#'.:  \*( #d\6G{S4?  y 5G" d2F ~ #/ os$& 8% z '>n.%-UhW -/ 6Mce"$Y%Sb   -JQ0l0 #-W,6\ 4*Ldmi^[ 75&z!'  #>K!;3 N  09 Uo7)$?S n,,C%  ?`x!  "L%o-#%l}?Kr  /Di & )07@4D u-)8H!&6fmqV$ #'. &O-$3"4F 'D*8y,%?xPU) .$JAV={"l[}_!!"!. IfPcqd50 ?#8' I\bg + "=]   Y|&(<(sn&$    5* [{>"v*{=%KB B ;!] lDRFW]b s, Jk|.1=Y@]*~jJ ~7-g4d[% 2 +P 1P < 1GV 0q + &G>ENV7 !Z#H"/  k84po*tz  @)-d 1 <K) @. 3!b:=) ,>]&11   LxF &>XA _$%#!/?E!)$*1X -.\+7[ E:W"6!:. )  -   &"#% Bn\ s7jyw.!' ~insg!"#9 "L. Kgnu'IV*?O OB% 4.J65c/+EKR-^Xh) q  F"q?O J&%1'] fG-.:G*($GUe6@XJ '$AO%6eQO=35% QL* _ 99,Mf;zn- 3` C(l{Z,bJ<SRy2 1 # :)<%E %29 -5R&+=:nc26<Jt<7,CMI&I-K#')g  /c *6%>qk2d:,  3/i3m%8g3  KY 36y}(5'!%%?6< +3$/8B v{ 0  %+  "0+  ` oZ:@* ni 9 P* MY4  L4@v ?.2b/v,,=8Z *wm/zBTple.OB (o3!#% d; *  ,K! cV?3z'( *k )3"D<m,G`,7 ,  /+ ;R-Pb c!59:[@3H&'MK&+ to$ e io 3(Y)o)'&Pp -5H 3.#=<]h  0<$, 7 ';;R(Zu&j;, eD4G43R$1  %8JDy?14 -  ?$dS&/  Mb% e3#.7A$>$%*> ,r 7Z+ |-D 8 F'-C 0BN;&)C   1, )+7* 6Yk %r_,22/G +!( 436?su/ ) ,  B . $*P^> xSb  6  17(@<." PMQu+bxS\G  %" ",- /% Uz am))5iT < ! ,0 #A e!l&18l-T W &?/& ["3Yox 7UL'{)!?s-( $ r ),7N=60bk&l 113%`U:=p!^a:DE$ _m'[&+0R}!-%n-"Z (I:#17Ub=4Y.7I P/VWQ2@U(g])QVER`;/my, & 5.*1/ #(4A 9.=0^L 8D8 :@ *U' $4SRW z 7 p~ (,8-/x D%L&.@#1}^^: $B)>n*K_u7  "?(.$* /(,14,S  -8 ~")2P ;'.B )7 b1;DP $le$  <" ?SkD5 f. "<Tf(  5<v/~?m'#4 RPfoDoaj r;' X_~1#1x :v W)@,. >> 18?UJX  $0"w?=0J2  , kw.,"&1M!\ Dsv5l   %O. ^3ZD+YGUw 0E /` +"8" d"}.EK%.M'5E )(Z    X7F\w 1GOY`6d".4AK r+!M $G 5*5a0|=Q!(6GqwB4 4X7 bb"%9P]L@ % & O;a0 -W @$:#zf>-@}i[.q vE+(u!A Zq[:  *! #0q; tSy$(8 F [, DK_j"S\0$HD9}A&%3>H.p`A+L6/4%  K,:"4z+;0$[ 'G# -b!6 /3A$0.h{5-,kc $?9%]4;4jRu0 'F Fn , ,  *+3b.J&Obs_)r  ),#<- 45z4A&5Ui#;<tUA/ "/=/ "8 S\0/G82Z  b-Gk n,+<'   S.A+ ""x7(I0* +):#!&=  &$ 2:@  **@ >&fF"#0i'e%FjA $Ek 7C  *V#&(W>  Z  C%=K9JDQa .RT_h(c$;!H%)  =fat 0 !?B~]E$"-X![5 Ew 9   H >#vT8 25Z+ >l fg@%I, ; 3*:8HC> (61![ 2  2>B6($V`m| +v . s, XG.<4#w*- 4@s  O /& e.4)9CIx5 NZFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterK testSelector expectedFails slotDisplayFLFixedObjectClusterG testSelector expectedFailseditorFLFixedObjectCluster#  testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterK testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsaPDPackageCyclepackageApackageBpackageCFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryoldExceptionHandlerFLFixedObjectCluster4 dictionary orderedKeysFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsatPragmaanotherAtPragmayetAnotherAtPragma atPutPragmaFLFixedObjectCluster% testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterlname breakpointsFLFixedObjectCluster testSelector expectedFailstestingEnvironment repositorydictFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClusterS* outerScope targetClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalfloatCollectionFLFixedObjectCluster t testSelector expectedFailsinstVarForTestFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster = testSelector expectedFails presenterpresenterModelFLFixedObjectClusterk testSelector expectedFailsmatrixFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectClustern testSelector expectedFailsFLFixedObjectCluster!@ testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFailsFLFixedObjectClusterU testSelector expectedFailsbFLFixedObjectCluster1 testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster| testSelector expectedFailsfinalizationRegistryfinalizationCountfinalizerThatCounts waitSemaphorefinalizedObjectfinalizerThatRaisesError finalizerfailedFLFixedObjectCluster m testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster= testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLVariableObjectClusterpd testSelector expectedFails filesystemFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterB testSelector expectedFailsrewriteBasicEditorFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster\ testSelector expectedFailsclientserverFLByteObjectCluster(,"j","j","j","j*p"FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsmockuiWaitingSemaphoreFLFixedObjectCluster` testSelector expectedFails filesystemFLFixedObjectCluster argumentsFLFixedObjectCluster  testSelector expectedFailscacheFLFixedObjectClusterL testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectClusterQcurrentSession categories guiCategory toolsCategorynetworkCategorysystemCategory userCategoryFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsFLFixedObjectClusterc testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailscanvasshapesFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster c testSelector expectedFailsFLFixedObjectCluster c testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsareapositioneventFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster testSelector expectedFailsplotxyFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustero testSelector expectedFailsFLFixedObjectCluster+ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFails debugSessionsindarinSessionFLByteObjectCluster^#NJFLFixedObjectClusterksource isScripting isParseFaultyisFaultyisFaultyMinusUndeclarednoticesvaluehasValue formattedCode skippedTestsraisemessageNotUnderstoodnumberOfCritiquesgroupdefault nodePositions styledPatternFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusternameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClustername owningClass definingClassindexFLFixedObjectCluster a testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectClustery testSelector expectedFailstestingEnvironmentFLFixedObjectCluster} testSelector expectedFails historyListFLPointClusterFLFixedObjectCluster tagFLFixedObjectClusterparent propertiescontentsstartstopFLFixedObjectClusterD testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster(z testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster% testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailssegmentFLFixedObjectClusterF testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster| testSelector expectedFailsFLFixedObjectClusteretests resourcesname announcerrandomGeneratorFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster ` testSelector expectedFailscompletionClasssystemNavigation completionFLFixedObjectClusterstreamencoderFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails outerMorph innerMorphFLFixedObjectCluster testSelector expectedFails collectionFLFixedObjectCluster 3 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterU testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterXparent properties parenthesesstartstopvalue sourceTextFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster9 testSelector expectedFailsparametersToUseshapeCollectionshapeCollectionClasscanvasFLFixedObjectCluster' testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterT testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFails presenteradapterFLFixedObjectCluster testSelector expectedFailssourcedestFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterI testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterA testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails presenterwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2numberOfAnnouncementsnewTraitFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails decoratorFLFixedObjectCluster z testSelector expectedFailsclassDefinitionFLFixedObjectCluster X testSelector expectedFailscollectionWith5ElementsFLFixedObjectClusterM testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailsaCompiledMethod aReceiveraMethodContextaSenderinstVarForTestLookupSymbolnonActiveBlockContext anArgumentFLFixedObjectCluster4* testSelector expectedFailsparametersToUserunnerFLFixedObjectClusterFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentnonEmptyelementExistsTwiceempty collectResultnonEmpty1ElementcollectionOfFloataccessCollection elementNoteInoldSubcollectionwithoutEqualElementscollectionOfFloatWithDuplicatecollectionIncludedcollectionNotIncludedcollectionWithoutNilduplicateFloatnonEmpty5ElementscollectionWith4ElementscollectionOfString"stringCollectionSameEndAndBeginingFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterD testSelector expectedFailsforkvalueFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster# testSelector expectedFailsaPackageaSecondPackagepackageApackageBpackageCFLFixedObjectCluster< testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailstestingEnvironmentstreamexpecteddiffFLVariableObjectCluster>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        I                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         FLFixedObjectClusterv testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentsnapshotFLFixedObjectClustern testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterc testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5FLFixedObjectCluster: testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterA testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsarcFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsfactorybuilderFLFixedObjectCluster: testSelector expectedFailstestingEnvironmentinstVarFLFixedObjectClustername environmentFLFixedObjectClusterh testSelector expectedFailssystemSettingsmemorypreferencesFileFLFixedObjectCluster3 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster7 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster% testSelector expectedFails prototypesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster3_ testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsinspectionClass presenterFLFixedObjectCluster?parent properties parenthesesstartstop isByteArraycontents openerSizeFLFixedObjectClusterdomainrange interpolate uninterpolateclampinputoutputFLFixedObjectCluster0 testSelector expectedFailsFLFixedObjectCluster[ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterl testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassclassFLFixedObjectCluster) testSelector expectedFailsresolveroriginalUserLocalDirFLFixedObjectCluster testSelector expectedFailscommandFLFixedObjectCluster` testSelector expectedFailsscopeSelectorPresenterFLFixedObjectClusterv testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectClusterO testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterZ testSelector expectedFails filesystemguidevisitedFLFixedObjectClusterE testSelector expectedFailstext candidatescontext processorstream backWindow1 backWindow2 topMostWindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscanvasshape interactionFLFixedObjectCluster $ testSelector expectedFailsresultbuilderFLFixedObjectCluster testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster: sourceNode startSequencenumArgs propertiestempMappragmasadditionalLiteralscompiledMethodcompilationContext irPrimitiveFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterk testSelector expectedFailsexistingstoredmergerFLFixedObjectCluster } testSelector expectedFails slotDisplayFLFixedObjectCluster=y testSelector expectedFailssource selectioncurrentCompletionFLFixedObjectClusterM* testSelector expectedFailstestingEnvironmentexample1 literalArrayselfEvaluatingArray nonSEArray1 nonSEarray2example2empty collectResultwithoutEqualElementswithEqualElementswithCharactersunsortedCollection sortedInAscendingOrderCollectioncollectionNotIncludedremovedCollectionelementInForCopyelementNotInForCopy firstIndex secondIndexreplacementCollection indexArray valueArraynonEmptyMoreThan1ElementsubCollectionNotInreplacementCollectionSameSizeoldSubCollectionnonEmpty1ElementcollectionOfCollection"collectionOfFloatWithEqualElementscollectionWithoutNilduplicateElementcollection5ElementscollectionWith4Elements collectionOfCollectionsOfStringscollectionOfCollectionsOfIntssimpleCollection%stringCollectionWithSameBeginingAnEndcollectionOfFloatrecursiveArrayFLFixedObjectCluster1 commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailspasswordManagerFLFixedObjectCluster} testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster 9 testSelector expectedFailsaPackageDependencyanInternalPackageDependencypackageApackageBFLFixedObjectCluster\parent properties parenthesesreceiverselectorkeywordsPositions argumentssuperOfFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectClusterY testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterEtallyarrayflagFLWordObjectCluster!YYFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster9 testSelector expectedFailstestingEnvironment repository directoryFLFixedObjectCluster messageTexttagsignaler signalContexthandlerContext outerContextFLFixedObjectCluster( testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster  testSelector expectedFailsmethodNameEditorFLFixedObjectClustermanagerdeferredStartupActions propertiesFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster> testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster@ testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFailsangleFLFixedObjectCluster] testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsrulesSelectorPresenterrules rulesByGroupFLFixedObjectCluster testSelector expectedFailscshapesfFLFixedObjectCluster testSelector expectedFailssettingBrowserFLFixedObjectClusterB testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterMv1v2FLFixedObjectCluster testSelector expectedFails rectangleFLFixedObjectCluster = testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustert testSelector expectedFailsFLFixedObjectClusterV testSelector expectedFailsFLFixedObjectClustero testSelector expectedFailsFLSimpleCollectionCluster[w / dv 6 +?Fm !   n_    .  $ J  1t70  $eY  H . b $  Be  $I 4  W Al  "U  3 rFLDictionaryCollectionCluster#U_    FLSimpleCollectionClusteroK   e   FLSimpleCollectionClusterFLDictionaryCollectionClusteriFLSubstitutionCluster'x;#I.!=D-| fќ&/#e, 8Q=; zRj%2 JA{+uM**+kKC]f%'ڊ+p :(Z'C!5!L!w!<O!F !%!!(!X6A!0N!a![!2)!R !G!w!at!Em@!N!/!`#T!Y!+.!&!.Z7!Z !$-!.U!I!gF!O2!c= !5X!YX!.!4w!T!aI!)X !!|!(!>/YM!7.!!,-!uh!C!8!?G!^Ծ!>!@1!s!8[!QN6!X[!M j!!Y O!!HUL!5!!!!A!]A)!1$!"B! ȳ!$K!2!S2!Cy!!dR! !K!"!B9'!7!0!BJ! !R!eI!ʤ!ӹ!7͔!i?!3!5z!}!+!? և!q!+!?{!#!),!-!؁!ǣ&!q!/,!<!.Z!V*!T3E! !P!@:}!r!%E!O!PAE!ުl!Z%'!)F!Vm! r!*U!Y r!`!n0!,!/>!#iF!q!v,n!{K!jJ!/<!d!?"=! 8! 9!$! !0!@k!w!X!,T!A+)!X(!G!5LȚ!U !2!!D !X- !7hX#!!B!)6!*e!!1ۓ!!ɪ@!YAI~!8!d`!1!! !!0:!-}Qh!!N1!2! !Sm!!!!!\Ƒ!!!!!07!!a!.!%Z!! -!Y!$+Y!Fw!!V\K!'.X!ў!<4)!=!(!J!!;8!X"!!18!W?!U!%!BP! |!">!7!!Y!*%N|!'!=2!?!P?;!& !D0! O!5K67!S?! NԔ!I!h)! 1H!!?!YRS!!1R)!P6!2$$!K)!Nr!qu!VO/!QO)!vߔ!S6S!&!WS!BD!9k!R!BD!!ұ3F!+n!)@T!@S!&!!%w!X!!4ѝ!-!ù!g! :!%!=L!!-4*! !*L=K!RwV!G!JM !ڍ̌!!V!E>t!#"6!'n!#!TSX!4!!>V!!-vP!}>!E!"2! C!S! !7&1!T!RU!=P!{F!)4!:! !,!V !a!i>! D!Al!F!//!E/!z! <i!K5K!2!!#&!#!! !D!k!!!-B!O?!j!e !N!y!B!Dz :!\$ !,Sv!X4O!!`!/!C!IXq!!|!4Sw!X:!7!Mh!A!1׭!4p!H !ΗT!3R!o!-)! W!A!=D!Z0`y)""WB5T_ Q,zU&+ .O ̺?:07St (~PW8G+#MD7!07"$7("#!ި'Va+*?ϲ/)Y>a:+"&2QAXX=DC* !!zo4n&!2.gϩ'9',"1#8$9})$8/+5W*sU"&-!Ǜ| >* :)ż#V7#$h (."R5(;-9%Z*g 4~('3 h-.Mp3 gdˆM\۽U O("$W"-=S-UF-͑U2 E: X. Rݑ-|B ƣ'y&| X X X X /0 X X ////X X X X X X   n jX(^)$#?$+6!}- )7.J)l-#Ε+u:$h8Č4}" &Q-9?,6 +K#L%&p#BH}+(J?.H5R*i !'G-V)CfXl' S`'"T#3=y + *7>Ҹ#t#{"WX#z(w*C/)UL53V,p"~ MI .1 'ٸD27.ے.{*'b'Q(NqfN.6-"ZVJ(PL"v l'+ 7.l(X 5MY -'J [Be(C. cz |E)("fƟ <+!F+m<PI)<,@X/*%CDnه'n[#=J&oO--"2L-{!Q \,) V9" d;o;%)M'&b >H+LR $tQ#)5B$.{%'u$jI.n*# w/j = 5p0$Wm^FO*5=q6].G->D(;*!-%I_Έ%5"&+@.t}3 #%UN7   !O#Y1)R& Q.FH$M tX"m:!$%!R "LG ';*O%w9'=USKݴ%g0k&A]uF_)#$.ߪ,xc#c!n  5W!W;o  Cd)b#+ H+YX@ BR:$,IܲF"KePrV .*;Dx<U%)9K(S +L])R'(Q&% @v Ф+*>'8 +!a^!$Sʭ*0N"K*#)$"B/Q̼$6& zc%XN2!N*"& h /+p jU"*})*$,wBr =-.W$g@&@ >sC)4!#$Ltf%n/ EP !4D;T}-%P(F-'lxEɵ*<0) 3{"ϊ.x!Z1 (mx -,&1&&pA<~(N%0"J^!2b,>(d-*Z}Z* "&2."E*.!Y&ͥ#p$j#.2,*s-F;%/ȔC TV. Gm'l( A {3 1, B|%G F  :- K\"cm$Km,5*)"v"xY5!%U+ n(w Y>'J6q, 5'|.g}I/?- ('Uv SG+Nf-5#$+k#Y6-?+*|+L* ܫ+U"Y #<'!r 4} !%"ȰONn0-!;(8Q+3D$B׳$i//////////// = M33'Q(K[L="]W5*w,S*w,F'*w,N *w ,V*w,?1z*w<,M*w,9"*w(Ep*w,N"*wC*w,8]m*w,M*w<,3{"*w@A"*wLB$*wI,A*w,65*w,3*wJ,S$*w,:5*w,>%o*wk,  y6W\%s*HZ%5&N ,&WkWkrSi+"S+%9:(M?),"Vּ .+A!15'b,5 'DU ƻ*N!>HN'-YuI hR.L.O G' V)j }Ed?-)!$;)Q:"$=5 4F *hB,2}*~ X`&fp5ZAX2 QXI(- "-"% 1"""&g"%B$/6RWkWkWkWkWkWk#+"X6BgcV$IT.ZA-(dW c&Z(ȕ,Cf\ 6Ѧ W%w*)k- C*O},Is&-W2(8&!+T%!H+ sH'(/R T'xO 1N&"S!'%0N !iB7]*aZ %U$}VZ9sA(SU%,D SX5*&E6,*$!$59 k83 S,$&U U&-9ղ*s''#H&Co q'R#J~-G+u) 6!b0# /  ɑ8=A!W!n!bu!M A-6B&*;:J"G#9'"$^!I/_$&.*6J'c30$  J%Y ǻ +U D f?;5..x w10Pű+43) l%Iz7Q5A *"qNI+c$D XKN {N%<.:r.)ˆg%>G-ON'?l^ X 9g4:0"@<*v#&& @ +{ '3#R+TE ,bE-M=(S=("\ HY-u#F[D*= PIJ8Wg&,YV ߒ<}=(..5N[lWB($')t#p+kW.D%l%R}-,V'&8.Y _#VJ)Q ] *{D?, hFP }#v[a nV<Q qY S khY-n BX, m [X2nWzTW{ }T gX,#kUwX#eTRWm TX4 WZQZN\T X,~S7  V8XPX\j t[ #T {%T} 8Yi {Qii}XH V<!8\} TW.T>"@ ;3% S^TQ bS7 *?Z:X0R{ EQe; -RS MvY ,Vv6~ QZN T *S FU 2TSY'\ ? WJWWnt mR>QF } ;"R+ M 1 Y uV/  SoWV} QJR!#YT5. Wq T 6SGTvXZ  T]W WAXj iY} [TBXR`kVQU^ o2qT$oR lW@! Z. \ 3\UW"Xk AZ?W6V8hW[09S7XHCRX RlS [*X@T d+RWRQX+VQ U]4 IRWTWn UYWaRX t W6yU@U ?Z Kk O\F z U$H'Uk R=[\n  zU`O` .fWs B[0y oS CX,-\QYv [,Wy TW.S V<Qa lV %T$ T ;ZWT9WXW6$W \  nY-[ N 5Vx V2_WXxWg\  <XG7TS VY  WS4 V`R XRO n %R  Q d ]Q:eRY^k - m QW  k  Vvo XVW| <R R1Tb CUkqR $[  S%X-ovsc: T S*Wu YWvSW~D 6cT2WwSY#%U \ jZ`Rs WRn RbXjQF 2ZXF[{WXO\+d WG SWli8b_QXP aU qZW`Z X T"9 \uW=U/ aQOLQ U Z[fXO )TWr \ \+ 6Y-8 )hQB  JXr WY_SWw (T? EQZ (R lSS X\ QZX3QUTQZaY- \C}{Q# ~T X[' SK3X\\3kp[W  p8S + QBkp \gX&UX,"k MR [#2 wT>= V3Q/  T{N{Q><W^XM [T rUx]{Q VGQr @ {W: W9pWTTk &[0 /UA XS- O;[$q : U _ Q S[,#  [> RPRiWWv-Tj M rXUA* b"To#CX [( UT>T WWO;XL} $ \  TX>aZ  T2sZdX3QO- FV eU Y6Zy@6S" X[/ R<W ?[W]).g(z W& VX)X, }WGM_XXyW: NC{& \BG  7u~Y [E Zd3W R] w\] ![lX*RXQTIXzX$[ tT{ QZk8 \3 } TX0(T- -UE  UW W~MYs 9R |T""\ R:IQ .dW[ U[aWm QO-QX\mS<SHG  VZ W9`WsVv +ZR" :x ^Y Wn ,woD  UQq\ ",\W(RU_W w%TyUx@TZX:OV_AW ^1 \Rm 1Z pbR* W:` WpXC NTQW~X,SYV "Q T ,mRqWUXETWYs T !T$AQqR2W  "QWR ApW& ;rVdZ NR vR: A_SWRE ^X /0 X WX W//X WX WX X W//*)~LQ<,"*[ V0Q$A{.k,)3`-#) P%rN1"8>% *O)98]//ci/ V/B/E//ie/E/6z/YR/:m//;}/qK/2/I/R/dL/k/lo/,[//gF/NO/hM/&/*d/+S/Wr/q/>|/9P/F/Mn/%/Z/bh/w/3t/G/_g/T/7/U/-/P\/e^/Y/OG/C{/XC/"`/)Z/kQ/(/J/BA//`W/f/o/#p/Ab/\/0~/KH//1I/.x/aX/=a//D/?y/ //]/<j/'/j_/[J//f//pv/$/ /n/V/^/ U/8/ u/@c/D/l/ms/Q/ /5T/SN/4*>()$D`+w yK f%A!x#mGb'o@%`X :=($F@Lr!E (%N(m,{6\W}7Z#^Zc"G.69=STG$ (p[֢ @#D+-* D .5:#+̋ ,(_ݻ*S۝W%],կ#!'>Ɇ"$&7F$h-9$:a&ԍ18){&/\/%H#d5 MٚK !" $)rw+. $  (7">P.! --  Y.{"D(_('ǹ#16t- A0w9|$L l .lۏW 5U(įYv(4 «+VM(P [CJMDb'X axUX ay4 #(b&){N\()c2$u !|, {0$ ~m:nv?.:v6$).#H0L#oW“ӏ00000HbQ!00DO7AA90S00F0S,:K00880790;#VM0>3>0H@6000<0E;HD000ARB0F0Ir00J CgRo7L0T@F2G0:00P0EnK0030V00700H0Nb40000300PF05&6D0000?0001000002<0;4p000G90>00VFV 0W0000000?907$3(0L'0HLSTtD2* n:/ &- $"b,#IN2*k# #$DW#I":-sO7U{)*4S*(oE%\74+." ^pf##ھ(DȆmNH*("*<~*Sj<&7: xBY -;KT0^(J(& S23Wa7xWa7*"o I*r H~EA.5's0[0!$)[Q *-f,#E/FGGXGDgCO: E3GmEDmE 5#C3sEQLF(zECuFXD C&DDOC*C3CM<GFKG2<EvC 2CC PE :F<G` CT?DN/GaۭC\&EGLPoGDxC<DC'CVFDnG3FZ,3ERF/DcGhT EE5F[!FmF3xFDCW(CF;.RE?/F<ECIH ED'eFgQGF{+EF=FC{S-E CXXGwXD@;CWF.gG!'DDFTƦFC|OGS0G(>)G.DVFiD4(EkPEOEAFwCw?CO$CF!F3AFDE] D'FYF}CPC ZvD#GFF-GMϛE&CF\GH(GERgFj4$F,!E!3D cG])FG-GD-C$/FFHE_$C>GEEDsGH G>H5:D,GBE~D~C5gF#*FDC1G"CP& G.DVZ(C0rE2FG*DLFKE8EGz=DVrE%CuNCpR6EPgD1EfHEEEyD2CF0EFaD!FF9E`:#GJ:F@GDHCCrXVG"EC;<F)E3CE6PEFEڄDbFJ=EG5MF++C-FuًDWG}6;E:GEXACE؛COF2F{DxD7>C'C1E6D;FE#]EzF3DUDFsACC9FDC!pGuDvG|"AGECZGGzFqHCG >FCY=DGE@$B!ZC7OF+OGUSE#Fh bGbN#DEvAGs G;4D2C_CC`8jFDMFGY EEFGC5ExDh DiFBG&G@_FpDE7AGRsF'FPCvCJFfF>DrNFE {G/rCGKDEJD8$FMDFaGGFW3EE!F 1F6F`'CCFl G̅GCE8!DFF<X$H3^CA*G0E/CC=gE%GE('Fy4EɝF_eEQD =GEEGG`F2D!DuJGIKGGCCD $Ey5fDDC D$FNDGETFYCVN+E1Cq C-GFDD+E,EsjFEG1!F ,CH^G#EEGTCEHDo2F;F'QG|GQFx,C=CD$G*CzBE GDN!E3G GXKlFG&GPDCCD/_FPCGxDEDPODE GC+;E$#2EܶGU1FB@CvQnHQoE5F1G4F#C }G 4ETCi*GG)BGQF2GqC D\F8DyDlD§EB!uCJ&F+D}GGMcF?C7vFD/ FFWRF"GD.?Gi C4G0DbEuޜCW%G(*FiF: DY̭FDCJD7ClFDGCCEP\GuBSCCzC?9FJ'G,MjCO_F;9Gr-G7DTCa@CK8GbE F F9NDTGF2GfFA[ GOCQD<Ch,_DMC8E;CLF=OcF$F"D Dv.Dw0EZ GZ DLF8DJDEDG%rFFE>EDwEE)LG'C7HD 4lD$CE\MC:qCDfC>MFʯG1ME& EJDjDCDK>PCLG0CODF9CCAG(C&DUG#FTG(TFFeD&C5E36F:DdG EC;vEn[EHG5EXcGC3GcDEXC(XEt'H iH@FI<E#EfEH)FUDl0WGDEGFDCZGGG E+CFrE%G3DJJGGkD%CHGNF+EZ+C#PFVDXCl<Cf.FK:%D*;F CYG,DZD=DFDD5GFpEFTdGGlD']GV D?~FcV&E,ELyDJG LEC#OC9DSG6VCEKCQ4CDEGIF VFF,C36Fn>CDnHBF&FFEDDQCkDnEC%MCV~FeQFC GrE0CC~D!GRDGFN4DpE^(DDDEDQ EۀGsDb9DcDkFG:F lCӟDt1 DQKCXxGNEVJ.F0GBvG*GCCGCD#DW(FD?DWGB&G,CYGƁFGg OCGE*qC(FCD DGD`E&oG7AF/NCfF*GRD"RCoڈEJD)ʺFDeH 9CH )FElDP:F|:EEG@1~EoC4FCIBDGG5-CnEgG<GD E}2F\[F]GeDbC @EgFD9(cFC"+C};Ds#ECFHH8E<E:yGZ%EVEF5QG=D*|GEA<\CֲGǪF;$E&Gj6FFQD{ ;G oE4C8GSD^GC:XF6QF LEbF~>GFtPE"GLzDqCDEhFD0zCDF.CeEwOFC/KE3iF7+,FDCbD:WF-C!CGC.C?CES#pE#rEDGt D-UrFCgCCK^G9CC[1CB;FBEEc hC,!DMGF?ELGfCTG:QGPFnE?IG @EnD@GGCRGAF'CFU1.G^BACG_BCE,)CE>*EPG&CGoUD'DZGG\JdE6[!HWlDEE CEP@DHDG"GCCuCmE/G95BEzwFJaEMBE07cF"G#E-9E13FFTDHDG?NDaC:B]DpDDvE=YDmDVE G$E*C5DFRDzE|F E+Q}E%DրGcDEr8&E,FDCC/mEW6Ep>FF)[F )]DePLGOGOC*GD4FCeYDEFYCMlFGH BG-V+G35DsGFE TC] GsEC@ыCJэFF:ECKOGŒE=@FC?LE'(C9IE[ҨD'5;DE4)EG:CtɋDaDbDcGdH aD XG?GK-FSD+3GpDZDYG;EZCD5ܐG);ED0GnXD[âD(mCXoC'Cd DACDD$CQG$G%D#[E.fGEaCDyEiDC- CE11EY>Nw%NNw(_=ZUNw#3aNw9%=Nw#3Kb=%==%OZ=!Nw/Nw=*`/Nw4Nwu=%NwNw&4Nw!:==!Ң=/ n=(_Nw1=HWPNwH.-=NwNwZ9=&=*`I?=!JfNw"X="2NwLGy'6:GyGy!8JGy%MGy!UNGy&>Gy)DPGyGyC Gy,7Gy!LGyAGy(aKGyGy"|GyIyGy1 GyQMGyM+Gyf`Gy*H?GyGy>GyYGyطGy,PpGy Gy7Gy)M*Gy4%GyGy!yUFGybGy"GyGGy=QUGy zGy Gy,TGy!IGy5hGy sGy #Gy+n]Gy-Gy!Gy/2Gy$OGy+(|GyWGydGy(Gy">Gyi#GyGy).fGyTGy*6GyGy Y]Gy'~޾Gy(zǷGy" Gy-Z,Gy-"OGy,ބGy eGy>GyrGyGy%Gy'Gy*BGy&3ւGyJGy`Gyl @Gy7GyGy-%"Gy.,Gy-OGy[(c8['91 j)mz)!Tk(LQ;$r0] GD&M$T)V *xm/RX tX >X @W{&^X GX U+X 0qX yX ( X ,RX   X jX lWK6WX C=X X *X Ÿ˓X 7WBiX 9"X QCX ÀQGX jwWyW8,jX +X X  FX REX LVW/GX :VX O=ҽW GX SGWHWޯX F/8X ?X +X 7X :zX j\X *ľX UmՅX  X LUW)!X M9X X  nWWMFX VnWX ?(WEqW&!X 4>X JNX QHX 0;(PX BW/ X W$X $VX ώX X #zX 3FX "5WCX X W-X WkE2X NWUFX VHX =?%X F?*X J7}X C$X GX WIDX \X I+WZM6X M9W7X IX L0WW1UX aX >X ZRcX frX #$΋WA7%X WVWyhX )MXN$WX 'W2$ WFUAX ܾX QX @`:X  # 4X G5X EX Wׇ W@RX Z]X JW W+X Ј<W1M;X i$3X R5W 4WʏX X TX FLReWwX L3qX Z &X .׃X COX ǬDX "+"X W;X X ,X 8dX VX jX aX 2X >X C3SWmTpW@OX gXX @TX GAWfPWPWߥzX S:$/W:5X X AkX 2X 4°WOX J`W>ϭX Pk7X 7WXX XX 0X Y/ؑX ZX W+pX 1X RX JcW/{X PvO0X AOWЪ6X 6X AX J3TX 7 X 'X <7X H X LX 'WpI)W;wUX .W_W0X @0X X ;X X LEQWT=WX CRX )S WX IX 0]W9+^X vX ҪzW HPX έ{X ؐX v@WEX ئB!WX :L)W fWX ?X X ?X *X 'ćX @n%X 6X TX :JX VS X GWWX /iX LX *X mWQX #&X 5IwX Z7W2EWZXX 9W"NWX ѿK X KKX (<Wy!X W2OX >mQX X 9'HX W8X X 4X -DW,WX dWuX H@WX ߙ1W1X ژW$W&W7NX  NWX O2݀WZ6X ϵ1X 9YWAAZW5O-[W(6cX uFWTC_X YUX AMX ` X _W[*WC$W'1)W*W:W'jWӣ&|X D WiKX /XX HX B̛X XWHW5|X WX 9QX S:X JX J X X %X X +fX .WjX < X *X X ;W+WC X ZW#X G03X 7X ZX ;KZX +WUFX UFX $aάX nX :X WX 4W3WYW!YX - YX ޔX T\2PX AnX GOX X K7wX OX J[ǍX 3WJWԿX ,-WX MUX eWVX 1`IWGIX вZX X X X TX 6.[X LX ހΪX ךX םX `X dX ?X X GX (X d0W(QX 1/W>X ([% W[SeW#(X 2X AmX J)X (,X  X B W1V X J;oWCX X VEWEW9XVRW!WL X X 2,\X oX ;JMX HX +cW X LWT X 4RX DX 3XWIQX D1OX 4z5X 1ֺX <X B?X >TX ͨ/W@oX ޚ@qX X L5$X Ֆ9WX \W@2X 2X g2X  2X X7X  =YX Z~4QX hDX =-X 3X ^$X HN1WHO1X O>W{OQX nX  JX œ7X 'W "X =.AwWMAxWRX =r)WX %^X  WX ZC)X +W^IX =WW$>X X Wv X WX,RWW# WX D:X (~X +K-X ʦX ʩW1&CX }6WEGX X'/'X *X RI W#X B4W\4X JīX AuX KX bX ,WѡڸX 4EX  1WUWU X D<W>zX N "X &"WVX rX AW(IW5uX 5zX X NX guX K*X C}X uX  X W WOX ^X Wؽ`WU"W/ĩWDWMX ƂW1X 2X GjX GpX QWWA"W>+W&X X 3X ' WWȿNX ÆWŶ uWW7LKX \LMX "UX HX 5HWyX /X 0OX W &WX  WM֐W jX S W.&WZ|W:*X X ֌PX =WWhWrX ϜjX X1<X L1@X ZkX zX {X ; )bW?)cX Q)eX :X JW X :?mX X LNX #.4X #04X I4%WցUBX X OX /QWIWCX X=X HIX  ?IWUDX pF9X  X 8WU;X VhX %Wƿ\X X  @9X L1@=WQ9*X uX ;wX XNX   X չX 6_NAX VJWJX >!WS!WM™X xX OX RX &X qIWHZLX W̹ WaX تcX *W&fX {<X fMxWWX R9eX 9fW> X .W1X 70 X zKW-X B+>X X {X WX //X *GWj X 8X @YW;pX ԏ tWW,X ĪWޫWFX  7(X ѼBWBWp*X JX X DX  dX oW,"X LW=W WSo1X rX (sX tX .X  P:X X JX WCo#X =dDW1X ~X MAJWX їX xJ8X XX 'ZX ɓX W=ɘX  zWSX dX [X D;RW8WHW%NWñX /X QX IbX ŎX ŐW9X VqX X  9:~X C2WX 9WӖX XfX >*?X ÓX $~bX $iX QW8WX ZmY;X z#W5DX 9rDX UX 7X ?wX %>ZWn[X )&dX W%3W c X &TX +X B?X (4(WIX  ٢X ٤X BB-GW9X 8FX ѕ*X X ӘW1a˙X 1b˚X '8W:X 5 Wh=CX tMX 6X 5W1X *BjX 2RX ٕ*X X JX &hX ,4X ݮ@X (X 4E9WX 0WL_X շX #eX 6tJX ??X X SWX VpXN1OW#7cX LX ;X ?_0X P3X D\W&cX 4W X  X W.j9)X YzZqX  #W< X lW4-X ?WWΛX )X bX 4KcX ź:W&g}X  WJX WoYX  YX -X KX _ 9WHՍX 1`WgWX),X WXX <X X :X OhX X |SQX jbX PSX uXX eX ZUX ,ԬX <W7>ZsX 1eX ^ X -X 0yX ň"BX >LqX /xxX BWWNW X @$X X J2?X X 9X ۸X AvKWE[X X  WXX EX JX OX VTW,+WI0MAX 5PWݸX EX X C$X ЎCWZWX #WWG 2X *.X EW X #gX +X 0qX AX &5eX (X &7$X SW >ZX ߬X D;X X  X VX ({W'-WY:PWWR>%X tЊX XX TKX  YX YX ٥$W@(X 59X =WQCX xSX24?X  P X  4X ?b9X ?d:WWDX I W.X X (W9WmWX >X WLO@Wq3[WLW@H+X BW[X IX #KX gX 6X ˦W YSW X I;vX X VjX WsH]X 4YW +WZؚX WXX ÑVX 1q X TʑX &'X $&*X ݷۙX X )YX ;?X  +|X &X !?X 4H4X A`3W4ZWW}QX TRWE X IW; X EX X WX X #?X EBX )WOY:W$:X YCiW^CmX X FZX PZX WVX =W.QW X 2WX SEW%X 9zUWB2[WOs(X W! X  ڠX R.1X ʉX Hp+X W0?X SWP9"X X 3X 7KX mW?8X QZ<X 6Z=WX jWJ1X }W X AdX  "W-" X JCnX  ]X HD+X E;X X 'NX ܷX ,hܸX KtY`W@0?W I@X |W X BF*X ;rųWNsWVX ;2X W?*X 3g*X Ԉ{X X OXrX  X PWi/bX @X X ̙OX 4X E\W X 6X aW8i6sW`VW."X U0WX  X r9SWVIX IX -IW=0WsZX 5X 5X VX &v>X zOX =O X ZO X *WKgX 'X <X BS3,WX  WX 'X 1WV5X W̸ժWvxX I(X )WWX SnX 6X n.WV?WX C&X x7X ǕX X F< X ,W/ X W27X /RX ZGX '-W0NO W%X IWX 7X TGWH+KX WW%QX WJ}уX 1rF|X 1sF}X ؇:W'W5X X '!vX 9X TBX 4X 1WYmX RX >X &LX T7X sX X > WX X P WX ̓=W/*X 0)VX X X  X ȞW9?ؼX X X $E,XX @X 5X x1X BTX cX Y:X 4:X `:X ۹X Ŧ&NW7W6/-X PzW:X +X rX X "X %nX W{WVX  .]W)HX X  |?X ;u +WW85NX .܇X )܋W-WDQ7X DQ:X ֥WMm6X @>X X 3$WX bVWAX CX `iX fnX nX ;ʰWRW?X [P|X %TY|X ..X ;UX $zX ONX !MX 7RWX X (!@X S2"W=BWKW#7X 9WX  WBTX 6TX HX ԘX C<X <X $X H9X 1WYX S6WI[aX UƳX S{X 8'mWWJX >2X AX 0WX |,WX MX $rFKWAWX  X '*<W|*@X AW7rX 2/WUCGWF W(XX @/X 1TX BX !X L)X I%X ~X OAJX 6%X X X ˲ W*dLUX LYWL]W'40X *(X (5X #\X KAWP;AW(X (W4\X :X 5W S[X EX "X KX )X 3X ,9X zX W/X OvX nWpWaW )oX "`X @!X X 2X +M?tWǵW  WW?X IWX   W$ PX -W &W7`X aߚWXX . X LW)X +X '8X YWLȋX GWT8X |X VGX 1X \W FX X ǯ2zX X _SW0X RX *~*W'WEX %WAWXX /X KWEWvX :X "8X d$zWW~W)VwX VWG X ;1WܧX [&X }X nLX ׻WDWUX X wX :X !"X مWU WU[X ?X & X ϷX Q\OxX F X ;aX KX rKW,fDX ,gD X nX rWYûW%X X WWWV5X ѽWX Z'X }lX ŷV}X X @)X 'X B X DK!X 2WCX rYIW X ,zX 7W"AW>9W;EX  X xX $eWuX = X WW LWuX X YZ&X b .X ~ٳX X 0%X X "j2WʆX =cӠWɚX 'X =OX RX e5Wʕ1W*X %X >V&wX A X E X !/JX UX "X NW5]"X UX /X @iW1vWW=,aX  8W5WH,EW0-X -!X NX W:YWJX i!X HEWOC#X !lWL4nX A:PX -7X eWW F#jX #nW6 4JX UnW,CX 3X (X U(UWW#RX RwX rG~X UX 3 X PX 6W\-X ߎ:X ;3۟X E۠X  X =X F?X yYfW{WkE X X ?=X F9X 9X ĿJbX !)X *BX jdX *WX B &WE=W7_X X|W^X 0"X pX .zX  QX (3X TݔW 8X !AX QRCX n X <X iX FW9%X UErX dWW#oWX FSW9TX X ڶ'[WW'YcX (X X J6WݩQyX ;X BLMX ͉WPR5X SF1X R7X  BX 7X +2WPX M{GWX EBW̲PW& :X S[X X iV WX :1-X X 8WJoX qX A-rW)ZX OX 4X 6@X W9X $WX L/VWDX ,{X  tOX WWKaW X $X sW-UX 'W8tX 8uX CZX wX j>X (X WWܼX 4X ,X -Y.X +}W1<X OW&[ǞX /rǟW٭EX  W}X ,X (MnX {X M}X WIX |DX H5OX "_X a%X :߆WGNW8GOX 8GQX W;X / "nX u X  WVLWNW kYX 3 WKW#vW8X 2PX , WEX tX DOWX ~W0=X sX @X 8OPX AX 9[ X 3W2X X ;57X  iX BX IC)X FW %X X ?kWĆ?X mW+X DX 5X BX ETɉX X NuɌW",WΏ2X m3X =FX % WX =WBlX 0*}WcfX mKX X ʨTW 6.X X NrX 'X X 5ٙX UX oW)X "WX bX X HW+WHrW0kX X ,iX FW¿MWOX 9X @5X *PGn Wk*%#P%t+,V'Kt" @"S%L"Yv3M\!V@@!3g+٨*fAc)*8'q|'S! F.af"+Ì$! 'N]'u2 -E"sL(Jz!R(WB G&-E?[.! X"N,QF7vpa-'Z3P>c>$9B+$9>$9UΞ K?$9. ++]K?$9K?$9'EN$9B.LT$9k<+% eT\$R))UB,'09- W#jA%v=)h?w,Fi&V_ QbKWWW+ ]L8U$ B'c9j N%?qO$8-])' *+%+Kp 6"*@(B> .& \+6 /V$A;&_U :,O1U{F#4bq/P/ :/Sӊ&&X&]&O&#!Ԣ$.$n&B֡*<|-+!$5$^E!s7,B +$}8+uf(S"6 49 #sF&@ 15b W*0a nD,,C?11SQ 6j#+ pAV*מ " )U"vL(.&< iu. QJ IG Y'VVxj W*BK2)o#I*y'g G+D}+$W$"?%<$Q,>:õ$@{!n,+̈ *AR%&*-(\V$h-@ ,ݹ$B+*Q'(Z&=Zk!cJ$5ۜMĚ"D6-3('H) U!TV!b(U~* %$:լ'*DhKTE;?P< kɅ,2kp !.!"T5=-+"R]-9G! *,Iߛ؊&Uwā)k(E&*CV7D#&L@H c&*;)%w2J(d%0 ;(,З*s:_"z*a'!".!(G']'x='u). ,$ Ġ*ԋ* W%UC15&C$  p,)ϑBT 6z*"$D!Mq- %P1s lZ%!6H2X,)A%z,H-*u 6 MC%j@D8'cY$ -lQ%&0`w/SM;/S LKϴh/\:2D͠=/QS#W(/\(2&/[k;'2/Vh0}ε/S8VA΍-/\Fc]c/\59YѴ*/R6(A/QI=tr/QK1tk/\J/G/T#S\</XzJ1d%/R8oѕ'/Xd2\$C/TKj/\Mg:A'/R2Z/W C$Sn/ZM;!/X9N8r/TrB^<"/Y>Re/QS/W0x/YBIr+F/R=mώ/WV/Sz2iҚ/U0$jk{/U;lkl|G/ZNC0 ]/ZFqX^/[nI  /U8=/W4̢ /YU>zT{Ћ/QcOgD/UA>9/ZLf^/TYBӊ/Z0NEN/XR̹/XTMzG/Z\RuXi/W{PHҌ/ZWY/\Sfl~(/\GmI/YMEYP/SS#7/W5/S5fK/QQk|В/R+4GJC/W(B5;μ/[&P _/SQ]./X?U6/[N%7/R>PuUѫ\/UIHvE>/UJ>;wF/ULB /\?̑7/\1̒/TL-/UKIT/y/Ug3/YtGo/Y1O /U:*S/S[L Њ/SG86:/XU=Lϩ/X0zMϪ/Y 7mu&/UU[(s/W7?%:ШU/S>k/\A='0t/RVi|/[ =<25/Y_L/U'>,SҨ/QCiq/RIS/XD(Т/VLT"?/W|8 /\FiΧi/\D)X2/XHTv'NxA/XJS)OyI/TD?-_ͣ/R1Q[Tl/WC .!/[=@{гs/T.N9c/UN.`E/QPG2N/WAWN>/Z@Lvi/T4>&M//UJ^7/\Ah>5/TnVH5M6/To4I6N/[}Vt/TSup/\FOЩ/Q0!<Z/Y8/s5̦v/UL<K-/Y;LxIi?/SF(/S6M!iͽ/RS4/\q@xHP/[a<45/UDnkϔ1/TyBxA/Q[5aRR/\PW/VI[$/[Rѱ@/Y9O/S6fwD/Q:b$*)/TI1%+g/RcBfs/X9hi/TE1U/WHG/R&T7s/Z9O >/Z0,s /T24tϱp/X&9' /YJG4M/U_AI?͜$/X 2@͞/R|76'/[DtJHp/Xg4=mЁ/\E7?/TT5 *6/YyMWӃ/SJfV/XjU+$~@/W,PW /WAv5/Q=Х1/\Nx=`/R9;Sи/WOv/T-P,VR"/[TZep/WJtt/W9Muu/\YDlP4/R:zOm/Z H#5/YQc͝/X: /ZEB#_M/Y7 /V0/YIQ<cg0/Y;,2 /X5WT7j%/SF.͔/U>/Q0a8W</[T3/Vq=X/WRHX/S]08[/R8xeP/Q4B /SrV7HO//[Vj)&E/S?zNҤU/TzJ@a/S@A/X@B$/[.M0/UL]a{9/RjU)7ϼ8/X70o/[Jϋ/X2 ^/V>ͮ/[Mdsо/[=jY/R2κ/RM1n/XRFp5/T2ӓ/R'=jр/XII(bn/WL0/U8/\Q9  /Y9? j/TV8};/Z>J8/SEy//\ T.E̿b/V6pf/Z;OdKgG/T=|/[:Q:A9/S<M'ͯ/SF~΃{/S7a΄S/[_P)1_&/RQvz/UKkн/W=F#J /\S?M/W?TX/SeKsAһ/X>Az@F/S=eA/QNRV/UT)/\*BWy-/TC+aw/R@knқ/SC R./T< ]/T@ ^/V^4 F /YFLH/RzM=/QFJ /Y2 k$/ZO}/[B3Pѿ/Z'Jh8 7/X5F/T4Ϟ/R7d/Z+2~{I/W:Z͌{/W>[͍/XS0Tk./X=o/RD7VJ``/VF5So/RIJ>C/Z0NI /STK8?Z$/WT-Bѭl/R? ΝB/[@hҀ/\MJч/YPNhC8/YQKiD9/U:M/Z=ovs/W!Ags /WNZφ/YO0d2{/\1e3|/X;/T9/|/ZNẒ/T8-#/QO;/W=4 0/Z7;#IRV/XG`fe\/XJ /\Q̛/QQl3/TEZ/X 7!ox/\H3hn/SU0p7/X=i=/VN 2z/VH/WjKͦR/S=ϗ/T?<:e^>/[6//UD 0</[Jr!/V:R-/RPGho}/V0B/ZwGM/UCNLOω/\EktFP/RU5 /RP0^v/Y65K(/\ S4vk4/WHcB/VM^#s/RA/\ID=U\/[8WK/QR2'O/X;9_Ωh/[ZEӅ)/Rr4T2/ZS\4/QUIҟ/UOIs/Q2b-ps/R~W3yИ/US9y/ZaBL΢/T8W-/XVWSG/QUt,/[EVHV/ZB:t-й/QE# {̨D/VgE& |̩t/SH[)C/\UC\*/S0A/UNCE/YkE[/WTK;Ζ/W3FF/VU9G/Ym<} i/S}N"k/W4teа/[dCwoJ/[eRxpK/X@)n/Y3P/Q735А/[G/TIW4!V/WFi?hx/S8QЧU/WBPXRZB/W3m$~/\?gHs/QT14V[m/RlB/Y5#Јp/SiPL ͈d/Y?9]/VJsk/\;Ѷo/[MQci D/YBW/WF<Ͱl/[z7/S5T/Z 7a,̭>/QF173Z/[@/U00/[D*Ҽ/\MP̠/V7t/Q<E/RC3zf/R:S{g/T85b`ѝ/Z6,n/R 4@B/W5:c/UFpv</\u;\͘/[2;$/Z(JUz7/WCq/TDoZX/X1-"J/\C!/ZGҧ/UThn`ѪS/YiW0E̐4/[<p/[1~q/WZVnѐC/YD%8/Y8&/VJccM/\JQ/Vd2)9NT/ZDR/YSFw̱/R/LJfM/SM)2/[U>] /YT_DE/THdή/Z 0nU/UO9Δ/[(QHA/X?<u/\5</\ P;я5/TJ+F/ZSix/SwG/Sf6+ο/[/Q7CMH/RL!d+/V2x /XNIPg/RN2a/UI_/U: Vw/SW~/T GgϮ/T Dϰ/W>~vP/R3Z/RF ./[TIE/[VNFz/T4c/Z@<6z/V+R1W/SSJ&)o1`/U;3cj/VS?cJ/R)MEG/SH'-/WL̜/[15y/Y0a>#/[^T}'/\0x͵,/W@O&X/[P9|ΏY/ZTBok̶/[Q  &$/\Z9КU/W4C;/RO{/W`P-O?/\1j/ /ZI|ϊ/Y9,Cv/QHF< F/V3I0T{/W?M/H'/S8LsӒu/\};C-/S> BDP/RF#/Z45kρ/[K\/Xѻ/Q1I=̝q/WTJJ/S5T^/YAOHVbζ/TE/[Kh/WAo-Ύ/S3Ok`/[ARP/WH8D#K/[L%T/TUBJM/XC\ /Y0th"*/ZjH 9]Q/Zl4=:^/V?] (|/YEI/RI;%Fl/TNlKzP/StHe/X>>/YRN$<Н/VmF=О/U68'5/W";Bpl/WDZ/UZ@Z/SQyF&u/[@M_}/QfB3G/XE5M/VE8cl/R0by-7/VO̯'/V?X̰/TW O/RBF/\z@@/X:j1^/X7}2_/R>Y͕*/[A͖/UN^P&o/WFxі/[PWRu/URmF6/VFE&/SILe/Z1 9/S>^Oh/ZJ/U;-qz/[P=nIҎ/V0= !m/R-L>sϾ~/WV}/U;@jГ/T[2L /ZxK oI/T7|3&0/QS3υ{/V6дA/UTd;J/[3OJ/V'@}7/W7u3v/VDЌ/R7UjGўa/YQVΒu/S#@D~8E/UBd>/\k2WX^o/RF7=|/X{C͙/\1#ҍ/[-CMl/UiU7{H/W~2cW/Z9p#/\L! g/T@9"͑/[P$n/T?y/[G5tRzҾ;/UR  V"/ZB 9/QTXa/\mTYbf/Y M`̆ /R@GIs/W:nJO/Y3RP6/[B.e!/UXKZv5Ρ/W<@ұ/XYRk/X]:[B!/[[?*;/UOf/ZT#E/[B4j4U/[9k5W/RTA$fϖ/Um8X*̳/VP>ac]/VG/W57/SmL8B/SI҄b/QOzV/VKW/YnD"-/R0< /U ;^mѡ/UNz?/SO /QG~G=/ZOT5z;/Q2~/XC/[C~/ZsVODљ/TU)/ZKC/Y6ϡk/Y!OL=xҭ/Y"1?yҮ/\`V/W/[S7q/ZI9\/Y|2^"8/UBD/S1t'(/V8M?c/ZVN@ /[uP0Ϛ/\@/XH|'θ/[:.;v/ZU5/S~?/VW/SMtҵ/UGf/V9Uv'/W7=$(/YMh|δ/T;5̬ /QL̀ /\UkӔ@/Y(E{/YC-j}/Z*:^E/YS8:ς/[IhD,^/\;Y/RfHw!/V<@Qo/RSg?'/UKtS7/X4Ne>/\8>/E;/W2b1/\?f=/VJdu4/W<@/ZE:ѵ/UJ3\/TPy/X1BC/S<΅/Q=K5/Y/Ed[/T6-/e/TJ. U/Q850B/YaP^Yс/Y2o6/XsJXSσ/[3:D #̟/Y:kk/YNl~/\>1/V6q@ϧ]/RG5|b/T2 Dr/QVmHDid/WDI/X</TH u\/\[4k/{,/\3osH/XI5l%/Y2-/ZJQ}Wu/Z2z9  /ZA{:!/W3zD/Y>8 /Z8!&Υp/UU3gYҜq/XB0.eD/T:B5/Ru1"/TR̄/UEY+/V:*a9/UAi+u /XCeK/RQF=TΓu/Q:PsP/ZPz//YC6F.Ґ/SS!*ϑL/Y>+ϒ\/R}C]/Y1o>Q/ZC{\G/Q98->/Y7s/T1J/Ѯ/R_K?tZ/Zc60  /R;5hҿO/U/IQͧL/UD}r/QsP2Ҕj/VHZ*/TXSja/U</V\@!~d/[UMβ/\LJU)_/UGT@mq*/Y0QWͳ/RSbE//Zt22/\Q'3/RKSν/R:it/YC @̼Q/\7o/U7 f/T_@stΪ/[W] /Z6R cђ/T%0Y/X< Ҡj/TE1Fηb/ZyLfAd/ZQ/Vn;QRp/WKC:̇/T<{;S/Y UK/S`7S/SaBoK/YY7B7ҳ</V~>ce5/UL6L%6/\r;DI!/UT4Jα./ZOY/ZTAY//[P>VΗH/X8KWΘ(/\Hsҫ/XU"-Ϋ3/RTjMn/U4KЄ/Z]T<IΌ/RDaҡ/QNcg/QUh/[JS9/V=h/YQS7}w/W#F/\N;VO/2/V>NM/VaPS?̗&/U,9^ы/WB8<Q/[F=/S?C p/U&Dy/Y4L'л/U0<\̪/WHB/R=0?ӑg/X@ŤI/W27Y/[J7[L3/\Ijf'/\Ntg/[DS('ћ_/Qv6gc/ZmH̃/QO/Ty͢}/XNnQ1/SHR5/TP/TE[XN/[0n/YH-Iq/XTf=`/Th:?Gѷ/ZLL/Z9c#/SM]2*q/YCC* /VR{m/[H8/QP/XK[/Q{;,]/\";f/R%Nl%/U)M'!ҽ/Y1?m8Vg/Wy0Sё)/VO\-3/RN0/UqKq͂n/X;L/QSY~o/W;D+VJЖN/[T ,/[]5J/\V@5A{ъg/X7X:Җ+/TQtlί[/WOw /RwT{U/QM>+/U; /T?J/Z:9QӍ/QGSk/R=89.}/YF;?9͏'/ZG/[;NR/TJlH0/QS/ZKΕ/TC ͛/U4V&&/ZOЮ:/YzQGa/\b=l/R`3ӂ/[?VN'/YK6ZR/X3LФd/[q9 g/VL)/YD%2/Qi@>/S.:/VL&ң/VPB`8/WVKr/QC Pa/YR_]Ҵ`/RgN:#/Y}BuQ/Z1`wY/V:h/QB,&/R@L [/YI}]G/Y7<h̫O/V"Re"/XJ `/Y8Y/RAk/RiElL/Y:Z/Y2[Λ%/ZGxP}Ҭ6/\S  /T3bu~L/RCETd/QqOd/\?Kp/[<Lqn/Z@$#/ShF rӈ/T1YgͶ/W]VQ</XQ/\E?|``Σ3/XOHhL/Z6I<6$/R7uZ/X:Q/[{G6mm//WEl/RTPΚ/Y28Gs/UrG\[/TEN`9FS/[XHZm1/WA iyw/WSjzD/XO[/Z?K/[C!/U3/Yb=z_/T14%ΐz/ZZS5&Α/Q>T0\,/R\8"|(/TU2/X+1Hro/Z1`(9/SC3̾./Y7D͗/\y>"/U1@/[Hub/TPC>/ZO͊/[J_5/WM\I2C/Q3o"/YDϵ/[0D>1$/T=F8S/Z!>av/Z"Aϐ/U?z #/Wo3dx/ZKJ9\/TQD/Z5Ϥ/Zq=xu3/W49/W9ц/X4hJ/T!HB#A/Zi3d_/ZPdЍ"/QE`]ϝ/T4SX͋N/[mU' П/W=*T*/\|T/Z/C}ͱ/QRJ/WxEC~L/XN(E!/SRV:/S,0>sѬ/Zz9~/\9Lх#/SF/[/XGA1m/Tq@_T/WT,|/VNAҒ/WQTx/VyJ_е/\Sdj/\@Uͻ/[JH/X!E>*q/ZJ]Ҳ^/[LNs/W 7k M/S: ODj/TU'/W:,/Z76E -b/WD!./W$4'X/VS{MHҪ/[Lnp/S^HV /S2[\(_/VUCG9/WDxbVy/VRnK7c%/\?Fi/R#A*=Ҟ;/SGTzc]/V2"//Z3"/VM3Q̈́/TKgFQ/W'V.1(/YBCf/XAg/Uj4d^/[LRn/US/\GdC /RaUPd'E//Yq@~Eq/ZkTx/Z?@)/TP0eX/[2lw/ZAJZbS@/SZ;w"/Q|Ux/X7<Ӑ/[JͿ/S5/V5U,w/S2VbIH/U@dy@/YxRP8/S;.ze/\QO-R:i/\Kҝ_/Xx3w[ ̴/RHpq/RUT$j[./[HЗc/R:/SF}s/T9zP/UW$mF/Z:!K-/QE9wͪ&/WL7a/R@ӏ/WR~/X=Ѣ[/SQ#Y/Z MX</UT/ZoB@3v/\Np>W/Y7@/TJmAG/Vo1BI/ZN1њ/V7@;k/\Pb/[Dh[h/[0\O/[iPtl`ѲP/\1@Emaѳ/QA`%N̖z/RXM%b/R1>/VJͫ/ZR8^iU/SE/\~R k/UY8p'c/R";i[ѣs/XI w/VG< /Z= Qf/\fP(^/SN< /[IDq́7/Ue8H)X/ZNC \/\=Ch/[CӕE/X08J Ϣ/\HD/[!QNrΜ/[>.F }/R.B:?/W+6p*/R;dyq/U>g8j/RF6/X8?@/S0L\M͇y/TB,pL/\8OJ/W4&URz/WJRVS{+/ZB3R/TI@hHj/\M,Ͻ/ZBV)ό|/SQ^/ZQ>Ѩ/X~Bт/\4 /Z <'/e/XX@0f/Z}Dnm./[~0/\_UO Bi/\:,+/WD]v0Ӊ:/SQ3/WDJͷ/X4L@/S-Hv,6/U>q~/SOYҊ/Zέ/X#05/R:"` /\M0V$b/[@zF/Y@;V0/U+PH-T/[M}e/XNT͎h/TQ_ѧ/VT!"/Y=$϶/YDk/W 0Q/S2g>/WI8MC/WX7Y6/UVщ7/T5FpLK|/\WW* q/\XQ+ /U=_/Sq6ZqVi/YGcI/VBM/U.M}ͼN/X =~B/SB /T&A( t`/R2X/TN=G/[2zю/S6,/R;2c"/ZFd#/R@4c/VN=6/VOS7/W)VΉ/YS./WsLw6 m/VVBLyUЕ/V8 +/\G9:Rs/YSpJΟe/R48NG3/VD85. /VE;:6//R@eχ/VI0%$/TKc0/TE1$/\5=)/VE*ST/VET/Y{B"\/\Ra/[@Vӌ/\I%|/\H?T/XT2^/V]Vo R/W>Bh/\0t/[p>Al/\]B[/Q;F[djn /Xr@@0E/[CB/TiId+J/YD]w/U3vξ/WTzq̓_/Z>I+Sѓ/RTBt~/YQ/R:N,/\:̵0/[*2 ѠH/Zl\J/T<I2/Yc1&`/U9RVB/[=h0/X|=/[?TD}/X9dΙ/S1</WO(&U/RG+/Y 5[N/U`MDfN/R:^=H/T3iQ /U(V a~t(/X?{uЙ/SUO҇/QuDjN/[;:΁/\O|;΂/Q4Qj,/R,R./YIl= /XHlcJ/Z`REPݫ,L0(T^] @( ,#5+RvCC0"*'[BN,r*z)qK,Z÷e,t,SV(R B 78LW9U%E$54)6 V& '@G!4HH()B) '! 9#Px p-Z*.ц! u+ Al,5;-! Px<9$۞(%+' fU&t5` Yv=-j#a!V&$ ߜ+, ADB;NO,)~.u^<'{'֬DZ#T ,/ ] |$Fi6^ ^+8&N XUWktXUWkuXUWkrXUWkukXUWktXUWkuXUWksXUWkvJXUWk"XUWkrz^X&WkgWXUWkuXUWkrXUWkqXUWkrXUWkqkXUWk2XUWksGXUWk6XUWkXUWk!XUWksXUWk1XUWkrXUWksXUWkqXUWktXUWkqXUWkbXUWksXUWkXUWkPwWWXUWktXUWku}XUWkuXUWkv XUWkt XUWknXUWk~TX_X 7/XUWkrXUWkr XUWksXUWkuXUWktXUWktXUWku\xWWtXUWkt_XUWkXUWkqhXUWktXUWkuXUWk{XMW?nXUWkswXUWktXUWkr4XUWk?XUWkuXUWkXUWkQXUWkv1XUWkXUWkvXUWkr^XUWkXUWkumXUWkseXUWkqXUWktXUWkXUWkuhXUWkXUWkrLXUWkXUWksXUWkt5XUWkrXUWkt[XUWktXUWkrdXUWkrrXUWksXUWkv y[WWk1XUWkuXUWksXUWku{XUWkszX'W%XUWkr}WWXUWksXUWkuXUWkXUWktXUWktXUWkrXUWkXUWkrXUWkXUWkuXUWk#XUWktaXUWkXUWkv&XUWktXUWktNXUWkXUWkqXUWkrNXUWkvXUWkuvXUWkuXUWkqXUWksXUWkrlXUWkXUWkr,XUWkqXUWktXUWkq>XUWk~XUWkXUWkXUWkrXUWkrXUWktVXUWkqXUWkr-XUWkrXUWk XUWktXUWkrXUWkrKXUWkuXUWkrXUWksXUWktXUWktXUWksXUWkrXUWktXUWktXUWkqXUWkuXUWksXUWkv)XUWkqXUWkXUWkqXUWkrXUWkr~XUWkqXUWkqXUWkrXUWkq^XUWkrXUWkvXUWks1XUWkXUWku2XUWkuBXUWk]XUWkuXUWksNXUWkr8XUWksXUWkq}WW151XUWkXUWkr XUWkqGXUWkv5XUWkJXUWkrXUWktXUWkrXUWkuXUWkrXUWkXUWktoXUWktkXUWkuXUWkuXUWk XUWksXUWkr'XUWktXUWkXUWkqXUWkqXUWkt!XUWktXUWkuXUWkqwXUWku,XUWkXUWkqXUWkqXUWk}XUWkqXUWkqXUWktBXUWktZXUWktOXUWktXUWkqXUWkrXUWksZXUWkXUWkXUWkrXUWkqXUWksXUWku.{WX 0WXUWkt1XUWkCXUWksIXUWkqH{XMW?LXUWkXUWkuXUWktXUWksXUWktzWWk!WXUWkXUWkuXUWkdXUWktXUWk)XUWkrXUWk0x-WX 1WXUWkr_XUWkuXUWktXUWkuXUWkqXUWkXUWkqXUWkXUWkv-XUWk%XUWkv3XUWkqNXUWkjXUWkuxXUWkuXUWkXUWkrXUWkAXUWksXUWku8XUWkXUWkuXUWksFXUWk|WWkrcXUWkRXUWkqXUWk\XUWks!XUWkXUWkrXUWkrXUWkusXUWkrXUWk{XUWksXUWkuXUWktXUWkZXUWku]XUWkqXUWkOXUWkrQXUWktXUWku>XUWkrzXXNbq}WX 1WXUWkqOXUWksXUWkt\XUWkuXUWksXUWkr|XUWksXUWktdXUWkHXUWkuXUWktXUWkrXUWk0XUWkuXUWkt{XUWkqIXUWkXUWkrXUWkrXUWk#XUWkqXUWkreXUWkXUWktPXUWku4XUWkqXUWkrXUWkrXUWkupXUWkrXUWktXUWkqdXUWkqXUWkXUWksXUWksXUWkXUWkuXUWkqXUWkrXUWkrXUWkrXUWksRXUWkXUWkuXUWktSXUWku5XUWkvFXUWkrXUWkXUWkqXUWkXUWku6XUWk XUWkXUWkrXUWksXUWkXUWkt0XUWksXUWkrXUWk XUWkXUWkt4XUWktXUWktXUWkrXUWkXUWkuXUWktXUWkfXUWkrXUWkuXUWkXUWkteXUWkuXUWkXUWkqtXUWktXUWks%XUWkrXUWkr/XUWksXUWkuzFXMW?rXUWkv%XUWkXUWkuXUWkqXUWkr)XUWkXUWkrXUWkrnXUWks'XUWksXUWksXUWkvGXUWkr&XUWksXUWksXUWktXUWkt XUWkXUWkuXUWksOXUWku@XUWkt&XUWk=XUWktKXUWkXUWk*XUWkqXUWkqmXUWkrXUWkqXUWkXUWkXUWkXUWkv/XUWksDXUWkXUWktXUWktXUWkqB~WWk1XUWktXUWk^XUWkXUWku XUWkv(XUWkqXUWkrkXUWksXUWkqXUWkXUWkqpXUWkXUWkv XUWkqXUWkrXUWkuXUWkmXUWkrXUWkstXUWkrCXUWkXUWkXUWkXUWk"XUWkXUWkv'XUWkuXUWkuXUWkXUWkXUWktXUWk&XUWkq;XUWk XUWk XUWksXUWksXUWk XUWktXUWks,XUWksXUWksXUWksXUWkXUWk(XUWkrXUWkqxXUWkv.XUWkuWXUWkrXUWk XUWksXUWkXUWksXUWkXUWkXUWkXUWkXUWkt?XUWks&XUWkqXUWkXUWkuXUWkXUWkXUWkvXUWkqoXUWkXUWkvXUWkuXUWkTXUWksXUWktXUWks/XUWksPXUWkqXUWk@XUWkXUWkqXUWkv XUWkrXUWkXUWkuXUWksXUWktXUWkuoXUWkrzX&XNu1toXUWkXUWksXUWksgXUWkXUWktXUWkrXUWkspXUWk[XUWk%XUWksXUWksXUWksrXUWkvIXUWksTXUWkDXUWkXUWku~XUWks7XUWkuKXUWkqZXUWkqXUWkXUWkrXUWks XUWktXUWkvCXUWkqMXUWkulXUWkrXUWkqXUWkq?XUWkqeXUWktXUWktXUWkuXUWkuXUWk:XUWkrXUWku XUWkdXUWkXUWktXUWkpXUWkqXXUWkt-XUWkrXUWkVXUWkuXUWkrmXUWkuXUWkrPXUWkXUWkvKXUWkuXUWkqXUWktXUWkXUWkvXUWkZXUWkrRXUWkXUWkrXUWkt7XUWkXUWkXUWksXUWkt XUWktzXUWk5XUWkXUWkXUWkXUWkXUWkrXUWkrXUWkrXUWkqXUWkqWXUWkqXUWkXUWkXUWk3XUWkXUWktFXUWksXUWkXUWks$XUWksXUWkuuXUWksXUWkuiXUWkr7XUWkXUWkqXUWkuQXUWkuXUWkqXUWksXUWksXUWksXUWkXUWkqXUWkXUWkeXUWk XUWktXUWkrjXUWkuXUWkqXUWktqXUWkuXUWkrXUWkqXUWkrOXUWksXUWkuwXUWksJXUWkXUWkrXUWks=XUWkqRXUWks.XUWkrVXUWkrXUWktXUWkqXUWkXUWkq{}WW*W$%XUWkrXUWktXUWk4XUWktXUWkrBXUWkuXUWkq=XUWkqXUWksXUWkXUWkuXUWksXUWkrXUWkqXUWkuOXUWktAXUWkvXUWkqXUWkXUWk$XUWkhXUWkXUWkv XUWkv+XUWkXUWkXUWks+XUWkrXUWkrXUWkqlXUWkXUWksz"X X c1XUWksXUWkurXUWksXUWkbXUWkv*XUWkuXUWkWXUWkXUWkXUWkuXUWkh| WW{2WX 1c1XUWkr"XUWkuXUWkXUWknXUWk6XUWku XUWkXUWkqXUWkroXUWktXUWkq:XUWktXUWkuXUWklXUWkuXUWkuXUWktX{mWX XUWkrXUWksXUWkt+XUWksXUWkv!XUWk}XUWkXUWkrDXUWkvXUWks*XUWk_XUWk'XUWkXUWkXUWktwXUWktXUWkXUWkuXUWktXUWksXUWkuXUWktXUWks;XUWk9XUWktXUWkXUWkuPXUWksXUWksXUWkuFXUWkuHXUWks{XUWkuXUWkqTXUWkXUWktXUWkxXUWk XUWksXUWkoXUWkrXUWkXUWktXUWkrXUWkuXUWks8XUWkXUWkXUWkqgXUWksXUWkr9XUWkXUWkqrXUWk>XUWkXUWkt>XUWktCXUWktXUWk/XUWkXUWkXUWkiXUWkv,XUWkXUWks)XUWktXUWkuXUWktXUWkv2XUWkqXUWksXUWku[XUWktvXiWt1XUWkvXUWksXUWkXUWkt2XUWksXUWkrXUWksXUWkrJXUWkt XUWk)XUWkXUWkvXUWkuXUWktWXUWkXUWkr XUWku?XUWksXUWk-XUWkq[XUWksXUWksXUWksXUWktXUWkqJXUWkr:XUWkrXUWkq8XUWk;XUWkXUWkrXUWkr*XUWkqXUWkrUXUWkskXUWkrXUWkrG}WWkBWXUWkuXUWkQXUWkXUWkqXUWktvXUWkuXUWktXUWksXUWkrXUWkXUWktHXUWkXUWkqXUWkscXUWk1XUWkLXUWkXUWkuXUWk vWWkcXUWksXUWkXUWkvAXUWkqiXUWktXUWk6XUWkMXUWkr XUWkv7XUWk7XUWkXUWktXUWksqXUWktLXUWksXUWkqXUWks XUWk5XUWkXUWkBXUWkXUWkuXUWkq|WW%W :-XUWkqQXUWkvXUWkXUWkXUWkXUWksXUWkXUWkXUWkXUWkuXUWkt.XUWkpXUWkqXUWkuXUWkXUWkuXUWk,XUWkw YW1WXUWkt%XUWktjXUWkXUWkSy\XMW?AXUWkXUWkuXUWklXUWk!XUWkXUWktXUWkqXUWksXUWkXUWkrXUWkr$XUWkuXUWksXUWkXUWkXUWkvXUWkXUWktXUWkr=XUWkqXUWkXUWktXUWksfwWW;;yOWX 1XUWkuXUWkq}XUWk*XUWkPXUWkrXUWkXUWkqXUWkXUWkuXUWkvWX 1WXUWkXUWktXUWkXUWk3XUWktbXUWkXUWkt(XUWkrXUWktXUWksXUWkqXUWk.XUWktXUWks3XUWkXUWksXUWkrXUWksXUWkXUWkXUWktXUWkXUWk,}XiX bqWXUWkqXUWksXUWkrYXUWk1XUWkXUWku XUWkqXUWkXUWksXUWk8XUWktXUWksXUWku9XUWkufXUWkXUWk"XUWktXUWkXUWksXUWkrXUWksVXUWkXUWku:XUWkqXUWkXUWkqXUWkrEXUWkr%XUWkXUWksXUWkXUWkmXUWkEXUWkXUWktXUWkXUWk+XUWkXUWktXUWktXUWk(XUWktXUWkrXUWkXUWkXUWkXUWkqaXUWkXUWkthXUWk$XUWkt z WWKW :- :>XUWkrXUWkqXUWk0XUWkuXUWktuXUWkuMXUWkrXUWkuGXUWks}XUWkXUWkvXUWku&XUWkXUWk2XUWktXUWk-XUWkXUWkXUWkuyXUWkXUWkqXUWkrXUWkuA|tWX bqXUWkuXUWksXUWkXUWkXUWkuXUWkszXUWkqzXUWkuXUWktyXUWkXUWkqXUWkuqXUWksXUWkvLXUWkqXUWkuIXUWkuXUWkXUWkqXUWktXUWktXUWkuaXUWku;~cXhWXUWkvDXUWkr5XUWkuXUWktXUWkr XUWkuXUWkrvWWXUWkvXUWktpXUWks]XUWktXUWktXUWkttXUWkXUWkXUWksXUWkXUWkr0XUWktXUWkuXUWks`XUWkr#XUWkrXUWkXUWkuXUWkXUWkqXUWkrXUWkXUWkq`XUWkXUWktXUWksXUWkXUWkqXUWkOXUWkrXUWkrXUWkXUWkXUWksXUWkt#XUWktXUWkuXUWkXUWk<XUWk^XUWkcXUWkXUWktXUWktzXCW)W  AX XUWkrqXUWkr{XUWkuXUWkuXUWkXUWkxXUWkyXUWkuXUWkXUWkXUWkqXUWkuXUWkXUWks}WX bqWXUWkXUWkrXXUWkqVXUWkqcXUWkXUWkuXUWkrXUWkXUWkvXUWkqXUWksuXUWktfXUWkXUWk@XUWkuXUWkugXUWkuXUWk`XUWkt:{XX Lc>XUWkrhXUWkXUWkqKXUWkqXUWkXUWktQXUWkrXUWkXUWks\XUWkXUWkXUWkrzWX >XUWkCXUWkrXUWktXUWkrXUWkslX lXUWkXUWkXUWkXUWkq|WX ZcXUWkXUWktXUWkrwXCX LbqWXUWkrXUWkuVy WkWXUWktXUWksXUWkXUWk9XUWkXUWkr1XUWkXUWkXUWkv<XUWkqXUWksXUWkuXUWk XUWkXUWks"XUWkv@XUWksAXUWkuXUWksXUWks[XUWktRXUWkuXUWkqXUWksBXUWkvXUWkqXUWkvXUWksXUWkuXUWksXUWksUXUWkuXUWkuXUWkqFXUWkNXUWk>XUWkrXUWku^XUWkXUWkqXUWktXUWkXUWkrXUWkv XUWksxXUWksmXUWkXUWkuXUWkXUWkXUWks~XhWk1XUWkunXUWkvXUWks4XUWk;XUWktXUWkXUWkrXUWkqXUWkudXUWkrXUWkr<XUWkqSXUWkqXUWkaXUWku XUWk XUWkXUWksXUWkqUXUWku%XUWks0XUWksXUWkuXUWkuTXUWkXUWkrzXUWktXUWkqDXUWksXUWkv"XUWkqXUWk)XUWkXUWkuXUWkrXUWktXUWkuCXUWkrtXUWktXUWktc}]XLWkcXUWkXUWkXUWkruXUWks_XUWkHXUWkXUWkr>XUWk\XUWksXUWkXUWkt6XUWks>}?WX >XUWkuXUWkXUWkv?XUWkvXUWkXUWkXUWkXUWk.XUWksXUWkrXUWkXUWkXUWksXUWkt}XUWkt;XUWk~XUWksXUWksXUWkuXXUWkEXUWkt,XUWks?XUWkq]XUWkXUWkXUWksXUWkXUWkuXUWkuXUWkrXUWkqXUWk4XUWkkXUWkuXUWkqXUWkXUWkXUWkq<XUWkqXUWksXUWkXUWkr[XUWktmXUWkkXUWkqXUWkv4XUWkuXUWkr;XUWksXUWkXUWktXUWkuXUWku XUWksXUWktXUWkrXUWku*XUWkrXUWkrXUWktXUWkr|WW~Wc$XUWkuXUWkuXUWk+XUWkrXUWkXUWkv$XUWkXUWkrZXUWkv=XUWkqXUWkryXUWk?XUWkXUWksyXUWkXUWkrXUWkrXUWkXUWk$XUWkrXUWkXUWksXUWkrXUWkuXUWkwXWk WXUWkXUWku+XUWkXUWk`XUWkXUWkrXUWkuXUWkoXUWkq~XUWk{'XX Lc>XUWksaXUWkr\wfWWkL1XUWktXUWkvEXUWksXUWk3XUWkXUWkXUWksXXUWkt@XUWkqXUWkvXUWksjXUWktXUWkxUWWpXWX XUWktXUWkqyXUWkgXUWkqAXUWkRXUWkuEXUWk%XUWktXUWkt<XUWkv9XUWkXUWksXUWkqYXUWkXUWkXUWkXUWkXUWku/XUWkrXUWkrXUWkiXUWkr XUWkrXUWkuXUWkvXUWk+XUWkuXUWksXUWkAXUWku)XUWkqXUWk.XUWkXUWkraXUWkuXUWkXUWktXUWksXUWkt9XUWkrXUWk7XUWk|XUWku'XUWk XUWkuXUWkrMXUWkXUWksXUWkXUWkrWXUWktXUWkrXUWkqXUWkuXUWkqXUWkr}XUWktXUWktXUWkrXUWkXUWkuDXUWkqXUWkvz;XLWkQc$XUWksXUWkqXUWksXUWktXUWkuwX X XUWkqXUWkuSXUWkuXUWkr.XUWkqXUWksLXUWkXUWkyXUWksXUWktXUWkrXUWktXUWk&XUWktXUWkt3XUWksXUWkquXUWkqXUWkXUWkXUWkt'XUWkynWX "XUWkuXUWkXUWkqXUWksoXUWks-XUWkvXUWk XUWksXUWktXUWkXUWks|XUWkXUWkYXUWkqXUWkXUWkqXUWkqXUWktXUWkzXUWktTXUWktiXUWkXUWkXUWktXUWkXUWkrXUWkIXUWktXUWkzXUWkt XUWkXUWkXUWkqXUWkrXUWkqnX1Wkuq7XUWkXUWkXUWktXUWkLXUWkXXUWkXUWktXUWkrXUWksXUWkuXUWkqXUWkqXUWkXUWksXUWktXUWksXUWktXUWkrXUWkXUWkrXUWkt/XUWks9XUWkrFXUWkrXUWkXUWkv0XUWktXUWkXUWksCXUWkr?yWX 9cCXXUWkqPXUWksXUWkrbXUWkXUWktXUWkfXUWksbXUWk XUWkXUWku(XUWks<XUWksQXUWkqXUWkrcXUWk XUWkXUWkXXUWksXUWkqXUWksXUWk&XUWkXUWkuXUWkXUWks^XUWkvXUWkrXUWkqXUWksiXUWksXUWkuXUWks(XUWkXUWkrXUWku#XUWku3XUWkXUWkuXUWktYXUWktXUWkuXUWktXUWkXUWkF|X X 1WXUWkrXUWkrXUWkuXUWkrXUWkXUWk*XUWktXUWkIXUWk/XUWkXUWkr6XUWkueXUWkuXUWku`XUWkq\XUWkwXUWktXUWktXUWk*XUWku"{9WW*W$%XUWktXUWkXUWk<XUWkt=XUWkXUWkuXUWktxXUWkq_XUWksXUWkt^XUWkuNXUWkGXUWkXUWkr 1X2RX1WkXXUWktrXUWkuXUWkXUWkuXUWkqXUWksdXUWkt"wW|Wk|XX W1XUWks:XUWkqXUWkt)XUWkuXUWkrsXUWktXUWkv6XUWkuXUWkvHXUWksHXUWktIXUWku7XUWkqXUWkXUWkuXUWktUXUWksXUWkv#XUWkuXUWksXUWkuXUWktlXUWkXUWkuXUWkXUWkXUWkqXUWktJXUWkrXUWkXUWktXUWk/XUWktXUWksXUWkuXUWk2XUWkuZXUWkXUWkuXUWkXUWkXUWkqCXUWkuXUWkr}WWKW :- :>XUWkXUWkt|XUWk8XUWksXUWks XUWkqqXUWkutXUWkqXUWkXUWktXUWkXUWku1XUWkaXUWkrXUWksnXUWku!XUWkXUWkXUWkXUWksXUWksEXUWkt$XUWkXUWkXUWkvXUWkXUWkv;XUWkrwXUWk7WsWkXUWkujXUWkrxXUWkXUWkXUWkqXUWkVXUWkrXUWkrAXUWkqsXUWk|XUWktgXUWkvXUWkrgXUWkuYXUWkuXUWkXUWkXUWkXUWkq9XUWkrXUWkXUWktXUWkrXUWkssXUWkrXUWksKXUWktnXUWkUXUWkuXUWkXUWkXUWkGXUWkuXUWkqfXUWkrXUWkXUWkXUWkrXUWkXUWkuXUWkq|XUWkuXUWk#XUWktXUWkrXUWktXUWksXUWksXUWkXUWkuy.WW%W :-XUWkuXUWkuXUWkXUWktXUWkt]XUWkrHXUWkrXUWkrXUWkr@XUWktXUWkXUWku-XUWkXUWkgXUWktXUWksvXVWkWXUWktMXUWkqXUWkriXUWktWcXUWkXUWkXUWkJXUWkuXUWk5XUWkeXUWksXUWkDXUWktXUWkuXUWku=XUWkXUWks XUWksXUWkqXUWkq@XUWkXUWkqXUWkXUWkvXUWkucXUWksXUWkrfXUWkqvXUWktXUWkrXUWkXUWkuUXUWku|{6WW11XUWkXUWkMXUWksvXUWksWXUWksXUWkuXUWk:XUWkXUWk[~ WX 5XUWku$XUWkr2XUWkvBXUWku_XUWkBwWX bqWXUWkuXUWks~XUWkXUWkqEXUWks  WkWXUWkXUWkqXUWkrXUWkqXUWksXUWkXUWkXUWksXUWksXUWkNXUWkKXUWkv:XUWksXUWkt~XUWkXUWkrXUWk4XUWkuLXUWkXUWkr3XUWkrXUWkXUWksXUWkXUWkqXUWksSXUWkuzXUWksYXUWk*XUWktXUWkvwX X bqWXUWks6XUWkv8XUWktXUWk'XUWkuRXUWksXUWk]XUWkXUWkXUWkUXUWktEXUWkuXUWkrXUWkr`XUWk{XUWku<XUWkuJXUWkr~G X2R5XUWktXUWkz:WWbqXUWku0XUWktXUWkXUWktDXUWku~SXiWk#1XUWkt8XUWkrXUWkvXUWkXUWktGXUWk=XUWkubXUWksXUWkqXUWkqLXUWkSXUWkwXUWkqXUWkXUWks2XUWktXUWkWXUWksXUWkr]XUWkXUWks5XUWkr+XUWkTXUWkXUWkuXUWktXUWkrXUWkrIXUWkrXUWkqXUWkjXUWkXUWkFXUWkr(XUWkv>XUWkt*XUWksXUWkqjXUWkrXUWksXUWktsXUWkXUWk!XUWks@XUWkuXUWk(XUWksXUWku|]XUX XUWksMXUWkqXUWkKXUWkrvXUWkqXUWkr!XUWkrTXUWksXUWktXUWkrXUWkt}X_X 7/yW|WkXUWksXUWkt`XUWkrSXUWkYXUWktXUWkuXUWkshXUWktXUWkqXUWktXUWks XUWk,XUWksXUWkr{X_X XUWks#XUWkcXUWkuXUWk_XUWktXUWkqbXUWkXUWk-XUWk'XUWkuXUWktXUWkrpXUWkqXUWkXUWkXUWksXUWk XUWkXUWksP`i$ApHz-9=1r5 (z~3#';$hU]<})YO"&~25'ېPJy.a#%>N| D +Qo}6No eGVj5dۄ%%ٿ&'!W !WdS~!Wˠ!WG4*4**S!WQS*S~*c V \!=  ͇ [(*"7+|ZKT7/G!5>B$!6'+.jE ]Y*,P(9JSk)ZUv/8;#Yw&%B5 cUI)--¡5I8rIc 1S %Pb#Su Z'$ ~$-Q.<BxN*Y  "@N ;G+R`*u.V(g+'9;,] ' 5(<Hm,^*GNfy@5G++J4v+Y 5$ [A ]+_JO.l,P%(PQ( l*0#]O'͒u(!'9C# ++fC&WkWk : :f@'WkWk : :fA$WkWk : :fB%WkWk : :V)]-A8V%   V*jj(V =71x Ft"-G*2cE)-'  5hYNyJ >( C l .l [+&c(PNQ vTԥ1-X O..E  h<!{)LHx >@,LY&ǓF#h*W8#&LR+ѥ)5p +<49#/A!/ ˅3'9?KQ -%,=UD M5$FGAu! :B- :-e :- :-4 :- :J-NI- :*- :- :J - :J-!N@-) :-NIW-n :. :o-m :O-.> :J2- :R :-" :I-" :Iq-\ :J-NJ-  :Q- :- :-" :I-( :-V :J-.> :I- :Iu-.> :JI-&E :Je-= :I- :-NJ-m :U-  :-N-0 :-NK- :IH-)3 :-.> :J-V :If- :-$N=-)4 :J- :J- :It-N-.w :N-" :I8-! :->N- N-  :[-NIJ-)4 :I- :J- :J- :% :T- :J-N-" :J-) :_- :-n :W.w :N-, :-) :-  :-" :I- :Ih- :J-" :J`-$O :-" :Iw-$4 :J-" :Jz- :J-NI -V :-" :J- :>-N-(N)-V :I-m :JJ-" :J-" :- :J-D :-' :Ja-n :- :JS-D :-" :K -V :J-m :O-" :J}- :J-.> :J|-V :-n :y-9 :-" :J-'NI-n :m-,N}-.> :J5-i :v-'A :J-" :K - :-m :O-#' :I-" :J#-"g :-\ :Il-f :- :J- :J- :N-" :I- :-N-* :-" :J-m :N -.> :J-' :K-.> :J-  :-" :I-V :-m :- :J- :f- :N-DNy-D :s-$4 :J-&E :J-' :J- :t-.> :I-NI- :- :J :J"r :- :Z-" :IR- : :+- :- :I-+S :-" :x-m :I-" :J$-$4 :J[- :d- :e- :K- :J-  : -"g :-" :J- :I{-! :-" :JX- NY- :JE-.> :J-" :J- :- :-" :J-) :- :_- :&E :J-&E :J- :I]- :- : -fN=- :<$ONm- :- :O-V :=-" :J/-" :I#-fN- :-D :I- :-" :JJ- :4-N6-w :-N-.> :I{-.> :J-.> :J-) :-N)-V : -)N-F :-N-\ :I-fN-.f :- :I-' : - : :P-V :J-"g :-.> :I`- :-O :IQ-"g :`-= :?-G :I-"g :-" :I-+ :--*@ :-" :Ix- :I-m :N-*Nk-! :-"g :&- :G-"g :?-" :R-D :- :-& :- :-&E :I- :-NL-- :J- :J- :-) :-NJ-" :IG- :-NI- :-D :- :,-'NI- :-.> :J-m :I[- :-0 :-/ :-- :J-" :Js-" :I- :-" :J-'r :I6-) :- :- :J- :I- :[-' :Jw-NX-.> :J-' :J-- :O{  :g- :-No-.w :J{-"g :-.> :Iy-NI-& :-V :J- :IC- :I-.w :Ou-" :I-" :I-N- :-  :-" :J-'r :I-V :IB-J :N*-"g :-NI-- :J- : -2 :|- :I-\ :K-.> :I- :-"g :%-4N&-V :3- :K-$O ::- :I-NI--m :J- :N-&E :I-" :Jo-fN-D :Ip-0 :-"g :-- :- :J-.> :I-" :J-.> :JE-N-N-& :t-$4 :I-m :N-0 :-" :- :J;-> :-V :IN-.> :J%-3 :J1-.> :J-m :I-) :b-" :I-" :I- :J5- :-' :ID-" :IF- :-" :I-m :N-m :N-'NJ -' :JB-" :J4-N-m :-# :I#- :JU-#$ :N-NI"-" :m :J4-" :I-'NI-'qNIe-" :J(-$KN~-" :JP-, :J :- :^-.w :I- :J- :=-" :I-" :J- :- :J|-NIX-O :J-.f :-+I :-' :I-*@ :-Nj- :k-n :}) :-.> :Ig-" :I-  :-$ :}-+; :I- :I-' :I- :%-O :J&-m :N-" :I-)4 :I-W :I-(} :-= :J-m :N-.w :P*-, :_- :-*A :J-m :I-W :J-.f :-' :I- :-"g :-, :-& :-" :J<-% :-.> :Jl-' :- :8-" :K- :-.> :J-" :I-m :O-m :N-m :O-D :J - :IK- :%- :-N=- ( : - :- :J- :I- :-& :%-" :J- N- :M-N+-/ :D-" :J-+ :K-" :I- :N-' :I:- :I- :I-3 :J)-n :- :_-N-)N&-" :J-/ :- :B-NI\- :-NJ8-+ :@-0 :]-n :J- :-m :P -m :IF-NJn- :K-& :U- :-$ON-)4 :J6-$ :-V :J\-* :9-nN--'NI- :J-, :>-= :Ii-&E :I-%uNw-& :&- :-& :2- :I -)N-m :O- :- :y-[N-' :I-N- :@-n :- :-'NI|- :I-Nr-" :J-" :-"g :-X :-& :- :J-N -.w :N- :o-m :-.> :J-' :J-$4 :I-" :I-N- :I2- :J6- :#-2 :_- :-n :-N- :@-NI-\ :J- :J-" :JR-.w :Ir-.> :J- :s-! :- :II-"g :I- : -$4 :JV-m : - :- :J-$O :T- N- :-m :O,- :I-NJ-" :.w :O- :I-.> :J-N}-" :I3-+ :I-W :Io-. :-9 :-m :I^-m :N- :_- :J-Ni- :J-N-t : -+N-V :-*@ :-" :I- :J-f :J - :~-.w :JD- :J- :-m :N--9 :J-N-fNl- :J-.> :I-"g :=- N-&E :I- :-NJv- :-.> :J-NJY-% :J- :I-' :-NJ-& :- :K-.> :Iz-f :- :- :- :- :u- :-- :I-" :m :- :h-" :-N-.> :J-) :-m :I -N-" :IU-3 :I- :- :r-" :-N-m :N-NI-G :J6-"g :Q- :Ib-" :I-" :J-N-(N-" : :N-y :R- :R-&E :I -" :J-m :I- :&-N-0 :I-$4 :J-\ :J- :P-% :-m :N7-  :0-&E :J{-" :I$- :Jp-f :|- :{" :I-& :-'r :I- :`- :-2 :-' :J-" :-! :s-.w :O-2 :v-m :Jx- :-m :O-.w :M- :-.w :O-.> :J-  :- :I -! : :I- :C-"g :r-.2 :@-V :J-:N-m :M-"g :b-" :J-\ :J9-& :-% :- :-m :NK-"gN*-m :P4-.w :J-.w :O -" :I-)4 :Jj-"g :-f :Is- :JT-N- :J- :I- :I-" :J-0 :- :-m :J+-2 :e* :-" :J- :-$ :I=-.w :J-.> :J-N@- :-Nl-% :-$K :-N- :-"gN-0 :K-" :J-'r :I-.> :J-& :~-= :I.-"g :<-, :- :IS- :IT-0 :-" :JF-)K :-'N+-!w :~-' :K- :I-O :I-&w :-'NJu-NI- :2-"g :- :Iz-V :I-$ : -' :I-NJ-"g :N-.> :Jd-m :O-\ :J-m :M-NH- :I-O :- :NM-" :I0- :JH-- :Ip-n :, :J-.> :J-W :Jg- :- :J-_ :O- :#-.> :J-" :J-.> :JH-.> :Jc- :J- :J|-- :I-\ :I-" :J-m :N@- :J-n :Jm :N-m :N-D :S-" :I*- :I-&N-" :?-N- :I`-G :Jj- :Jm- :-& :-m :O7-"g :j-0 :-" :J-D :0-" :-N-! :=" :J-' :I - :: :J- :J'-V :I!- :I3-n :k-&E :I-D :J-(} :m- :I-" :I-n :-.> :Iu- :I-n : - :I- :-n :~W :J-" :J-! :8-' :Jh-' :Ij- :v- :-a :I- :-( :-" :J- :J- :%-\ :K -D :b-* :-&E :I@- :J-) :@- :-.w :N- :- :Y-)4 :I- :J>- :D-) :- :J-! :P-0 :J-NI-&E :I-- :J-'NI4-m :O- :I- :J-.> :J- : :I-N4- :Ig- :I%-%Nr-m :N-" :I-" :I- :JW-N}- :JQ- :I-.> :I]-0 :JW- :J- :T-" :J :J-* :I-NJ0-m :J-NJ"-V :J-m :N -- :-&E :JN- :"-NM-" :J- :-'NJt- :- :J- :- :-$ :- :JC-% :f- :I-.> :I- :w-\ :Jy-  :V-D :W- :J-fN -& :- :N-m :P - :l :I^-4 :-, :In$ : - :-" :I:-, :J:- :]-W :I- :-% :-* :P-NI-, :>- :-" :J- :- :-\ :J-" :I- :-$ :;-" :J!-N-V :I-N-,Nk-& :-" :J- :5- :-m :J-'NJ-" :J- :I-" :I2- :-n : -' :J-$ :v-0 :>- oNI-B :- :J-" :I-.> :J,-NI- :-.f :-, :-( :-" :J- :NX-= :t-0 :IH-" :-.> :J-NZ-" :I[-'NI-.> :J-& :- :%-N-& :-m :O-'NJ- :-(NL-NY-.> :JQ-.> :I- :I-.> :I-+ NT- :I- :O-$ :-.> :J- :v- :JV-# :J- :I-_ :N$- :-n :" :I- :Ji-DN-* :-m :-(N-" :J-N-W :J -" :I-" :I-N-f :- :I&-' :I?-$O :-N- :I- :- :-" :J-& :-" :I-m :IC- :I-, :-' :J-0 :-, :Iv-m :J@- :- :V :I~- :M-2 :f- :]- :- :O-"g :- :J-" :J- :- :Jl- :I;- :-m :M- :I-N-.> :IL-$4 :IC- :-n :(N- :J=-% :- :-" :I-m :O- :JI-" :J -" :I- :J-( :Iv- :R- :-) :2-V :C- :Jd- m :- :-3 :I- :- :w-,2 :-" :J-$N -' :I- :J- :J- :I-&E :J- : " :J_- :J-Ng-- :J-O :I'-.> :I- :I-&E :I-N~-.w :O-) :-& :J- :& :]- :-N&-" :IP-.w :On-V :J3-.> :J-NIA-V :A- :I- :1- :IL- :Jr-e :;- :I- :-N-.> :I- : :Jj-N-m :M-(N(- :-"g :-N(-" :Jb-" :I- :- :J- :-"gN-NJ-+ :2-NI-.> :I-NI-  :-N-D :I-N-- :J- :t- :Iy-" :I9-" :J-" :I-DN- :-i :- :- :-% :|-f :-DN-,P!i*'%*a+1.4i'(XR&#`,&BLi l6/*I,E92 ] B). &ۑ!i&C>&] y3,W; p$b?U876p#'$P& *ȼN{')/*_%p4zU İ*>I$17o#G "@$%U$h4+ >.,'"v*!R&\(S&QXZ!7-9X)C,tΠ"F)&* DX$ o(d]-OE! - X," 5 =I*<B+'/k8qn$^`(j2QW+KB-n_FP" V. #>*s-(NR,4¬u6& U[ %w'%"$1EQ*;%t*fVN.!.E)k!c  nz D&j.N&U!n2$&7g'+ $}O!!"? _ T*I`'l!&,ݵ(j5jDo,ׁ5pS ) w$hqy I-95s)cv<="*˹,?i*}1z!)8"$ s- &5H Z$ 2S$# 5(OqN"9 Q#-PH H2J9.T)Aʶ,8hI&5&x s&$ "*X)-&=7: 7)7,j67!7/"Y7#M[71x7K37,7 $7-7v7U7(l7'A7 %q7 7,ҕ7$7.77 &77!cy7+: 7$37r>{7Q7'p4t72#A#*J#H!-^8! Z!t%Hk6, '/FW &B7{A.kSu%ҺZ/`- +?g!-SuX Wkm8X WkNVX WkPX WkPX Wk.8X WkWX WkvAX Wk'X Wk"BX WkX Wk+X Wk+X Wk[X WkU6X WkQX WkTX Wk#DX Wkh>X Wk'X Wk@?X Wk .X WkGX WkX WkX WkHX WkX Wk>X WkX Wk1X WkDX WkA.#X Wk$X Wk>>X Wk}X WkX WkX WkX WkNX WkX WkIcX WkyX Wk[X WkkX Wk6X WkX Wk PPX WkX<X Wk,@X Wk9X Wk#)X Wk. QX Wk> RX Wk$X WkX Wk <X WkR'X WkHX WkX WkX Wk(#X Wk%JX WkT X WkX Wk=X Wk=X Wk,OX WkPX WkQX WkZX WkD}X Wk?X WkAX Wk X Wk\X WkAX WkX Wk{X Wk=X Wk7X Wk1X Wk6I#X WkrI&X Wk2X Wk-X Wk"X Wk0 X Wk}@X WkMX WkQYX Wk fX WkC8X Wk6|X WkX WkX3RX WkX Wk` 3X Wk~ 5X WkKLX Wk4X Wk/߃X WkȜX WkȠX WkQȢX Wk?=_X Wku X Wk(5X Wk˱X Wk;X WkX WkX Wk.SX WkX WkFzX WkX Wk|X Wk+YX Wk֞X Wk.X Wk!X WkX WkrX WkEX WkPX WkG X WkwHX Wk\X Wk 29X Wk X WkYGX Wkb X WkX Wk$OX WkX Wk"yX WkWX Wk"~X WkYX WktX Wk;(X WkX Wk~X Wk6X Wk6X Wk`X WkX WkX WkX Wk X Wk X WkTUX Wk X Wk%X Wk9X WkX WkX WkX WkX Wky.X Wk+X Wke+X WkWX WkX Wk'X Wk61X WkX WkKX WkJ?X WkX WkX WkX Wk}X X WkX Wk*X WkUΆX Wk;X WkX WkX WkD{X Wk3X Wk:X Wk+X WkSX Wkq2X Wk2X Wk X WkX Wk"X Wk5L%X WkX Wk9,X Wk>9X Wk>:X WkŤX WkPX WkTX Wk:]X WkX Wk)X Wk X WkR5X Wk*X WkHX Wk X Wk@X WkX WkX Wkj[X WkV[X WkEX WkX WkX WkJX WkGIX WkX WkX Wk,X WkX WkDX WkDX WkM.WX WkӑX WkjX Wk7X WkX Wk:X WkFX Wk8X Wk5X Wk:X WknfX Wk4X WkX Wk X WkX WkDRX WkEX WkTX WkpX WkZX WkX WkmOX Wk`:X WkOLjX WkpRX WkUX WkX WkPX WkX WkX WkX Wk(X WkiX Wk71LX WkX Wk+X Wk\X WkXX WkZX WkX WkvX WkL^X WkX WkMX WkX Wk=7X WkՎX Wk X WkRX Wk&X Wk  X Wk mX WkY؏X Wk7X Wk4QX WkX WkM< X Wk%?X WkX WkX Wk!NX WkP X WkX Wk(gX WkX Wk.X Wk X WkMX Wk[X WkwTX WkX Wk'X WkMX WkWE(X WkX WkFX WkA6X WkgX Wk6X WkO*X WkH6X WkTX WkV-X WkE-X WkKEX WkX WkX WkX WkX WkzGKX WkGPX WkAX Wk@X WkNNX Wk X Wk!X Wk+X Wk IX WkX WkX Wk39}X WkX WkuX WkX WkkX Wk <X WkړX WkToX WkOX Wk1X Wk@X WkBX Wk!X WkX WkcX WkrX Wk>(X WkMX WkX WkX WkX Wkn X WkJ+X Wk&uX Wk'ZX WkcX WkJX Wk %X WkEX WkL.X Wk)X Wk7X Wk+X WkX WkkX WkX WkHX WkHX WkC6X WkEMX WkX WkX WkX WkHX WkX WkrX Wk[X WkM<X WkX WkX WkGX WkX Wk4 X WkX Wk]9X WklX Wk/X Wk)pX WkElX WkYoX Wk_WX WkYX WkX Wk&)X Wk"X WkTX Wk"X Wk'X Wk.X WkX WkX WkX WkX WkPX Wk@X WkX WkKDuX WkX WkQX Wk?X Wk_-X WkщX Wk-X WkiX Wk 4X WkGX WkCX WkX WkX Wk X WkX WkLX Wk0X Wk  X Wk ^X WkX WkX WkO3X Wk&IX WkE!X Wk?X WkuX Wk-#X WkXX WkX Wk}X WkLxX Wk$X WkC<X Wk6X WkJX WkXSX WkNLX WkەX WkX WkX WklX Wk:MX WkVX WkތX WkގX Wk X Wk#X Wkg%X WkX WkbX WkX Wke4X WkzX WkydX WkfX Wk}WX WkX Wk/X WkzX WkaX Wk X Wk X WkX Wk"X Wkd%X Wk&X WkX WkX WkGX Wk6X WkX WkPX WksX WkX Wk)X WkVX WkuKX Wk3X Wk(KX WkX WktRX WkCwX WkX WkX Wk"QX WkX Wk X Wke<X WkTX WkjX Wk۴X Wk'X Wk~X Wk)DX WkX Wk X WkFX WkX WkeX WkP.X Wk1X Wk1X WkX WkX WkX Wk1X WkQ؅X Wkv.X WkqX Wk=X WkX Wk6X WkԙX Wk%X WkIX Wk@"X WkIX WkX Wk_X WkJX WkzJX WkoFX Wk44X Wk?HX Wk"X WkX Wk X Wk 7X Wk2X WkX Wk)X WkX WkUX Wk:X WkBPX Wk!, X WkX WklUcX Wk)UfX WkX WkMX WkX Wk/$X WkXdX WkX Wk X WkWX Wk`'X Wk2,X WkJlX WkX Wk_׉X WkX WkX WkX Wk8X WkMkX WkKX WkX Wk"GX WkX WkANX WkNX WkIX WkX Wk3X Wk!X WkK X Wk#KX Wkm#RX WkX Wk2X WkGX Wk6X Wk{$X Wk X WkBX WkkUX Wk2'X Wk'X WkQX WkQX Wk?@)X Wk@+X Wk X Wk.X Wk%~X WkoX WkX WkM|X WkX Wk?KX WkX WkWaX WkNX WknX WkX WkG͵X WkTXX WkX WkjINX WkCX Wk]-+X Wk-0X Wk|X Wk\X WkoX WkaX WkX WkmX WkVQX WkPX Wk؂X Wk؃X WkKFX Wk/X Wk RWX Wk7RZX WkX Wk<X WkYX WkX Wk8UX Wk X WkX Wk+9X Wk(ZX WkLX WkX WkzX Wk -X WkX WkSX Wk~kX WkS%X WkVX Wk,X WkX Wk)X WkX WkoX WkaX Wk6X WkX WkX Wk'X WkX Wk#IX Wk$-X Wk&X WkK8X Wk&X WkX WkX WkHsX Wk[FX WkX WkRX Wkp! X Wk9mX WkX WkPX WkX WkX Wk$4X Wkq`X Wk PX Wk X Wk  cX WkX Wk:1X WkZX Wk?X Wk6:X Wk?X Wk@X Wk UX WkX Wk`X WkX WkZX Wk X WkX Wk-ZX WkX WkX Wk)~X Wk3X Wk$X WkGX Wk(X WkX Wk`X WkJ-X Wk.X WkX Wk#X WkX Wk;PX WkX WkáX WkUX WkiIQX WkISX WkJ2X WkSX WkZX Wk}X WkX Wk!ưX WkKX Wk'QX Wks;`X Wk*X WkS$X WkL}X Wk<X Wk0X WkTX Wk X Wk6-X WkV{X WkMX Wk X WknX WkX WkX Wk8,>X WkDX WkX WkUX Wk:X Wk9X WkGsX WkCX Wk_sX Wk,X WkwМX Wk{X Wk541X Wk|^X WkX WkX WkX WkֿX WkhX Wk1PX WkX Wk4X WkX WkU&X WkqX WkX WkDsX WkȎX Wk)X Wk0SX WkX WkۆX WkۉX Wk&X Wkv&X WkX WkX WkĴX WkX WkĸX WkdX WkOX WkX Wk BX WkX WkAX Wk+7X WkX WkvX Wk#X WksX Wk'>X WkyX WkX WkVX Wk?~X WkX Wk0/X Wk+X WkX WkX Wk9X WkZX Wk=X Wk'?X WkDX Wk-]X WkwXX WkwJX Wk~JX Wkf0{X WkWٗX WkqX WkX WkX WkvvX Wk=X Wk9-X Wk3X WkX WkX WkgX WkؾX Wk*=X WkX WkSX Wk?åX WkçX WkNX Wk-=X Wk#8IX Wk^'X Wk 7X Wk9X Wk=X Wk?;X WkiX Wk9X WkS9X WkWZX Wk,QX WkX WkFX Wk*X Wkn*X Wk$$X Wk  X Wk~XX WkZX WkX Wkx<X Wks+X WkiX Wk?X Wk}?X WkX WkEWX WkX WkX WkX Wk[*X Wk?X Wk4X WknX WkyX Wk6|X Wk6~X Wk0X Wk3X Wk)X WkNsX Wk[X WkG8X WkX WkyX WkX Wk rX Wk vX Wk=X WkH?X Wk װX WkױX WkX WkN–X WkX WknS X WkF>'X Wk2 $X Wk! %X WkV@X WkX WkXYPX WkX Wk&X Wk X WkD˛X Wk<eX WkX Wk)X WkX WkG4X WkpX WkX Wk/X WkX WkX WkC]X WkGCaX WksX Wk!gX WkJ`X Wk`X WktX WkӂX WkGX WkyX WkX Wk3X Wk։X Wk X WkX WkX Wk@ݲX Wk lX Wk> X Wk X Wk^X Wk} X WkX Wk[X WkUX Wk/XX Wk{VX Wk%Q X Wk@X Wk4X Wk*FX Wk,qX Wk'X WktX WkX Wk8X WkX Wk(X Wks*X WkR*X WkqX Wk2X Wk4bX Wk4iX WkzAX WkDX WkFX WkX Wk5X WkMX WkO^X Wk(IX WkhX WkX WkX Wk5 X Wk)X Wk X WkX WkRJX WkLX Wk}X WkhX Wkk!4X WkX Wk(QX WkX WkX Wk޷X WkX Wk( X WkcX WkQ X WkX WkZ;X WkX WkX WkzX Wk(X WkRX WkFX Wk4X WkA#X Wk8X Wk,#X WkX WkzX WknX WkֹX Wk-X WkX Wk3X WkF|X Wk(/ X Wk}X Wkh X WkgHX Wk?7X Wk2ZX Wk&ۂX WktX WkĨX WkZX WkueX WkOX WkQ6X Wk JX WkrRX WkX WkzX Wk=T[X WkX Wk?sX Wk iX WkX Wk2X Wk$X WkX Wk0SxX Wk&XX Wk.CX WkI'X WkCOX WkVX WkvX WkEVX WkR@ X Wk|AX WkX WkbHX WkHHX WkX WkX WkyX Wk,X Wk58X WkZدX Wk\X WkIX WkKX WkX WkwX WkZyX Wkd10X WkHCX WkLX WkX Wk"NX WkX WkrP,X Wk4jX Wk# X Wk /X WkLX WkX Wk X Wk X Wk@X WkW7jX WkɏX WkB X Wk`ObX Wkm>bX Wk>eX WkTX Wk:uX Wkq))X WkhX Wk4SX Wk=*X WkX Wk&X Wk4X WkLX Wk%X WkX WkX WkX WkD9X WkxX WkX WkAX WkS<X WkCX WkBפX Wk$X WkX WkSX WkTX Wk7*X WkjX Wk X Wk) X WkUX Wk  X Wk8X Wk7RVX WkGX WkMmX WkX Wk:X Wke=GX Wk7X WkہX WkQĦX WkUQX WkOX Wk>X Wk]>X WkVX Wk9dX WkS(X Wkj8X WkVX WkXSX Wk IX WkGRX Wk^X WkX Wkr X WkBYX WkX WkTZX Wk rX WkX Wk?uX WkBX WkFX Wke(X Wkp{X WkyX WkX WkZX Wk2X WkJX WkKX Wk.X Wk"X WkTҟX WkҠX Wk3X WkGX Wk8X Wk1vX WkMX WkHX Wk2X Wk X Wk X Wk X Wk X Wk]PX WkPX WkKX Wk_X WkRX Wk.M%X WkX Wk%hX WkX WkSX Wk/cX WkFX Wk?2X Wk;PX WkXX Wk;X WkZuX WkX WkTX WkX WkX WkX WkeX WkVoX WkhX WkBX Wk%AXX WktX WkI X WkX WkBX Wk,9X Wk0X WkC[X WkX WkX WkKX WkX Wk'X WlX Wk8X Wk2X Wk X WkX WkX WkX Wk9X WkiX Wk X WkNX WkX Wk5X Wk yX WkX WkMX Wk9X Wk: FX Wk X Wk8X Wk!X Wk6X Wk5!X Wk!X Wk X WkV1X WkR X WkŏX Wk*X WkJRX Wk&SX Wk;X WkdnX Wk X WkZX WkdX Wk/X Wk.)X WkzXX Wk)X Wk,X WksX WkG-X WkaX Wk|0X WkpX Wk,X Wk%X WkX Wk iX WkkX WkX WkDHX Wk-5mX Wk~uX WkX WkX WkMSX WkMTX WkX WkE6X Wk6X WkxX WkX WkX Wk|X WkX WkkIvX WkKX WkQX Wk)QX Wk X WkuxX WkX WkX WkOX Wk>X Wk9$X Wk+GX Wk<*X Wk=X Wk^X Wk&X Wk ^X Wk=UX Wk5X Wk^(X WkѩX WkEX Wkv=X WkGX WkX Wk91%X WkL+X WkԹX WkX WkCX WkX WkmX WkX WkX WkrFX Wk}FX WkX WkH\X Wki7dX Wk6X WkcOSX WkX Wk"X Wk`"!X Wk=X WkwsX WkX Wk:nX WkO#X Wk X Wk X WkDVX WkLX Wk>6qX Wk{X WkcX Wk[X WkX WkX Wk۳X Wk8(X WkF*X WkX Wk<X Wk X Wk(CX WkX WkMX WkmX Wk5 X WkCX Wk*X Wk&'bX WkVX WkX Wk+.pX WkKX Wk-X WkX WkyX WkUlX WkoX WkNX WkTAX WkX Wk4X Wk{YX WktX WkxX Wk7X WkğX Wk_X Wk 'X Wk7OX WklX Wk5lX Wk[FX Wk:X WkX WkMVX Wko X WkiX Wk?lX WkO9X WkݨX WkBX WkQX WkQX Wk^X Wk<X Wk X Wk6X Wk:X Wk9>X Wk5-EX Wk<X WkX WkX WkX Wk*X WkX WkCX WkZ2 X Wkh'X WkqX WkrX WkX Wk>5.X WkX WkBMX Wk1#X WkIԵX Wk<X Wk X WkW X WkNX WkI8X WkI9X Wk<2X Wk@X WkJX WkX WkX WkWgX Wk8X Wk;GX Wk#X WkrX Wk&X WkjX WkX WkWX Wk<;X Wk*X WkYX WksYX WkX Wk'X Wk%UX WkX Wk-X Wk3X Wk(FX WkIX WkeX WkX WkKEX WkIEX WkGX Wk|)X WkcX WkX Wk<XX WkX WkCX WkCX WkcX WkYX Wk(X Wk|/X WkX WkYKX Wk"KX WkX WkX WkX Wk{EX WkX WkX WkƒX Wk+X WkX WkX WkX Wk3-X Wk*!X WkbRX WkmX WkX WkuX WkX WkUAX WkVX WkX Wk0X Wk7X Wk}RX WkaAX WkX WkX WkCHX WksCKX WkCNX Wka=X Wk$X WkʫX WkaX WkfX WkX Wk~X Wk X WkX Wk/X Wk/X WkX Wk~/X WkoX WkX WkIkX WkX WkX Wk8EX WkhX Wk.X Wki#X Wk,LmX Wk+X WkLnX Wk5X Wk5X WkX Wk~7X WkiX WkX WkNX WkD X WkX WkwPX WkX Wk MX Wk\<&X Wka6X WkNX Wk]X WkP_X Wk!X WkqX Wk(xX WkQX WkX Wk͟X WkEX WkS2X WkLX WkCX WkX WkX Wk̷X Wk*X WkkIX Wk ]X WkY}X WkX Wk X Wk9X WkX WkX Wkf3\X WkiiX WkfX WkgX Wk]NX WkdX WkX WkzX WkUX WkX WkGX Wk\HX WkX WkX Wk3X WkޠX WkަX WkbX WkPMX WkMX Wk7X Wk?X Wk%X WkTX Wk X Wkt>X WkX Wk!X Wk_X Wk :+X WklX Wk%X WkX Wk#X WkQY8X Wk,SX Wk>X Wk(X WkM( X WkmX Wk1X Wk 6X Wk%X WkG)X Wk!X WkDX WkX WkX WkcX Wk\"X WkX Wk3X WkX WkdJX WkA}X WkFTX WkxF\X WklX WkMNX WkX WkX Wk-NX Wkg8cX Wk2X WkX WkFX WkP[X WkP^X Wk+$X WkNnX WkX WkcɯX WkbX WkX Wk)^X Wk#X WkRzX WkwX Wk0&X WkX WkDX WkX WkKX Wk2X WkX Wk#+X WkF6X WkZX Wk;X Wk3X WkX WkMX WkNX WkX WkV0(X WkCX WkEX WkHIX WkX WkX Wk2X WkX Wk/2X Wk5X Wk :X WkcX Wk:kX WkaX WkX WkLX WkLX Wk%X WkȪX WkIX WkkX WklX Wk4NbX Wk X WkyX Wk!#X WkX Wk ZX WkbUwX Wk9X Wk,2X WkoX Wk4X{X Wk X WkpAX Wk<X Wk+UX Wk{Z+X WkX WkIX Wk.dX Wk X WkVX Wk/X WkbӜX Wkd*pX WkX Wk^X WkX Wk^X WkBX Wk!+X WkC+X WkD!X WkEX Wk7֧X Wk֩X Wk+X WkLX WkX WkX Wk]X WkX Wk+gX Wkm2GX WkOmX WkdX WkOX WkD1X WkNjX WkX Wk=X WkX WkX Wk1X Wkx X WkNX WkWvX Wkx+X WkX Wk&DX WkX Wk>X Wkn-=X WkZ'X Wk7X WkU<X WkyXX WkQX Wk>VX Wk'X WkXEpX WkX Wkj X WkX Wk1X WkkX Wk]J X WkX WkX Wk$;X Wk6X Wkg1X Wkc2X Wk6X WksX WkI2X WkI4X WkGX Wk!VX Wk X WkJX WkJX WkP9X WklX WkƘX Wk[5X Wk0X WkgMX Wk1cX Wk7YX WkiX Wk%X WkxX Wk ?X Wk X Wk X Wk  X Wk OIX Wk\OJX WkX WkX Wk ?X Wk @X Wk\PX Wkf#X Wk#X WkknX Wk:A>X Wk*;X WkPX WkX WkLX WkX=sX WkUyX Wk^fX Wk(=X Wk˾X Wk/6X Wk>X WkGZX WkX Wk-@X Wk;2yX WkX Wk,X WkX WklX WkDX WkhDX Wk:X Wk[X Wk`X Wk MX Wk,.X WkX Wk 5X Wk 6X WkX Wkk wX WkAX WkR8X WkO%X WkU7X Wk|X WkuX WkX Wk2X Wk@X WkaL'}]ͭtSJ(|*K,g$x09!h /*Į$%3$#E-y& M1&V̊6Q-iG-H=s-)v0(A<"OD(!  z0( QCb*քQ H)}+LO ;z(w<"5&1))^#"`*1>Y0 Q B\'MF9F9PF9F9MF9' J5/ "(I'K$E&s-ۯ} )+O 3,C%@--$^v- 3$Q4P&tC-p]# -39#g0m/.D"e˼W0  N*s4]!V9.S"n 3z,9DQt&/$+'%wOe5'%)E4$m*9-S/4~UqJ'i@. +:. *%.K"xA,qXWMjz{t2 M,jqXWM,t(XWM,hXWM$,sfWX3M|,}*]W M,ztWX3M,m#WXJM,~{WX3M,pLXWM|#B')3"D&Xok~T>&' 6!d- G&"-)N,aN./BZ)3]M(s.CM X a8X Wa8WX a7X (ς J,52'9UB. z$3":.$TjM"з8O%Dy$ 'c*x)Qb& >h1$!pG-9)(?3+=mCAM$h֣3HT)OO'('M.XQf+6e&&,##DUߓ-Q= .| sQ--PKE Tk+ @J=Q  XK pB{=+(j N#X%v::',I|&e P<RQP)3c)V -,X VNYl+”"IFt-7D"vM `` y%XG;J''8TR5Y!JnQg'D$,Qv#*$&G !@.J<37ө-.V6+"5t#J\-# OM) F$@%b8~16, Ӑ =@(-x0l# .U_&ڞ3,1 \"*>JEw CwG`C$!"eqbb(!$^ko d(Ń1Ō4#U$,iV+ X msX Q'9Xf. : D:  &5 W I 2K~{_t~XX V&EX .> + i.w[!&W0 ;fz .>XQ~` W m R\ DX& s#<i +"X: )4XE{#'  .>X:td {0X; $KX(^k Fm `%W ~ 5 $.> X"WX~W5lXM' : ~W~W@~ S~X\LM$O4K0% ^@W"X1'$Xi~W:.>X0_LD dB!WfK"g- 7*m+ _U5\Xeh*G X F :W R,  y~ kVU!Wv 3 )RW WV2  WXf @"Ws <3%G>!ll~WX) X')0WFOX 1# _$\`\ "nWq )s>,WW~ $X2ZXDT>BC_'W} R,WW :W%.>pXUM' Xi"g&^*)KLL WTtG-]  O EaDXL #~X  W"g/X` "3 (WM ~  ' '+ }WX f~G\~ ;mW[~  W)XiWn\\\  O"Xy~W~W%H'qvVWw~ - W^9.>Xt  ?~W.>WyI +! ~ WNW_  .mdWmd _"~Z ~X #W~&X Y" P(W~y-8'()WT- XV)W8 i,WWLWY W% ^)X+dW u~XL W *W_T-] 3~ v$O4W  7 ;3)L$DW~W v=W03 dpWp)-s .qWZr"\Xm) X T$\W&& [.X3,W Y"P x- W~'Q~ "i YXNU~XS*@) DXr Z;" ~,W ~XO/,WWVWl"W o$4IW(}l W "W F.f (}W/X(! WW %"!W^- V  ~VW~ WW~XY^ `\ _+ e .wW2  1_ WG j8! .>;W~@_%   \ IX ~  )~W%XN,WW]*(W V~:m) .# S$ %  +$ F.w c ~X*tX)\ l v$Oa WWN~*'?Xi`* ?X& .fW s 9_2mm : ~>> m^5.>WvWf5 6~_"\ " W^5 'Xi*~ 5~Ys < l~ 3W}~XG/'W  X&.,W -W`) mVX\e&EuX(~X3" + ~ _%gX ~Wx hXL.>Wd O _d] W ~_+$  V|X# IYq ] 7 _'q m,WW$X-0WR'Xi ~ ~ /XS~W-z &Em 22OX2& miW*s  m  YXW X;_\4xXQCW[#WeA n"g /)4R-.wXbL1 I^'] Wk~%~XM[6X4 /&@X &W~+$DD X1K~ x'yX_e  8 ~W *I cFO ,/\W}X _M>Q*sX?hiX?f! ctJXMM 7Z"?W.mo0 ~ R("]X#>^ 5B "~WWs ~ L[TS* Gi VXn ~%( ZXt  \wWrS&ExfWH#W_%B+{WE7  Xe!Wt~ e!^.>GW)4XP(~ R AiAW  0\ "W^ ~X?XWtKD] c Wm Zm ~  ~?.>GX~7"WWS& +XD$2 $m,  x~W X  8X)_mp)4X  S _\ pw ux"+X +W 9 .>p_h A4x "gWt O{XU$k  F ~ p~ Z&EuX 3~!&  WZmW~W~~W Y~XXm\~"g LV D~X%:W|#WW} 1   -zW x' nyW\u.>W7+WzUW7WvW!D&)4!W =~ BZ e~ 7~g~S)Wb,~t^ m$\ 9~H_\_Z"'Wu_"\XXW- M e~ ! ) 9+I zXi  K=.w  8EWS7 W* \ <~  "Wr~XSmX  XMqm^*~ "X~ SWz@X& WQLD X 0~ d%  'X\sWVr~ 2Xh"XLHWA"_/ \b.>CWumWWHXT  C&EXX"BX~.0 SS"'X0XA_\ Z| { oX] } }'t $4Y~>!W !) 43 W4WC.>]XU ~ T0X]]x&W&Wo~W&7 e b' Y~W`.o_.wnrX2QB 5q1 X  XS~**@}XWm] y~XZpBT=Wn$W"gWw ~W.o VW "inMX $Oc VW<~ NCXM_M !PXWXFWY'W^F_l. /D^W_V" ZE* & ~&  ~O | ~)$4XK~~W W#W )OW~t3"Wm : 5 /X)* | ~  ~m [~ u.f C"]l))4R ~VgW" "rF~W4DWW j"0WX"rWJ &  -, }W#*omMYD"\WNW_K N$O~X;~  X~W +~ER+ $ "~W  X R\UW&W. X aX9~ ^ W~X)%~W_#~ WW@'\B1ofW' .wX W YY-%o_XcJ0g <'h V f J$4Xe$   d QE 'XO~/~XgWG  X2"  ) X3y VdWX -] XWM-LohD#X1.wqK(i1 7  1w_*sW#'W\ 2V' <FF ~! xX_A* ~X\ b'9` 5\WwO ]W"g p!0RgX&WZW ~ W5~ T W) )4W X+W< RM> J.>WsWRlWD j$W 6$WWqW# &u Xb"~W^VRHV']W(Wp+ .>W t e u~ Z A~ / L~  W|X\ $k v_w"n "g#W'X( }*A * ~ WH'HX W"W|%u` ~$Rm5\W~  WxE )% ^1:WQ\wW{`~ ^VW)WU~X~[$\ ~W}_3 6$4VWr X2_EU~!"X !'~Xb "PW.w ~X~  ~XFU"nX%(X ~ dL"g "gg=X)Q& `'m Y~&cX m_m~  X_ FW HW WM~Xa_~ F ~Wn)4X":~ Rm% l"_Wm`X_y$WW_F 2 W \)" Wqm]  ~X@)WeX F)z ( /% W~W)&E Pm ~ !uW^ R4"gXK*/.>X=_e\  W' !8 X  W"|  5 #~ ~X>hW ,WWxW XM [0XR_ *`*Y - t " 2Z\W.w ^\ Lp~ "n ~W/XFc" SFF~~W"X1"N 0V\W_O : _ ~X M>~X7_$\V#~WPX  ed~XJ~Wm~ 3~ @<,  LX +m TVoW^tW~8 kW_'W=aWq~ ~WQ" um] H(k D !uX)"X X~ c h~ "  F 2GX2~WOWt )Wm1\ i"aW'X ,fX(SYW^ ,) ~~ ~XX'rWh,WW W^LfR*  R~W~_C*3yWW~ +W."g1W< #.  ,']W X:Wq" us" RXm * X(^'Xiv*]  W` W5m ~Wu \XNcXg_.fWWW"?W)(n]  X,>W%,X  ~ R V#XVV8(yX?_g']WX@  ~ N\+8  > ' =@# R)W~XF XD (,WW Wi&EW-]J e ~ }m~k  ~WR"ZWs ~ ~X,~WTk  ~ AQD.kW~ "^\ ;m\ W@*YWW.$4IXi W"5XM~W WtmW~ ^V CO  n'P:XXnX_$\ BWX _5W '9 d\#\W,WW v~W~XW]G~!$OcWP =WFW_~WK)4WV~W\ 0@ _m7 ~XFz&E`W^.>X-@X W kW#' nW c&.>W mfW.wXX] R';u{WrX _%"\~ | !DWm~  ~  5 X^\ " "W"g`X<W+WtW! W) _(X.X!_pm] mX1+o~X4!6[0)z k ~  X5y~ S W~ ~ /&EW {! AS}mz2W.&H EMwm + 0oVZ"\XHXD i&WWtM  K&" 6TWYm 6 (`*? "X , 0W  W*~ ,%"~ uF">W~ 0Y~ g~ ^*V_6)4RWu>  &W"tW_c _ *)KX;/ Jf"bXDejX &EX PWQm ZWW,WWv~c+FW`W5%@ ,WWR: _m\ $4p <~ m'W.>W~W28Wt>m~ @U'W ~b_# Y\-z  \ fW6XV`'~ z/ `uXiDXF~ oX& Wv O W~~ Y _$\ m~G@|W?0hLn {  .& 7W ~ EZ#~X.>GW.>WL~W .>WM~ ?Z-~ V *~X@" (D*?Ia0X1~ RR%gXNmR Y3]  ,}~L)\ W{lw~Wu LX(^0 #W lT-W+\ 6|, fW CWh~>WKX  D  WA X ~XWB W7W&$XDO ^~+ _m] "W"W ~ *G + L _@' ~X5-~ _m'9X_'O~Wm ~W~ (yWl^ ~ XWnW   Xb W"W q   O$W7X1.> W~W1 "\ nuW~;X;l 5, E'u.>X  I@W2 W W~XOWx}+ ,5*WVXJnZW}  ~X ^m\ 6 ~X!KMm vX<%~ (".X n'&Xi_$X#n4V1w uWS~W"W3W V~W ~  RDCQ W.>XM~*~  b~~WdFX;e XW~ &WBX e&W %gX,n%X(Wt" m~W+$ ~  5\XWw\0 ; O  "g $`VXC~X,&A ~iXe W6fK~' _XBZX   W?RW"W^~W W~W3z m 6 )~W% A&X p&EXC_* ^5W~G,Xl~ mBX#[ ~XDX`mWW_kE@X!~ {~ [.>_W|$ ~Ukw mi @b~X"S.>WW~"gXN2O p%SY#z%  mO UW(v1K*W-W=)W d)nX2~ R"W_#*YVH"JX1 Q  md&WI~ mM|Wm c mX$A!.KZ  uu   ,Wv+IWt ~ &~n8WWdW&EX1 *$Z) WOW @qW)\=&" ( $IW_~ 1\W[' Wmg~ 'z.wW- ]&WQ XQ *|  %XXW.>|W7"W%QWX, &5W"  ~WWW)~ l4@?O"W_* >  < e_F~W)WpQmXG~ H~ ;.w01Z*  "X" ~W_*3~ `']W(W~ & knW~W-X9\~+Fm  7  ]%Wp CW 9~[| nXM j$4VW  5~Xd +SWn.>WB C="W~  W 7_n+ &W\ 3 sVoWm  ^Jp -  6Vv "9~ S7!X  bXW )4  E%'" )w0"W_#~W~ 6 W&,X2  TW)WX P_ +Ks.>WFW" 9*WrW~X 'X'~[?"XD WtPq m )-s + yWEf Y F" ^@W,WW_$\~V%[XM~  {* '~l#e\ 2 h"nX$=$W7 C~  :~W" W_~ eI W[m$\J   -8.>.Wg>S ~ v~XFUWWm "  'W Fm - ZX;9XM_{8 S ~W2~[4"gX(}X { X(kWT8j W ~X= W_4m]))5~ "gz*~  \~ n~W;~X~ ^ *.>W g~ 9WY,yDW7 CW0+ B~XXmpm"XCU~ W~WB WD'W}~XY_ W'ZXin s (~ ` } f8 -` R: Ym~ "X^_\ _]#z%xY.f *>vX;$XG=noXmXb"PXHeHm1Q DXW_+ @'q v_: ' w s~z(&YXMK'=@LD`B& mGVX_#~W &E~ & <JUX]<"wW dXSKmf~ k~ 1XTVm, ZZb~W!~Wc x'&W4)4zW ~ Q ~  F @~XP"g] AG%W",jb~W6mXf'.2^0W~Q g (<3Wm! WJ"W~ {~W-] ~Wm1X~W5~ '3XiG _Q   W 2~W"/W|#  1~ V\ iWVEWVW6%O D .>UWs"XM.X5 eW_a,'9X eW}p&EX(jmFX FWW&' % :   j.0XZgOXUNh$K X(fW+SW&' N$" ~   WJ'A l=X@_0*XN 0WCW:W r / XN0DW}= Cs'Xi,WW"W~W [P~ '@W~W`"/ &XN "g[X;~ na W5"gX GXNWL (*W=  ~H~  r~ j" n|m `"_  ,m%W.>^m |XD9" N"W ~Wnc"w2 fFRImf ~WW &  X~G w_']WI)_u 3~ Qa cOI aWM\ ~rW^%OWn9  1n ZNXWY.>W"W>W N (i"X vw"W"gW e_%1+  XnX &X ~W~XIMh,X-:W\&W3W~)L ~ _")[{']W^&"X:~ ! &.VXNX ~WQT'X+{ X  *-z sX_RH)W[ >eA ^X .WXN+~ 4.f #  X&WC~X,l, _B'yW0~)fX;mX "W*~D3XW~ 0~h$* 6#'X e~ ~W~)4^'QB EO+ F"gXb~ -X ,( &c 9 x qW~ 7$@Lt. W7tzm] 9 _" v~Y%# _G T$_ :+~@S5\Wn~ g~qv-sXL"]~ S"hX '5W '\W|SXU~o -W|]"WV3] k $\'W I ~=~WyX ]  5 ;hXM>2W|D3WwK~*&:W `N> ~*zX7"`2'rnXi\DW_E }!wX"ZX *? ~ m ~X? %~ ~ \XjSmm d>~X~W%W9 W9'W7~X+~Wv4W4fXfe"gKW_ ? XiW_`-]X *G ~  ~  M~Wq"g15 "gqWW:Q [^  W-XW  !"XY)W2(WW ~~ d"WK~5\P"TX_a} m  (~  ~V&"gX;_\  > BXi)4R,#W  { 0 C~ nmL)gw~XXIXM"> t~ ~Xc2 &X ,"i *@}Xi^)\ 2 ' 4  "U!'"=N}m W"XWXI!~ *-WO$~Xe  _XPVW~!'3W.>W|f"MIVW.>XB6Xi_P\  !+~ F~  mG~ \.>W~ *~ Ki"g1 0p~VlW+S 'rX l(y   y\ !*@)W X^t Qp+ 7m ^G  ' W ~Wp,WW< s[UX9B"WXc~ K  {XF0>&Wd] gGLm 1b_X_OhXi.wj)~WX\HWhfW]*]  ~Xd~~X4q.>_WV\ *A"Xa(}lX~X ~P_{B 1~ (W7~XE~ ,WWW ~ yW)~Wa~X ~ mu gLY O"Pmxm`W_ +$ _f#~W(.>X: r% ? y" AQ#*o W}~ "gXy9r~W~  XW8WU^*][0 2" b ( 3~    ^,]MXW ua} /# Z? oW~W~ ) *3 1^z\ 8h~\m O~ 7 j~ *$pXbWXM&~XX ~^\9W~X!#)\ E~` *R   "M W_t $OX`'aW~XjD~W W0 U~ "6'iWtbz\/#~WLBZ" :B"Wqmb~ 9~X_Q~/KG`'_AW_*Y m '\&E7X_  ~  Xoh6hH\ "W&W~T~W"XDu~ .~W?V)W69XW.wg@ mf  ~WaX!f(n]`'S  XP*~W bW &"*WT\WU["gs~Z#~ ~iW~X"!Ws \: Rb] W~$O~x#~Wn'&W=W~WGm\pfY j)K\ n<!~ N  F|m  ByXF"gW [#~p&~ 9rX~>~ p\ X VWW'R:'XZO']W|DWX'W^.> X-mXOh'EW.>|W`$*\Oo~ FEUQV\WW1~ `'\W'q k.w v~ (_|~W~Wo3X F fWU.Yj~  " ~ N.>qX ]~W^?.>XWAW"W"nWgN +*~ | !-L-z )4WQ* <f12"P & X1 P' yX; eWX~~ J~ | -z  "XM )=W~XHV$ a+$ Lm_WSW)WP"tWA~W,X_v.w  X;W WXyXXm B~m^ ~ ~ @WcW_m &WS\ e&p`##~ W'X:VdW"}*YV $~ x (c  W#MW_J(Wt ~Wl.fWw +K>~Wm miW"hW(}Wt> O nW ,A 5~X4%+$ [~/ /X8_W.>"aW^# jW0X\e\  ~ O6%[4WM.fX R`W0W,X & )*M$W S^W&E7W/ AOW05~X <X3kW S"  W^"hXV .w L,+ 3DX% @W}K~XG3W)4X3^ N_7mX"~ K'_w U'>G.>YX'/X- $_)z  &W.W~ R U _mW ~W_W_"zP~W'W|\W` d$X\ <N-z k ~ "W FF `+lW~ %  ~X  1~ # ~" Y ~\ M.>AWH~ -"X,0\W"/_"P ~$_m7 Wt m<WTB5\W"TW~X@|~Wo   8.>Wm XMrm c0Wd.Xi~ ~ &X p$H5\  mm(~Wy / PXW_ c  X%~!.w.>W_\XZ\+J 26Wmb vWV N^tXJIO <([ n4Q QWSY.wTWKWpWm " 'rnX1![WtY ~ _E*YV X~X^SY "W!w  0)eP_<'\X2 'm 5  U~ +XW~Ww WX<\m~ j~X$) +L(Wn?V#W ~ `$\ IWd~ @' X  \WW- WTWTtWvYyW`V  wX^WXgR*3G <m c "XK "g' R 4WVWk@WI ;0  ,Y'\X *$W.>XiT'tX#4X%4) N5~  5 ^F\" =m^ e_" KW M'M>~X W# uY"g'W P_v.o .>XL&.XC` LX~Xc~( A)4W;~ > 3w~  ),WW w d ~  / VW\J$ K"  zWW}: 6*!.wP`XN'cW^+$v$"SW WtE~W  >/X@W|~"Z5@'Wq~n~ $   O)" -2X2~Wy , miX% N.wDW'X KQ3  .>X  "X,~ b 2ka !XL# ^? W2W|o'Wg0D>u~WXN.+;Ws|KX R.fXN;~ _!W`+$ W~XP%!~ ~ .>XM"MRH ;.fW @~ knXW~   D^BC "g MM ( ~ ~WfW^5\WmN;~ ]6~ vLWX3 _~ ?D~T#<iW2 3G  :^: _-.X7d Y  r__K5\^ Kt "X ~ vUk: |W\ M5~W "XL  ~  =.wXi*A O QJ  %~^.wg  "g ~ 0_P= T) IFF x XY~*? ?:&Ws 5\Q X S+' &E*X'Wt .f8`XQ@W #XD5-GW|~W pSX~ *~"gK Wz\L~X_zW_;  X_\ _"g rkXi \ n+op  p=z\  -~#W'W fX)!.W 'XmpWWk) :[~ _+ v"2 *  mG~ "8 ~ _,87~ VVWcH'Wg7W'XK VX\ D  .wW% .w_X0 )4W.>PXW,WWa}[XnWkXN"6 ~ ~Wv ~ K*3 #UTm7G ~#W0 _X " 7X(!DX(p~ "W~W /WX1 ~X>^UX"R@.>lXKV~g~ NT)4RXI"X:2m`SWe` ~ lC~~XQ'W_!%o\_+'X,5  ~ 7+O 2X rW{7{ ~  / XDR!lvVv,]2~X0W:  Rf9 3.2 ^c  *xW2Gx["ZW ~2! ~ KS S_';BQ &GWWY!   Wl&W%o\  ~WmW%  i~  "W!~ {yX>~~WMgm ^\ M W DC ^ m~ ' ~ ?& rW.WWVW,WW=)X_TW"!X'9 w0~X^m]H.e ,WW H~WmW"I   ~R<DCWU~X  fX -! c&E`WmXNFmN  ~?I SmF_'  T X1&: W*XVVY* ;X\ m _~Xb D~W QXWG , iWt#~"Y!r A;U [0 _%o\ :^ WwR0X#W^W^"\XE~ e)4zW .>WE/\~W~ E R (W['] WL8~W>XmRW*@X1WV X ~ [&w#X~XO\ O * w)Wa+I D[Xa DX<N\\ ~"W(t\W^  x1,~ E!W N'\WWs Wp\W7 XW@W~ D&EW i"+WrZW #y)4p|,WW o  d (X+f  W$~W])4 _  $"gWDW~x&X\RHWp)R E(}lX!";WBWn ,>Wv3 X {N/D"!aW~ M:Wr0X;j~W7& w2"o'cX  y&X X;.>WLzW+fM~~Wg# Vu+WKDO ~WtX;^.&_N+$ B~ W)=W_' Y0@WJ;W WtW[ l ^i.>AX]O M "Wp,X  ~W"' {X _* ~ WG/ "gX7m 9 Q>';  LX \W~ l"X  WY d~ ) 1 ^mSv\UW_8 COO%"E X1>Xa_?.w d.wvf5 7 -~ _YyWm  WO ~~ 5:#W|~ ~ .>W9 7J~Wc, -D"gXW d ~  W`mb 7  .w / {~ 6,'X  ~$nWg.2W~ 2T%OXA~ UmX "mWV|X# ZX? ~W ^ xfWrW  9~ ^iDW}~ )4WyW~W~cXN#\ WR 2oMX 4 ~XYWW|X:B~X ~X@P"WM ~ S@Wm,WW^% ~ ^XC&E`W  ~ |~S0XQfWU Wt_ H&EjW{SKmW_ e~[~W v[~ @' &X "XmR__*] ^V|WXa'  ] 2  +;X0eX W~XP ~X&"gXN&- t)W WW z  ~ I ~ @ W ^e\ i!Ww) _r * ~  "' I ~WXG WF |~WW'mG JO _z#\ 1V~ Mu,] W ~_  "S =VW?W-]|_' p(2 $  v~W";X'X^_8"  $~ 9"X"  g~ d"WK?*y6W"`   zX2)KW s   N% Vl ^.>W F &W o~|'tX/ N~ I~Yv%XM0gWn9W E .>xWIW 0 G&Wt~ ,W ^,~ H':XiqR O XNm Xi'X*_ W VW)4X X  ~;m~W ~~W"XK~X.>CX1_Gz\~'qP$4_X=X15X _H! ~ .wQW'_L'] XL ~` 2 ~1ZW   $k < + e_: 2 ~&EvD 3 WR L<! RX@mtWt X  mW' @ dW0~ eX2 W@W\UW _-s  0W|~ ^* "P " ,W "m/ W9X^ W-sX0~W."W \ %([W~Xytz }VW  XM"!XN_x*GW ~W,WGbFX$~WVWWWWY"W#Wd~W 8h" X*?*tJp]D WXM,*A !% "9  DHWW}~ tXNm-M`m_ XJmX -&X %OhvXC3L   W|^ q/,(  e V 1&W9D BWz~WD w W&W]pWLfCmM V|XNV"\XQ.>W"Wr$\ $_"w lWm(Wi  : XX_'qqX! .wkW )( )4!W ~M~ 5 {-:X1_b)\ r(n]XH,W~XJ%WU%XJVv' @`,XCW9\X  oW|g~2~ b !Kk' ~WMZ~XX!  &W" ~W* 6,WW^  :m.w S.>pWq+(X&>mX~XW 'Wq"( W`  lW~.,W@X"WZ"WU,X4o p"] *m S,WXW,XeXg~ n1W4W^3] f^BC '$OQcXow(vWkY~X! _5\PV|XN"g1  m d_-]  W&WX"g- wnQX; FW~ /&X ~ 6_\ ~O)w mJ d~; uQ! g ~ "XM0  X~ dK] )3jW~m<W_'  "WO"Wp +0VXNX.`&Waj.e\,Ws_h\ vh (&kX<)W~ <\8~ ;Q~ 6W)K*_N_#*o dW+$ mXY"~Wl~  X ^~ QX]$\ ~ _iJ VW@ N zG.wWJp m~ $_k C DP \b ".Ws~~W_~oh  9X8.0"X5) w &W}VW 4) "M C ?^ EE#~QM2~H M3  z.>W ~X%,W`=WJW&X "n X(nWH \UWW [+$ -.wX9W m 2 ~ XWT&  V  j_s.>W2~ ^] ,FF $_I&  'Xi.w  @)4R  .WMC\ _"]E s~ N^#<i 2VgXN^X9~ ~ 0X x)4WpbWub.>DW ~Q?"WiXVOW* 2 H GX_ (  0W4m,  JeA ~P\J D" * X`Q"|XOz~/xX   "X8mBWDW-.>W~W~ *'  'W/ * WL'9 Ox$*X^'\W`  W]' AW ~WTG%!_O6 ~WWmDk C@W.>X(Cx) = O4WhW{X\!_v%1+_j/  +$ r #VW $*0Jz.>X ~W $ ~Y-z\x N &WpX0/XP* ( ~ DmJ jZ [ +KYLW<~ ~W <~ W~ e t+W ,WW&W"SXM<0f _ s  Wt _.wsX_q%t W g!W\ @ of1X; o~ "Ws_o.>qWVXNe 'rWDOW /X~ d*R%o\ <XXWDWEK]kZW>eX~<0Wz$K [W"gWc{  _ XM.D pFX;h~~ *( .>WXdifGj-8  '7Xz@ *~ ~ "DX4 C/[T%"gWXX:~  &.w3 vW@~@"\ ~~ *6~X ~; W C XbL-~G}W6nW;.>.Xi~  FWSmsW[#MXjRXFbXNt d  W5Wv(}l _ P~R.& TrW &X_~I  U,WW+~$ KXmM X@W50 Rm] ;'zXi~XO "f~W~XY   "WW/ .>X1" WX;!lv 2~W""XW ~WfWW)4oW  |tzW!.> W W,WYWW_?)X": +bH.>Wq2 3)4R IB~W &W`!& S%_M `% 6^.w  s% 'WXi> v2&  $ ~k3 WyW O- R '?W3N   XNX1#.>W@XW V|XS4X .m1WrRX Nj~0fX1eW[ {\W|^G j~`W^ "~X{-[ S \WGW  GVW{5X_Xl&#~  ~  2u u*( mt _}  "X,2n O{W~W_) H~   SW"W  W_UW_JX~XK,XJX~\ ##WA.>kX_$k S)YX  N k! ?XW"' A!W -|~WWPWSo W 2"BW"BWZX 6 @\ ~&m , ~ 6XOTs+' ]VW=Wt rX`8 0X(C } e_m\ [ w6^U=WR,  X$k 8m`RLfW,WWWJ,W,WW.&W<"gX\'zW~ :UV|W ZK oW& &RX/"X1,WC![ $~WE~t!W'W~ k ``~X$ t) !m%u+XWX7jW"XCG*A~ 1X,W mV 8&W~*mX"\2"]  r L"c~W XNj-GXk~4{W~OWS& Wc Z ,,WWMx5\W$"W_B"\  I  m/ m|W_|z\%z.w M( Z (m $k 0JWs\)W|$XD~R&EXiLW' 4 W W)4RjXX"\WJ~ L 2 |W  M(~ v ~ 4~Xe~W1~WT  +W DO  # w <~  ~  DOC<\ ?#~PW~ W X _* 2\+A+oX< O"WPO E  m7q-0XI Wt *iO4W\HWc~W~D c.o _cX  =~ 'X1_5\~X3_({l Dk   Y0] nX W% j, W"JW ~X \~W h ~" Yv Q~  XD VmH ^,] ^ \X  +'9IW.oH{l$4_X_ _3] wX;_FFXM,WWU%~vd#~W }~ `( _\  5m  "'~ ~ X~ We&X4.>W~{HW>no/_ 4WW"XY%W G,WW (~   b~ $.w dXN)K O.>W)  7R_3 F N'X e.&x_Q T)X;"WMmOX ~ . &EjXC!&W  BW|}~X>~ 0f Xy~  nW"o 1k.wXW(yX%X;n X~W ~W 5 eX >0S#~X~   a x~WH ,1 Wi.w_W2uX2  ~W%~){~ l'W].>X1SWk~XP) (vX;Q )C,WW 4X#"r }/\O W~^3Xb=aX@ A^! "  im _5\XXYfz [ s CO )-W:* vfX1.>qX3 WQ(WU"P:W"*W,W ~ {tZ&"a]X6 3 R\W%~`~W;nDWP{XVn%1+ bm] .V~ Z.>  t 2 $W!+X " u)WSHE  &EW" OmXX"WVW~R'  N5 .>GWxm Zym `"N_$\{_ n/ v'  AmZ LX1>|W]] E~Y*FXw/ :  K1 +$]&) AWvW   ^ ! e% OM) E"\ +~v  vX;)4oW&EWM U~ R% M;.hXV ~ ,VWUW1" __1 "]W~ 5~ n8  5 - @%W6q dd"gWq'+X }~  [' .>W e8 Z~W~ <M" Y! ? vqW+$ ~W_'X@W&$k Y"XV~ lg ~"I D^X`hX! ;W~WX&.w_ X^t.>X~W&v)4X%Z-]W^!l 7W|m  mW ~WM-J:fO"X W_-L +:"gWX'ZW"X._$\ | 4 _,  ~ I  % &W "  "g$#W| KWK, ~ _.'tW7V rW~\ _S*_"WV W  _OO4 T*YVX,?~zb,WW_+e u'rQX3m J.>PX2~ \3~ 'X  mXM$4W ~ \   b7WAWX7" ~ "X $O*~ z"9O   ^7.>Xe: Z%,X Q9X<~ TW \~ ;D9_, ["mW),W,W K&X`S*BZW^= W H e';  "_   \W/Wn^ +KW^7XI#_W S {~_  ^ {K~X)WW ~ "mOXZ X2 m ']X X5 ] O~aFXD w~ I>t<& MW(" Waf Xx'\W^,X#Wm/WWaD"X%mH 7 6~WB~ Y,WW" #WVW $O X;~v&WX,m ~ `W"g?W#'+X_ W_)Xd> jx#WSm)Wt~ m.>X(.>XF-WW&Wi NQe pW**WMW)" s"gqXNm ='Wz$WWn!l   I5 TX MG%XDX)W"X0xX0nNX~ $4W$4W6WN * WJWh~WoS~Xg~WVW_!r~X &E~~ PXN6WC) _WXW~Xj_< Uw +KWUx\    }Wt1Wm ,W ikWl % (~W"~Wm !NLf  WVXTGW &E*Xh*W [ ~ d&Y "eX1T%X$ SXPS~WXWX;_m\  V"g[$m  om.~ ^< u (W}, "  .VX;_*sW) #,XC~X[L'mZ  )4WT X   2~XE9- l W"g]W/< Y"nXK~X4_ 5 <Wmm P X 8xWr~ ~X  ~ ,  \ KyXW @ X'rQW\ "gz  m l .ft8~W$.>x \.w xVWg eX_>"|X _W;"gW1XN C D Z ~*#$ T4xXH }A^WJWp NX Xu~WVgXH# A"g&W ,WW BW_^F.> N&hXi0X(X !WiW ~W>~m |~~ "wWM"MS# Y'Xi!W9XV|W\\ T$+ "XC \0 ($\ 6uXnQX2K.wgp EA =$ ( m"X _' Wi FXa"W%VW)f Nm.>kXiTb  ~ XWmN "]W\ COX $  .q N gWF  ~W~x)4R ]~W FWW  :~ Xf CTFXRG ^W"g-X`T{M>L~ _*m~$"$OWj.wWXi~Xe> !_?'"/X  xX {8 wb"!WsWMt:T$ F " ~<W 0 _\ x|Wm K9~M"gWl~ ~x&E~ A"W_X_"':3k N,#\ ZU{)Wx.`W >~<~1!JW}:e d.>aXvW<"%Q~W_(t\M .> ! ^FF{V " )4XVA vW` , Wf8+ ~W*Y XV {~W ~ .> X _#'th WtWX ~  |W~XX" "=X1~ :{~'$XYXVX _"g/ Z bP~{@G Wz&EW.>W_"9=~W$k_rt *W(mWL#~ $C=X9_"Z 2:~ ^2OW)^~X]cZf ~W~W< [+ VXNLom7 Z:<Wt  _D!lv 6~Xw*X0$.wW('\XLK"g x+  S~X+L ! |~[$4W |,8Rx.>XD*"W~XN^XnB/KX~Wv_\W m  |~W.>YW_ (yW-.>YW^_B X_6WM0~  $~ Z P  V#.>XB) "XWR Xb.>W{&, SYBu"Wn'  \&S ~c vW (N~ ~ m W+-W~ 7T&AW+L)D sWm o'L!r %[ X1&EWrW )~.  5O  ~X, =~ `+$ ~"W| X1"XV3c9w^WX_ WniX2 )XXf  /XU^2.>X_- c~5 )q&W  _.& W 8&W,AN.>W m7 c D_*] W^ AW%[fW  um~ jMemf p .>PXz\z~ [~ ' t5~W,WW)WE~X ~>*)4R<,Ww~!\ mZ (c e Hn~)*W_[T!>9`.wDX< 1u -_"gW K"ggH +e*~Wx&  (X#"g`XN  ~W#$*~`5~ F V~ 7 ImmfL#W[0EU >_1 V.>DXW~`$Lf  XiUmJ"\/~W 6g>W!~ M~ e[(Wl"SWUW~Wj(W" & z+ BWD~>TX)~ 5eWA~X z\ {QW0\q$ WW+W#*o ~ m "WWd~ $IX;)wXFi !X ^.wZ~ | H) "g# P.>;W#~ _  oX; m&Wy,WW?~~ CXb3N.w 5~WyV4~X>'yXiLQ/ MQ+^D  0 ;U']X  X!vm d'AX2'["~W  X  , Wv"W( X  :~Wn^U.>]W_\ "c ^9sW&W" AWmWm ~WlVW$I3kW'rXL4~  WWqWl~ "gW \ X agW"WV#W'5X4~<HB Zm)FX ~ Q~ )"~8"W~W~W~ _D"XWsVf` 2 6~X] PB)3j ^% *_9%H2X2c~WX~,WDWWWxV3] >! `   }{* W$W b~=:.>XB }WW_$+ T~I.>UW ^+4C` {&w#W~W~~WVEW~XO<NWO~ 22W^m~ *@ Y%W  rXD`#\ N" ~  XW.w 0W X&D 2 C& ]XU"Wm/ LD  ~W $8D& Q%1+$m S TWX m p 'Xi_&m !:~W_N  mR.~WL.>aXi ~ :pW#'WaW(&EWr[f*GWy^"Ws 9D"bW !W dW~r  &W'Wg+XK~ mh .>X ~ , v  _\3 ~  jmW~WD ,dDW#\ W_]  Z  WXN4~  m)WHZ ~X;M]q 2WM ~ ~ mh_k ^~ }'XN~ Y( R^G< l"' _[e b!"!X(mX'+&W~ O,(Ws~~ &W`#/&E Z.>qW*OX W~_ +~O&~ <EW dW"g K ut~WM$K n=W'tWY-\)_=)" 3 /XC_'aW  Q~  K~ ."X1"\ < ~W 0nW~W .>W O V N.XK\  xv&EW!mX!~X,I q u {XihXX H Ws_+ D- ^~p O  {l ~ ].>W~($  ~_,Wp%! x  ~ D{.wXAk#<i'6"W)4R(~Wg)W.wX'dX ]Q'9W,.>xXD H~W~~W 7  J+e D:"W{~W~~ 3'X WVf X9 +#Wm 6 "  vo.w C_BX4DF\ ,#W+VlXh4CW _' ,W 0 "g&W!PpZVgWW-\ K WY. "n p0WBC % 9.>W{#EWn~V|XZW = .>X10> {Xi|fX; J$ 2w >  T~ "gzW ;X1_ LS0Wnu X :m S%XL~ : nLX2MX XNV|WZ3 r_~ V~ l~ {" $O~ CY&XVL~X f5q_y) *N V ?"g ^1$4Wj~ B~W_]h }o"n ~W|!G^' oX2#~_\ \o(t\ BX~ GXDF"% 5_R:h8X Wc~  / VW>.>lW i~ 1 ~WZ *f8 ,,2nW~Z\W[T~`)W_ EU )X2!"g?Wt,WW ~WX1= X;~W.wW&EX'_b+(w - F2t~W $,WWW_: N $4WFW+   Y&WbW"W;~V8)X&X(7%W?'WL)z +_\G+ ?&W|n8*W"w'Y-  'X  A" KMWvX;X1_k0W"W{!P__ c~WnL i% .w `&+WVmm  W\~ N#  " R&EW^) U&EX> )4X1c)WXW O~  'W \~W['\W#z% 7Q!r |l~W ~ KXW&EX9:~ \  Xj B "W%"2XT.ws$>fXN\&XMG.fW^  sO#" .~  S.>W0 7,8>~W` weAWUE[T R^kWoO ,Vm] LDXW&  _~  ~W.wD ! ~W~[W"WrWmX'"WJ.>W$W#WW<   ~>~X*tW} "\ ~W,.q+#xXV_"9 B  f~ .wj  1~ ~ 6_0 4m }m 6 JfW~ cKDXWRX  \W  ~  KW_.w0~ ~XE G&W1~WGWt0XT~' #~ Y#~Xa)4W[m\  ~W ~X"\  L(n]W[\ `m  $\ ~ qWv#  0~ ' c"=WX;"iXyD XfXE &  F ,WWc @W m [#D W jeWQ(t\ a}W   {'WW @ l^'\XV #'HW^~ (YW"~Xj w& &`"#~ N~RFWl.>X@WD :nX2O~W t   z"g $^ V eN+`LD.d.>YWEU [qW c~XK]WT.>W _))z 0*S+X# "X^$kX  MX; W`:W(.ws'E~c@XCniX~ ~Xj;~Wx" ~z }$* ~WS "WuX&X X *k$eȄ)i.#T"-+_ #… <0,Fb XE!GT,%L'9K[!'A\ݜ(6S7ܗT ++ g*c^IWY+u 2%bHE%;Fp>}'3$hט J\'-9)BDFč-$7nA);Z&a:",w &Q)H#,D C,c%%/5>.Z--?H Z"oW$ T;&x.{E,5) 5A$ y$RT#0Hb]Z-9Pί Mqp"َ$h!)S44$j >$&Y+u* &  8J!(P#L+֒& [d  5-.ld lv(vsYK _R #&$mFkIuIs_'9'~/ ++q<^p9 $a% o'9O2 Mz0,9D7pC$z;\.&S #F-)? & @N%& 5-((p l.lLPJV8vZӧvP t [kY=)+ң(P J .%WwCLh)& /($@|WkWkSU#&TKC*uD 4O ; 39*=y-2&I `H   !7NR 29@! m++`x@<'BC,d73#z [C$$Qܖ%0 6V9Tw-R?#!"_J!>r~+$5!yT,W.s,! 6 % $:,A+' *MYa! ( #~E,)@NEh*a- I 6(+L,~,Cx-31o!jBt#IȲ1+$#A_( D&.״#>OjLjW Y(fŰ%* cx.'9WG+l 1+"To=X9a(~<J(h* x|,U-;  ^?2%~G K Sɣ&%(#R%TR%~RwNR)zR'IRGRReFR6R3;R(gZR#t5RڰR"ORRFR,l3R)(u#DыB`14oR%pRz  {|PSTV..>>OgOk( &VԙԚԛ7(GGGXFXKXMؾ*+P"R"L3M3N3CDڊڋTY[\TE)NNO"%{B$%6D6F×ØۗWuvr!#%s!ԖGɬ 9WS"#$ց*b;c;MLH';ˈ<ˎ=ˑܑܒ̻7̽7HٓY-ٔY1QU0XUݯQAVݰQDW, - / džLjlj NJ ߅=<[C\E]F_H\(5)5 FղV:ׅ K{1eB^fB_tuxyLRÓiMR[q:Vʻ&Z7&A7'7)E7+#%G  ȳ,?yPS &S),ٌٍΒp"_NwRŒږgڗiژlDcC@dCeC@TAT BT!CT"ET#GT'/0Қ?ǣPǤP'vr-z˩H^o˪HaqU9؏=ؑ?=(#͍#͏4M4S8E.E1UUêWN N ХЦЧШŊ\mno݊)%s _9cpds!I3!K4!L5֐2+֑2-֒23֓24 }"~$pB  \W]YX Y[KjO١٢ΩY&7{j"HHje<f=ҘyǞBǟCǠEJ#ߖl^'TP+ԟԡ8<Dݯݰי(S̊9̋9yIgZfæ۪ q۬ tۭ w.С1SТ1TņAŇAňA݅Rb0 ݆Rg[^_->]/m>`>aN0?Ή% %QGWgׄhׅi׆a"3ٞBٟD/C0C΢g T%T)0%dC1&eFFLe&q' ѷ's"#ѻ'w$bƠ8FdޜH hYjY}:~>@ȁBȂCR 0dS0hA UAוQ,b6bcd*W)L*M+N.$ڱpϫ ϬFXFZϮW܎܏x!MT2..SHDUՈ`Չb"[K\K]K_K &7z. إH ͝X͞Xľ/nDp >[ѳP?_ѵP@`J [ޗ{fH+gMM8M=EI$0ݭ(5+5 E1EV2֭֯ kAlA"Ϧϧ&Ā){+&ā)܋:@܌:DsJs>@15%%%*366;  (  *ǺW .ɕCn&h *i -LAMBآϬ͛s1+$';a(;bc);i7#V:#YB45D48UZU\$>мнݗ0boA pA qQԿ (֥9{O4}I~IYgZiZOl@ FR'eW/ ZW-->x}yzKMPY_[cǯߡ]*IǰߤDZߦDzߧ_*J6; 7;8;9;EKɏɐg" HC'Tr(Ts$t " ׮/ׯ/Y\^BEGxv'з8AIи8=ŕI*ݓYĘȗ$,$.lanc$255@AEӻӽ- - -  = =NUNVNWlʛq r)yٳhZ:Aٴj3J)q25fCRCSC XSZS4¶1)Ʊ?޲O&ȘϮșϯțϱ7htiuץX]̓ǽ:;<3#U4#X5#Zؒ6#`q[r\s_DU]?ABC===Ͼ+MMę ܡ&ܢх(h9|j9~?ZAZBZUcՖ ʓ1ʔ11Dʕ1qB"&"d X%?҃&(-BDͳQst&&ڂߣ6π2ρ4ς5GoOPXSƩ_`ƬN"O"*3Uȏ7CTm` Tqc d e aT+q -LZ.LC@}8ڿ)12Ϻϼ6Ȗđ0ē0Ĕ0сQ    <?8- =pr߻%;Ԓɣi\!]!^!ذ?C4S} 5S7S´}·WY;gZ;hLKW&'/P]0S3WŨ&ݩ7ݫ7҇HKw҈HQ|ǂXNǃXO#߀////`]b^C- / yK1 2 y,537MF%5Y5\5`ÍیVj ҳJBKB%Ԍ7ԍ8MNx)z){)_cYK@BCE7|8:ʂ&3ی6 xXX }MN΍/ S?ŤPKťPMJŦPNKLM O ݦx}FLL ?#DDD DUĈĉJ0׀0mA_پ{nAabÇ.BЉ9fJO Pڐ%=HLIPƿF ޿WXӇ5Ӊ7Ӌ9Ȫ~O~rOj ׾̫)C̭+F*G*-;kΉ NP#QH"H3J3D&D'*T+TĨM vWј/{@|@~@[\^?:7Z:$Yٽ5[>xPEEQ  V ړNsƼY])9:;:Ȥ3Ȧ5JK x;y>*~+ʀۈi2ۊێ?S@S( | ӫP ӬӮSˣ/??͊yFHLMܭHܰHѓYS*+,-4ND`: UU; 1ą23IK/,M=W=Zԡ*acLSJPTJQ`Q[ώ!Ϗ! ڏ`1ڕڗjB~MnBoBZS GlŽ.1ž.3 ſ.4ǖc7Je7L7Qn~˟XiD!E"G$؈C1D*E6T T TJ & T+'<áMãۡۢۤ̕ЛZН]̜|(!݂}(#~(%|8}8ɭ =&ٺ1(پ,tkR8  -\E<>NN  `a%ٗXٙ^6bΟ6gabFźW9!;!<!ґL=!ǏǐǑǓǔ C[߉a!C`ߊfi N*@;~B;1L-2L.չ?ʼʾ ˶א8mYOnYVÙtVÚuÜvYۙ01ۛ05۝07%&   ! tv,[=XMM)*!Ӛv5ȸI5FVՃ\VVʀY\!]!KMNPV1=B(S[(^,Z*$Y:Z:3K_<lZѫ7M^  ޑXj`Hճ/Uյ/Vuն/YIPO3P׆E %ׇ׈F *|F%}K+hij++<RMM\W C!D̖ #"#̚##̠›~44EVڥڦϢUzա܃ @p1Әȵ!U}"W~~)C<}:VJ=WJ 567%$%&˻6f ͖Ɗ͗ƌ.efĴ?Pfeѧ6*8*^;L0okplˮI#'˳˵ܮ ܰԷ* UUx02b@c@d@–eQcg. s9Bu9F%gI%lZ[$\8,ҡVǨŪߜl--ߝm>>xOɆNɇO˴˶˷ `*ؙp^fh_m`)3*3!,3&8CY9Cî-T@.TB @Яő/TŔ/\/ݍ@24ԳԴhgGɿ'hH'';8\<8`8a=֘H>sYtYvY'V^[I`c PER X QUUU X  stu=:I)AҝމJ)Jǥ00J58s9}!k~!l+!mc2NXBYB[B]B >Sb?Sgv  ..kל?M̎O'ë&l|m}۳7mE:ŌX2h4iŎX3m#(#*347 }9 9>%,ӱ <<`k(li9@lQmTnUk9E٥٦٧Ϊ6Z&2l1p7n1t89iA.L ) *+O,S0/)ƤN_ިީު%%6G<&3i Ci 1]3_1+>¬ϵ ċ8]р8bө!Ӫ#[Hӫ*\HK)L*M+Ր0ʆA+ʈA,QeQVb S Td U Ve ZHzI{J},1P2Q=3o4pا8ب<|ͤͥͩhއ5iސFnFqFsW+uvDޟF2OTuUWzl-Ko!&ִ&(ֵ&)ˆ7ˇ7ˉ7ˊ7=©pXqXڲzǏĄ@pą@rܑP={>| |yUП ?@+FGMWMYҮa$Nǿ$O5"߰ԈR'(t,o ͟8A9Af.R/Rrs.s)t)A:c.0LJþ]AJK%%Ş6ݠG5ݡG6ݢG9ݣG; AxWxsכ?IeֲPUVWˁI9 p+BtuvL'L)3#w4#y5#~ ټ4Z DλUxÀ%ۀҫb0ҬǻL߭+߮,Jo9q9 R jJkJqtOZ3y4z%*\%'5()׶Fp ṭW* wD ΅>оOPпOTOUABDݜ*ft*i ;.";0%;4oKGQ"$<TTÔʤʦ$'yٸ_ε7LMN{'|'uIBxIEaȷ$M:ق$P$Q5&H<5'<=  V|-,---.-/-1=ȟȠ>Nvidױ(ײ+׳/̙̝̞::d;:g<:i#J|HD! S>2 W9C'X B CĜwEܦ.ܧ.ь?zqPz'ʞHtʟHu6(wY)*uw`سaشFq4S4UJwDؽ[ؿ],NډKχ(ψ)ZHe(Ʋf(޶U91JAZȜ(k {m |c1 [d1"a} r v xBҫ!ҭ.˗>OX¸؂r&?̓̈́<=DOܣX7ч#"3r3tCTW һÒ2G$ȶفك8UAt =aRWY+89-2ű=Ų=ҋLJ'%a%fNj.߃߄YZF^eI;!<!*2+2}́1 C, C-BsI*J*x!Kےwۓy۔}В'|}܂܃r7kHqlHv߼r߽uTذUرsu"$    IJ,MAG5vΑΓΔP"Ŭ}Q#S'R S ݬ7T DŽ]R߂ZVW ҦҧҬF:3K,5K.۫۬7vX6 `nbÎ/#Ï/%ێ?ۏ?ې?ЏPlmn hiLOPQac#ӐIӑMEEUlmĥopu w x M0N0O0̳EPArRAs, N9"[&#['24ī%_ڵĬ%dĭ%iܼ6-iܽ63ܾ64  ƃWrƄWtZ\.VlmD2B %;ׂFo *p *[ ;C&KD*KKE-y"""~܁3 D=D>DFϚqϛtm=n>x0ӍDQ/FQ0HQ1IQ2ȫmInI-oIEZNFZOIJ5x˨E˫EVV V ؐ|ؒ~ؓŀ͎<-y>AL>BT^U`Vbܷћtѝv$:1)2)ƀ>Ɓ@RRSTTVK/ 0fY@"ʪ=2>2?2۪ԧT ԨTɶ ӺӼqZڔ'fϕ84eHvYs"^+`,<#4L4 EUUU- 'U={=|=Mmt u YH˦͖ZI[JQ) R)؋99،͋I}[)ںk۫Ņ?.Ԣ&aHbIԤ&\ ] ɲ7iɴ7lG.G/$"W.V3X3D?TT <M#Ρ̵ݽݢB9GIHI() p1:q1;!r1>UAIRHJRKKRMLRO V W%/̃us%`8a;ۧGОWРW+Uƪ+","-" 22Y1Z2C`T *1;;LJՇa88b^Hc,-]Q^Q>?@@DBHĽ,=z%ѴMƘ ?ƙޖ͕$5ջF;zսF>{ʿVLzMWS~בֈH!3ג֍ד֏)2*2BBq[S0\>`J'*4(*5':Ÿ-"Ky#Kz%K{¡1Ϩ&{}  tGӞ Ӡ ȺȻȼ')(+),AHʂP  HWd   <M&vM)%d&e'f)i$$$͚ݟ4ErĻVļV8 ]Ѭյ9 `ѮպƒƓC1AE1BޒRLRNc"w#xv%y&zJ)hԼ'Խ(&Ծ*. !֤6֦6֧6֨6|GhW mnڧ.ϣ?i&|O܄܅܆܇. vNX;;a#$\^=#A_#Cdz(˼h˾)Q\]^%!G g9c#%H÷<;Sø><U/$$$ж5PݒV H klmm֊>O&֠>Iyz.L*3g'hj$"r'3>z(3?{ٲyCCCα β ]_xy  p/zңKǪ WPǬ%YP3ߟߠBcCf2738ɉ8aYBȁ$KEoqEsפV }צV ̔մն,ï=ð=ò=tst>8ݎެݏްgRjC2pӹ(BӺ)B+B)+˜ žFGʒ.o?hp?jVWX@ϘAϝ-]qH3CMǭ#@Rz44&4);DD=, ƪ'ƫ+t<<<ȎȐMwab`מ̏ȏq,I/IZZZo RV;101°M±O G ϻ Đ-Ē-OxтO#b:ӳpc?&&q&6- l׷"sn׼3BO}8C( ) ^;=b+[+]خد ͬz"{#|&~)+| "L'M'$[8Ʀެ:KIrȉ12ȀI[0\0]AHPQQQ r1 s v w x y {21,ˌNBˍNDx[z^®%,ڹ6ڻ62S϶F89:;<=E !^ B B B234—šNO(*ҲH)*ҴJ**;T;UKɟMɠN=Iy&Lv7w7WH2XH7ةaثcZH:[H;?XAXDX9ǩm;Ǯ2yx/Hx@OFQ `GкIп,#,#-ŧMvݥҀ$nҁ҂{n|rEE[\> @ uBs.!BR}(~)R/sJٽJٿ~ÈqÉurЇ6Ј6 eC߲;ߵ=߶>߷?Q׹R׺G|JwP=rf RT+Z+_+`11<#<$33L/L01L׿̩'##̪*#̬- #%ÿDUUΊ;OAG AKzm|ovwK(L(N(pq:J9%Z{ՠ%*F   X=Å>OۅOrۆOt Ѐ   *bc *?n;Q@pLMNKC E  "ƻ: "3޻K33ӂȥ`Tv7ïw8ôceoh/׷@׹CAPBQ{|CQ)3{M*4·(Έ(но$q&٣Y\ĥ5D_`ܮEܯE  vBwCxy-D-KL>M_*a+9&ʩʪʬ}K4~L-).)efhi:JJQ$S(:$;*jkmM!sCECM}s~vSڑ iϐ<mnk?l?m?޺6d~Ȣ'3r8s8kHgY9@4y4{%&D ؆0؇2,r=F͈BkDlMğĠIPSܫc(ю1я2ё4~NJ?ZZHAIBZɒɖ[!~9?+Bm,Bn-Bo*S."ֆ>և>jOpͺSͽTͿOx&eڎ76ڏ77lωGϊG g5""WX"3DD ŹT   ݸîݹò % F0G0ٟH0٦PA]ÛtÝuۚ-Hۜ-J-/wNxNҾuPIQJԘ6K\ WW++!!g4!h8!22CFCGS@ B̿ӓ *l;LLٕ1ΘΙΚ\]˘ųܘ['0ܙ\'4]'6ݱݳ 2Hҍ4H5H=Y=߆b߇d߈fKQS ,-./մ,p OMM  ~e5NÔFOPQۖVГŘДřЗŝ!!!m4o6BgRWt)&:':ӗ KMȴMNʿ&f|71K~74NTGUGَ̹̺86#%Ε/@UP  )1*4+7ija @ A C EPdQeRf**;2X˵3˜#ؘܚ3ؚܛ؛ܝ͑DZRUU SĮԫѢ+0!,QQ/QT ]PQ<Zt>ZwԲ %֗F ֙F uV]Ŗ_ś`R-‘-aY’-a7b8ښ>oڛ>pڝ>q ~ϜNϝN ϞNosuqyΘzΚ!{Μf]g^JKNSuxy~Q1">2"?Ҝ 3CCT--|ɀb/=˭W@Z@ \@ؔN'~356W8PX8RY8Twx]H`H%Y&Y(۲4۴4ЪE:AЫE?ōU A݋`ՏaՒԩ=Ԭ=Ԯ=ɷNɺN87f8j :J~]z|!W!X282:BSMSO_ek.wm.yh?1Uj?6HOҙKǢߗ&ߘ&o7/.p71225JO]XUVWSǃ333DYiD[U fך̌ԩz<çMDjkéMHghjۯQ۰RФ2ʼnݶ݈919.Ic"1A4AӬ 2Վ-Տ-ʇ>lwfNgNKc٠%Σ6Φ63`Χ6hG'gWC׏"@DאEב3CCC(, - T.&OƢ+-+.+1;ޠޡޢ;Lln!zȄȅVW'L8Qזoחq̄̅̆.Ḣ"Y#YJefNe0nf0p-A?,Q.Q¨ ;/ڳڴ= ? Aϱ,`zZ[Ӥ$ӥ$ՌWH#$2;2<BDSR^l/*OK͠Tqq&r&KHƚ)Ɯ*MH ?X@Xޘ ޛ BXǂO@]P@^TPgj aJ g h,Ћ Z<<<ֱMBˀO$;$<q$=r£5گE(ϩV=-.Ă6 1_1fRngi-1356B)C):M:O:P:RǼx߬I3Ԃ:5ԃ<Ԅ=;ɗ%ɘ%p6lG(mG*أ 32ƾ&Oj?oP  Gϸ=|>}Śyś}#dݛݝsslDDtsFH֬R50rj3 Al7!A"Ar!((9)90JZζ\KMNO|5 vF`wFbҧ `Ҩ a\WҪ bǵ.Ƕ1ߨ-;֦ߪ-F~>>Ԁ>G;ɑO;ɒO<ɓO>l[m\kfgn*MK߮*=,?KKװ ̘̚3Z̛̜v(ùTyw.z { } й)к+CŖ?/ŗݔcݕd:@anNPo(Ђl'ЇB8C8KI1MI3ӿȝȤ$9p՚5'ʝEʠEvV; xV>|F~GvJ^_ٵ-bٶ-GHγ=I456z{rsUV)[s\t5D72C޴޵xGSSzI¾jl 14ק_?ר`?ש׫׬̕d̖g̗hh77u'϶ Ϻzw7?HW9Y¶·¹ؘĚD цJ|mw=D6E8Xʖ3ʗ5s'(pqYJZElI1B.عR͵oڅ3oV>ƭbO?Q]v&&,ȑ6Ȓ6ȕ6Ȗ6:߰<WY679"3]2  ˑz˒{˓}+z~-|²@ Ð,<Ñ,=ۍ=ЎMАMlҷߺ5eMNԎEԏEɡV|_ }b x z!FCB-B/R)ғ̲k::KمنΏʔʖ۔ۛM6PGvݨ҃ ҄ $X&҆ ǀY3~/Q?  B"#$էЌWЍZg00AfeAgFpQHq9JW[ӌ[[ӎȬ%H%I%Kڣ%Nt6GWc̰ HWdH@wKCـ.;΋?QO" K1L2*/ĩK ܴܵܶњ]ќ^ўaџbѠe "ѡgD2ކއTաբդ_@/}~lQN@()A(-II |fEgEhEiEjEtVuVƾ _aӅ-c=">#KMȨ>2zND{NGIq,A.E)D:E+<KFG˥ʐ"ۗ؍ClSJ N]O^ܱY/ѕ.PY/P]x#ށ$O'OP'Rb8d8<H=H5YZ6Y\7Y]8Y^9Y_013ԣ#ɰ4ɱ4ɳ4 mđnēoĘVU,XY€=`U/=bW1‚=jƒ=kSڒMklϓmorà5b́c̈́dͅpQ(9\7gJZHe[ɬ !ɰ'1BǘǙS*ߑ ߒ ߓ ߔ fsgvT?V?؉؊57+ !ۦD0ПT /+݀|݂݁ԀԜMԝMԞMɮ̥)f̧+hֈݍ-(,.(.88IUZ>RG EI GJ HK K1$1(dٚ cc-bd-ee-fa>0ŻFݻݼҔAfߋ6p$lW=?PƓQƕRƗSƚCT"6#kռCkSS d*L7L8pL:ÞI]۞˽۟a&'Pz9wz$HS]}%@   Ӝ ӝ ӟ ȽՄ=^Յ=ev/3^&_X͂ΛF$d_V(b^Ŵ_Ÿ*h6Y7Z18]>?BBĺS-. 5/ѭѯƑ:::::ޓ byzշwʹhi׉׌׍׎'XqRlS/eT/gU/h^@,<QS Ϥ<\_}M܈$P4O݈ә4ȶE_ȷEa`VVՂըXsYuZy[{A:b'g˽JJg%ķh6u1F<W=W>WƊ Ƌ ?Wƍ ލY !r?YOHOlL ^CφԺ+;;pqrL9֟G#-{4eܽ˜D|f8šDڣU-ڤU/iwx)0=*0>n@QkQmQp]^499M :9N ҢuIǫ4ZZ9ߞ%ߡ*ߢ+ߣ,y$˸6˹; 2؜؝͒-͓-!UV>"XY>#\aOcOc'd*-γ40δ;w**0 ñ:13ó:ۼKf ۽Kj۾KnۿKoаuб}"^"`ChjԵTFHi j k ֚?/`@/aA/cB/f*@*PPcd'e'Rf'8e8h8l8mHva"Ye٬Pi٭Sί$3q4r4s4t4u4rE^sEbc ^ `mVnV eKLNQզǦ,Sէǧ,ߙ=ߚ=uN(wN/<ɃH-^ޗ_ޙ!"2]ן2^̐̒ì~n o í„۵4۶5۸7<.5Ob2  υe&KӲx#14 74ՓD~ՔD ʐU.Hp, q,m٨<٩<P٪<QάM`9'o<(u(v(w(y(z9RMIOIZZ3 ѿ*1}Aޫ5ޭ8R\ȊZ-<]-=כi|%%uvlGF4W6W2ף­"ahں3.l    čTIijܙJmܚM+H+P]ӯ<_m:5Ւʉ ʊ ijh/YYLYfgj 0!0#0Qتajklw,[w=y=EN'ѽRDSFޤ%ޥ%Hަ%ާ%o5p5,9ȇF~XZ!r!t2X/2[$ Sqַ}ָֹ€*r*trxty|1ڵڶڷϲ,Ć02&Ĉ33&ĉ6?7@7ܒܓܔA7ܖH|IWX j0/I@x6ү&P $߳GߴJЫԉ, Ԋ, ԋ,ɚ<uM_vMaplqnspQS:ͣ502`gEtV^  OA R!š[)ݤ: :pyJJ{ygzjtQuSJ%M%_ֳX6˂a;GE&Wn!o#עצ/P#7N8O:P;Rμ+Iν+Jξ+L Â< Ã< Ä< ۃLۄLЁЂҭ#ǽ4cd ԇUDəa0A5Q7;,+(9׸Y9~züɁýɂΆ%l%DF{ŜŝEW6uJu.'(q>S{T~7*nY]՟Kʨʫʭ3y{4dٹDٺDgODPGηTθTRKTN9}Ù~ÚÛ~Ry,/{.|/@w_@y@zP<>%I'>8?8IMƹIP Z  Z ىȡ$Xq5,FHfV`׵ ?1̢b=-5$~N~  ΁N΂NH ;<)=?@JJĞġ  !2э^ѐ`2C4r}bJ RZ"ʡTyz{)P%x TK'"77LHY"ͻͼ;w#y#z#{#ڌ4eڍ4gϋD\U]U ƳV޸,^3BVCWDYȝM456ngThVabc 9=998=J#J$J%"-Zɀ  ˘jBQBR#'ºR»R½R¾R؄R͆ ͇ ϿҲ?KěܥQ>шщny&OG7YGҼҽҿ&ԗ3xTTւÜփÝdNeOfPػ+iSͶ g> h> ˔JN˖=~%p%q؀%s 9F:FCW~ !!2229:ÕC5 *ەSЕЖsӁnS;pYqZ߾L߿LL ԔXVɩˀɪˁ' '܊!'`H}K|L}DGFJ:0 @ i m  sُِّΖ,aY=378Z=4ŮTMVM8Dž59<?,cŅdŇ/GAHF 7!1:#%h&j'mBUիRլRխRկR)ҵz:;>@ÒʮJK77oX>X?X@j XC #S/. PxPy ӓ ӕȱ+Ȳ+LgN`A΁8G:IԪ:ԫ:ԭ:ɸK9ɹK;ɻK=c")֔ʲ"*֕ʳq۷22C\:‡T^ˆT‰TŠT\ ڕ^ ϖ|ϙkl?aPwP{bN'lO'n8<YyY~ǡn4vE!wE"xE'/\U:{;}͌=KMPPZ͞\͡!e)"f)99%èJsۮ[3 !;У !> !B2 B݇vS7\]S<S=ԥKd `abɵ0._1.`2.b2?3?5?֏=YY&[&T7qV7uW7xGGGG256XX;Τ3Υ3UiDLVfT OhT T Vݾ`abcdҖ+Fԛǚ<IǛ<'ߕM1i6*+j9(@WݦXݧM$O*IIIZ] g1I1Kv w x cdä ۨ,>O-Nń9݃#݄%΀΂΅,W`-Wbx2;CC {ՊTՋT:ʄbe;`ٜLXB ٝL_C -.8>HHYE"Ŀ3#$5AѶƛ+Ɲ,Qƞ-ޙ ,ޚ -OTտ*|,,N=Q=MPQK̂$gr5s5t5^FE_FG)!:!<(֖!=&r¢2!¤2%*xڬBڭBڮBϪS?*>܍*CuvӡKӢKӣKS>fȾh+,Ն7sʃ` XY ?oqA*/+/@GPQ+PSؤ U͜m=>Ck<}nM0;3<4=5ѲtF̽Ɣ$%H̾ޔ4&)eE'(yV')K eQ kR mAAARU֪֩֫)q:6:8:;Jk_mbJngžn"o&p'q(ڪ!s+k%*6܉5܊6WPQRb.d.y}<&?v>O ҩ ~Ǵ;Ϥ ϧǷ<Ǹ=eߩ+klɔLZigjhkj˿de#L#N#QIJ+Y-\&_UN`UO#$jlm240X0YAA'úQ (лS!(9o9q9tݖZpGԻ`m$D5JFFLFI֢Y֣\/W0W1W h-i-k>quvwy}PSU-XYwKtҤ3ITҦ3JWXǭCǮCߧTfzi{k}lɊ4ɋ567ɌɎe/D5E6G:k 8Iת׭YYYoprȌôWõYu4v4вyгz@E|е:V(i,տj-k=DFG,޸:5]::՗՘ !r)2{xByBٯSٱSΰ£B C D ./01E.F.tG.vH.?rPLTRUS2&d>7@7A7/HCXƮްu#I؈ȓ4.TȔ4/fD U0V1נlX8עo801==%&r=(((6{I    ܟ61ܠ8111BуBӴRӶRdTeWfZ{|9:;}~<>ՕT.>/>lm#O+!HR&U&:6;6ߗߘ=6>6,*Gi-?X@Xزسشͭ"zͮ"}ͯ"r3HڀC  ~Tc Te\]ƨ+hsL)Q44Ȍȍ68_6^*'8R3DI4H("*$ȉȍȐ0ˎATz ¯{ 4,Ϲ|ďܜܝ c f`%4n6p67FaPWIQWLRWN+.ҵҶ!!ԐBɢS ~¤¥*yQ*ج;bGͫKH<N=OpyF&zV{XIKTkXpX$؆؉ݧQ҅ <> ֺֻ]M^MּˋA+,w$yv5Px5Q| 0Vz 4N6P  B11  B12ËRۉۊ)ЊyЋzҰ:ұ:KfD߸E߹Gɛ{ɜ|K&ɝ}L&6tzGdGeGhGjV o=G>I5.PAPBPC̮ ̯ ;=Ό<,ŢIţ}4,{D-.xU E F Y:Z>0=0AR(rAS*tWQգʰѠz}JEJFJHkZÆڃ?%3 FЄЅFWHWKWM 3B.(O>FOz ƽ ޼޽Ӄ*ӄ*ӆ*ȧ;_xp׺"׻"׼"׽"̦3AT̨3BYD|T~TBELlEMFN//@F@Q ;)W@ (8 8 8є yނރٴc5Me5Rʮ 2O|j-RW>#31U V  ϑϒq[8{ӀSȣI p EtӤlu&.(/)/nx>p''=ˠ<ˡ>ˢ?YDYGĢģĤKDTUUUVUWU}t,yu,|ހ=PKMx\8p.:0@9,ԟJGHɯ[Kɜɞ11։څBtBxS S Q |FbHc.*ό^ _ OyY4&p5&sE7?yGGGżv#X]ݺ;Ғ=ғǕ" ߌ3ߍ3ߎ3kT˜˞3L4O5Q @AT(((Ii&ßZ)àZ*ЙٰКٵ1 AAykxyR*{R/R T U V W X-O6քօQ%RAFBFDF. ƀ14Bٖ2 ΜCUY MŵŶŷݴ*ݵ*[ӢҐ;ǎL(aˣ!"'?'@8 M%H>?0YEո 0'ʺ 0*׊׋ ̀ !k&(Ö]=Mۘ^И"Mt$9O5;YFZFM(d!@BՀՁ*̼:̾:KSKVKWU ْV9;ΗWTYUGGXX^X_. 0 1 :;?Ķ/I/L@Ѩ'ѩ*ƌ Ǝ ގޏ?B ձq<ʸL:B̎"tgEL 2 411 ™AڢR+ϠLϡMuv)9܀: : ܁܂Jo5Ӗ_%% %z{~T>3.A4.D!?> O!"mp؞:͔*T;U;W;X;Z;İ]bL&ceѥ#.˧/˪:ܥƆ32#މDiފDk FԶnEF0,G@ԶQ]"$(d98w[I`“)bڠ5| } ţiťK-L-U>uV>wW>xX>yN5 ΣҞ!ҟ"htKUvKXɁWɂZɄ_˱"J˲"KؖCؗC   O6[/H/Mb@@7*۷AЬ8XЭ ŏŐHYY݌HYc8d;e=f#԰%e4f4:EH:U;U֖ I<Ur՗_=_N '͸vͼo)6ނ$ΫJέJk!a!bkқBN- . / q4y{_\?@`_?CT!V"<<7XXX̍d{#}#~#۱okDh5UЩ y7Uŋ2݉+^< 6(b6ݼ(f!D#Eӭ96Ӯ99ZՑ+ ʋhAAfgkR~K ٣٤ΨB45"-$-%-5>viIgSGB΢Υ)6*6.G/Ѽ{(Wޣ"Gוq3ȆCXT7TY7[8Mט+8N̈;̉;0%) h'/0/z0~ªHϳV ϴYć"0~ܕ{G}I~JӦV HӧӨkr1,ՍJ=%Nʅi'N$ch)+do͹ށE5F5G5W'2֯ئ!e͡2E͢2FuS[xѸ*WB C!ѹ*[Ѻ*\Ɵ;Nơ;&ޝKC[D^E`ޞKiklmȀȃ&& 7V 7HXX@f@g˃p˄r˅sPs wm.¥Џ¦Д§Жڰ`*<+<ϭ,<ϯϰă0MO9Xܐ<Yw$FBH/VIE" ! Ǿ1k  ߯AԅRyԆR{r?sC:\n):^P}5T6Ud?+CeB*%lGmIoJpK,%666WI 8Wה*?+?P=>ݞ ݟ vXp;  ְ֮6#qo4IjD#O$Q%S,0x10|0}20@ιQ}p((zG]^ǹZ߫oԁT@5A5ɖ W"N;.-/-0-ְ%OK״̟u̠v̡y߶*Xx;ûJy;"K΀KEFGŘ"@ř"ݘ3b>ݙ3fݚ3kqCrCrT7nÄE9/N/P/2j3o@h4r@j03՛А՜В՝ЕʢdI;YٷȮδv{VFVJVKZT^- `-"89: ޷){:[ȞJe>!>S9Rym.B@;?<¼P8q¿PpB7ܤ Y Y ъӼӾx#miF4Fՙ3Ulʘ ʙ ʚ 4Uo5Upʜ tus,Et,G' [=\=!]=# >D2K?ؼ(͸9͹9*+چZڇZڈZ φqXWƯB=ưB>dRuޱRSy޳Rw- k;6ȗҚ=8ȚҞ>:-gwbZ[\OH^df7ߺFHX.˕X1³´µ͂3d;Cė KÈLÉMÊ5i#cԓYGNɨȫ y0AnصQضQaطQͰͱͲʹERuѶGSځڃڄ=σ ==τQRTP%XWiůŰݮI)XSː*8=9?op̀7l8n' ' GHeHgHkcY 47/ۑإ/Бk@@pҸQ+T,FԑU,HR= ɤ%S=%M{|!}_$ >E6Vpq̴ (*+/0   11هB8وB<ىB?RيB@ًBDLUũ)Quݪ:%&(ǁ&5ʜ߁ʟ&2&6RۡSۢ_,a..G|DGE0 ʴʵ??ʶrstuÌVH7TU˧R؎)ĦLħMQ(R+ܲ"[ʡܳ"і2ї2љ2#ۣ0(zCt}CwބSޅSQ e g>;<45Pi6Ԧ֌T֍U֎ZZ #[%„Z#…U4ϔUĞrfi::=t<vzݿ@җ)ǜ9ǝ9qtsɷ!+!0ˤ2 NaBB ͉8~G.H.K? X%OO ()"&å@7^۩GGGŀŁłX}X~Ń"W%Ԡ[D: ; = ?֊֋Ԇl+LMNOP"R$o̯(7ݙf8ٛIΠZHf Ubc_AҕRDǗnC D ߏߐ%&-md>8mLoONF Hpq7%6zվ.01GHJƠהOâu۠ lۣ mۥ oМ&{+~;'(;)XL@^P_TYZ'8'8(ȿYeYgYh@@QzZ @٘=ΝΞ=o`|`=,M-M\8:$͍͎͋͌[\nq#VѰpѱsƕ!*Ɩ!-Ɨ!/eޕ2 dBպxS&ʻ=ʽAP*'***-׏:ǴKroWXZ_#n$r%GڨYک[ګ]/pϥ&~Pq 7r <ӛ[c+e+ȹ.%<?M@M ʁ_ݖ <Eh>Ei)V O#հ Tؠ1,ء14͙AhlĸĹikѪ:$356@NƏJƐJސ a s t6{6FMNGD #$_`..֡yόϏf'œPLCy%S{+,BMD;ҥ0F  ߤQwߥQxߦQ{|ɍ<˺9Wfb}c~C<؟ZF?%4͕D&5͘L[#deGF3ſ4-5-7-ö9-:-dдO4ݐ>ݑDԸԹ>?E֛"g֜"hH֝"i֞"l-aCdTS !/n"#w@1#?$@&AٮPٰP'v\u/w08v8zoOiQjҠYǩqV]ߛB?4Ʌf.EgɈl0Ejd jVA,#=N4 N8סףޞޢޤާBCIpJ۹pۺۻqЮ!~5Œ2e6œ2f77fSygi..= ?aӵOӷO&;ӸO>@ ϋ&ϐ7H'ʑXXn|XXXrǝo٫rS#8T#:ή=<4lmno+Dp,D>U5p AU9lXP<1Mo67:Ƨ(ޮ9Yޯ9]ȋZ ^G_&1םBS5I' <) >+ ?nE->>8>93o4dڼμڽξھϷ߁66ϸ߄ĎܛXܞӰׯa"mo376C,Sʌsʍtʎwʏxj<MLNL76'':ح8y  nYoY0GHJѾABƣQUhVjWkƥQJ l%#.,ȈdY==N5N7N9N<\Oޟޡޥ F FFW=W?v!}u2gw2i«ڸ1SzĊČ5ܗ*yܘ*|C?DA|YKZK9 :lB&&H(VH*Y ɞu@uPPPU ;Y<ZͦЯͧаͨбͪг4,6,vMp~P$eQ$f"Eh<  ~1|B}B~ByRzROPֶ)<Cˈ:w')tJp^w^xcydc{fe-h%.n1GM \ο +...?ۇqЃP/Іd e A+T߱-U60U-j'*̧0cd}QQKш(Mюş9Š9GbGwZvɈwɊrp % 5H. 5 58 W>#Q$U..>ʯٻκeU;HV;I<KÁNہۂ0}"~"`3a3c3W=T>TKæ-B[:ƺ/ = ӁPF'uд8m88̤Z̥Z΃P΄REIJB C Ah:=Cj-9-;!>#>$>NNܬ@ђ:t]՞^ʣ!7\ʥ!ʧ!/k|2+yC<zC@ lcS o Y*8Ӊ.??ڐύHƴY)hƵY+iƶY,ƷY0ƸY2޹}F4qop Dj $U%Uhe() bE ˝ &((( (؅9ĝ Rqܨ1ܩ1ܪ1']ZR2P%!  $h9h+*79)V-9߲L(p5"& Ի%&%(H( "3-z*H-$ȃ*'O$$(!C n)ý_*H$P+tS%#cXX2a7'HXP8K $ڛ%M H(@ '?(~{-K D9I H(֛$%j $N=w-D! Z-t@ i 3X''L#F*$X$HNe$8"!Y?"-7,ADQ(OLTj;!2~"T$NZ'./$a"W'&@-gMI'-|(x)=0}=.Z!JИ.D<$:/Gs$D_c4"d'.W#:&% z : : :%9ǒ' (\(#vA;4A;"KcA;D]A;*A;*XLsA;7nA;&}A;*,A;#ȒA;`FA;(8A;A;( A;-WA;A;*!oD!*E8Ӫ6=B)ڟ4s*'aU/a/7%(y%w BQ?,B "l*y$$:|@L*;)w c&Q(*<3QM=&E$Q*)N+F!bB ')>~.$h'X-5W)%!;+ 3q 6T n-*S - 1  $Wq.y6))k9&?O),# G& Z+En(dC$^%0*GX!m+u6*sK(S i?.!-CG.3d,Cw!nKKՌ*\9 Rl +*";@[&ЁZ _*aS&C='Mj! D@!&]43"vEY!2W07<"Az+G,)*/ $T l$ 9Z 1 ' !Y!  k,WsX<LpA} &*F W{+s1C$9$!7-&@C .&Y$5$},IB0";^(h& x8c1,S! $5E8)o$-3 u&eVh#-'+B'+5;~y  D! 7&Tt,h!GK@&)'xuQT# #-l-9Cs'Y,,S$*<Bݓ*t $n8F/%U.>U"f,)2c-2"?#'(P)Z*..@$J* C;!=9'{ + wŕj@Z$ _84%K'c%Q.&9$`?){*ZxU&Ĭʬ"Ao *8$,@B3 61 +A>K"0 -!  {Rkc g($ɩ,E~>.#(+&BO)n#,)ځ &k6R  H"rVDog"M>ikU) ;-ڌ ;Ũi )ZHR,Î,=-DQ. sH[+4%TX< aI(Q> ?,v rC&II^~Y-}/+$w.c("A@"%^B's$*%!ms&VX*  0$_.&S +Q(])*=QYT|0V'Jխ5L..L^, "<:)Z7EVZN%W bI6: ?Q6+h":j'Ll.Ɲ 6]V&JE?-G$x$ S 6 $8F.##]7H).3'ũХ'R-k $ #HTW,&\Q)WJ"Vc+ N,#b'4;$hS8+H%)JK(&I@p$ƭ-97Qt7%)U(i)$1  %>(` z'Itw%$)[$I*8M*%'N"t,Y B8, L&iY'? >&Me-A)`--J(O(U=r @!&!@+)1X `$ F(3#S>.Ba7,%(`l. */P+ Vo.6# 4M-A%% .%:':'[.'9?w'9.'9<:'w.wUh:'<i(&&IIY*IFuø-pE+$h"-9) ϔEv!Gf)TZ%׬DֽAJR%0.s5h#1!-.4}6(g  e!‡a`ۼ!Oh "=R--͐>;)2b J$*v)5* 3 )Us&z D$9-#>f"o.d$q8> K>W'9$(C&!: D4'H)$O%*^@ux# nA*i)2BnY X+!k;&o'7?q   ȱ'n2.JB {F7r,w*SKcX U7zh"jBzKz{ tz/[zU$Yz.h}oz}z|tGz)]zk|zpE!zzz z|z!zqzx8!*z{zp"zz&"z(zsyz!{z5f6zPz!"zjHzo  zM"zfQZ-zNz&#  zf)Dz`!2z9$zuBzztV Gztwcz.|o $zQzV"z:zc~{zhz"b<z"zfP"Qzv!4RzxBz9zz,\zz{%z zqh zqh _zz" zgzz{uz}v}zx!zyzzwzm#"z.[-zguz}mO!zW"z^ =z{*zpw!;zh %z{{Gz" zvt"mz{ziNzdzjbTzR" .zRpf"0zWpi8zo3 <z?t!z}Qgzz; NNzk 7z?zv'zt#oz|!`zhyz|Xztsz^#zs!Uzu!VzQ`!zi+zgzt9z9"z<zo}Gzt9z!izjrz\\"*z]]ztzaJzoz #zfU"XzfW!z6z "8Kzbzpo{!ezpq{!fz!"zu *zq9! zz00 zed"2zt2i3zt3j\zce"zYzp{H!7<z[!oz ,z<<z~0zuVH?z"~zK3zuumz~/ +zV=zP!zT")zE:zlnmz,pzvC,yzDzx 0z=zAJzEzvz9ozwjzJ}yzw) zzi >zhAzh=z z|+mg .zhr"zsGw PzsIw Qzmx<z|!zx"iBzH02z\CzK2*z4gzy9zn:zn#Cz!YZz! Hz/|'!zOrzRyDz"qzbz['zmX!z7z}#l ezziphzt*vvz="@izt0vz2Jz3KHzbYz:Ize\#z%Lz)MzYg z(z/F".z1tzuzy z"4zjPp)!wzyzyzgOz!zzz@/!zF1!zYz  z z\zCzpbzYfz[fzy"6zzkKn!z;zy FzxA>@zuX Hz6zy"azj!zj##zise4zvzut+?"zx #zxzz!0zz!1Jz,}"Gzsznz gzq9"zg z{ z|gyzOzKzmWzvTzU@jz zz}zm)l8 dzVzuzuz"#z z]S%(zr!"Hzzc zwm:Z zwn;[z"zB#3z K!4zP! ziz"azf=u%z zl)!zl.Iz+}Fzz| z B*z}_C Jz  zj gzi+"?zV@zWSz"1z#~}"]z ~zo9z!~:zqG{zf0qz9rzzgzZQ|zs!zvzw!zepz[fz*9az9$zyo"hzbzizgz uz&xl vz*xqzk!<zwzpuHzz!zi zf!czyzfz~{/z~{1 szpH&zzzm"JOz %zz?C&zzCGfzuvz`"\wzb"]0zh9 z &zpg !zzulzuq z9zgH"rzz AzWu?zHQAzvBzvzF.5z{lW!VzB"tWzE"udzvK Az(6xJzmmzz{4"/zzizXzzb"<zd"=zLjt zT"zzJz!z%"Izf]z-"Kz.ziz*zTyz!zzz-zm| zB"zN"!z`jz#!zio:"z!m@ z|"Czn+zimzni| CzPzz}i3=z}(:"}zq"'zt8!z|z5:z?;Hz'dzz-3zxdz' Uzl &z]Uz96!MzjTwfzjVxgez5zdzz9z"z~!]zp=]uzLzvzKualzB#z#Jzt"d^zfzkOsz"qYz~[!pzb5zzxEzu2zv!zAz "z  z7)zl2kzyJzp|zv zv!zy! z%}!j"z5"FzuI!8zz# zj #z.zt zj",zszv~ 1zzs&zv!Mz^Lgz9iO7zg# izr! Gz"r#zqx!)zux>8zcu$z{}"z|B*zhjzh-~_znzm!9xzL@z#z bz czizgz{zz|'}]zrMzr!ozz"zzz"EzNz xzzi$Gzl zsuzg+zz@ zCz|+zi,zi-zizx;fz{>gz6zL z  zjzl3)zNze!zy[zu{ Cz&  z~Mz,5zrw6zvynzy )z:z`^ze|*zi#qz \znUz<z~y!>z~y!znzx\z~S"z~U?zu[v"Nzp!vz"zwzwzn zf/!zp*zq. zIb!z^j$!zhzI""zh#z/"zu`r\zSzZ"0z ]zG%zez5zz"z z}"{znB")zl Dzq/ zg"Zzg'zuq"z] mzI 2zJ  3zv!-z!RzO"'9zuDzz{Bhzmw{"qAzazSp!/zP"O0zR"Pzpz$uzq evzq fz}#zT!zYuxzhpv%yzhqw&zzhrx!;zrHz!XzLg z l@szkuz!zx"z~z}!zUzU\!zf%Czh(Kz>j"cz9"zx zOzPzs[zs9kzSvz"z}'zy'x @zAHAzDPzoRzoS/zD!$z.Yzch z90zM zyWz}@zt@qz~"3z(np Iz1 |zzz"WFzq{L!zo1"7czy> hKz"xz" Kyz$ LzG =z rz5!lz~Z4z)z[`;zz 7cz zgzCrz _zv#z"z"z"_z/sz!qC z?!z/zzze/zk"vzw"z4Dzr(uD  z"zvzw#!z("]z:#z!Q z\znv^tz{<z8z"|zwR"9Pzg"z  zrx Oz "gPz"hQzzi+mWzE"zz{!Wzoozz}3qzil!tzvNzn.zx!z  /z1|"zo"zj'k!Ozj(l!Pz!zwzq kezo/zv zy!hzm8!#zgA!.z~_f mz5zy?zp&#0zuf zlt- Yzz zg"zztY !zkzf4zoVz !znzVez\!Zzg*"nz>zP!kzqy!zliiwzjzE![zg"wzXz]| z_ "Yza7 zd: z z!zmz1zv zm~Vzi\!zw5n(zS"zW"z[wv!|Bz]hiz~/z21z3/zV"zwm1Fz22zuz zS_lz!yzh)"z,zh!r^z_z`z "zL [zYk!\uzN"xkzD. +znz|y JzHAPzCz Iz)XzUmzj^7^z"kzzF"z#\zzTz` Fzxzpy"[z{!z6f+ z z zoeEz0# zznf"kzy5K]zy8O^zy"(ztozz/-zZ3 z=!z,Xz,"Fzk\{!z-fzchzzi^zh7 rzu6 zgZn^ZzH_Nz'rzm "EzFz"6z %zA"zuz|z?!zqN zqO z"Bzzh2m9z ! zYzg-z >zZX z<z)~"zqpzqqGz+ z"k!&ztz* z}zPczwjh!5zppsz|uz.zw~ zrj z| rz*?sz,Az(zik"Sz)#%*z"z2Nzs#l"zw:ozv[pzw^ W0zi zqszilz^>pzaCw1zcIz|"ze0>z,!z +z ,zG!%zz{Kz{_!z~]zO!zAg }z!zuzh2 zqw1!zT"zzz,z7"zm,z)z7zp[8zp3z{kzzK{NzzN{Szg 1za 9zz ;zy,z~1zk_z;"4z?zTu!`zzz#$zcc{zlg+p7zRztoh#  zuO!.Qz~_9zr:zx`zurvz["+GzmfyQzjk0zlm1z 5zPos6zSoz]z[ zl_z^ z[Ksz;LlHzRzx izzme!(ziG(mzw:Kzinzch~zh}|z{ DzYz t!az z-! z_/z=z#0zit|z8znoC z|Ai#'>zn?zo.zg zx4z\z!qz}2wc" zm.zdv) Y/zev*zU "zV #"zRq.z< Bzz" z,bzdUziQzALz~(v!mzsF:zEz}"zy _zz}xKzu8"&z"z"zAz86z29FzxJ!z.~O\z4f!bz?&zi~!EzJzK!z-z. z}$z}@z!2z9  zDZz;"/4z%|1zgf!?3zgl!@zlKNzlNO[zz$;)zYz[z{ fOzmEw8zzg+)zH Vpzlz4z-tz*ufz%rGbz5`fz{azWz*azw{<!"zzwz|s2z$z?"z}zz| ##z|)%z|z{bzlzvyzm"z~>z|~#zl5z3z'0!]'zwjzq %zovznu!zx zf!zzs$;ze 1zo/u!mz|4"zt \ze"2z 8zxi!zPzj5Nzw8nz!ztFztGzzz{fzfgzf!z~"Sz~z$zuix#zg'0rzb/" zVzDqFz! z~]zpy zV,zz"3zQ"z[ zz7zztzTzlKbz{+zm<z t ?Gz>zmzbC,xz"Rz7jzTz{Re gszh jy!tzh j{!zoQYzu1![zu9!dzm*zy4zm zdx!zv}m2zhq jz^!NxzKz{ 5z nAz nznBz5"z ^zrv ~zQ~z 'z (z.z|G: zn z%zhi(!z0"zY;z_rzNG zn"zV XzL zN zZ!z?*zPsL!zw"!zH zsl$ Ezvzpz*HzNzQ:zi""z .zTzjg!&zqz~,d\zGFz6R"Mz=ztm<2Dz F zy!>hzqz<{nMz^5zG juz ]z ^z zQkT"ezRkU"fizq[ z=cazz zDi zfs~@zB z; z{cz#Zzzx!zlHz'Qzfzfzx zk  ozp  4zp"z{  z'szD Zzgp|#*zz$zP-z{5zn'Mzt! zzxzzLz z} zF 0qz+zl zq"$zq"%)z("oz:Mz"LzhF{zY!zz`nzmNTzn|zr!!`zaz":Vz|:Dzqz1#(gzwh"z/gq!/zmtkzb yzc zTzBr/ z#zsx z zs)mzj1@!Fzzo4Yzo7ZWz(zn1Tz1zqA#zxzo&zz4 zo<zf>k{z~iazk' yztnzrDz|! zi" zk@ zk0w}zk1w!fzdgzg"5z|kEz{ LzzT4!rzx`z !Gqzx!zYWz!3zp~zizXzz\8z2 z Ez{"zT"zizptzFtzzmzzu"zZKzr"sz?+)zHzqh-zQ Yz{C"Iz]q Azo&}zA}hzmt'z4j(z7mz0@IzZ!tJz[!uzn|Hzhz"zn s z~ Mz]j"z^jZzLo v[zNo wzi8azs!nlz:zsn"rzspz} z(zS zU zTzi " zz_z~1 nz zy#[zj!zxOzLha!zAzozqzD zz!=zA"zhzhJzm[zj"Izz)!6z"=z5"!Izfv% u:z?hVlz~^ (zCi*Qzu!YzZzz NzlQ!^zrUz"};zqTzez z@k8z!zozpoewz#Sz1zl!!-z#z z'"zi"z}zzkzr8X#"z<zhyYzs$z xzzK%zx""zD~!zmz'!z 8z7j+z " zDe z*".zZ>z!_z7!qzmn>z'h"zndz.e"`zrmcLzw Mzw,zfi-zljtzlz|"bzi?^R?z rznK5!Xzx4 zx5@z~zs<Ez| z} Lzz##Wzt"`z z"zn=zn!'z2"?z>("zz zzlz@ Az"ztke#z~? zTt!z{;z Oz$z'Tzk4z} Rzh;zp" Ez~A|Tzn=kz3s =zf+Iza~F Szzp pz#*rz]nzgz= Zzlt$"Fjzz^(z)z"zg6!wzw"-zI"wzl $z3zzqF BJzjKzjkzjn zzzg }zrz_Yzvlhz{cnBzmr!z|IzzwS z[zizY]zyz7zh7 zdS"z q zjV R2zm"zoY SzzZ4"lz^h `zahzwUf!zi pzwYf!z1a {8zk=zP" %zi  \zsoDzor czn6"yzNz|#zop!ILzNVz;tr!+zUzJf|z!}zy"zsu}N$zZ"zxPY!Tzg!=z!_t^z`zs zm[!}uzf 3!zSzm z_jczBzj}zt# zX Tz!Kzy   zPzkqpzkrq zp]ozp^o  z!z\5zPzSzkzQp!HzqdyzD!zKNGzp`!l]z4z{z)"zhbzJgQzwxRzw Szw vzp:Exzp?!AJzK"zg Uzl#&SzO _z-q!Sz2Uz6Vz/{#<zhH  zz~czgzqz3="QSz{zw"zzzzz{z== -z9~xzH";z{ z1Pzrkzjozz!dzzwx"z~ z}gUznM"zfW#z0Pz'sR ziK.!,xznU;1zx!o(ztz}#Czj@ Tzx wEz}T:zcz|z!hz'!Qzrzy !D$zjCz"|~zGgz{ibzo!qz}I4zUpzmCzyxb! zez !wz+mz|  @z[1#zhzz$7!z%9!zu hizxz%!Jzlz"#zf" zl : zp(u"z l ;z-z =z7"zj `zqSzm:zo;zk GUz?&!BVzA'GXzB)!Czgg"%zbuPzl|!Vz!zy,zl!@ )z3zp!Wz!Xz!zq&.Wz:"zL !zSrJzKz zgx"z}X z[ Hzr~0 zw!ozs"pzu"\zUzvrUzvtZgzUzz  lz7z{kr!z{lr)azxSwzr}z|9+z|;Aziz!8zCzzziS!xziV!yzd akznz{r- zsRzhv"zgMzzsv|3z zxMzkzZvzSs@\z!$ziu"Ezz:znzWYzf"Azl qHzxZ6zj~M OzRfz2zo}#0z}Op:'z2zs" z]f "Pzlzx#zp!@zKuvPzjtI!zjtK!MzQ4}zt,~zw! zPzpaE"vz,^z: <_z<zaxQez~V!:zMb7zN}|pz9zy"zK zK2!z0 zzGz"zz&z znAzfz!5z?mz,?zPvdzTM!tz l!z#z!7z z pz! Wzm EzrF+zwvszV!z|j !zE"z{!dz- *zrz GmzB`"|zwvNz1!z!ez| zyVz!zw#zw$zg&zg'fzl?zq zM z0k zxuzMy.wz=zi"6zw!~z ziN#$ zxu Y+z?zs!z}` tz0zjEN"zA"9z}>zW"p>z' hzs"zL}Fzj!zj!Dz}!#z~cztPRzwzr!L[z}5! Rzezv!sz  &`zkK!dzX!jzjzm'z I!zzdrzzgr"Xzzg8w(zyz;zz=Tze"zf"z /zzznhAWzPz{zphEXzu\zpk8zz"zg z !z!!zdz~z{mq<"DBzs9 z>"zCzk zyBnjze"Tkz e"Ulz e"VXz Iz!z{p"z # zLdzmLzrt"z57zwZ^iz"Mz"mNzOz"nXzzn 6{ze!6z^sb!4zn"zo~!v,zs-zs "ze|z t"}z w"zw` z=Lz!zJ"znz zZ|4zT zz"zax!zlz"_zKUzo z}X">z\zzo zS z~=mH! z_vEKzo~ z!:zXgbkz.(zQ4!gz!zyTzz mzoy|Qzz$p`z[ zQazte"bzkp"Mz_zf#!~zTt(zkJzkK*DzuTz] z}vzuS"^zjcz"z~9!zzgzgz{!ZzZicz[iezh[I/z#1z#zzzUzMzx"z|!R'zYz|!S z[z> zCiT^z{z&qUz)jzme"zB41z !Bzfz|/"!zzhOz"ozgx#)]9}.p%-cHaHJ"V%vVV% sVpH%H ^ìmr(E.## f1P1(D)Aq~&ҍ S(aӛ-;-j2>5 xnR*#KAq<p(Z//////////////////)(*%u6l##M+)R/WX WkWX tWX X X XMX WXDX X WX , X  X XBXX X XX X WX X W|X X X X1XX WX^X W X WWrX -X X XUX X X X X * X XWX X XX X WX WW~X X WX X WX X X X X XX X X X HX X X1X X WX X XX X X X'X X WX X WX eX ZX X WX X WX X XX X XX X XX X WX X X X X WX X XLX X WX X WX ! X WX X X XX  &X X WX X WX X WsX X WX X X1X X X`X X XX X XiX X WX x +X X X0X WXTX X WX X X X X WX WWX X WX WXX X WX X0X$X : X X WWX X+WX X WX X WX X W}X X WX X XMX X WX X X X X WsX WX9X X WX X X(X X WX X WX X XX X W}X X WX X XX x$X 4X  X NX WWX X XCX X XX x X hHX WX;X X WX q X X X WX X WX X X1X dX X WX X X XUX f X Q bX X WX X XX XKWX WWmX X WX X X ; X XWX X WX X WX X XhX *X XWX X XMX X3XEX X WX X X:X X X X WWX X WX WXX X X XeX X XDX X XUX X WX X WX WsW|X X WX X XX X X WX X WX XUWX X WX W X X WX X WX X X1X X X;X WWX X WX X XCX X WsX X WXiX X WX WXCX WyWX X WX @ X 2 X X XUX WXX XIWX WWX mX X WX WWX WWX X WX X WX X WX Y X X XX X WX k%X X WX X WX X WX X.WyX X XMX X XX i X \X X XVX y X X'X0X X WX X WsX  X \ X d 7X X WX X X(X X WX X X'X X X(X X XiX X WX X WX X XX u X WX2X X WX X XCX X XMX X XX X X WX %X  X X WX X XX  X X X'X HX X WX X WX X WX X  X X WX X X WX X $X X WX X WX X WX X XX X WX sX X:X_X X XX X!X3X X WX WXOX X1WX X(X1X mX X W|X PgX X XKX WX X WX DX X WrX kX OX xX X WX mIX X X0WX A |X WWX WX6X 6X X XX WWX qX X X(X X WX X WX X WX X WX X X`X X WzX WWX X WX XWX X1WX X WX WX1X X XiX X1WX WX2X X X`X X X WX C X X X0X zX X WX X XLX d X WXX .X WWX X X1X X W}X X XUX X X W|X X XNWX X XX X X X X X1X N "X XWX X WX ]X WWX XQXX X cX X W|X X XUX WX X  X X WX " JX X WX F X  X W X X XDX X X(X XWX W X  X WWX X XLX WXX X X:X X XDX X XBX X WX WX X W}X WWX WsW|X WWX  X X XX WX_X $X X WX  X X WsX X WX X WX  X X XX X XX WWX WX:X X:WX WXMX XBXgX X WX EX X XiX X XMX X WX XWX h X X WX  X k7X X WX X X X X(X1X @ NX X WX X XUX XCXKX X WX X X X:X X XhX X WX X WqX HX X WX X XLX X X WX X WX WXX X8WX X vqX X XCX X WX J /X X WX EX X XX WWX X WX X WX X XUX )X X XX X WX X WX X WX { X WWX X WX X WX X WX X WX  @X X X_X X WX XQWX WX X*GX &X X WX X XhX  xX X WX X WX X WX X`WX X X_X R 2X DX X@WX WWX X XMX X WX X X X%X X WX X XiX X X0X X X_X  X X WX X WX W~X X X WmX X X&X X XDX XiWsX X XDX c ^X X WX X W|X X X:X  IX X XDX X X X X W|X v RX X X X WX X X(X X X(X *X X WX X XVX X XX X X`X X XCX X WX X WX ` X  X X XX # X W 1X X XVX v X X WX X WX X WX XX6X X WX X X XLX WXWX WX8X X XX X1XVX X XX WWX X XX WX-X X WX WWX  X X WX XE X WWyX WWwX  X XQWX X W|X WWX X WX X XMX X XMX X WX X(WX X X`X YX WWX X W|X X1WX X W{X X WX X X1X X X X0X X X XVX X X X X;XDX X XXCX X WX X XLX X WX X XCX X`XMX X WX X WX X X(X X WX X XX X WX X0WX X XX X X0X X XhX X XCX XWX X XX X XhX X XX X_X'X X XXiX X X`X X WX X XX XX X WX X XMX X X(X WWX X XhX X X WX z X X WX X X&X X WX X X WX WX'X  NX WWX X WX WWX X X(X X W|X X WsX X WX X) X X WX X WX WWX WX'X X XDX X WX X WsX  ;X X WX WWX u X X WzX WWX X X_X X XX X W{X WWX WXDX X WX X X_X NX XX^X 6X X WX  X X"WX X WX  X X X`X XX7X X WX WWX  X X< 1X X XMX X WX X XMX WX<X X WX X WX WXX  CX WWX WWX } 9X X X1X X WX X &X WWX ; X X X;X WX X WWsX X W|X WXHX X X WX X XX 5X X WX X XDX X WX X WX X XX @X X WX WsX:X d X X XX X X WX WsW|X X'WX X XMX X X1X R X X XX X XVW|X X XBX XWX X X&X X WX X XhX X WX X XCX X XUX WXX X WX X X XLX WWX MX WWsX X WX X * X X X9X !X X XX c +X X X'X X WX  6X /X X XX X WX X5XOX X XKX XNWX XNWX X WX X XX X WX WXX X XiX X X`X X XDX X WX X X'X WX2X v X X WX X XX > sX X XX X WX X XMX XOGX X X_X WXX X XX X XMX X`XiX X X X X X WX X X_X { X X WX X WX `!X *X X WX XIWX X WsX WWX X WWX X WsX X X WWX X WX X) X X XCX vX X WX X XiX X XX X XiX WXX X!XX X WX X XDX X XiX WWX XWX X WX qX X X X_X X X X WWX X X0X X WW}X WXJX X XiX X X X X'X X WX X WX  :X X X0X X X X < X X WX X WX X WsX X WX X WX X WX XX(X  X X XLX X XVX .X WWrX X XDWX X X1X WWX XWxX X X_X X XiX XiXX X X WX | X X X(X XXUX ) X X WX WWsX X WX X WX EX X XVX WWsX X X WX X W}X X WX x {X X XiX X WX [X X X:X X XX WX2X X WX WWX X XX X WX X X XX WWX X WX XDXMX W}WX X X1X X WX X WX X`WX X XDX * 5X  X 'X X XX X WX X XX X XMX  X X WX WXVX WX2X N X X X_X X WX  X X XUX WXDX X XX X W{X X WX L eX X X XMX X XX XZX<X X X1X X4WX x +X WX-X XX:X X XX X XX X X X X X&X WWX X X X(X X XNXAX  X BX WX2X  X X XeX X XDX XXX X WsX [ X X XX  X  +X X XMWX X WX X X(X X WX X WX X WX X WX X WX X X[X b.X X W>X X WX X(WsX | X X_X'X wX X'WX X XX X W|X X WX X XX n MX X WX  X X WX sX X X`X B 'X X X`X X XX X X1X X XMX WWX WWX X WX X X_X X(X1X }X ^X N X WXCX X X X WX&X X X`X z 7X X XiX X WX WWX X WX X WsX @X X WX X X`X X XX X WX X X_X X X WX WX0X WWX X X X X WX X WqX B X  X X WX X XVX 8 TX ; X X WX WX;X X XX XWX X WX XWX X WX X WX X XiX XiX1X IX  X WXEX X WX X XiX WWX * BX XWX  X XLWX X XX X WX WsXX X XX X XiX XQXX X X X0X X2XWX WXX X XX X WX X WX X WX XMWX X WX X WX uX WpWX X WX X WpX X XX  rX X XiX X WX XNWX X WX WWX X WX X WX X WX X X WX X WX X WX X XX X X(X X WX XVX X X WX CX X WX X WX X XLX X WX2X X X(X X X X(X X WX X XX X XX  eX X XiX o X WWX X XX X XDX X WX X X XiX X WsX X(XMX X WX X WX X WX X!WX X WX  eX X WX X WX X X X WX X WX X WX WX9X X X"X X X0X X X`X X XX gX X WsX WXDX WWX X\WX X X X:X WX X X X:X X WX X XiX X X1X WXX X WXX WWX  X X XX * NX 1 X WWX WWX XWX GX X WzX X : X X X1X X XVX X WX X X"X XWX X XiX X X WX X0XUX X WX X WX / X X X[X X WX X WX WWX F/X X WsX X XDX X WX X WX o X WWX X WX UIX X XVX WXX X W}X XWX X XVX WWX X XX X XDX X WX X WX X XX X WX X WX X WX XRWX X WX 2 X WWX ).X WWX X WoX X X_X X XDX X WX X XiX X XX X4X%X X X_X X WX X WX X WsX X XX X WX X XCX WX`X X XVX l X X WX X X(X X X X X X WX X;XDX X WX X X'X XX_X X X XX XGX W X X WX X X`X X XLX X WX X WX X WX X WsX X X WX WWX =X X X:X X WtWX WWX X`XiX WWX X X:X X WX(X  X X W|X LX  NX eX X XX WWX 5X WXX X XX X X`X X XMX X X WX X W{X X WX X XiX ;X X WX X WX W|XCX X WX X WX  X WWX WWX WWX X XX X X XX  X X XX X XMX X XX WXCX RX X W|X X X eX X WX X WX X X$X X X0X 7 X d X >X X WX X X`X X X`X X WX X WsX X WX X XX DX X WX WWX TX WX X X WX X XMX X X(X XdWX G cX X X_X WXKX X WX X WX X WX !X XNXAX X WX X XX WWsX WXX I X XX(X X WX WX@X X X$X X WX WXLX `>X X X XVX WWX t eX X XDX #X vX X WX XMX^X  X X WX [zX !X X X X X X:WX X WX X X_X X9X^X X WX X X1XX dRX X X X XX WX:X WsWX WXX X X XX WX X WX X X X XWX X WX X X XX WX E 2X X XDX X XX X X:X X WX X X'X X X WX X WX W !X X WX WWX XNXKX X WX X XX X X`X X XX WXQX WX9X X X WX  MX X WX * X X X`X WXX X X X1X . pX O ]X X WX WXX X X'X X WX XF X XHWX X X X ] X pX X X:X X XUX X XiX W X WXX X;X`X X WX WWX X XX X WX X WX X WX X WX X WX X WX X X X0X X WX X XMX X XMX WXX WXhX WpWX j?X X X X X !X )gX X WX X X XVX WW}X  X X XX X X'X X WX  X X WX X X_X WX;X X X0X X%WpX X WX 7 X X WsX X XX xX Wm X X XX X X:X X WX X WX X XX X WX X X1X WXKX ?X X XDX X WX X WsX X WX 7 X X X XiX X W{X X WX X X(X ]X WXX ;X X WX X WsX X WX WX2X X X XX X WX P lX X X X CX *X X XX X WX X WzX VPX X WX X X1X X XLX XWX WxWX X WX  vX X WX CX XVX_X  X X WX X WX X WX WWsX WWsX X XX WWrX  X :X 6 [X  X  oX X XX ; X X X$X X XX X WX  +X X WX  X c 5X X WX X WX  X X WX X XX X WX  X X XX X WsX X WX X WX X WX X X WX zX |X X X&X X |X X WX X WX X X;X X1XKX X X XX X X1X X(X9X X WX WX=X X WrX WWX X WX X X0X X XX X WoWX X XX  X W{XX XPWX X XX XZWlX XWX XiWX WWX X WX WXWX X WX X X'X X WX X XCX X XiX X WX X WX X WX X WX [ X WXDX QX  X X WX WsWX X WX X WX WWX $X X X WX X WX X WX WXCX WXWX X XCX X XX X XDX  X 9X X WsX tX X XiX X WX X XX 5X X WX X WX X XX X WX n *X X XLX XWX X  #X Z (X X XVX X W|X SFC r6FtUCs;G t;dEuUGvD4WDtmR!Dtn<GKs8 FKs?E u<E uEkGXraCFu:DGsA(Eu:Du0VDuPzGtSFqRSCtE)uMEKsEF uMWEq1DXu!EFnuOGq`@Gs5tEws:GrtTBuTvFqSFqEqI@Eu7mGYqBGEsGDsAFqaL]Cq:?CtPCtMFuSbE:t#TdFssVnCr8Ev OdDKr 8-GtC+GrVDuHBEhtHG}rf5<DCr=EuNC4uXWC[s =zFuIErq3?Dv15Cr4=D'vCqLD sAIDq2Dq8Ev ;:Ev4DUtV3cCNsMD6s@kGrFDuL4Fs%FEt6F`uEuUjE sxJEtU'E\u@>Fsf<EzqWF\uQF]uOFtD=F}ri>&GPqBGu9bHtNGs_JCsDDdr7YFuOFts;?F sRGtODqGhFr]T1FFr5FqnA E uSE!uBG9sY9EtQ7VGr3T_CrIEv1EseJEsgGTC$uiICutMFs-T5Cs0CqS5WEq2WFrs|IC7sDEq@EvEGs=lFt;CrDRGu4 Cr#;CsJUEt TEIqLGZt@F sZ:*Gq6pDr 8FDrvR Cu7ErHDuvAzCRr=eCTrTG7sOEtCGtQNFu:bEtq1Euq2FWuDG r1CbuYGcs]AGds^V/CsJEq0Cq>TZEt{K[D!t?F)u2VCs=XEqBDr1#FsMFuJE?qHG=rUHDuE*F#vEF$vBGtqcU9FArNlGsG1QFzqMgDqK9Grl9Du8NeH s@D_q@D`q2E(s=EFv7? Dr90DvFiEdrQGxuADu1;Dtu|GDVr;2FvFFvL-CQq}MEu:[EsTDq7BFt94GuGCv=DGt4dDuqHeFsH5Cqs1qGVt2D/sVGq7DZr-Q:CrJFt=Dv8@Gr:RuCqgIDth?D r3hCrQMEqHGr}CGr~6sDr@@Fv"SfGkqjGGlqkHDsVFuq4Fvq<E*rBGru=HsM]Dxt8HCVu9E`rC F.t(RCvI@dDmu;.DnuFE0r7aE2rOGtLCua1<Emv;DnGhqEH sESFqHFtBJEu4<Cr8DC's=LC)s>VG[slNGFu4EtEBGrAGzt:PCtPtCu@ECuRPCUuP)D r=*F uAKFtHEr9D9v:KyGtADjuM2\C?qIQGJu JGqG5Gs8LCs.VEjv7 G~t*REvLUEu PyD}sKGr8Cq0Gt"M'Dot0,G5qSgDs?CFtT<DrLGt6EuRDt2DqG6FuM_HsQDFtGCDJsD+CtJCs=GrS3wDuF#E_rPGtTDtPCFu(FGq?mCZtR2Csrk=xEAu7BLFvDExtU:D;u\6ED<u]DD=u^C{Ct ;iCu1Ev5:.EQsNDrCDt0Gs6(DqBQyFsP9Gr:Ds RCrBE8uo;\ErJDuR7E^q@D7u4Dr,> Cs0U,CuHRCtJF9q@C3qHFu;4'Eu_IDEsCCvqDSEDt_?{EvCEGqQ_GuUDrsR F~t-RFq5CLtCMGRsLDq92HFtx?GmtU<GruK4BuKGsoE=FytiR_CCt76Gr4H qREv0C8uLEs;G(q5[Dv>C$CqM3;EtFOC*q0Er1REtt2VCu4Ev BpFrIGsd6,Er8UEtLvCoqO}EYr(C G8tR{Fr?EvsHG tX@GgtREsUFu[OLDs1DsVjFq0DpsIGs,4&GuJRGu7F_qGxC:tKkErPHqNDrA?gFVrPSFtPEF,r DFuNCqZ1Gu"H|Es;Dt59E[qA=FFu/DFtd7;CrJTxEuw@)EuxQkDOqpEGrmA`Du2Fv-4kCGsU=Gq;QGt30zGq;5GitNGqO0CrB1CrC3GCs3CsF Cs3Fju#;DFt<JCzt?Dr2C=t$9'Gq?FuTGs5QFt2P=G si9 Gt>.D&u@GFs:nFsBfGq1FrPEu=TFtZ7FsU)E{qBCuMhEs1CMs(0Dt@GsuVmDs2FqIvFtr7wFtsL DGqBHE+tzVQG.uCEr2GuQ9FrBuC2tCCWrGgE=s DE>s =CqUCFs~AD:s:U[GqBCu6G3t`8CrGL!EnsCeD3tKDqJ6Dr3Fst<Gt9:F[v @<Cs>Fu%9ESv6RnF0ufRDqe0>EuI7Eu7EtgGFsHC_qxKCxt&>;C`qyKC s92Ds>EuCPGsTFt|HEtaO1DtHFuW CsX;VGtN?LDtFCAs1@5DtGFrQGuOCu:Eu>C rKH tDD~uCD\sDEv%@FuT0CuDFBrQCsy4C%t9Fs3Cws:MEqr>5`Clt7kEXuY>~EfsOGes8Fq>THu8DuOFv2;?EtUCuIEsMEMv?BGuQGv*1GrE1Ctt02"FYuj=CuH CsB4=CsCCCrRCrHGu7|G4spTzGNv'>Ds=Fv2FsSFv3CqSEtQ"Gjr4Cq0pE rR=0GtY89CtEDrQEuQHEerGdDut5CqoNEtGGrEE9rOGtEt:Ev+< G\t/WSD8rw@$Cu<CrXW$EuJ.DRsGC>r@GrCGfr;DNtSD[roKEu:C}rP(DuLlEt~NEt=DFu7=FgsBGrNGuPT@Gt!9OGBqI}DtIEsNEsUBDs?TFvTCit=Cu9pC+s0=Gsj8CyrNDAu5DQsSC-FasAhC qW3DrsSDLtR FsUCctCTEPt9Fu9MFr8CuRDDt>DsJ&EsT#Gs?TGAv9LC~qDJD>uMDrgVDqVJEruMF'tw?%Cq<'Deu@DfuJ_Gu*>CmsIEEgql1GuMFt7C0rTC1r45E"s24Gu?EF-s@xGqUEsSEqFWDq:D{sND|s2Fr'UECu}@4G>vB,DuIlFvJFCqHGub8Eq]OErPXCrOEs&;FPtDH rDhDbu0DcuSC9qOFrAvGbq7Gyty=D)rWMF4rMdFkq0DCSu.=CE;uHGpuU8Dht:DitTAGs5aD1qAgF:r@7DuDCq<Er!@Er"@_GuNGG$rSCsqT!GuVFq6Ct;GEtEGuF5Ds@FuvUE}s>DqQACOtECPtQtFtRVGr;Fq=;-DIsh50FUsBHqI;CsFJF6r1Ct JbEt3E@tIJE%r52[G<uc3Dr:C|uNLD$r`L&CtUPEuuF6E3u:Fv,7XDt2&Eq<=GqTG*r@Es MFqAiDtG`F2rK2EsAEs9Gtv7rD r>Gs>zDq_@ErO(Gv<NFbrFDCqPEtODuC\skAFup9F%s$BEuKZGwsQFZrMThCrEEsT>IFv(=hCtK0Cfq0CJt.3zFsDxF<ueVHuNDqd2 FqJC^r8'EJsLH FEsJGHqCDWtS{Flu`0C.uB:Crz<EuLGsMFr;4Cr?/GqsQ Ds#HC"qBE/tO DtS!Eit >Ekt :CrJFsRCdqSG]us0Eq=Gr27CrK\Es3NE~r<KEr=8EqHUGtN:D tJsDrJEu8FwsVFxsSkE-tNELrC}G/uDBF sFEq@?|Du @FuPFIs'LF7urSDqmTCrDjGvE<CXr1~CYrKFtSF/q;9Fu6EsKGrA*FfuhOzCDsKCEs=jGq4tCr>aDu0FFt@EosO3F&r)@DuKqEtHlF^vK8Chu4ETq^1"DsUCt8WErjQGu5BE]tNnGtUFGr8!Es0NGr6MCr?FrUF"rb;@DsmHDuLCte6Cq4GFXqqE>FuV4DlrnM%Fu3E1sS DtT{Ft0F;tKGum:GqTDuAG`to:D(tWDt,T.Fr MGq87DC(u$>lG v3HGnrUHt6IDu ?-EqOC;s7FrP8/Dq5Ds6?zCqVEryOEtIWDrTBFs"BEsR@sCt+0Cq2bErrCGFudLEyqbLGtBFtFF{r$Fps;FsMFJFr&MGuqNB^GvqP:D%t'3dGu<4FvHJGrDGr<CFr6E4rE[GtBGv 9Ft<GsQDaqDCtk1EtGoFq: GQuZCF3t 5|Gt8Du0JFrARFis<3CrPDq:F(tDDsNScEt9NFHqO@DCsz1Fs4?FsJDMt\=oF?r?3"Cuk?]DsDP>Ct@KCtA6qEsRGtl5 E qFxEs`PG's>cCt:EFtHhE|u 5Dsu6NFhs6BG!tO[Cu:jEs[7}Es\B8DtRFDtSM3Gul3iCvATCnsTCps1F!u;Cr@EuF.DYqIForp7E$s}2G"sE7CqL8CtuPDsa8XD#sFpDSrIC v$LTEqQCuQ5CrNzGsLwDvF Dqu:!F|uVoCKvViE6qDGsJDq9MDq5FrdQGqtEFsT<CtFL0CrPjEr<#G,rMG{tQ*D*rDDtH-FtHCu'IjDvt]NtDwt^9FmrEGcE<uB.DsB#C{q6D"sr2 F+s5FuT GtE`Dku>4FdsKG1rVODt>DlCq?UEquN%EqvRGMt;FOtJEr[>ADvVGDunGD?u:^Cs5Fr+UD qBDv>Fq0oBq<}DrNDrM\Eu+FnFr4|Fs<GuOGrH2GqLQ<Dq4hCu:DHr8HrSEv ?Fs@EBu&>,EbqSCr9DTq8:GsNDu2iFqWIdCtRDPrDFsu9cGtN$EUsJFEVsKLFtIPHs:DuPGrIFRs<FSs:C,r/>C-r0EyDr5bCr?CugJ1GqGAErhF<GWs+7G:u~8Fu@CsM!DqQGt1tGs0FrCBDv#3Er=~D2u;8FLt@FMt>gGuQGrN>EEtO2~G)r.=$F u:2Gaq:F}Cu>]GrFEDsc8G6uB Cs:Dv@9EqJFu7Dt)|,26;*8 <;"@ћ CP?ouz%76&3t! ['9}-@OEA$7'P $-iP'MQT"#RgV.:%aW2 AjF5?u5,b5#aP,s#aJS5# (5,b,sjw,s?,sI5#5q,s,s$T,V&*&S!,+N$T*7XNa8(HcXWa7")&0Y  .e#(I#@; ./427+=B-.I #!1.II 2$^Zp(Qt$Y* 4=%{xH'SlwtO"(0 &$P 9]eP]eO).97N(7"w7< 71 !A{!x&(\I,VG!  [(Fc9H'Kt,UG!$- I,qbS+)*O#M(qN" G*$ &G'J2._U+TD.3EL e[5(6*(l&' -ёrY, (@*!%:, FY%) F*9#JyY%*![Õ* tÕ&41WY_9N@#N @ͫÕ;:9a0i~(Q@"J%$)Õ"Y_H?9aPT9:Y<:'G@$ښY'>_'IY%fÕ&4j%\9aXk* ]Y ]Ӱ:HÕ%@9TNÕnY(#`j%բY&4oa08Õ@9 9 49rQK&4 Õ:*#~ ]j 9$O[*r0Õ/Õ'_@YT3v@'0Y, %krAY~%, Õ"@ 9 *5{ZĭÕ=(**3Õ('h@T0QY&4Mal K@Tj%~Õ)kY ]8*, $ ~%Ϡ@(#0jQY(j ]~ ] !pj#*+jgYr@:=I(Õ(:Y ̉Õ 9_j_Ş~/C~~@!*'!]#2A'ST9!?8~(Y@)*&4P@j&4A9(0s-j_@c~!'Ug, 69"T9'-Õ(V*TaZ, (j$j$'j:@$ڧ jݐ*N~L<j0A!z9"h~ ~, <rşa5*%=*&44~%Y ζ~E9_f*&4.@TK~(3}9$~ЭÕIVj%.~ &Pj7!__Õja@&49v*a SO-Y ]HF9%<1#!Õ V!*"G_:6[jTƄ*MÕ "4j'6Z@#.:~~ @@'EM~#!g9(.Õ%Dn~v* ]Õ%j*~'#9(V@$aj q"%Õ$ o9_u(89Õ @%SY'ث*, ,Ij'19'*'#j7@' ~'Xۦj(%Z~$*~(rj~ B'-sÕ , %*:"*$@փÕ!Y'8{Yr6"YS|9 Y 6!Y@(~!4ur\9(Zr** ]@T$h ]M'4Y.3J,d$)OfX8\ʗW&Va+J)> FW !, T*=3Φ-C$NWn!=!!GSR&GE)o;#%!O'+"vSGݬ%"0`V  lߠq iV$Q !/ ;fD!n9,CY+Hs!bR3$n$ܭK]-P$hU DtUU9>$ {$}M+R%@l Лj&W>%w+ Tc $5ʥ-3}uD)3,BV*y$6 t$:'H*E,/ ki b.pJ J5.v#+@C"-9ͯ-Lk!V-,I2C%FF.f()kPXɫ(#E!τo*; cZzd(d%0& !&dA3*s$ ־ 1JP"!Q*3'xPQ, )w***($BE%U"&Yx.͝,)&"x*aȈ 6B&CM*S'- !,t,uBs&%&"F&]}h:KR+&,QA*<!Lu$^!FMh*5+u$D(SJ'/!s=& &* W%R#ʛ,C9(21ZD*8% ) @&V Ee&CZe"?'(e"0 n(.F$Vej  $O6x 3%8'c&$ js& `.$-܄A*V8Bc>b%+Ho8 *¨Y 69'ԯ-" +ُb$._7xRB H_D0n)j`X3uB;G+ M*Y(-zg$^&Zőp&+u ײsH l-T*sh&.-*S*;Y iP*Eҋ ߨ <9'_$}Ș*: 1U$5&@ V˷#,!no-Sh&Cr f-3+1wG=!"v$h1wb+)!2S01$&Gqp,#""HMh>G6T_*s Bc!SQX)׾-  Z"5E,IE&BT,)Z!-Sә.$78%05/BO$QNc u*B j+z' c(/+5<Y.9$ B3&,sAhQ )oF  %OZ@  -h>4 /7&.6m%wF )#$n*yҷ"Z!R0+ʴ(4V!? T&I*!W$̿(S  n0[J,."&,C7*Z! WWO'(x (du$ q(Q5T*!& Q!!-9&*<>z 3"=' ז&]*a&$*_#Y,BAphU 6"$:X RT/!b4߇'x@4 k%U '&)&*&<H.)k"?h*o3,Z$ D%2#%'K }G(F6;;*Z%'ڲOyQ>j`xR q[O XWXWIo  Sx[OXoksWS"Is KWXQX1RI-ZW skWR5I. XWfqWS IcwiHSN+ ZO WX'vX:RAJ3 oXiXh| RW[I , N-|URN - S*o TNWW}WZI  =6SN9PWX-%WYJ>X(X/mWZJJtXX8.cW{TIu HWWrMqqXTI B YRGO n 2}|$QN  WW &WI G 4's [O J sROWXTvYoOc1WW,ZWQJ& WW:{WRJ IPU9M WXLuX_VJ\KZ @^<REN B zXO bzTJ[XfW WZJXWwXhUJ 8 QN  M!VN% r#Y#NHWWWNI XiXyW[J|WXSWScJc f&YOX(W^XM\IW}Whu:ZOXCW3 \2I7 gvWJ @ y%sVOWWoX2RIWpXIXXXN - zXAP3 ARP4XhWWrUJ=oip[ O \ e #WmJH mVIOWWXYI s 8ZNWXO~<mGZuOA/ eSPWXIgm^XgY'J4! 1lotZMN) N)1fVbO WX3CyVN;OZTOJW}WWN; A SIt hYCTO FuyT OWWt#X Ia Rg ZMX(W}X [bI?WW;X1\J 2nl? QJ/rVTjOLX WqzA{WrX9J}b c RNcXiXVjWTN kRP WWX1T J8F K taYO)WX,l(WV-IW}XiXS=M  i\OxD FupVN| zo`YNy DASOK 3xFySOM RxQOt WW|X WUJe h hZ%NyXiXVvW[O_WX:fWYIxsH{ VN$WWiVQX1XIWWWXI )VO4WX8~X9\ K  y QOa7X WwW[J .gZ&N,WO6LWWBWYJ6  NlZJkX(Wi<X1\ImXKO [N* QN   -TUJ0f[N<N 6o[N  \FOTW f VJ @,QP# d TIU*k[ SRf[NWW}m XVIWXh&W[+I  1WI M :S(O0 N S%ZN WWij,WY JXXWkQMs@ QN WX`yFX1XIcWWqRoXJ$WsXCrWVTJ& gQO W~WeTIWWnX(TJ YQP-WrXAeW{VI *  +ZM E BUNh  K\@NsXDWs X(ZJDWWsWY,J5 XiWtX1Z8ILQX`WsyWT]J 8  uEQO [*vfU%MWXC|WdJ X\WseYO\)  ;8VOr] "6 WROyWWTHOX(WTX Q=IXXAW\<I^R kU=NdXZ V=WSI v dSFOy ( [W\'N7q zswSN8  zs{SN ~WXn@XS<IGl p3XNQZ[oNL0hTVAN E x0qs VOu :WO P nZSOG]W}X}b[N U 6 $SDN0 XOi XOjWWEWYOJWX1kjXI/ e s!Q:O pzuy\nOQxXDWWZfIu }l\MX?Wm9 YOf qB [JJ ] LSOiX(WzWYGIXhW 4WgJ &y4TSO?R! `\$NdXXq XYQJ+ tsSIA YNxWW WVJWWWlNzWWvUJWX!qX0VJ1 )VN XWWuWTJ <{ NgW \I!u,S9Nj B  -["OP `>\NWXM!rWWIX(Ws-X XJh ; KSN}XWSJ MSWJ ;  4&\%OH  *XTN> guRO>  SJVN }TlM  Wj\,N'WW-XYJ WXQqt\N  5 Z%VtJ XiXUvbWUJ iSVOE M \ObXDW;5[JK * s;UO  wTOO kZWNH v/ VIIWX8X1SIJ"WWuSI}}& mp\I XWW}y<\I0 On`dYdO'WW\lW[I' m n|ZINXWW&WuP WW6X&SJWX(X'WJY=X*N? T }=kUJxX<Xjfzh<SN g[ P0 6?eRNX WkUNV =ZJOWXZ}vZP$8PqQ3IY dM[cNX  3kYeOs , ;li VN *qZO# WXyX<IES8N? TMJY hloq[,M lTcN  [CJWXuqX1WJWXAXL\J fI [NXWipYO; pTObA' bM[NVX;WhX`\aNM sqSN Y`O" `XWkX V_I$ N2TGNrUXW}LWeN 'tSP' FX'Wy!XLTI iRQNXWLWQmJWWWqSWQJWX;[O g pInYJ buVIXF uW\J  jz -\J sWNNW}XiMXX"MXhX^1xWTIP ? #[SN3WWW\J-E O4GYMgXDX:sxWVRJA fjLVsN\ . \O /W}Xt1xfT)O h RN   hXeNv5oZzXkOWWm}fX1\\IWbgUO Ex UI WWV*OuWX;*SON XLX0xEyXRJ$ { p| $UNWX1xXiXbJX(X9eWWJ  !lWO;  w TJ< Wo*QNy ,xXN=R 7 {]P\OX!b "\J* q8 XJ rWO N h7YO_2 M V?J nRN .\&O: E\NWWw7oZO] OX`WXXIm#WXnR O  rRJ  ?TiSNFKWX9|LTOWX^XX RYI3VWXlWRI mE XI @d VT5P*r XO Ep\PP  = WVnA7 dQpI8W;X*[tN- :\ XIv knXI t}qTaP!WWWSJ@W|WWTIWy(ZPO skBRO5 HWWffX`UJ'SWX_mSOU e ]ZvN]IWWn RNWX'jA:X:[I$URN M  YI0bk SOn YN, @dTQOrWXC}YuIW}Ws-XN wTWVNH Y hUP5  Pqx[NY s9ZN~ @RRM . ;w!UN,* (pZOOWX1|}R?I  @ sXO|3n [J1aQUFN' {  $Y$N7c5|-RNW ZWRJ0J2 rY~N aZWN1WXqN( s  nWkOD mQWN kv VMM lCQNq RP  * @[xO qH 7s4k UM  rZNhVN6WWWYIgXEpJ\O > pX%N l pWNE WXn0UWW.IS m 6 n2 W/ITX`WsXiS+IWXX!V.I d l SM  ZN CTNli] $UNm }BUN X<WUI D " RwXNA nrRJP [/O'W~LpdWS'J )Ekl QKX9W.XBTJ$XJW2f\^N A dB YN csVLI > ,mVO xcrQkNo ZVOW ? fYsIe  [$J  9SOW  ZgO WX 8XpJ  XP m WN+ 9lAVP,X(WtXMXJX @pXjW%I GWOI)  5UOT) v{S PWW~uXBSJW 96YXOh  SHE $XI gkUNsE {QNfIWlpQO i m=U8P(!XWX>S?N t [K X {xSOe WXLX_YJ93WMO@  \JvXiX/[WSJOWW6XgVI$ *ZQNW xRI i5T"O   SU ZJ, D|^TCN GbVN+WWnWSJHW}Wsw~QNX ` XM wIYjOXW4KXiUJ  ,r4TI5k {vZMWWv\.WQYIj^ . 7~Lz+TOqX;X`|]\IWXq:jYJkh =q 2QN ZrCTMO qR8O(R n sfTOWXWRI  .mT @RJ=WXLhwwX_XUIB w iFdR^N*F 9RNQWX(gbVXI_XhWWXJ/ {5\3NbX X}Q_O18TOX5X30\ IXX(WCWsXJXXoT7O hQ@N ~rQAN q TI[ WW}}XZJH N hnqUOp mU OLX,WWOK WyPSOak1 |pRP7Pj?VlJ  RvO UUP, f>VO W s$VI 8rjQJ VRPn|jhYO&WWW[JI m6k@ZJ '<sXO  m iE`[7NFX;W|X`XN 3 Y%I6 6iXOX9WpWQIbX(Xd.X UJ 8XX^WVI WXL0X_RtIv 7wYNWXfiWzXJEXiXV<WWI[ \Nz{WXgX^RJ9TkZNWX'zX:\{J XP/#WW_WWI  fjTsNB\[YJ 6`+PRJ>  SO7@WX`u hfWJ7I  {U@N {WXRWRJ. v XJy w IVuQONWW{xWVfJ vZ)MmX nD"UN MfQP  2lr\N S l}SWOWW}X(ZIyXMWXV\wI zkU!O- +t UDJS >X`Ws rXiVJWWw"X1TI\ WWw-WQJrXXXaTN  vSuO U O WXL?nX_UoJ  v<} RRO | GTV(N. I}8SP = ScT*I k h\TO2 :n9 YJ dWvWtW[QI) % SPhWXSa#X ZJWX[GvWUJ M 3V&J Vp jUJ 1XO~XiX5{WZI?WWOEX;X(w\_WUOnWWiXM[yJ , esVP  WXVeM l;[<JZiWX_jWUJ+ IY9XN ZuXOCWXUqWY0I 'hV$NvO{g0RWO ms ZIgWWdXVUJ )QO9WWeX+TJNX(Xh`X [Ij W o8QNTL 9qVOkX9W]+XX6IH {QO )V<NixX WtO|WrTIWX'h X:TAJorWSNDW 0 1Q]JrWW)WI}RO4) nk}SIO WX:ld-W[IRX>lX?OXWo`nWqZ:I91 Q1O WXeWTI  W O UK ?XX_U\)N  X(X: x&XMXIQ+ |\ZN  m8UO+ X^WXgWI XXTATOl 6o~1 m[2I& a s~RnOv gWX'hgX:[)IN w mUI X 6pdWhP.xVOy 1 vR<NQe xU^QPW|BX)V J2D TO-WW|>W3OlWWR!IX(W WQID [WWUX:\gINWWX2W2J; XPVOmWWhgWRJz YI qqVzN 6jZOWX:pPsW\Jo r=k[Od 6 *\N<WW}uOXwP 9X WW[IO eX[N 9 {SdOI2XWs"WSvJ 5 UIK  Akv5QMXCWxtpWTtJRWWUI( ,tlXN  f RIXXh1XWpJih 2 V>Ii rQZN"W{W|a{WVI   }VIF uxSbN WX8e W[IKaW wHW~QNJ w SP]  [Ncn g W-JX> aWS_N Ww iX!XO WX1wB[Pc V  +ROn  e"SOWWn9X1WCI p \NQ {zSNXCWQKW{WsWVJWW0}SJX_WyvUO0WW5kRNWWWX1XIJ"WXh|h[K,@[>O$ '  T{IR  kxYN p\UN  [N elX z8TPWWu(iX \!JWW}X [6IXMWwqtW[8I oUMI+!X9WztWWJ( E ~sZJ FWX:PYWZJ_WXLXRII i6X2NUWWWZIs~i Q6OW *x#wWY\I ;pX(WxyWZ3IAGiz WJUX35qUO 4 c}oQ}Og!b\O 9 DWNOX(WsWZI|  m_UPX^X$~qW\JQ%W  WQyIo a yWYNc[ bZ1J X`Ws hBWR3JWX1~ZOX WqWXJ n fVQO  WrW\JG R]IL $SOXj :\;N / vP,TIWW~WYlI} q[KJCX(XlfXW[J2WXLyEX_TI!  z z!U]P gWWN8WXI{WX_WXJX(WWUlI4 nW Vs+XE\NzX_XUAgX'WJ  \ Nc tUAN  T XJ n [O.RsSN ep? [AJsXX_kSOWWX TI kWWy~XVTZJ{W W\O WXIvlXZ~Ir X `.\JO!Wy 5X#UJWvW|WXJ%WWj!RNP\WWR\XiWvJ k IyVPX]WYJA WX1%FXiSOI c SVOOWX{|RIZ; e5SO4 XnW*P r Jt\OWX`x/\N2V \O< XO{WWX8qhX1YgIXWXubr_QQN{WWiX_ZIf [}[Ix ROX(WzbWUI Y w*RN.WWoQWsTvIh ,@VJ p WnVNWXBm+X9QK{ u& )VJ 8\4UNW}Xi-XZN @Bk\JWWZHUI u ?nSNUWX-s[X1YVIP*YOA eZ>NGWX[Oc w=OUMX(W WYI@ B.TN Dg&VOISMSN_WX`ST+J  m eT0N WX  WtJ*E sVBO@AWXA=X1RMI WX.HWm\KJC WNWXpUN8 gWWrp WTJ p|UuP wDgK UvP|X(X9.X QtJB!X X^RP  SJ z\>P)%|oVN | @eQhOR p  jo*[Ow Uv_~Y=N /WX<VHNWWzbW\|J XWlTWZK WXEfW^O j p yRBOXFWjRCO XW-XW_I`>WWJXVVkI v ?$QI> ;WP& ?V=N QdN cwkZN# XPO TXWW TO UXiWWVJ  8 WJ )X(XhXMY4JaWX'OX:XZI~ C AQNS5VI GX(XS4jWRI ! 8#SXN^WWsZJ?2 d[OX_WlU-OBGPrnC\OkWWT~O1 WX(QJWY  bTIw Su$WO  !v`|bVO ^UOkWWWYJI^lRN W~oq6WZ.M+ Z p ;RJ Q /zk VNg9  if\OpWX~?X0YJb  E UIWX16sXiXJXWQ<IWXZmVODWX GjWSI 1% xDpZ{It s<pR2N6 <  TOXI :j; b[FJ  ?4uTOX(XnpX1XJ` yYN<X WW\N lZ,\N4KWX[gl WQwJX;X(WVPX-Wq4WxQJSP WX'X:VJW *j6WZDO WX;nX2QoIb |K\OO~IXWoh-WqVI$ `DcRO% - dQlJ ,V|N!]WWoX1V{JY  -JoUOFWW}XMWIzW X\YJm 6  -UO [ e$T|O% YN!tSNuW}XiwYXUNXI AVOoX  kWwS I6_ { [J 8WW|>WXIfP lIRNCG DTO)H ' yTO*XRUhP2 A 'SN WX8`WRJ X&Wm WVICX;XDhXI' izsQP6 U$N  p  vQI<kWPu  [4M XVNp Xzx eWJp 5o2G\TJ, EH"rTJMbWW#[O; B 'oZN  embYOXCWgoW\JS PV/O[ WNnh)H\J)mWWI>SO=2XWn"rXX$I WWTI<:uWQN xmXnP+WRoN> ZJ DSO%Pmu#QJ] sWWumW{SEJ a Q>I S i}[O`Kk| TJg ;v \NWW&WTbIWWn[rJ @h WwJ a> yD \7I; b 5nW N&lX_XUxbX'VInWXFoXYN j TmIcWWr QJ oq WIWW}X_[ JJ x[P" WYpO 8xnt WJ  X/c YLIWXUO  -XWX:SIW}WtVNoWW}DQNNK }aDQONO [O  S)OV *9\pJ^a [ TO WWa[O M m ; YQDJwXE "pZI%g kRRO P 6XIWWh<WRJdSOzgZO  }iXCNXW[XiSI%  C~YO WWhWZ=IWW`Z<O!= U#ZN/ * kge[J <2S$I,  TJ+ TOWWnpX1RxJ eRj QgO, WWG WWJ2 |VNF \TN X(Xf&WRVIo rXh *RI   $5WO&-WX:WWI8WWo~U>M WX'3W\DI>WqX+DXTTkJ7 *o YIUWB ZNXW{\VO6W|X8?WYIiXHfWSJ s XM, cYO}X< {<VNj Z)o ,TJP N {YNJ _WXUJ~ `WWv]UO 3oo\I TsP[ O2G |}W0N[WW|RO WrWr[vWQ5JW}WdxWTuNv hvXM? 6slROO V!O[vWXfX1V@I  1fuUyI$3 ~X[JTWWz[X:[;I WX\nlR$N WX,ueWY J [hr ZYI cWW{7[NBX(WXMXIJBwq2\jNKX(WvW[J oX WlWZFOqWWJWZGJ 8X W{WXIMm, i,m\\IMWXa@f4ZO  SJ WWs|EWV#J WnWXOIxw^%\0O!xViXO V 6yUIWWQIVg {gWP  I jTfI XUWyWSgK XeWxWYJ!hX(X/`WVJ \oJ XWndXUI@f<mRJ H[gTxJ 5iYO{WX"i=WQJ WW9vWYIXMWOBWVxI:< )YOk, ej\cNYO7WWppX TJzT m"RVNw" 5I[P XXuWR6Iq;XQg}XZUIDXdWgWnYI*y a\NOZXWdXiYwJ 6 dJUOz eku^pZ-Na upQNWW{@fQnI 5:[\OWX3UN +f}Y^N zOLWWN| 0e\COIXhW{WXmJX(XX ZJw AUN1WWxXVMJN!Y )}tTO/ mZN5 N nySOXVWGWSJV z &UQOv :t}RHOF  XNX(X6XX Y]JuX , < YNWW}DWUK X W <UIko 3 S\OI bSVwNt "XBX8HWWI Y HQIdX SG[JpXE uQ\N WWZJf WWrWS@Kq lsyQN sTNWW14X1XIXVWoU\IG "}>\Mb lVWN:5 f WJWW|p.}WSJK -lEzYOY o^zYOZo eyxQN ^A T>O  }k[P WXvz1W\eI 7UNR o R RJ g 6.USIlkWW}x>YIgS 7XJ  l VI = 6 vrq uR I ,!mZU3J X(WNXMTLK WX$LWTJJn 87T'O * |VI=] JfUOVWX3o\SP%WWByWTI uT9P#$ %1{ZdMWX^{V I\ h++ZI"^ W  S!I# A vYVCOJ(> zTNo RNH  WZ[Jq\ x}SQNkWWfWTJj  [n TRO WX[zWX/JE E{ Lg>v XI ,xUtN@ UO 6XO >zWTIc HWX@[HI_WWRnX1UIWW$W[J#  lSlNZ > ' 8RTJL X)G_jVND iSOTNe o[OoM>wQ2I1WqX.v@UXAXQIU[tgUIPe S\Ip UXaN vy|XNS WW1HXUSJF  d \XJG { VJ  g bSxJ: SYNXMWhiX:WEJ ?jZP1 SI 'WIp HNTOSWrWM4WSI]O sz[ O~XWXyoS4O8WW:hX&YJlq ,x@WN_ C~WN` X< k]XjQrIX(XvEGX1RIP VO^ > SGY5I WX:gQWWJWXA2xBX1SkJXXillWWJ uU\O3% ] jQN{T |SN:WXL}iXSJX # <CXIh jXMWqtXVS1J-X'WpgXLZI  VJ \QO s ut,UO n# uV}J X_NX(WrWSI XMWpW|UbI2XWXsS[OJ.w 7vS Mb9 9'zR*>-_ Ec6>I0%!Ot#C, m3*URv'9$* `#ۿU+gXb[)* C-O!&2j99{W!!'(t( %(>9Q#!+SYEA* g+PL?)?z 3 $+5?( #8 Cɨ'^M  &_-`W/  Z"d-jkVԝ#Q)*v.'9Jx ,a i-[F!'SyW yWt}Wt"}WqvWuxWuyYWuz'W{WxW:{5Wr|Ws<~iWqbwzWxFWy WuQyWr{mWk1}WrzHWt}WBxWyNWszW}IWt{UWsxWqMzUW|Wr?}WtwnWr| Wk1x9WvG{-Wk|1W+|WvWuyEWv zWr}@W~ W{wWrzQWqv!WkW{#Ws\{Wsy}|W~PWtwcWr8x/WxWq{`W|)Wu/vWuwWxxW y<WqzW{Wr>}0WwWy|W|Wu{zWqwTWryWt2zW+{VWu|WIwWdy0WtyW7zWu}(Wtl| Wk1wWs{WwIWs|WtY}WuvWrxbWv {Wt|QWt}WwWtyeWroz3W{Ws|Wt~/Wuw=WqzmW{@W|W|Wv}WswWqxVWtyWq{{Wa}Wq}Wsz+WzWr{{Wq|WY~#Wqx WyWszeWq|WxKWqyW|>Wt9} WwWs!xW{Wt,|vW}LWa~Wvw,WvwWq|Wrbx=Wty Wr7yWq8|6WqxW yHWzWzWr|mWs}CWsyWuHzRW.{W$|Wt}WwgW}WtvWx|WtzWuzW}7WuZxWyWu{W|Wt}wWsKxWr|"W}WqwWr_xoWv'y4WuzWu{WtcwWHzCW|WL~?WtswLWtxWtyWu[z{W{PWq}WtvW6wWsIy)WryWtzW{W)wWwWqOxWr{ WqV|Wt }aWwAWtxWvK{DWs|WsxZWv(zWqz}Wv6}Wv:vWvxWv zWy}XWv~(WsxWt-zhW8{=W9~oWrpzWxWyUWuzW^{WsxWuxWuyWs8z\W|W }WwuWuxBWu@yWr*zWuG{lWs}W}Wu$vWt_wWu8xWyKWrzW{Ws|oWqw$WtaxWt}Wq|~[WshwkWJx6Ws'yWszW0{gWsm|W<}WxW{W}>Wr~WtEwWu4xWqZzOWt{ WtQyWLw]WyW)zWxtWt{Ws_}.WtJwWuzWk1{Wt|Ws}nWx WrxW5|W*}WuwWty-Wq{zWu;}WsSyoWrz=Wq}}cWVztW|W|Wu#wWx`Wqpy#W|NWq}W4wWO{Wu{Wq<|Wti~+Ws5w;WrzWxSWtyWrzWuA{wWr}WsvWxWtz(WtzWt|Ws|}UWt$~Wqw4WqxWdzaWrY{7Wr|W~jWxIWqmyWq|:Wu} X vWqhzF Wk1WzWr{WsyWrvWqzWWr~`W,yWuuyWr|3Ws}WsWvWt}BW8~ WryWuPxcWq{Wr|WrF~RWtwdWsx2Wr)yW{dWr|+Wr|Wt}WswWqxyWsy>WtAzWtt{W\|_WuS}3Wt}WuRwWswWrxWsTzIW{Wr|Wq~DW(wVWq|HWx#WtezWt| Wt<}WwW)y1W4yWzWt{Wrt})W}WvytW}zAW{Ws}gW|wJWrxWyWv2zxWq{MWs[|Wg}WevWqzWvL}Wr3|WfyhWt{Wtm|WrxWuzoWt{BWv<}WtMwWtZxYWu yWr{~W|IWrWyWs{xWy^WuzW|Ww8WyWzfW|Ws}WrHyWs}WwWxWyRWszWt{W|yWs-~WtGxWryWt~eWcwsWtkx?WyW;zWuMw#Wk1{W}EWqq~Wu0w!WyWu{Ws}Wr~WWrSwiWqGx4WryWtFyW-|.Wr}WvWrwWv-{W|cWsL}:WxWu~zLW{W~JWKwZWrx(Ws%xWrvWzWs{6 Wkbq|\Wu}-WqwWtyvWrDwOWsxWxWt yWt|WuE|WrxhWstyWMzWt{Wu}$Wv#w WrwWsyjWl{ Wqc{Wr;xWxWqyWs)zsWsV{GW|Wsj}Wtx[WqzWty{Wu%yW wWu]yaW6{W|Wt}YW~)Wr]xWryWtC|W}Wu-~pWqwWqyW}Wsd}WqvWr4wWryXWz%Wlw`W]~Wub|Wu(}WuwxWr'xDW=yWsk|8W}WvBwWsFyLWqlzWs{W~w'WtwWsxlW~^Wt{Wtx8WsyWs$zWu|Wt=}WMxWr|fWsyW9{"W{W?|WrwaWuxWqyWv{^Wr|Wq\y;WrzW5zWt}/Wr}WtwWt{wSWqyWszW|WtwWy/WryWr zWr5{WuCwWr|yqWt+z?WP{ WuwGWtxWsxWrzvWq|Wt|Wu}WJvWvJ}KWu1yW {W|OWr}~-WTxWrxWv.|W~uWzWs{yWqS|FW}Ws:wWuxWqy]Wr"{Wr}VW~"Www6Wq>xWtzdWu {8WuV|Wrc~kW-w|Wq{nWun~cX |<Wt} Wu}Ws~vWuwW\yPWs{WuX~Wrw+WrN{.W|Ws~bWrx<WsyWs|4WA}Wq_xWuWyGWzWzW|kWtwWrxWryWs{&Wr|Wv0yWvA}WrweWqyWu?vWt x{W y@Wq{W}6W2wWryW{Wt:|W~FWu{YWu|Wr6|[Wt}Ws6xWryuWwWu,{Wq{WrxWt4}Wkc|Wt}WDvWsGwWt1xeWuzWuI|RWr}!WuwWxWt|Wt}`W~4WqxWrPyWv,{CWqzWsz}Wrs}WKxWq~ZWuzWx|Wq~'WW{<W| Ws|Ws~mWuzW{qW;|BWu'}Ws wWrxWqoyTWv*z W|{W }PWw.WuxWsRxrWyWrxWzWp}GWq~Ww#W#wWxWs {)Wr{W|WsCyWsyWszWr|0Wv}Wu|vWr xWs~9Wv>z WqzWtwWrwWxWuKyWtzNWr{W|Wrw[WvyWt }W{WvWPxsWy9WuzWq{WruwW0xW[{Wr|Wt}mW~BWs@wQWqxWtxWtzzWE|W%|WrxjWzWuaz9Wsf{W|WqwCWrKxWt0xWZ{HWs"|WrzWvWtx^WqyW1}WtIxWuxWyW/| W3|Wu~rWwWqyWtxWTyZWh{Wu{aWqxWtSxWrz_Wq|WoxGW*}1Wty Wu}"WvWwWzWqw)WxWulyWs{W~_Ws x:Wr&yWr:vWtwWuz WzW~ Wu<wWupyW{$W{W|Ws9}}WGx0WuxWwWzW{bWty=WuO~0Wt}2W/xWsr{Wug{Wu}sWtwUWr~xWyWszW{WWsvWq{W4wWtxmW"|YWq}W*wWtdyrWsz@Wr|X q7}eWrAxWrzwW|Wt}W5vWu|wWq{WkczWuq{WqDwWuhwWtyfWtz4WtwqW{W|W}^Wuj~1Wrw>Wr-{AW|WzWxWW^yWtqzW{|Wu |GWs}WswWtxW@zWu{Wk~$W}Wtw~WtxLW{6WkbqWzW2{oWv|?WrxWuwWkbqzWzWs{Ws?|xWso}MWrxWqe{/W|Wr|W{kW}Wt^}W:wWrxWszWwMWqzWq`|nWqu{Wr|WwhWr x3W{eWv |,Wi|Wk*wW{Ws>|bWqx Wk1yWtzKWtb{WrhyWq~HWsMx'WtzWt|#Ws|WuewWuy5Wq=zWtL},W}WtzDWu{Wtf}jWrg~@W{QWsB|WFvWwWqHy*WtzWq{W|TWuD}WwWs|W~6WxWu|Wq|WuvWrwWqy WszWu|LWq}Wu}WsvWr^xWrz0WzWu{Wx Wu6yW{>W}WxOWv/yW{sW}WxWvyVWWz#Ww0Wsz]W,{3W|WwvW xCWt&y WqyWqzWs}wW{Wt}|pW~Wuw%WwWsyWt{*Wt{W~\WtwlWryWtyCWhz WqQzWs`{WxWrR|eWy~WuwWswWqwWkbq{Wry}zWu~MWr!w^Wu2x,Wu|'WvWtwWuxuW&wWsxWsyzW'zGW{W@{Wr}oWx!WuvW1wWsxkWzWvD{Wrw WtwWuxWsg{ W}dWrwEWrzuWu:|Wu3}WvWuwWyW{WuT}WuL{W|W}\W7xWrm}Wg~tW yWrjyWvWQxWs/z)WqzWt|W~ WqLw5WtxWvFyWzbW1|Wsa|WqxJWryWuzWu&|;WwWRxWs&zW,zWr|sW}JW~Wt8wWuxWqyWzXWs{W`}Wt~aWswpWrx;Ws|WuvWu\{W.|iWtwWtyWsvWr|WrzWqa}WrfvWv xzWszW{Ws|`Wu}4Wsy}Wtw{WuwWWqx$WuyWszWt{XWsU|WwWryWt}*WuwWrr|W}hWtg~<WqjwKWtxWyWqzyWrE{NWtRvWqkwWu.y'Ws.yWzWq{Wv"wWu>z6Wq{W{Wkw?WrzpW|Wt@|Wq}WqwWtOyWq{Ws}Wt)z-Wr${Wu~&Wtw9WzgWswW%{:Wt| WvE}Wr~lW'wWuyWszW-}WqExWySWbzWt%zWu}NWsnw-WuvxWryWrx@Wuy W|7W.yIWs+zWt.}FWutwWqdzSWt{Wr}W~XWYx5WrnyWq[zWt |Wt}WuUwWv3x~Ws{Wv?};W~WwWre{WqK{Wv=}yWUx)WrxWryWrJ{[WqF|%W|Wu`wWtxpWuy7WszWv{WzjWsywWvwPWv)z}W|Wu}RW}WsykWuz8Wt{WswBWrxWt|Ws(x\Wrk{Ws0}WsH}WvWumxW}ZWv;xWVyWtzkWu9xQWyWezWq{uWq}WrvW?z&W!|}Wt}SWsw2W{4Wt}Wu~hWtwyWtxEWtKzWwWqI}Wu_xWyMW{Ws|rWt'w(WtNxWvC{+Wr{Wu+}W#wmWtzWtu| WkW$%}WsvwWuxyDWzWr#|gWt~Wr`yWt{Wy%Ws=|Wt/}{W~OWswbWsNx.Wv%xWqWyWuzW{_Wu^|Wwy\X c1xwW {W{Wu}rWxWyW{TWvvWswWuyWv7}'Wu}WsYxW{ Wr{Wu|WqnwHWtxWt7yWt{KWu|WqyvW"wWqy&WqR{Wrz|PWt}WqwWq{Ws{Wq~.Ww<WtVyW|Ws^~vWszW}Ww7W~yWqg|W }Ww}Wt!yWszW|=WsxWqzW{WEzFX 1WxWq?zYW|WyWui{jW|5Wu)}Ws}WuwWxWrzWq{Ws|lWt3wWyWuF{W}WxW3zWth}WqvvWn{Wv4yAWzWzWs{Wt6xU X 1~W]wW#zJW3{Wv$|WswYWq^x&WqtzW({ZWu|!Wv9}WsvWswW0xnWy3WrBw:WrzWr }Wv8{Wsu|Wt~>WsxWtxW|WwWCxfWmy(WrVyWqizWu{Wq|SW}"WtU}WrwWrLxWuo{Wu|Wz~5Wjw@W xWwWswWtyWrO|KWr}WtvWz/Ws}WWx WxWqXyW>}Wr@~nWtwWxNWyWuzWuy{rWt|CW }WqwWusz!WSzW<||Wsw/WqxWxWuyWuz[Wt~gW_wtWuzWr}WGxWszWq~WtDwWkWyWyWzWq{fWsx|W{X bqxWsyBW$wWkWzWu|dW~WUwWtP{Wq~LWq{Wuw\Ws1x+Ws|&W}WvvWkW|^WqwWuxW%yyW_{W{Wr|Wr~CWuxWfzW|WvWswWuy,W|VWv}WqxWsymWtXz<Wu|Wr~:Wt*wDWu}WkbqWyWu{IWv@}WwWsZx_WzWq}WrwWsewWqycWz2Wv{Wq{WyWs|WtTyW~sWsxRWtyWszWr{vWud|DWuwW{xWszW|~W}TWsE~Wsw3Wr,xWu5xWu yWz`Ws|Wq~|WsQw{WqxHWqyWrGzWv|9WraxWt?zWuzWOwWxWryWozVWs}WrwoWu{hW|2WuyFWv+zWzWu{W|hWr}AWt|~ WuJwWwWrxW{%W}~Wu~QWrx1WqyWtW{cW|*Wr|Wt{WkbqWzWBzWt}W'wWu{xWvI{W+}tWrx"WyWr|Wt|W/}Wu=vWt|ZWs}Wtw WrdxWtysWv!{Wu |W}fWqsxW {LWsvWrwWsyWszWs{WsygWq:z5Wr={Wr[~2WrIxWsznW"|WsX|WrvWtwWtBxXWyWu~WtyW{}W }WNz,WrzWu|Wq~%Ws2x WqyWr9| Wt|WX}Wt]xMW}8WyWqzWt{pWs4|@W7} WuvWyQWurzWt#{Wq]~WxWtzZW{0W|Wt}Ws~dWs#wrWtox>Wt }WuN}WwWAzWu{Wr}DWs ~Ww WrwWt{(WC{W~VWt`yWyWszW$|-Wr |Wu"}Wrx}Ws,zWr0{Wu}9Wu~W{EWuwWqyWs{WrZ|Ws}xWtn~IWq}Wt~|$WqY|Wu}Wq@y6WqzWrwWswWuzEW|WX}kWuY~AW!wNWuxWrxWsz|Ws{RWv|WR|WrvW!}$WkbqxgWryW6zWt}#Wsw Wt5xW}bWq~7WFyWzrWr{FW |WvwWry!Wuw{WqU}WvHwWZy`Wnz1WxW yWt>ziWt|W&wWqxPWsDyWq{tWrvWtyWWz$WuzWc}QW~W=w1WrlwWq}WuwwWsyWrU}Wr2wWuxW}pWq9zWuzWt{Wt;|qW}HWw&Wv&yWxzTWs3}Wu~]Wqx7WsyWqJvWswWjxW(z Wv~WrwWuwWrxWqyWs;zPWs{!Wr|W~NWrTw_WuByW|(W}WucvWu}xvWq;y:WszWs zWs]{WHxWsy{W{Wu}qWrwRWxWyWvzWt{SWqvWrwWtx Wr|XWs}&Ws}WuzwWsypWsz>Wk*{Wt~;WswFWsxW{JWsA|WvWswWrxaWy$WryWu}Wu7wWrQxWsydWq|W~,Wr+zlWuf{?Wr1}WtxTWqByWuyWtHzWu{xWr<|EWrM}WwWsxWsPz*WszWrq{Wu~!WSxWzcW|Wr\|aWr.yWQ} Wtr}WuvWtwWq}uWsszW|uWuw*WqvWb{,Wsl|WqP}Ws{iWu}Wtx}WsxWqxzWs|jW&wWt{Wr|W}Wqf~UWsxWyWr zWy?WvzW}5Wu~WsxWDy~Wt{X c{W`{W|Wq}vWr~EWswXWrx%WxW}Ws y2WtyWsq{Wt}+WzBWq{Wv{Wt}iWv~=WryWszzWr%{OWu|WqA|Wu}WsvW2xdWr} WwWryiWuz7W{WrX{Wq|WI}_Wrx~3WryWizqWs|Wsi}WrivWuzWu|JWt}WuvWv1y_Wz.Wu{Wq|Wqy\Wkc1xWpyWqr{;Ws|Wq}WrwWqw}<WqCyWtvzW|AW|vWswwWrxWvzWtjzW{W|zWv}OWu!{\WNxWrxWt}W{1Wq|Wu|Wsb~fWuxAWsOyW}W[yJWr{W~Wtw"WuwWqyWqT{Wu}Wu~YWtwjWv5yWswWt\|/WuwWqN{WvxW}=WuxWs7yWuzMWt({Wq|Wt~KWrvx*Wr/zWr{]W>}WqvWxqWuy8WzWtp{WwWv wWrxWspyxWs*{Wu*|W}lWuxWuz~WmwWxiWrCy+Wq|UWq}%Wu}Ww Wt[z%X ylWu|W~8Wr(xWvyWt|Wt|WvWukx]Wsy"WsJyWsczW{Ws|MWuybWu |Wz}[Wrw~*Ww Wk1WxWu}W~qWwW} G5c,+σ-9K'i 0**-*$h5.،pĄCX#"Ģ.@!C5; ' H+L\//I4//;///A//SC, .?W"#  t !)-T$ !L{+s$H$ZI'#4R%V.Mf&bP&):Ju$=(PQ(Q-,Y&J2 [v+ܡS.l 563n l ( (% i۾'#8-'!RJX'p (!*SVYA;. " .("('N![&{/ѲgCp) f.:!r%"T. }&+-L+2-:6%v K`% -'+O@@!Q0Ln W&x8d wb+ X M&]#3 Q8J>$>G6жWkW.l/ 5C2>  y4<+0JW(PvKAY l [T().'+T)W>bM : LS0C!-`!3,L'@0"Qȅ$H`-L+).? Xwn†\0F!G)GU+#t,0Z$Q5US iH0Bd!h%F)*;H"-hJ{($$h<*1Z*s.-*a; U^QI ]A&PV'!-bڝ#!& -F'K!^#7S!Xm+.̢"@qa-  ե.p#-'$C#  7 ,H};7 zO]$Ö*و!" &pn0%m"W9 &] x\= $(S(<A$0T)n.)m"w&8i$j<)B 0AOQ q"%$,+2)i!š*=$  #$!_2CSW,)+C$-`s7 npL"+&6$;y!Vc!-,9*\",>i&<*<ݒdL>0D&{'ŻUQ..+bI d =ǚ'E!h.3 iIWӄ#pg&R,B7#S+O.I,&[.HI+Cҁ*<2%0A[-9F%XK*oQfV:K  T/-z~HG!6]+uƆ"? &4.$}!h$&"Lw+r9$ *%. ]T'(& qw 8$ S% ج$,K&3%UR2%Zۨ f<Yk.W*@ D'"%*+(C%" $#&!!#8}&Y&CS}( $H*6*6Z4vz9"vZ .v@  ,kU#(j<WXiWkWk+M20H/\!XPWWkWk+M20/WWkWk+M20/:'X WkWk+M20/@EW:WkWk+M20/X+WWkWk+M20/WWWkWk+M20/4WcWkWk+M20[/1X" WkWk+M20"/0WWWkWk+M20@/hX[WkWkWk+M20/W`X+XWkWk+M20/S WXZWkWk+M20;/ZRWX(WkWk+M20+/fYW WkWk+M20/QFX=WWkWk+M20/X+X WkWk+M20]/JWWWkWk+M20/NWWWkWk+M20/BW WkWk+M20/eXWkWk+M201/nW WkWk+M20/pX WkWk+M20/<WWWkWk+M20X/{WWkWk+M20/XY EWkWk+M208/r0W !WkWk+M20G/icWm XWkWk+M20/PWX2WkWk+M20S/6XWWkWk+M20/bPWXbWkWk+M20/.WXWkWk+M20b/lWX WkWk+M20%/7KW WkWk+M20/[XcXNWkWk+M20/Y&Xc WkWk+M20T/DWW{WkWk+M20/XX[ #WkWk+M20/-X+ WkWk+M20/8 WWWkWk+M20/W WkWk+M20/qW WkWk+M20/W1WkWk+M20/XX WkWk+M20 /AW WkWk+M20O/>WkWkWk+M20/x2XWkWk+M20/uW %WkWk+M20:/mWmWWkWk+M20/XWWkWk+M20/tX+WWkWk+M20/cWVWkWk+M20/;WWWkWk+M209/|?X" WkWk+M20/GWWkWk+M20Q/HXGXWkWk+M20/`WvPWkWk+M20V/NWWkWk+M20(/aWXWkWk+M20/WWkWkWk+M20/C X =WkWk+M20/^W )WkWk+M20/~ WWkWkWk+M20/kW WkWk+M20M/XGXWkWk+M20//3WX WkWk+M20=/=X? _WkWk+M20/3W WkWk+M20-/vLXGWWkWk+M20/KWaX Wk+M206/RWX`WkWk+M20//LXXWkWk+M20>/.ZWXNWkWk+M20/9WWkWkWk+M20/OWWtWkWk+M20/X WkWk+M20/]XWkWkWk+M20/FXWWkWk+M20B/}JWX WkWk+M20/W WkWk+M20U/CWmXWkWk+M20W/?#X *WkWk+M20/5oWWkXNWk+M20)/s,W WkWk+M20/wXX WkWk+M20^/z*WWWkWk+M20D/_WWWkWk+M20/X+WWkWk+M20/IW WkWk+M20/dXPWWkWk+M20/oWWWkWk+M20A/W jWkWk+M20/E X+X6WkWk+M20$/gW xWkWk+M20/WWkWk+M20a/VWWWkWk+M20/2IWWkWkWk+M205/T7W WkWk+M20/MWXNWkWk+M20/yXG WkWk+M20/U_XGXWkWk+M20/R,mWԂk #5+SE9H#XOH)D$( uyK'C"9IZ*  %c=u-B-Zؕ G H(K+!(V( A "8)̒y*Y4,8T,8/0+3 $#"L!Ȩ 5&R"D IP009T>#i  -(5) U3_;H1+&m? m'jJ&&( .BG,,v'm!(d6,NNG-NI-bNOU-NJl-VNJ!-LNJ- N,@R :JNIY-L :OGp :NDNI$-F| :I)N-jNI-NOH-hJ :NJm-NP&-NI-%NI>-No-^N-30 :I-)N,ANI-8s :NN-NI-6$NO-p$KN~-NI-N,I'NI4-NI-E NJ-NM-hNJ-,(N)-fN -$KNJ<-G. :N}F| :N)DN-'NJ-C :ONIc- F :JNJ-NJ- NJ-0M :OgNIX-'N+-NI-M :O(N-N-S :O*NI--I :(NL- N,(K/ :'qNN-NJ -RNJ-L :Ov'NJ-NN|-h"gNI"-7 :N(N(-N)-(N,NI-T NJp-NI- NJ-'NIH-'qNN -NI-'N,M :ONZ,{)NJ,M :HNI-NJ-bL :NyDN-NJ-<L :P!NJ,NJ-VNI--F| :M)[N-4NIp-T :#%NN,NO-jNJ-T N,SNN.-m:NJ[-NM-NI-NJv-U :NNm-NN-fNI-L :N/NJ,*= :I NP!-NI9- N-NI-5. :Ok/N,*'NJQ-EM :OgGp :<L :NeNI -0 :O3NJ,H* :J{oL :N/K/ :JNr,M :JmgNI- NO-NI\-!lNJG,N~-7 :J/NK-%NN ->N-v'qNIe- NN ,1fNJG-)NT,[U :INj-'NJ-'NJ-DNJ-''NJ-(NO-M :I%1N,j0 :}NJ8-NJ[-c'NJ,,NI-AN, (N-Y8 :IRnN--%R :N6- $NI-pfN-NJ- !NK ,NJC-> N-dNJ}-yNI-TNJA-NJ-NI-'NJW- NJx-jNI-NI,{NJ- NIh,p)NI,[(NN-'NN,EN=-+ NJ -NJ-c8s :J,N)N&-DN-'NI-NH-27 :M/%1NJ,jN-,'NN,ENX-XN}-m3NO,NJ-^5. :INJ-DNy-NJ0-NI-wN-$ONm-NK-h%NNj,NI-C!lNI,uR :-L NN/-NI-%NK-NI-H* :oNIu-,N,vN-R#*N, JS :`NIA-!N`,NJ -T'NI-&NIW-LF :N|Lq :L :PfNJ-"gN-NN",YN-TO :JR :JL NJ,5. :Z+ NT- (N,]NIv-(NI,N-6` :JfNI-NO-NI-yNJM-TfNI-NI-,Nk-'NI-$ON- N-rO :IM :NN(-9V :'NO-2NI-I :NG\)NJ,ANOJ- K :Ipa,NI-N-NI- N<,p%uNO-+L :MC :JN- N-NIR-5'NO-'NOk,E NI&,S6` :NJ"-= :JGNI-7 :N'7 :P /NJO-rH@ :J)&N-'NI-:N-NI-2N-NJ- N,NIF- NJx,(NI ,NN-:NJ-$N -pF :N30 :-N+-NN}-hL : NN,'qNI-$ONJ-fNI-N,YI :O\Gp :OfNP-F| :N)NI-(NI;-NJ-NI-6` :P NI-(NI-*%Nr->NI-v4N&-{N-0M :gNO-`NP-CGp :ONJ-[NJ-4L :OxF| :O)N-y%uNO-+NI"-(NI -"gN*-NJ-9Ng-y!NNE,'NJ-NI- oNI-J :JNJ-L :O%N<,fN-.>NI,I :N\F :I;)N,NJT-XGp :IhF :I'NIG- NI ,1K :Oa*Nk--#~N,Nl- fNJ -S :)NK-0 NJ-d'NI-:'NJ-&NP7-!lN ,uNN-mNI,YNJ- NO,pNI-nNJ-%(N-*H@ : &NI -NN-hT :)NI-'NI- NJ(-1 :O;NJ-hNN ,)NI- N,1 NI-NJF-'NJ -F :_fN-L :N NI,@NJG-Ni-wF :NJ- "gNI-N-fNJ+-NIo,vK/ :N Lq :JNJ, N-$ONN-NI-,(NN-$NJG-n(NNc-*NO-2NI-N@- NI;-`N -C NN,p (NM,]fN=-G. :k}'NI-E,N}-L :JN-N-NIU-NJ-#~NJ,NJ-y NN-NJ-hNI,(NI%-N-KI :}\7 :('NO-&N-RNO-NN-NJ]-N4-H@ :N5&NJ-NM-S :I1 :JNJ-7 :L/DNJ@-(NOh-NJ-K :aL :N=NI-rN}-"gNI-I :I\S :NANI-ffNJ-%uNw-+ N-w#*NI, $ONI- NOk,{)N-0'NJ2-$DNJ-%NIh,NNl-,NI-O : R :NmNII, NIJ-yN-$NN-n(NP -9V :J'N-6N),'NI-!lN=,NJ-h= :='NI|-:fNl-N-N-TNY-NJ4-%uNJ=-+N6,NP -98 :1 :ONI-mNO-U :6N&-R :O)N-NOh, oNJ-N-NNC-f NP-F :JK/ :N+NN-'NJt-NO -'NI,ENr-<NJ-JS :J`NJ-NJn-NJ-EN-f,NN-'NI-NO-NJx-K1 :U :OF :N+NJ-{3NM,&NI-RNJ-'NIq-& NNj,p(NM-NZ-NJ-N-(NNc,I :INJR-Gp :NjF| :N)(NJ-NN,{(NI-Y (NN,]fNJ]-NO-NJY-4NI-{'NN-T :J#N-NIC-AN-N-!N@-JN-NJ<-%NO,[NN-4 NJ-w (NI,]N-NJ-NI-r(NO-YN- NY- (NJs,]NI0-+N-{NN,U :NNI-N-NJ->F| :J)fNI-!NIc-JR :OG. :I}N-5.>N,$KNO-NN-T :Ji'NJu-$0 :I0fNJ-U :I67 :I%$N=-nNIt,INN(-j*NO--NIe,"gN-'NZ,E!NOJ-JNL-9NI-NN,{NNH-NI%-N-`NI -fNO-NJ-F :ONO,+#+! 4U\ :/\/\ :/\/\ :/\/!)L$G: $8#l"(!17 $yWk Wkdȼǵ:Wkr$!Wks#_Wk=_ȪWk/eU Wk j+WkL]SWks i%Wki!M f-WkriCWk5 0WkqS!|hfWks HVWkq%Wks!| Wkrl`Wk".ƓWkr"6Wkr'åWku WkuäǽWk! *WkrJ JWk U^&PWks#Wku>"#ðWkrH i <Wks$G<Wk"ij WkrQĵ"WkqLwNLjWk 2QWkv!qooWkt"c^WktŚB4Wks el]=WksVzWk")j·Wkr  {ħWkv- !WkqWkq yhWkv  'U[WkrWwWkqOvGWk!(Wkr+Wks 'Wkue ]WktŔWk!iWkq!Wkq;!4e!&Wks|oWk.yZcwWkgfTtWk$KWk2Wk!BWkuyWks{:<ñWks,³#WksSX&5Wk>! Ǖ^WkqWk rWkuńWk/Q dG,Wkr%dWku uWkrl!îWkq6WkwQWk )Wkr^ÈWk$WktxVWkrK <Wks9CZWk@ltWku xn2Wkt")iWkqXWkrj"/Wkt "$:&WktƜ‡VWk "ǣWks,Wkt"tWks!vWks!@WksƪWk-9]WkTwWkaWkrmEdWku!Wku ^Wkr R90Wkr"+WkuN"|\WkriWkA7aWkub }JWkt7Wk"Wks.Wk D%WktqWkq"rWkv&oGWkuRȌsWk Wku#BWksr"X*WkrFs=XWk' D;WkÔWk oOWkWku.WktWk+lTWkqhk\WkN"d2ůNWkqO!@3ŰOWktIĎWksWksT!i4WkrM RWk]MĺWkvWk%bSWk^vWkq WktUwWkuQ"<Wkr0$Wk, \xrȑWkv+"FgWks!c¡Wkq!@Wkr/;Wkh#>ǦWkr Wkt.Wkt" MWkq! 7Wkup1AWkRN 7Wk~|:Wk#!RWks";Wks*U;QWk  qWkt"WksM",@WktP!ĂzWks:WkvyWkuhDWku$Wk _Wku @ĉWkslWku"5OWkt!zWks"Wkul!]ŦWku"*kAWkrWkuŪdyWk#5^Wk!Wksj#WkssWkv*aVWk#vWkt:WksArWk|KWkUWkrD/WkjYWkIaWkt;7Wks"}Wkrq!OWkv69|k)Wku"Wkq!WksWkro†Wkr" WkrrpWkrDlƼWk 9WkuW hWktu ȣuvWks9)SWk!tWktK<WkE!Wku?gJWkt WkquqWkqz0Wkt (^V\WkrWk!Wku{bWkr,|WkuWk#WkN]²WktV( zEWk![^Wkt*ư =Wk gWktZ^Wk>! 2Wks;ŲWkt"AEtWkr;P6WkVzWkF"G HWkr1Wk+12Wkqz^Wk \TSWkr"3Wkq5Wkr1Wk  @ƟWkqWkqc@5Wkt!pWkq"JWkvyt8Wkt2ǼWk 6OWkroJWk["7WksR! [#WkrP"" _&WkuS!!Wks!ȱxWkr$xWk^u[Wk `7Wkr#TEWkt{EŧWk!FŨWks2"{0WkrWku;&IWkt?ȈhWkSÙUWkv"!CxWkuWkyWkrƛWku!WktWFWkt|WkqR[-Wkr.HrWk!_Y WktV *Wk,ŏ!lWk "-Wkv!T^–WkrvXWku>Wk]EWkr"<K+Wks]!%ZWkt"iWkrWk| @Wkr! WktnmWk!5Wkvc5Wks Wk QfǎWkt^#kǒWkqk@uWksZxWk: b9Wks$Wk Wkq@Wks";Wku# */Wkq ~zWkq*YWku! DIWktD"3Wkrf"4Wku+DWkt`y:xWkugdk WkuD;WkqTRWkN"*WksQWktWk"KWkrQ}Wk$w"8Wkt iWkWk+Z`Wkr!fiÌWkr|Wkr"Wku>F_Wk{"RŘWks\I, Wk 8dWk"h_5Wks>vEĮWktgxWk "WkteWk ?WksHm Wk5OWk#(ȥWkr=2Wk!RWkr Wk )gWkr!WksÏQWk\WklNGfWk$ WkrL"òTWkt sWksh<+Wk`4ȇWku"BWktr=Wkr  q5WkqAs8Wku"#WkqRWk3WkQWkZ!R`ƾWkr6{Wkt!WksWk-Wk wjWk"=`Wkr Wkq ^Wku`Wk! < Wkrh,!ƌWkHNWk1Wks+PWku!Wku4 TeWkq fWksSZWkr eWku"Wkr^ sg."WkrWWk~Wk#!é:Wkr*KAb.WkLWkDaGWkB! QWkqw!5\Wkt  ,Wkt46oWktN&Wk()WkWĢ7Wku! Wksd~cWkuz"dWkv) qȐWkqWks;;@WkWk Wku }@MWks! Wks )Wk Wk3GWkrCŠkWks*Wk#e WkskWka:Wkt  NZWkr?VWk!m+Wkt!öWksWkt Wks¦WkBWkPiWk^ƈLWk7X WkC;Wk"\ Wkq"i^ Wkr_5¼Wkq PWk}!eQWkr{I$ Wkrs=Wks!3DWkqi^Wk"`WkubWke+WkWku{@býWkc+WkkWk!LoǀWkv:`ƺWk"YJWkrv \Wkuk!k00Wkrt+ȨWk!Wkst"¨Wkt@zĦWkWksp~q0Wkuqr1WkuȦµWktN ǟWku#`WkqT<aWksMDWkr V@.Wkq8xWWkWk("uWkt'"|FWkqrn/Wk!We/ǹWkr mWk-  WktWk"UKWkqFc"WkEWkWk1! ułcWkt$ZUWk"w~Wkt!ITWkq"OWkuUSZWkraWk!WkrXWkr2Wkq2h1Wkt 33 Wks Wku/Wkq"QFWkqmƄuWk4 oWktttWkuIqWkuecWks",DWkr FWkt%!7Wkv!Wkt9WkrC-'Wk"!Wkqq.0UWku)B1YWkr=oWkvG Wkv> Wk!Wk!Z9WkvL [:WkucMJ~Wk Wku(0Wkt 1ȢWkv$!noƞWku.Wk" <Wkv Wkf (FWkepWkS\duWkF}Wkv4![WktJRWk"4Ş#Wks"_Wkq QWkv0 .7CWkq_"yWkrxvh4Wk("yWks]WkTbWksOWk"jWkqt!WksjWkxWkbWkwWksA Wk \Wk'Wk!TnYWku"? WkqƳ8sWk\KWk!ĔWkuH@Wkq(~ WkuL"\:Wkr8$WkH<›Wkx!WkqIHȴ\?Wk"EWkts:$WksBWku!,WkvI"WkqBWk^øWkq 1Wksq"LWksWkeWkWk03 fWk &Wksc!VZWkq|ntnWkhhWk"-\?WkuI0WksWk!Wks WktWkqHpWk1GgWkq %0Wkrs,vWk"vWks"v WkrWk~Wkr 'Wks"t Wkr/OwWkI.!Wkz ơWktGMWkxWk"1ZWks!ď Wkrb"ĐWkt.7Wk%4Wk5"]zWks?!g^{Wkq";ùWkrWkEǥdWkqRWk tBVWkr2hrWk "rpWkqxhWk#WWks7XkWk{5Wk _CPWk9!NWkt1s44Wks ĀzWkr fWkv <9WktWktWWkq:GjFWkq!Q&&Wkt0:Wk)6LWkr9/T^Wkl)]WkLWk<Wkq aWkuw u5Wkt!uLWku "w Wkr}"IoWkszşWk(WkWk3ȎWk!,Wktw9RWks'Wk.kiWkX!Wks%Wk!$+!WksWLwWkq hXMyWktWkO 0ƂWktp \qWkr# ßqWkuJC0WkqhxWkrRWgWku!Wkt"sWkr XzWkuCDWk *Q}WktM"erWkr ,htWkuWk#"WWkrk!v]EWkqK YWkt!)WktOWkTFoWks WktxWksAWkrFWksQÉ-jWkWkb4WkƦ[WkuU"2ƨ\WkujoPIWkuXÃWk!­WkK-4WkqQ" jWkt n,¬WkqeWks!JĕWku!ĖWku!g"Wktqj#Wktj# CLWkrShWk@Wk/WWku/1Wku!V|Wkuz8[WkU"%LWku"WksƹWkNeoWkq!OWks8 PWku* QWkt,:u4Wkq KWkrv/Wk`Wkv!ǿWku"fDWksKIWkurI0FWkRpţWk ,ƔWkr?Wk`$nWkvYfWko]Wk MJWk!28 Wku"9 WktY!}: WktWkuP`WkqM3"Wkr 6Ü,Wkv"U&Wku]"+AWkuuWk!*WkrS"PWktLƻ2Wk+"g RpWks= 7%Wkv,Wke Wk`6WkqoYjWkk"+LWksWk%Wkq!BʼnWkukwȻWkdoWkqƗWkqTWksw0WkuœWko"ȷ0Wkv@ K(WksaWkWk 8WkqWkt"_Wku#bWkrmWkt :(pWkut 9cHWkqC|WkDĠWkeWk!stWku T WktRWkClWk#&mWk6v &Wk*\WktBhWku"rF:WkspyjÖWkwAWkt"f6WktWk"/Wkq[vWk!KWkt8b\WkM8Wk!Ż,Wkr"ż-Wkt!6Wkt+" WksWks3Wk:WkvKºWkq!lWkt ;Wks"];WkqY">tBzWku~}Wkg MWksPŽWksWk9ZWkr"Wkr0CWk!Wkr"} 5Wkt!|Wkt S]Wkt.Wki!ZŴ{jWkrTWk"ƃxWks Z[Wkq*WkqoWku3 kWku .WkqLċWkujWksW!SWks# Wkt"=HWks^Wk ;Wku`8WkM VWkt>"Wkt!rn WktÒWk"$5Wkv3!bWkuiWkqZ?WkQ 'Wks r cWks eWktWkt\cWku!{XWks":WOWkuƘ@-Wk"edWksJYYǤWk< $1Wkq!|mWkss!Wkr:5Wku+[IWkrÄWkq[ WkqU WkufAWku} 6WksF4tWksuWkPWkuG,1`Wkr`9)Wk|vWksY!O~xWks*@Wkt MWk GB@WkrWkV'}Wku jWkr" WktNEWkr"{ZWkt\!P;Wks /`Wkt"^Wks!r»WksV½Wkv"ǸƲ9Wkud{vŜWkq!Wk;5cWku(uIWktl"6/Wkt!úƴWku%XWk#qWkt"FKWkuBWkuAWk"Wk"TWksU!>OľWkv =WktE!h]rWks!d0WkqTWk, Wk`s/Wk-!Wk!0xWks!fSWkrdzWkm!hPzWkttCVWkrujB,Wk"uBWkr0!~W=Wkv!č1"Wkt(Wks!LYWkr WkvǪWkv Wkt6 [ŃdWkt2!ňeWkuV=WkOWkJWkK!ksHWkq'mvJWkr BWkq!WkteWka!hAWkuWrWktR"Wkrb WkuWksin_Wktd"j_ƉWku{Wk6Wkt]ȃWkt NWkt4"=NǶWkr~tWkq>Wk@Wk!g.QWkt"}WWkr!!WkBWk"4Wkr,Wk(E8WkWkX"ŸWkvJ#sQWkqj!?6WktH 8Wkv!CWkrnmWkt"*JÀ+Wks4)BWknvwWktxyWk!Wkqm!J7WkrWktI'(Wkt#vaWk@"*Wkq"iWktmWkwFdzWkquQWkv!6"eGWkqXWk"T-IWkv lŕ Wkr0#WkY;Wku"cƏWksmY`WkrWkr{Wkr3"~WksȝWk=PWku9 Wks I!Wku # WksojsWktgaWk*SAWkWkufI&*Wkr]AWk-Wk=Wkr@c0ĜWkrc!ªE'Wkq )"^Wkt N,Wkr ku8Wku} nv9Wksn!^Wkr!&ow:Wku="dzWks# eX2Wks!wĆWku>WkKWkunqq8Wk #ĤwŐWksWk6"Wku'!cvŸWkrWk8-PzWks.Q}Wkr"lWkuEAWk+&2ŊWk8Wkrt=Wkd'0Wkt;!Wkq` ƕWkY!ȲuWktj{Wk!3Wks\WkCWkt$!ƆJWktm< Wk"iWkvH WkrI!YWkr!TǬWku r,Wku$w(Wkrw cWkt-"GWksyIWks"Tk<Wku\q@Wku8Wku%WktC#lWksrWksDWk#'(Wks!-DWkq fWks$Jq6WktWkrI)WkJĒïWkK8Wkq59WkoWksbEWku7!S* Wkr#+ Wkt _Wk>IJõWktSWkr<!xJDWku^Wkt5"8Wkq}.ytWk!:ƬWkr}.Wkq7oWksWkthWk#Wku:#) WkuPWkrefbİWk8#;WkI!(~Wku"yWktvWdFIWkPWWkt"8WktQI|GWks.$Wk%|Wk"Wku ȓ>kWku#Wks!;'Wkr!6Wktk"DCWkq;uWk3Y8WkrWk!/c-Wku8"Wks 4Wk!YWkq^Wkul` |WkWkrMWk#,Wks&!1(bWkr[šWk4"q MWkr:Wks(Q}WkupBWk NKWkrg_Wkr6NZDWkǫWkrƀWkt]ŹWkrWktwWk +M#WkuWka Wku"IƥWkq"srWktLUzWk(gWkr;)hWksC {Wkq ^Wku 3|ǯWkvP.Wk.LKWk/M"ŝWk0lWkr4(WkXŬWksO!+Wkt`,Wkt aƯWk"^aWkuXĭȡWkt`"#CWkr4!}WktWktWkvdWkt b'Wkse+eWk]Wkq c+(Wksg Wk!Es Wkt)ť{WkqEȵ5Wk| Wkr v$WkqN#qWks},FWks SWksgDWk"H Wkq[U WklWksb=}Wk5WkuZ{4Wkr!^LWku"Wku iWks-$ WksE"?YWku u‚Wksl WkqcWk ǠWkt <zWkt"bHWkqdHWk"WkthWk 7Wkr!Wkt} Wkr !# -Wkqx!Wkt?"EWkr&n\Wku6o_WksF_WkgWkhiWk F63Wkt4uWkWks {ȆWkqCDWksyWkg =Wk"e< Wks }Wkt9Wks>Wk2 m WksaF4Wk2fWkTDŽWkƝśDWkzÍ Wk#E PWkq (Wkq~ÂWkWkg2Wktf"SWkt! 3Wks 4WkuAY]Wk"N.5WksL"<WkqfxfWk/!jġWkq!&WkuaEWk!:WkuRFWki2QWku,LQ;WktUWk"Wkq} ~QWkrWkr?Wkv;#%k¸Wkr l¹WksxWkN3(Wkr> F)Wkv2!=sWkq"WkqW <hWku3HWkGWkWkqWktFfWkvUWWkIWk"~BeWkr"Wkr"pŎWksD#X;WkuĻWks~!H%Wku"c(Wkr_!GWktw Wks # Wkv:#DbģWku|1Wkr"ZWkq!UHeWkq{!pWkv pUWku"x?Wkq!MXWks&v5Wkr=(GWk&::ZWkcMgWkt"P±UWkr" 5<>#Wkv*)Wk[?@$WkrXWk ƚCWks<(Wkj_Wkv<"B=mWktO!yWkuIǚWk&MǝWk_!mWku8Wks#WkWks"QWkt FWkv?"&`Wkusn8WkWkqGT4Wkqv! TWkv'#Wkr'Wk!.zWktQuWkWkvF^ȂWkv"(?9WkttHWks}Wkt"@QWkqPOWk7bƊWkU!?WktK`fWk& =Wks WktGWktU"\VWkqX5j$Wk)6Wk Wkto }Wkq]!WkrXWkooWk"iWkum"WkrR ƅWWksi0w3Wkq! Wkq=ijWkq3PWkuyPWkuCU0BWk*3V1CWku  6Wkr1 TSWks:z-|Wkv1 Bȫ3Wkq9WWk#eĶWkrZWkt [Wkt==1Wks"Ú6lWkt8>WkqWk]WkWkt jfqWkvC grWkq,Wkbg@UWk Ō'Wks\WkLAkrWkr2 K"2Wkt@"NWk%Wkt"Wkq> Y>Wku (Wk"0n$Wkr"3"Wkt<i_Ë5WksV"Wkqz#=WksfȠWkr ȸpWkuiB-WkF)NWkǢTWkqWkL!HPWku9Wkt<WkD+K Wk"[Wkr!.Wku%2'WkrHp!Wkqg"mVsWkv."nXtWkv/!}NWks6mUFWkWk KėWks@!N[Wkt +Wkt8G&Wks1"I'Wkt)6Wktl>Wk"!£}WkrHWkq=Wk'>Wk#aWku` ƋWks"d WkM„Wku!]WkstWk-/8Wkf!WkueWkt"|Z[Wkt"V&oWku^bOWkR8WkfzWk#"+Wku!3ōWktZ!iWku"Am{Wkuh{Wk !LWksz WksGyXWk"Wkt"Wk!ěWkq"ĝWks5kWk!WkugWkqbWkr8Wky!Wks 6mWku~yzWkaY%Wkr 4KWkrsaWkAWkVWk} lXWkqb<0Wku-ŭWkq"o4NWktb?avWk%!aWksk*mWk7 Wks!zE@Wktu2Wk5WkrrvWkt3"ĪjWku_2Wkt"!!{NWkq"'u=Wks ~aWkrJ> WkrU ŋWkrSWk\"WkuHWk AZWkr"7ƙWktX!M`Wks3 u@Wku5f'Wkt3Wkt!!WkqJ!7Wks2Wksm!’Wkq"a9"WkvvWk"O Wkr!!Wkr"/LeWkrmWkJ&WktWk?OgWkr#*WkunbWkk[^WkuO>WkdqWkWk"ȭWkq@WkY'Wkqs"ȋWkr"yOWksr1mWkgWkt]LWk!WksZ"(d]Wkq?CPWk XWku,~WkQWk~@Wk)! DWkv#!OWkrA%=Wk"CWks".&Wksh'Wkr{ ;“Wk{ XWkrG Wks #Wkq[Wkr)0Wk 5sWkr bWkrO}{Wkq!)YWks {Wk EzWWkv=4k×Wk Ra%Wkt WkWktRWk Wkqn"B-#Wku ]Wkt6[Wkt/,uLWk aL"Wkqh5Wk"m.Wk %WkqD?dWklzWkm1CpWkq rWksXWkr ?HqWkuplWkr ãWkuF ^Wkrr6]Wk!ȳ5Wkv Wk!XȖyWkt_tWkqV<eWkudWk[Wks"`vWkuK#ȜbWk!'/ƩWku SPWkr 4]Wkta}Wk-mWk!Wku0! Wks0 {Wkt_< :WkH J[Wkt'_Wkq WkuT%Wks QWkrpoWk"z+!Wkr!aHWkrZ"CsfWkq"HWku !mDsWktx* $WkSWkq<WkqLWk K_WksÕ3Wk!Wkr'ž1Wk 5ÞWktCkWk&x!JWkuuVWkq Wk!/Wkt 7Wkv uWk~ WksI"PzWku2"[_WksőKWkv"IWkq ^MWkqFq9Wkv8!8YWkvD31WkWtWksNWkvB"?Wkt"%WktZWk>WksFWk`!w!WksWkr( Z0Wk3 Wkr<Wks!NgWkuo/Wkj '<WkuBl#vWkv ÷.Wky"Wks <Wku$6=WkuvnWkq"pEL8WktWk!bWktZEWkAāyWWkq[+hWkB HJWksvaTWkr"Wkti|WkZ?Wkx*Wkt:#{Wkq^!(yWkrY]%WktjWkq /6ȽWku<!jy Wkv7# Wks <Wkq :Wks!o`WkuWks'YWkvA)[Wkql!+*\Wkv%"ǺWkt9!uĨ$Wkt Wk' gWku@!qWkt3Wk9X(WktSWkuwWkWk!9.EWks%MPWkrz#Y$Wku!AOMWku jWkr =5WksP ]Wkr2_Wks&Wkq[H”Wk]!~Wkv(TsWk"WWksygWk4Wkq"gȄWkr $XSWks}2mWkiWk# wWkrx"Wkudy#WkuT !z%Wkua"WkGEWk k ?Wku Wkr5cWkreWk#HWk^.ëWkrs ¿Wkt(DeWks/9VWku6Wk6!<WkrQWkJWk8rWkmWku$nWk\L?Wk!"WWkvE%9WkWkp"0Wks2Wk Wkt /?Wks Ow0OWkqHWk"9Wkt&yWk!Wks"7kWkSȰȤWk'WkG! 4ŠWkt!7hWksWk!Wkr"Wkty'A7WkȶWk|Wkt!Wkr6VWk??a-bWkq">-Wkr,Wk)YWkt CWku|7'tWkq# Wku!tˆ{Wks[ w‹|Wku"wWks/~Wk2R=<Wkr^{Wk >ĞWku/!UUWkrNŶWk"nWkr!{cmWkuZL&Wk!<;Wks!;WktGWkyW5Wks!tźWkt)8Wk7TWkr7OXWkq;}xWks:~zWk wWkqP"^MWku @*Wkso"KWkqc19Wk"7>WkrWkZxWk"F(WWkrkĄWkraSWk_Wkqa=)mWkrWkVSWk$jWk!kWku#;AWkpAWkvWk' ,Wku0U!Wk!F2mWkuDxWkrB MWkr%WksGWk&"oWkc!mWku" \Wku -=Wks Wkt!$"ÐWkux!%#ÑWkuWkWks q2SWkrp"4VWkq HWku&!DdWkrd,$Wk"áWkt~,Wk!EWkrWfWksWku##x Wktz wWks ""& Wkou?A WkuW K WkqpWkKWkuk4SmWku1CcWk#$/WkuY ÿWkr-!Wks_Wks/Wku-MŖWkrV!Y SWkqIyWkZWku!Wktc ^Wkus$Wkv5lj1IWkrZƮWkJ!gWksFıWkqifsWku8WkO"b3Wku R"WksjJWku"kVWkrE inWktx2XWktbWkaCWkaWk;"+GWkshWk(Wku"MaWkq"ƢWks) oWkt!1pWks_'R6WkWku"WkriƇWkBǧWku""3WktT>G Wk~Wkv9~Wks|Wk*iWkWkJOGWkt7" QHWku «Wks Wku Ĉ{{WkQWkt z<Wkv MWkr\/"Wkt2Wkn"K' Wkq~]WkugB!Wk" Wktg!f@WktB"u Wkrn";WkqBBWkV 1Wkryo ;Wkr]lWku"!WWkt-"WkO5 Wku" MWkro P&Wkt]u[C+Wk1!rWkqWku 0 GWkr!n/Wkr -WkdgWkxyWkuvWkqG TWks"dWkqy# 7șWkq#(_Wks`Wkq+ƶWks #2&Wkr~DWk#LWkq4Wk0"DWkqZ LXYWktA 'Wkt[&WkrmWkqp{Wkt  Wkr"~m;aWkqe1RWku2TWku GWkt!'WkrW"J%ŇWkr BWkuDsWk$WkqAKWk | ƑWks!!UĘ[WktWĚ]Wk!KWkuM"Wku nQWks"; pSWkq\n qTWkbRWkt!\BWks MWk]\WkuA,qWk!`\Wkt^WksGWkn=Wk!PWkq? Wku[*Wk}~Wkq"]Wkq WktjPxWks`"-0j0bt&VM-$$!(,Bq.*Š/D?9$x@d N i(A-i4!hθ*K)v&.(0AZ/-yEO(|Dpt, '}%[Q**s$%*-(m$t, sS(A& %  ,n4pT%]l"}).cZ,^`-V'L*ԓ#S<=z:2 X7UJ.)Q B*#89 (Pa"A% *@ *H'R '[+u[.?.*<U 9h&!"(#&="'(E@xU *hD12&*hDV%UV7%(1? Fv -DV*hJգr)? %(qI%v,*h9DV h+,I%R PLPV7rGգV7-1r&!V7CDVrQ*h:%( ? &%(DVIzRF$,GDVv*hr,Xգr2S,%#+*h0YL -&F@Rr4R%(7uR%%*h+E5%9%(?,%(5.1%&%v 1\B%%)LE&rL5*hDBv%Q4?    գ hDV%e5FJm%(2 h & ]5? %s55YL%& h޲Ir.15 h%(, ;XI hDZ? $s%ANDV%(Vs&rDFܠ%1F$I%(? *h\ V7rRv%1%(IV7rS%3YLtr$AI%(;YLF&*hB CB= *9 hV7*hءV7YL%n&%rգ^գ h# hvڨ&%.A&%O,QF&ě5, ?r*"P,JIFηV7%; hYLרV7%(<&%'&%V7*h@}, YL 5 h R%'$9%0%(%vB*h0? %RrFB%uգF(KBRFSA9%P,%cRF?  h֚&%Bգ q&%5B)tI hFN591 ,RrS&r42&%(?  h9wգ09Fգr\YL*hJ&&[s19YL%PBrADVFDov*hI*hFwYL;9Zz&4DVKYLִv h*`BNJ5 h01 F h3m%(PR h2Br79&:9%(CI'&F:%(4v*h[&, ?  G,F3DVF'_%(͏գFݛ1 h%I%(DV5*h٩B>A/vF X? %(!9%1գ%+VYL%oIFWA5*h RB%KR vHV7( h9P2|2#-^O# k ;(+W6Z!jj,>&6`@+&OC%+!- %c7eh^T7h\0I_Yi@RpRSB71XGCmQR,rWa9" 1h:tVrREҺnrXM5 &Zi|HRsHxpxkC tVV_mjNx+S*I_mo RO:kLdlGT=Mci!}%E|/Rb0}F@͡l.=(HzW@\nϏl>PiX G4k(UpU?<%Ono\Al-W@w iCsBR(8#DRj(yr}W6*z\h;i2[6hEj#%lTwVgDh8s}W&NnYUj] ! uWn7&o7%/{XZSHr;m (tST6:bhIWjFQH XOo (pX9 &k3~0RI:mf2-iRVWѽmuRL^ix YsU:Cm~Qo"y iMW::(`.̅n)NqqW9k!m/Y[HΈi.Fu?UNGW\n(W[8=mkhRkI8:'}ju\F)gTnLiDX.O"V)(Wjo*/q8Up=DHh#RD`ͤj*qw[RF%l{-qQBSuhKW,w\W>o6O(USA8hψh~(vZ5_Ki Cp&RqDyEСmZelUPiyNXj,:\H)|#n uTgR~np}\1 |$kJj@V8|mnn(sKU ;)[mO{UM,m(}T$?(h]@jT h[#MC2k!rWfL+;̲opyn X6mQ%l*ijV6&nQoW6NjaoIquRXLuWh%qqRYr3)*o0=*i$TF?@e+o( xiX-1A͟k(~R6whmoQ<6o8~ZX2k;rbhJV&rZ5јjs<X)Sr~I$k$~K[3Xl3~T=w<mB+\rS1iZ>jqM}T8j7h]vYE^PkV?5wm\6u[ҥiRV'QS%7ݝoZW+~xS&Pyk@&UmxQVC1k^nXu4γn"yW906k0%hc[5Hi9QwpURl+dQj4 lwdOng tlSH5!kz`ARF|l,a,7h:YW5/ϙh|U^Ikfa4uV?q-:h?nRX5MeQhugWF{nsS>={вmyW@G&%xi(pZCW ϦjojS;rMhlfxVN~BjYJq|U 3GirBJsURпn5lpWGVAKhb<iY-C/}dРil\3qbn #mSoAq_i!+~"WA=mYZ#Q2rKk$4mSsTH`Wk+\U*5!?6 k-.RsS<QΞm:~XWQgpl.|X@El5K)<r#Tp5kLl:Zr<U?nz jQLPmtDdV%?< vm X54nQ[?GC)|ӀoH7{rTVHpͲhtwUw>iҁnl}&Bi[`A~;l V6Tfl+zQK4;ғmj h5T@[̤ntY&.XfCx o);Y*L9\k[V f=n;[D#m"Z|?M lQW:b$k&{\5%C.i`lU4D/m WB !el$tgRM|bwͅl^lMZ:<_fnx@sq:W8t1Gk5,@u<V?#Kwlm^)2R60Ii͒lXnRJ;pm[ n_"-lWcT\p:mxVPh+njk<V<$h,oks#-J(Zb<ika)}XA dj8+vZ: jBxmh"SHm.lG!TBdFi r\x8PKjb)rYC|Џn ~\[E!w !jmF$uY6A2.i IkZLPo (o\Mlrl,8VpJ0y#*lK)tQAvj6)maRJ}X]Цiu &oTe?J,ehdTSKEGhlSL6m}_Y84inun l[%@{~rlk[Z9Ea ̋m5 uQ5N!m sR4HNsho)VxQZK+SMύlzK"#gUK*Wуiqz[C GrmyY9%Љju$EiT,;-oTx QaT\nAmCqE~YPv ͉mk$nR9H(hX#:jWQm̚n jn1ZU?.kDnH6VOZEsjWuT61^o ifgTO "fΆl9AxR > xҗo& p\?5k/lsp>YEqo<owbX3 gn~V,:QjSY:HA͸h.l\s7R%wkz(USj&xi'_|QJ<u;n!8YR**hP.gV2Kh oR9}6j~ YCN }ocy$VsS:l 6iJ(M\N ~Hλkh*E}xZC?l_ѩi %qV1?ooh_UdUAUi$Vo[1j$lQ}.RI'*$n ],mQIrhoQ"%pZ5i_=̥m)}gUz2x9lGxXyWVdlmoZ0C k~YETt148jlUP/-km(yY06loIiX'K*!1na'tcXcMCdBCo:v-xTT4j]Wk+{[3Zϯk"SYFtvЭlZxVv6}ЀokRjWUI&=ai(hoX(O/h78YjL*qmVu6Ri͓k(:qUFwi)xYFҢlM&ko\3o̷llT^L1uj=@[G0Ek{)%zU ;gSqoC. itQOLonKXLUj{"sY:vbInA$wU#SYjT.1wR4IjmQU[Jej ImGT B2U[j<+&UE}Ѻh"6|Y>7mJhTTNWbAhdf*NQx63nioT}BxroNoY50o)pd\-B8m%?\hJPbKieV 5gxͭh2+ jSOos'kr(hV0qhґlh,7yYGJJ>̞m2-r{QWVv&m#-hYZNwRќmPPRGlhRA&h jXCo$v5SV4i~ S9 ѥo pxZ10L8j0T\JkN.{RN jo./R1WhvTBnChM96}SVE%tm+~ZYD`wa,l*8mTO9Fii*yYUHA j ,m[NS+l=j{g%sUK>k'wVjS Jїok,{YTUyp͹oL0-3WPͺi , t]WHuoxz XtM6^nFt{gR<4rjZ25 4'mK- S/<xzѾlC q[fL$Ran('QMC iHhiXG<ϫj&+p`\l4 Y_j%yV @O1kY,QoHWN"kΰm5WRBjJm`R5XΨmCYEA?^.k%[{ W7?Ұnu$+~nW7I of)kS1rj!*zYf5llZiROV)Ck!*oaX=Pv'mo)4n\I:+̧i9yCWrGkC!kA!uY8X 9ϟijswY3;rH/Cҩn\#uV9}?͐n'#WCvqbk2kZnG i4(hxV85#eϕh8_mQ4NpjU' zZ?.̓j3d*mVR >m҅k"3R5rew3npU;3ijqwQ^2DBiYqV8-Mhn}cQR1oΊmN hXW <0U7nj,=[|Ir6kl^[sQB1 8lzUc31ϛlgWqA+GSn@&[Q~2t)2n_Esf\4xa@mg!x [Q0̊j48k[B|lLZϲk K:TF4޻wҶn]<gaS9 RNh$qk\:OLfl[:?iTgSGmr.q['2άm W,l[Vlєmy |Q@g9vh:'Rja\+7Hm*mkROfno(GhYDNeCj7ci3QCDl$FxY2>{ h_k|TS!U̎l &BqZHU3 i CqU{Cw/AkvSVv*nS&lgR\v??+lJ)j6RmBvPh;[}Y=BtLiR,:n\dCAOj"iUMkM*ImXI]ib+sW:P|Vl'IyY<>!hqC V FwkhT<QispTK;ajIe* jXGbk}U`YhCl.!j&q5Z_?~qm]FiSAn4wSjU̻lQ1nxhl%wYCdϿnb{SMnnS~{$X,Iz#4kwyT/4(z_o{[RBhi wZ,>8r iP$ZsZL"mz*8yASGWn8rUf>Ўl_otWzAL<jU{W\?.;>l4H,\:4l8jZ G:Frj}~UTK҂m4+thZ8;m6 ~Z1y <ouc[7i4+~VJGfx(fiApwW?k͆iz^[9"So[ olX8c4h%"gTWiNl)oJnYv="dXj tZ6m(sZ6k?.n[U6ZiexYQ_k w[AuR8k)oS|8%j sRAj5&<y=V2ONlwV M1i%-iVc<@̘n]X}8*s9Ѥm0r{X`E(ҹnTv?QA#wTm]W@0{a πlD$4~Zh?TIЃo(mViD}nfodh%jUE5io-{RZATi"kW87k^sSFQ̸i x[Khgafk*OVL+bgm_okWK̍o^KhW4#vAS|MiZ*-J<Ze< ϳilmXUb07jP XA9[h/(kX= 3o+VnvQbUJxүnYK8jpjn$4T15io<anS=c|o.)TE'iwU3zE`̡jZ+{U\@rohw!l1\/Fym6g^| U"Q.f_)o7m[wGѸon;XvP|Qh)(&%X6eYo>'jVWH~aohlXVT'k| tRHinVYVZ(ѼiT7lSC}i3UkH-isR*T>(g>hv9nY>1·nkpcV1<l1GpX^?flel%<R;0g+\ob~qhAQF$́mfXG*AϨnR'iWP><,{jixZNJ+ m4t-W?04YqVhO-oY@DOSo[HmM,|{U~L``j%n\I?&mqT[g84Ho2vVL(0<tl$Z$6$LnzWWSUҕlr(GpX\0ӎjHExV46l3j+oIS{IE+amemYZM[.*h}(|yYD<u\n"~@V3ӁmL kgX0f J=ʹl.rR;n~ѰnpY2rkP҃kz~ jsVV#uHj0)!z[BGзmg%ksZG^@Ϙi6.0oqW}4q\QjxrqU2*j"/BRJMqm.&BzNT`70̉k(m#ZD'o{\=E8Srn8(yZD n]m+'TkS:O[LjAT3I(m(|T SXvkg|U4GF23{pk&BvZX=n|S1N@p'mE7nRRk2@hQ8D{4n#rcTLj҉j !rUVf!j(SB6ιi# X654i Al[52ѦhR-rY39a:Gk x>WJO# m_#.{R:P+,ІmlCetV= KӇogm({`[jIt=j;.yW2%Gqnn`{n\R5~̙ndr3XoMBi hR0@rnR26nM w[Ei8мm\Cl9ki]gUVGHt3̺nSMQ H1Bk%rXJ(Дlcd"qSCNmNeciSV3Oo r'Q0ϥn}S:E liL''UnA6.xn* ~S 6`}hg^[5Oq5ҏiu"qc\8_m%i=zR:|)P km 9YKK07\m AiY&Ty i;,:oYNGmϷlB*lZFBjosy\A\ͥm'dtWb7bi%hUHN_?џk|.|~ARQx<i,o$TWWY gh{3(HyVL4Wit&s+QR2nW"jeVHM5hi+sTBV:~yXkZRd;xjj,zYHLnxKmk'TnYJB)oyLiQvW@.͚j `yUsEw}sϠjEf,7qVZ^3kwY:>4<j1(#CTLѹk+&vUK΋l!~\BAQ̕kMB|oRRUqThVf(nY+SWn+y\H(iA4h~JtW;nG,iw&(/}DQK2h> ҷl&\@Rl;yn wYPl,mnYD@ #l0&Y?n}wh.ZI=ssm*j[W3g/ьh-s`RR6:Ҧllv"~bUW0:}<*l~YT=Gk.ЛnT#i/YW!k/Мk5+;w7TEi+:jS\O5(]6lo|[0<̏j>tU}Gxmj*\iQj'(hOVZHVhЇkD3tBV`4Cfd24ml&w?XLVb2Yhu$clLWS|m W6} hq[B)]lpE[GB9Tn%iQW9sO#ak`.RkQ;(OQi.{WVSmcnk T{jU2V[5:iprOXUKom8vV7)эjk XSUPk h+v}XJшk_r&vCQ=n(l:hSG2O 10hFwR S! "m)yV2>gGA+lI,$VxJYN E)l`mWZ;vu6i7-jQTOi|\Ӌh5wZE:[?h(~\8@7bj(nVV1d9nz>U|<wnVo *SW2S̀k *XC/iw|VR;mIhC jZR֎p̔kV"BV0:kvpSL\Ϲli \4Ej&_* nUMPUmDizWImCm$Yp~YD#<iR6febP|jWPxxnc%}i6[sF h"=~\@v5h"gb[N=:Уi8 z+Q4LmvtVjwoSW7<W?_nM&hgQS$ϸj"tYY)D3LuhxUx?uk& XV|tPжk?:mSP7sil(Rh<:idRpEA9BUlZ}{UPIϬj,*fV8Ыip (%8R3Ьm-mDTdP%w osZ5@?xn'jT(UA@yl")jX0D dm| jQEcgFcU$i5 "nCS78}*̽i4gxQOhcm{U3WpioVG[ MЅj`frxX6<:k=wrYL_hg_[;rP҈h'zQeF3@jl' zYE|.43|Tvo,a-#%-]/"xM.(#,ă0A\?  A#%#!1),.Ⱥ+ *R`i; _[ Z;<H"'j;@$.˄7);d3puI?s"X IF  .^,;S'9 A(*"T^)0_j8/;%N'cAP|$ EB7>X +T0&ɲ(%+8)FIstQoXR-GosEeO[jRsZ JqDhi:xo  kp+]ni -\ } :wv4{B|.Q?[vL l[2 lA Yn+{Y s f6+tSP{QemoV_m5} {SKN~lR WjRh{^|nm:{tmWp&p3|(:~mHcd jV"LtdA y P_f"_YVWLS ZYL juKk v+'zAc #,)gޕpP#n(?'b B''ד(Fd%+( ).)T[%&$h-Od&ŋu"O*s$BjA;-9P.tѺ) ;"ީ$t%<5W8:/v#/)-{ !75a5 Á+'VF-#w;#R R o'PB1%,?yiL*!G2+F~"a'8qhnڻ-vNF,'/-%-%!'&n2s k# 197+cj.0M$(> )WO2#}) k,?"9* Y)A+&84H-$S$'D<*m4U*T(U%)B.$-"6,|?x NFj&K(fL j 1sk#^'m1 2_2wLLm'*XnL(*Y~`9|QH <~OfV<-yc=>w+nt2yWL5Uk )0PS6,r&XI)>sy;#h\(m)\~2-Z 't|v`F5Co"`h?{bM.ogZK8k C :j 3vt 43nO3K;OUw,|D 2.,G 3~'.h87|ukiRS,&q[B3m]K1;xV&z~^W&jt^f1)lnzLWd%0M<1kL>qy}5  g8%qAt`8qf r&pfU;sR0GU.iqp{S 9cq~{=2)l2*t /)q0Xe.G~}`>+uMr%ij{;*}-qT!0Tu]5<nٖ^(++hRR8yBAy+Rmw8?K{`4r'W?>^:M/{7(|jW9?"{SjUZ>sTs} 497wqkK!-!tsS3`j'L|P2~1P8vl /j/rA>7sgZ=w@/TiW3<%}Vy.pCev9v6R;{dY 0uR.{vmWYg\u0jːK5!s%W0zP7_X?iHMt)}N e?TPj-7Tq aI:MzgmK`/&kG[E4]nC&nrF s_o3 /JL=xW.^%xzyL;%to%*1wi u1gQ5nk|l1Q<'  z;} :!ws^%)ge' ",&y2Gtn^65xULj9x 7n@u^'yB#Q5v+v f1t/%O&m@Z*rRX_%/o]7[|[U )_tm*&jL}!4jTog`4aD:ljp}p[S(2{:_o?77^?^z8 27wKL 0g*k=[0;pK3_lX M2wt`3aXV?+Z}kL9{=Jqg=LlR+1|~q _?X*hK!6lmb}+UUe;{yoP5-wx5x"0j\:px+QeK,5o]|Z1+Z )wa_){B|Q8jlx4X{u//%E~zL.l_9zzx.A{TE/N'~'1vehm.DuwL6 ;t3>(X2lhK6'~? Rku&{ Sy&ZL:oT5c~{<nLT1.6{$,!y\D26y[ >p_li66L/,|0oU X3TmQpi>S1H&~6CS2^&w6E3?ep\ O>iF\1rF %n r$;;l^'r\ *h R u7qOVv%jPx4_0k7H2s_rWG,'pU&;az@; `>03uTE:wBR3*/kR8~>L/l*H~D{/uf|[4v*#?rˏ CDB'`n>3Y/u[3W1C} <\54UzAR @7*z{.w?VoX6iXC2q6Vt'ot)$9.gpJ>%u)8_;li +>t1XL2w\s +'~5|mz1s'_{;lIW9h@W,}nCh=]h6n_4k'?W@?k1 %|QCL =wH  7,ymV55ōh B+y7l 9*woml\0*ouT:j-O`r.#Zu\L(1vNX-$#_4h<:Rb,pz*QYm%5@j]K?yWY>{h?RsqX@9}vΐW:94i`z //y{ o4:Qe3&lB8b}Wn)?lD/gc"7vi[d :ihnI%w{[e7g{o 9wW' $3q3 uD^%lpbxU&,n=C &l_RP h;}CR0C|T(\(yT}*s[7Pw en )qtZvl*\wFtT3nr*+S8(e{PL;y_ ` 5n9 _C*i{]@)rYeV_5s!HD5Ds *:1H}M_ 3X[:~wj?LbjYtI6}~ Z3^3uNj;7V}S^5PoCE 7uru 2rt2[iC,q Z*>i-^9\})^/0lY6B8wS& +xR8Hp=(bx8oX[39t@k-`@swY%jr.pDT_=SsM 4uxP^)bvsT5@*y^%u} \X39^E*X9`{~K=)yZY=*s ~ 1rh >|  4r9 g1mB:6]DUq_1vbH~=wwn ^22gL/>z >jM'&yxz K8Yu =|^5~9!Zs7~C2^s=k3L1`lIM1ajI^h/`s-tUZiQ5BmUa5t}F/jK\+k&R)jp,_`a7j=L9K9w@g6Ets8*u'R?@h0v\-z>^\3gh>dZj (^y NZk&oTNZl o1z~ N>k;_8>Zu^P.g8T@ 3tTLP+pX`8~>z6[;}hGS*i64k.\[6y|GWa+qgjY|+rym_2lƹ[-zWe'i %$G^5r!X >T׋Q%}N7tW4e4y;U/1lLfTm?rJR-Op^a-Rr/Vo^l/WjU^W[)l;XY,s~'rPm%cVT7r F9wU|0i+H2M 8vK]B[4%C[:1|Qi ,ejD^4@=x+y t+siMS82~f?U-s@{Z+@y=X 8ixW0{yNV2bs.} {8i~'Dm%wTT'Eu~%p5 {e'i:5ut'opOLr30ilL =1W!5Z=^;|`<t 00h!JY0TA5Fg_[(|E_%-8lNM@Q;8fHd;v^&etmw_'v;q&^+kVG/o w94mL<5m[ <{1 [(.pX 5qy)^y8eiy*v^@v'y+Wh?=n,5[` .j)n 16h8o;m.qwl^N%|0%{[v0n ^1}3mp1sr!96kLv'5} z46m^e{48qL ] \8Xo2i-~*r[o5z~+!ZI:o|,YZ3n]*pvw[05U#=Et9_U:vHM:V]r.lWi0J|g-_s*Vv|+g^_+#95q/mWY62V/F^-aVV-V=T)2`;l60,lR6v] uLI,r%nQ4,uoZ/&lA9|xAw0>hx-Ta..6Y-}YA3pKz_9iLjv7fe^9o{U5-ioP>;*{ ?;}ex ?<g1>6J*:;h|R82~K!6<mM6>lCP_&rQ<t\@2Lxc +ayVLs:}vV!+g{TH<h;T_1KwnM-4.oh'AN3wG "^f;ut)^Z;euuv[O3zv Y .2|K@lXr@?~L -2+#=(K{T-CT-D~mEP88le'%Sm./kKYawE_X8jk+C9{ rg?roWX/&i S=lv K^|*c~^r9(uk\?3vO4  C7~jh;l2}f<o_h3Z8wlYU3xߢsrD49z]^r3m +C}[2:4[3x?k{LX@671vX+po"5$-5V3v3[=yty/_=6m.5"tX=7lut*/}z  ,y\0Kn? h0lkH (Ej }6l5V2u^W%?qje%Nr ,kd/X =uz Wu6W<y"uh(qSb&gxL /KQB.Ek e&LX (kNWA 5zI%V -tbUdJ=uN]f\<_iSpz4o $- % h4E_3wKy%U~9 Gn(rS&~FR0+F-t^*t5Q{ E=,nQo,mh[1?o[3|=X4{sq1>Vj&X =kX14||e,p6V+~U? +6qW ^F7e~!km/wo^<y:B\Z<:FQ; '0$qlZ+p~w$`9uZ; +-G{3J]={mV?*m!S E2x0Q ~/~Y9'}h '+09t±<1z'<w)hrRI7)s?|Vl 'SQ&wV_ zV/u ( c* L(t:,zj*{mY4x/&,<wR)l{DR"9S|_-n^ǿ[1*]\m %z5z4&x3#W8+0wy+&o_~4ik j-%Z,4Xx<[iT16y '|s^Rj2y%8mp1nw,-<6Gze03TU"* ZS*gF%xZ0+{ Z0,rR `=}z+9nT1rs;m+j|7hF+=y<qQ3\t 59Hv^ 78Wt7W&paoX4pUl>qoUM:up*htU: |.vo1U3*U;?`o7DjKc&BgY07/k8)vS C'sM[@:4Hs%0ig]ؓUN,mUx47j!\z k*(p[8qʄV+<i`<-|iQM?Fy!Ne-MB6v s>mv649.r~_'7rqZ  -)]r^)xx{W/hl=^87o+r r;yb9| O;k@3#rZk.4tFY/-q 4Bv6r =w%R/+v/&{.'1c;Uqs\:<}Yu_\(L^U>tx\-}U-J-L?yaQ'J:qJNWQ:}iWR9+s;V 6n.La'T*qh(&hm%:s^'ywZO)\*p;(Z}JMVT0wvSQe+z8<rZQ <~U;rT d>t +} rv,[xmheW(rf&VL6wy._iK7vQV,}[;?r^?s) +z3-ljfb ^78o 8tm .rdT A4js R;nnQ`'xbuR6lT'1lLK?:m~pE;r^<1{t)W;t@>Rdl(~S7_h|d:r]QL&u5i4h04lkr=r>os-W 29uIu S^?R .rVX&'m l&+yJK@>?o 1ql^QA {5wxFuZ;jyX^&p9 `5rg+GpAgS0?zq` 5(ldZs%mi|( K2jS=y/Kn}:U 'Xlʁ w'Ynʃ_65-|ʅU6-{VʊTy+}2C47 x &o!2Q( (kmC^15y3[;4$m_n)nm;SY93A{F wY/yjS:nV5kg?k=MXt.s ?P}Q[ -k ^"& 8?'pX%np'GV!@m|{ yA0XiVT)s5O-YR5RxB' th @5SYT[G(i_=_-lR6<2o4L%<4x[_:w M9(:t v'*qKSg=|w SA4nUW)yS_ )qDF)u. U I2$zO[Mx,4{, }8;HVD+ks,u*yg:~6r_^?1r= 2~XZ-/Yjg  'mo #/uIpm9+j1 |)gxeZ;wK^5=|_NZ+MrOP&iGc&x V?qW%<uksg`<o^UYH0 P2wL2z `t2r21u(L28K3k)y~R6tqpF^(iQ=?^u86pG[>=:t`%53,l )8wS4hN(Q_<k "[ *mV-Fp'wn4v9yU~rT&{hiG8_)wag j(\9-&&{̗LdN5kp h(-u b*2h3J=jc8`1 tOnG5~E\Zw-{;S.}Z3%_M= l$S!9jZ9^25$ %|,%BgSh0pW^y93hIVtB5ly$9=Tq>/hR7u8},m,V"_,*t R>.%|Z`,3{;Y&r>+g} 9z,Ug%vNV: x'Mv7V;'|Z`?sSy 6?xZ ;,x_6dN;-r4Zm.zk79?$k{+~4X+y60s@n`'FVu5gwƋA?IR*%}0S<)5 ?^<qTR)Wn ZS,v S,|6UZ 34z<S*R=S9whQ+"tg\4="t_({/:jn={0IJ`:u=_ -wL J6`|W.*Gm3A>Ul&X6Lt06 9iK8zx#Gwu_&%|$ D 2Q1o# K!I5,MV3.v[s[c;?mnYd+Z!]:e~?) .E.zeW=h 1jW'.hjW;rk\:)6xU#3~^<yG*xf=Pp9,>$?$,>&A&kwZ 1J k},81^&>o+gU+`rŮp=mi :q_K*"t fP2kSSk'mtg+XutU6qk}{Yz (reWd31oSq8w,l9q[0}o"M3+zh i^)TirT<0~s&}Q(}8AwJXg_q-uR<4~mMaj7 ^a*k{8T%\q;@S9l4M%]T%^v@X2x7Q53k0O%42<l PQX0t7k^}5;trY G<z -s>  y];Zigr!-p?~U)+s <S*gULw2,p @\ \8n0 ._&;n #} 4|̘; 9v\#0Oo7y;};MA.l1{\A+q՞uk+mՠ f}<waZ)/%Li}33|W>!uWUS<vR4\n0YkiUL0iU:qi5 *sMoX)0z^f.p[L4*g\7o.s@;~s+ui[\+mTw'2nh|[^/E{,:Xe_<tG>I~QV~9t0e-XL^g<o1R <1~:x+;!3RLf2xk%[k-tw6`\7bl\25.x BE 'rnU J& W'8oWVC) uVD<VEO,?j^#>cƎ\w0krmS:z=May`-?[R%-~6?OQY8- Xf7fuu;oT=|r)_(sg^p,{# U4jgP&<~gX{M<}#% Q 52OT 53uDv+zqU5iR8Gnqk6?{>/uk^M-,lmp*~kY)}r^?|Y(=kuLt,zX,.6jj J}?0{SS)i.@y[/{ZL\7mlv%L]7wM<xiS*{[n}5dme\V3<qkR/tCn9glL"3:UmWX;lnF V/@e)w L~ =yūpv)sP44qLz0xI<*M&'k`=} Lb2ooMu7i}.1lh$ c9rh 5lN5p3?Y~+{+S7|R^/)oR*_j{KS.h- V.jj*.nJX;?|X<8)( +1zUh7 oAYvR7o[p8h3$R9jC 4YgC[?hY,y=V;^tV'i4G),uyV2L&]n/S 2{k':N_ :h! E3xIV ;{2nSd3uLSf3kSHj[ 2{t=\*,tyl\*Qn5X,gmkY,ikW-;p|4_i.=kU2xsSU+&hUR-lU\ <yw48DvU s+xuh_/8pL0.i,&[^&ptV9Y1T69FsW.u)(fjL`~0s5qE[)~)}W]?J/1m=?s5U_ a0Q{3sZ*q9Y47&Xq9(jW+,2wPl4tM 9&uy(po*sw`C9y} +8`W^E< g?JYq/if-m"Y:,xOX?4Ti)76`&8~r$0k&SC0l>{8^I)"i~/gM)5tLoH&lT7w5cM<omX3mb)5rwXj2kA,-8auT-| MX 0uRg|5z_  >p[Qo,uW4%|G^=(lX^_<{9G9k,IW2-h\ U,n 6>inkCP2r5AV=4_iVT<-=x  (7V=V,3ss s9h(R'rPR'kQQ: kw\W>tq, )c \X>lH1\Y0w3Yy2_u{>Z8n<&oZ)y?*_n>>lPql@''lΫDX?tiK[n;%9|XG7L K4B}PL4CjR0gk(_X3mU-xTt/vo"T5kC/v8e1z4tS.dtTP'h<?l|j>%1m_5(nWQ=<j3-xNz5>{ yL7t~R8[H."kv*}Z( N:%~E_4nyW4r-av [[69 u  >h q5~-U- +N]--hN$b&Gx2q=n'@sWqD_=lޓX1RvLyV >gW.Q.sl [=[25ulVl^d^(j^w.w!nR+ji7!oD1&x1't&Lf3M$(o`{3~}^$_&ImBsXl,"K1kyt->HuMSdd2pf2n[tk-~mZ&s\Y=*{fJ_*)vfK2~U& b?l 7??l z_x7yk\%;@$u+~mu%vg6jh@mR&'P<t@lbX8Rt>:(;W~/|9kd9y_&|o7^<yr'2z5s(:w^z5kM< Y;pV< *~5% @Vw2um[;9hOV>`7mh9o@+SKA+TSu5`_nR/D,Zkn[am7t1 6xSI2BT ^(,mn}=|}U%%j5~3K%}_<8?OKv#,m^s e>2Nqe-[-8w:h#,uJ'1$jb 3s^4&iL'rR 3oQR,mRK<4@{JY&jrx{5~j(Ggg.:x^ L:z(X<]xX; G ;h4N1|mB3yxx1c3x_/4mJM[z ,1Pl;AnX0~H Kc'gh +:hRrO#]"4skzrQ>S+w|Rc-0v<r:=fZ0yx69wZ(rzY (nK?x9 -z#|<E/@&mT[ _%|cDj3M[0iG[0oz[8xS:k,:zW )obrE>2i2OuX^)Vm0T0qA*6nS9_xs7Z:zz`<)q!Q70q;|zL1: w=k$$=j~Ly 9#|]=p8BvT2hZQ:t$x@[h=o% G1/lh%Tv()&q  s* h>Z)*g7}Zz' /p&^s2}f) E?sq o^0g}"M\Q'iI_8~*fwp$ZF45| ];q6 ^X-zKY :+tKZG`;kI])EpI]_3qM$=kzz8;=zy?SN;>q=*qz/s\7~i D|=l3So,`7=z[~8?kLT)4vX*u KB6FlOar*M-tU@ N8o%~N^-z|_a e2")~`M= o8CkWT:6liНXNX){tQ'V:7nHО7JXPz-oXXQ=8rH'z.|p"o.kWT >sS-U0}IT(SLY4tZ[o& mȵe=%r`'_Y*nلYU,Fi<{h`)moTn:xpE ?; ^3KsR6*jvVT yn-nlCZ6*q >xK6@X 2;2m](>l?Mc&)}S9n\S/:wQ 4Ps4Qr5 6}&Rv 6j1r!*jH0pgC?u717{=R`7l _.odC_;1x'u+r^'iZ&v9{}Rw9mu};x\k,i> ;{YK(sAQ:Vp'\B&o={T 8z7d.{R{T + lf74}q^8sSS7oo6(pF?uxX0l T^-mH%u\wJ> zH Gz3;i#}@"-mrnWF>Msض'I;wp!%k(tTm8:kv4X[k_cn,5Jl j1rv1:yPC;ni2 `7yK<S&4Nu ?*_}:uR_N0-@DQ*oC "?{7im1, qZ9x:yj[ORU%4oS@}&@V*vq_&771o~M'wTV;.y"s}(pvv^s;/l"&%vM3ob?s0ZPS:]jY:xUyk(HSZ3u"y<;pjT +v2<_L)oL > pK%5 c8+sFL%={plYO=-ihg_$3fm8Rnk?g\.LmV\_%t  68M|TZ 0{+ Y<wTȸ+^f-lwW7L[8U}r0o/uTm2o4R517{CKHh>Gpi sM7<|ss[+)* *Z ** y#[U Ty |`T&yQG8~&%`\_2+z)\`*8nm*^+:q%gz6zzz7+l61.tzZA5hf\+i c3hlF=xDo]3yfVF&|QLLB'Ci;e`={k@` ?Sl ,j tuv:ur!` .N*Wp-iz &W= |/Lt{S0'r=L"(j>}A8rj^XHH7kswXI]) gWY 0iXJ1-yk}V69x{E3y&VR.gye2|{_HsYr>o[Y A 9<8nA^}?hpY z}_)g}[`-~<0k*8&rwI;n*n W 0i[ M5w^[r5b1^U4vE54}>zh*t .+%bh+h%c #`01raVs&bh$^9Lou?9PAS&m6 q}(&V8LU'{M\h5bu*9J=gt%[.cs35[1%s& L5<'ulYY9s'm9:[W<)s;?uVL!-p: <y1s>b_3diu^*sJ)U+!rE&o.&|*M{;y &=i T_;lʧ&2sh[} 3|y7YC#+iGUa(tmb(ob.rsD7ViHDv -M@"M5S+I'kkRu2tR 7pMD#2G^J)*&fj ^:|h;&KѾN.p.mK%0oS5q $s@:xSoS%8"go_.f|X,4 ~P^/s#x|[6>.r %cX&y_rB3yY. lY*p62Y 3sn}/lMT0ndTz:'}va\j5vc,*`5? )4?MX<w p,uC+n7nO^37rO_>xhxT0hGMsl>wj*gs0"{{L=|{Q>>qS*Z)fz(WD3s=WE)uwKt]5oOpS4l3S-Iuq3 z4gS3SU%}܀ 1P_(%i -poh'Zwf }8s?`#'[wW=|(sr>v ^`2z <{X=hSi _9Q,T. ,sI5/kL8gskR8hl3ZSZ1Av/:v^1xyU8u|w 21#|$ v&{jO7|_.qM `,mS\-"gQ{`%Lls'f\'gjQ[8uhKK>iiY?muY5lFu!U%{~7u=9Tv)9|`_46|:V*oK+Wy?WhXU){ZT2}3`rV'ktkT7U~-Tb4zn9"ktY>vneR?w[q%&_u2nBPnWK(tiW 1s`1q#^/z{`B%tS;>'To8}a9jiHM9w[J}= Ym[K F,|uPL4*!R ]^;= hTYk?nM% 95zFm5v'q^f,s#T$;wH^Y+B|-\q4=ue9 7iv/M]2yrb+xw <y/-y`2~g^:x\^P,vUX*{ {^.\; n2y[( L2tRm)io 2-n/x,Mot4lojZ*jwڹXg=t-BXh,z1B[/_9R }5jYl(% ?S5Ej 06g: )m}(3' p@o_;&~D ;7wA/6/4pAY ->4m?u(4pZY'z2 ):iW:)h} _>9>D ^'wU0_jAE[#'vh{ `0`uFSh,hZT7pX5yz%LA)tX6w;X^'Uie (z? Q.ut`^6^?tn/[ ?sD@65xh;%qpY`-jn4Ot >/l %zj,+U)/vn.9C|S`-tVvl_>qW\,/w7cK>z-s ,7xCS;\&j\;y%k% ( r:6H8zv-{\;jU %4hP&K|^6|T{3kYƨ0W~^}B?qyrwZ:4p )q?Y,iRV!4i?ivu?x[W'q~f ^>o V)-?^aa-[snW6'(YtyT#?9}R'c4,iR :0coLQ(4<vO15\<w(|^4GjGH7sY_n%wYqZ g(rYb.jWYtW >5sS(p6h6S)-hq8Q7>i[&u>\&pQ*ajQk8}Z8sY )0&k_0'pW4$ :{Trn8;x=~S-jZf+o$m9bqZg9*q2^=Giqq ]2'`X%ezyT;:gV^~[:bV7.n{ 49q8.ohYxB/li:N|&S.T *v9S/ f(w,3u:S@_2~LCM6 7~%j\F/Q{*2\,&p<t &F{H\-&6Z=w~Zl8o4mgKw _!=|G0V}JL/t v'iRLR )r 9lY 3sG4k =;)iU'9kgWb(um! 4epU_)|P <sX%j+ p{*~y|"=ocTG/S9`8i 2f72v|[)yM$[)}9M(Yg_I?@{gR8*yg$Wx1k$\S`U2QpW *Zk$6vU 8&omd4Vs5'{s10!~Q&iV #'l4z<-qi8s1v.X, >/ 1!xXRH.~/gQ/k\ >shjd`-q7j *nx>><v%Y.SqK&hE X6+6r:*Lh*wi*S&)L6@TC.,ime !v=p^(z#{&(u@~gi3vAv;tmi(\8QWi~;usi_*r[lTj/"o9W2o'?DsnHV,MSE6i\%/ƩB^B6P8il!iY'x5Xx_:z82'c^'e|Xz0+DjOT7 |dϗ1ZiLQ2iL)nLL_2uYW j?y]W:lUr I*9uW-L}W,fpa[|N4lM)ML2j8y\*UxJ^<wPDR_<-zZ\q<r`5{k!kO;{U-#~k. zL~^5#oQ0jd{u. q|S9y(hcW@ \s&-> 2lIL/nx+~n^)7_:o\'_6duY(?o6hl`_8K?[u@0oP&8'ME/*|]^H3}t_?,=bk &2DK3mk,[%7y{$?&Au0F? 'GKxM-hHT U,|^'%}y` o(p|"l(i3C\@v3DZ`7osZ4:vC  T>gv]'{|V 0xaU ,~{ wl)ytT/r.tRa-EvQ ?x /}&Xq`@8 f_-ygkY)kMWK<W:t tJ Q7leU^h+prU&>i'.+AzR&xy :QqiJoqPY0B6~kz":]Xm.WhC)dK8>i:gqzY1N6ޮ J+{[ :9u:<}oK\ G({!Zyo?6{2mY?'x|6ku`_4{? 34n 4:AgMto<w`^r'n  >`s.?Xs{h>^l8Q'sV5hh8*y'{\;/~{ 8lbZ).!ntH9W?si 7?ttW?uxg P8gdXX0 yUR8w] [U3]oǨV3^sjmT%zvx!'mQ w;Yg4#\ x2q}\n9tv\59Bo0ie[P>LDr.jGM'4}yI %,ox]_2<_W%r_~\w8.Mv %2| d,7lz4Fw_'HvJQ*spF2n9Y-{@{.q@ r5c{.v^c%lISo?i KT7pg\V +[7:yZK*x<Rk1n,_/ }OYw9lv Q^8'1gZ /{^&T}lUa.1hS6>RKo w'l^;9m/z,)6kXW1U(vhK,|mW2(o8 ";xMU,?-w-{^j?/lv}Dk3D?t"2lRY2s}@M+5ho_/squ*Ii6*Mi^K^@7v K*N^=G\ , }WN<h e+io|=M.'kmRS o(mps>>YyQf3g"u_3k|A3@ 'g_,1rB]/y-C"7Ajh8g,Z,~SR -=pX+^_>)plt_;m~6iD,oEL4m~7~';/x:c_-n!Z%~r`%X(jf'iiC(p+`V)|.(4i,JU@ gLU@!kMszZ>,gwT `a19mZ_$ c*+Q}'  z#-v[";VqiE)m z 9fq= ?oh, :xz[0\ 6%)|6t /lL+|\ =4s_>U4kvDZ;6_o;TU e 2v \2q'4qW?hn}:lJQ+zpSW/zIV`;vuR%4sM !_1iyMz9<m_}+*w[ (<y75-.QViF,:-6o_f_`=p} c ;w*Q=jLL+3hAL6|%l6h,_)^5eoPE,tM"7oV]-JиV&wл?(n:4yvRl&PkO^`&Qr"(JA& xK[4.rgMYh >KgNW$ P.Ms LD +|p 2 nMG?25z%K/0@h| Qr=yK=~2[*$7ryFX9+}o.s 1| 1+2p *zX[c6Nr|MdV'zZ)^sZ@i3"nK)3&x}= :s W<(u t >2Uj 0)p8 <,}XG+.0u%P8(5g_--ra&-/rd^)dp{^5ty_Ab:u6$}d2L@#nn2u<%^4%v5X&<'LS.g6qP(~y /wr~S_A)`oMk-tv^ 8X%0M^q8wZL 14}T%}V4u^z=4..}f5S/m*'rh\/|3$\'yMs+msQ:/| Ot.x$Y/ 7Fw`0xfJ=gіW)W(@ј`+t %&~+=rh16}ɕ-=j}Zx;My  loi&w}6 o7o5&z=r2F +p_E'G|2@p5m0tE 7o[6T|l l&4yqQR7EV@p1X,'{<XZ7;Sj`+rp7h-;VW?;n/qr3V:T/#1j0R$1oSS-er"+}F6ns0wyJ\#-qo3_-*} 52q1(s*r N'VT,O'rT^'gTU7v4 >)y*Vg 6C!óT]?j`dF<{/^ :rDK,laY 1v wK8r(rKr43zr q8qKr?Eh(0lK 3qEV )y$m u0 y '0 o:O.u[_7vq5C6'rRr (Xp`9ui:4z  1ym:86!oQ!3ib_3lW0 e:{lW:v-I;Hz Uz,zS>U+.>gmLiA,#}hRp3./Z}5}5|+VP9m(:R-ki 7u;#Xi@ ~* ,a1CJy5_vWv>z Ur';b}mu7 {i c#^H:n&[8IgkZq-fC'Nc^4'Op 2C=pmy&L0v\ 7z&{ q<q~E4Rp%K}'}(@I*#uUW3.(L )[w?r^l8R_X Y6x 0w<u3M<1-tpz%ORx.Xgk.YkQ?2D{^M.~g)<|~/z n59y%q&mv'l~^9JiS5o9!^ -qq1`;Ea ]6?>Yw2~$\<te^2iu$y^-\3WA\ : Z? }M]X={o3~%+)}{>VV+*iK>6@^&n,Wk6z[2~_S:kq%i0L5M(w\qs.C&ir1k4q#Y>]m%{V33..xY$*mWz.6W{3EnqSG6vQF7}}vQ3+cGTBe*qH[)3kYM 8;s|!X;lrDYN;WH %pi  4`:>mj=im9gZ1|!LZ1y:Q+sI ;;+/yKu v8v( Tke&,mw6ws Q48,x,3h<Y4nK)4h :CyO .]-^pL(7Ysr^x6VsOTx({ٞR 3nZ=%=xoQF2oR$X=mn]:pj:h1bj }S6koyC7{Y>Q2c/[+S7&?n~qqp /\|[x@2tg )xL:|hYv2vuLK(i )qvMM+n(M !0x%{t,Xz S>{v#Ig7{p WS$:~eW 6k\'R{"^&hLvh =Qp VI6|i9 V?CIV-Q}U2{JLaS1jNZQ=Y j^06j W ?'489oD*K%,p2tyX, 3Np;tz)`S7uZS+nN_Y)gweo W7X^)79pT$9Tm&phS(T|lf0zv$9;ju"=zYU 8~^5Ll|T1kL+~.jQ ?qb53)x 0s7{=yg\i`f,sU_&lk|q 4w<b%~ ^)j/:XV77k5g.T5k /?qYZ7(gnT5q3Sx&r6rVW&8m ZDn(M}IGO8u9X(j VK4t(K .=]A'vLq:.hR )iQ})}SF;r ?kjuN<yg&4^oY33hPL36hV,j5-yW _8,sRz%(oG3U  4qr  U g@'j"\xTr-Nkh['6}X+8xuL^8j-S'k<xBL8u^L4k]Ux<xs6)u,%tUJ-(rx &SN)rK0[=|JLd5}H05|lR^J>*x7Xg:vtW ^7Z|^`(.vqz)~^R-xGKn/M|f+ 9& kee 9z>8zK67iV 68~%_ 1yyRh;%z2 1h9|T _`; ;L;gR n3k Q+W[A'Bvw[(p[4'Sgy^t>moR7.VxvuUD *1i{ 0NgK&nI_>z4[I4fx],KO4hg{:+yKPn*l#/B(o`Y0TW (-wNR5x[KG/}f_h/ywtp \:#3?+8R5.kw{Y0IvY+~ m_<pU @(vA^Y/iV\m-su@ve K',y_9s [X3u!@J^>9(Qe=dyX4p\QRYe{;Nh +_L1oi`L(T /7m{:jOO*iJ|nO2ynW{<5J\'sp)\%R `uNS("rN6>pX^,k;drh\p7nT,Bq$_0(cl^$*.ot n_ 0m|;yv^,{6] 7){'/t o'4`iwUI @{U7HT/UJ(h83v`93}/=W\ H?9lZ(nzwR*E.gs/>{n5o?%Vx6"Yc?Uo&W  )|v ,"8ic.b{q,qj2[{55'M18 ` [#(nm71}8S[/ |=Yh?}~W0q7U 8mj?.  9xj_9$1m_`h1qn_(p[[5~/0{X)yqmUWW^(gwEP6:~YEo6uu\"3-o~K2v%0}s-':vn^+t3puG6z/ͰXkW)>6,zS({oz&_q/A{GLb/BqH?)SW&Z:,c}RN +q0,dz`A?h>_.:}Ko5[0hj6'o YV%uvW$,2=^8TB^%|~+ qQ\9^aw^=CunV"D.kh?/V j?ZR?:hOG@]*4n{h^t;z;h_`4p#3shs^5Hzr_.};_sdL1~  -^3:k{^&smV m(lomj3jyT,pr&8"[%4X,zpDX[{_&9qpZ>g^|1wh dTp%YykU-r( -vL ;l"<_<vk<8fll^.~Jf^R[=\qMGW 0pW6s9*lAR]9v;2 wBX'xKM)(vkfE4m s:?mV:9n)2 SHm4v q(;t+\k&=o@Rr/4z!Zv/;kZx/<keA9lEXk,^p{<Xl+{ 8V 5=_k4piQB:=app}'p?m37W{;Y (yΙ//2 t`D8B~.qFL8ypA_1uu\~ 6ggw 0t^ b=@1hVm_F8lDVY--}1tT9v~U>}k! 37 &&9nc,Y\n.iW[e8t@~R{>+n#~ %HisY]^3>t~ pe+{S4tH#5*nM7<?p.`D3xr&1pzL-xj `>)rWb&p_,hn-U:kyKp90o.uSa?v2&L_m7zUO61kJG\ %6nAWq5}w'=U sM.xyGX1 3(tg*&u@#w0|_K,@n}QP5ik=;9z zL:_pia B:`q [l4RN[ ?:aeb[=7hN`*m<_:S6|`W^({W_4w$U`/3n5R3wv a0HmL_'jW^P9{_)lg4};gs#<p]Z,}yWu (}#W7mU^.+nQ?p-Q.SPL )/nV7;i[[G/0jcY/3*Pp5.swc Z;v@ca0)oSE5rQc(jC Qd@'rW :kX#0\7_K,h\;}$0T*1%-0.yQSw5$~@\ N/s[WS;jXm5} W*runr<(hJ4>r) 2Z<^i_=1_V8g_^g=OuZ4s]<e4)sk@eY$6akba5Xrr@,}<Kc5 qg3 <%o\0*{X^8{zo_%qAWh 9 zjc9lqV@_E?\zuR-p[&JqRqH,}Y0(dsK4.+{iF_H69y7U9M~T9Oj TX6l}!<}`SDT4{l^O7Iv .pgQV15tTM3~R6Wc1r%U86^?dv{K.s$v^F'[M9nE0U{c1"py^&n4T3y{X9kdtE |4}c 9{~s; %z-5{&z]285nZL#8}6*&}\u`%d}!x6 ;+sh'mn 92S~[Q;z61q_6{v&3s +Ew> +Fu~>CDL=rZS: r4q(i([nqXk(9{0 '=9i"2`>O{_+l3B(B&o^T%Rs1Ue/q{.@tU7so& 0p(K_.nR<"}@rR,ІUg1|0_4kaU[7n|1UTV*2xK0uYn0i*_U5hY/=fh_F.e/k>um <m8*imQ/9"LY-Y.X=v +~i^c>5\xVAVY1vI F_&p^l9W(E6Hsr}6uH Zq_1DF/>yLh4}gR2=r/P%`b7qi'g ,VM(pn-A0;o/2G:NTJ`l<ruM0<t f0=j''v;Kc:pmH=kE m)kj_$?l~eX^*$oSv[)o R3GrtV_Q."jfx;ol 1Br?Sh^3~Kj3~Zo/cC5N,>}Uqj7ocZr7 dZq/eqN  v /dn5r 'r?^+,ui^ 6hh&^7r\,-~K0t.;qX_B3gY_K,Yl%v^ S(uZx<mZ 'gt`8}iU^:HZc .4A :Iu D'~v+3lQ-zu[O(Lx~[)SjW[+g]X*p A*TgX`*sbgcS=5Tp(_4w5VuS>_m94c}*]> rY77v~ V&-jjW.7D~W/E0q?^-&!tN\8vVR\8xi;Rw-%tPM;)hW[_85XB97<qҒU^*k-^%<qTL|4VzTL/8R) p$'{OB;kp6~VqI<qV -~{2*;p6 (&j6_;x_ 2.KD4t*<x2w' 2y ,*t;S +mhZ"r)jI" A-?s(|LYK;,TA^)JpkYTAd.rGȟ9Rwnb^*i0*Pk\\_8>kkC^<h  5MY} 5N}P<7lSC&*-S G2,_T(|=i; y|g/w=K_6~W(6kgV6xV/6g/16:p@U1 /66!y.)n0R\3xZ^/wlW>6n!WL=.p! :hTRX(J;iA K)t3Zi½n+l.`Y&}* t'z_}'o2_z(~*V=Dxe`e:Lw fg3su[^+ o^,wNp *v Ue,Io)HX1@|X[_,$}5؟_%t,@Y(80idW" `4tWN=/lQU9kO0m  7l- }~`0u\&[( /JoX80jMVIn7VJ0jHgdV2[m>(np,<0qD)~> 0x^3[rX/~8eUg/x}s 7",tg!9}S1|g+ou8%, D>~Eq,Ht ,JkZX~f.oK@3vuD `e?zsl\7vdo / 6#oi-{U63%n:-x;C{KS4L6K _9E/ s09Gj&grW 6}c]8V^D3j!S+Gu54(i:hrSd0yGwS90q*>umiY =pDZ^G)MqU6U}Q7^+h/p=v;\K ,p h}_4urzZ0(m+~W?p d7%X 5pSZ'Li_W^V]1y.)X9j4lW>).<VC:so f/uU=k)tz 1j?q%/Hl7'&8hM5=y;k`,.v88h)U9h7;sST:iyKo(mZwI; i!$*|L?4x^(>=g^;(}M)}Q9N)zM~ a>rkZ4T8 /_;:t8t5hkX=k()5S@Hpso1qY 4x0yD7Qh?}uM] ;0M^ .I%W,U%Xj\<~~8 &/n$K6~":mzW, m:=LP.gU\3J% 8]m nA-k%\64,V2>%z ( 'VgMz>W{^~/}-gR*zj5tt[ 2"zFY.>7pM6R ^-hq_"-dgq_5yj(zL.O U76~K\i:o|KH&~4"%`7zqo|X02{ʒx,N-1{5xUC>sCg8^?6uS 0jsZ'iV.[wRi '\ 6h\ >}p }->m _7si  ^'n_'u8!b* '3,L?!p"<mjR}*<{91"_2jM}5%"rB& ~W:vaW}&g Yi9x)sU[Y0gsU55tx Z9X}aS >}b:w, 3M{) +r8U+o6rR('zFR })xFR(({kF<+0v[_&h>! 31U_p#/6rY",zc,m>>jQ$>.~S a$>hs\L!%> h2n3V.y4U \7 tU0|{4U< /~ !-$.t/s:foyu1u[A*uQ 6%xK {?M{* 7j:R+/i\} [<twv^=!oKT,wyW(xT +t E^(n~f2.ku ^ (gpev-qQ@2u  >"k)3gXs^?zh /g //tmf>;v-.QS77@h,7^mUy'-0rUP+oPUQ-]tP&@kS#)p^kX)r g^z+@xiWJ0Lx1<Lu x6Io4^{9>} }9?ta'dzaf/rxc}fnm)hgh^+N S2p(tjW3vL00(w D<hW&;:hwW_3YVf1goL3n^4w^U)si1'Zn.g[U}K0Mlj 5vtC?i70MN> h}MOa@q} [<+rNK/k\*c6rCJ8YE- d6/wWB8mQ^%q 81vMj9xNj8n ^1k_k?ynXrXS<xƒXT2m7T`:v5Yg0Bon[v9YZ[;;m `[9l; b ;v[<J>s +|qEM**Q1 xdy`w1 h%irr5mL8#|,| y(wh^ ;ܵf.{X,vܺ;~^ܻ 88<pU+Rx_/.skS-98}2L'"pzq1J^Y&hXb\1Ty`&j<"*[q 5qQi^&qw-54s  g=$jY.$gt^\<{m 2C|- S<u^< r+oXl*ShM#vi^Jj>2 i(^mH:p 3^2 r"V,C76cuV\.)kO _%qUF/jUGJ=~I*S0>z{ ^9&t+muKi`<9/oh+nNiQ0pX5%k? XW&jo^ >1L)k8|2y52_f.n`S3upY=5{YT:iq 4l y(S~/d<_H;yi I-Mw9q4yx6j.X6 T*l[rL{4;r[1i'6AmT)|SbD]*oqn;S3*ru@k\wG?5sw\ 6;|>$=l9eh_6&o{7&jZ?+hV[0;oa(gK+/2@kup2{,4w2u[= %{tL+gXN,M6+tv]+?x'a;}\t; o:;4j[]-voX $*t=.j.~U6gjYS/q\ L9kt3W\3tt6WL2~qa l/jlU+9_R;n (2):u l'_uP3U%gr+ :B )}W;h.~7>kQQ ,-HǗ*u* v#3N<o Wx>njStA8 !U*L 6=r-Su 2mRU,AB,iZQ T,CE^w-rZ1t^8p>1p,7q%3~a7uQVlA (|OWZ*RkMb F< y h~&dwg;UZ4}nmI3mrXv&mI^0cC?@p_.W0wy;8w1T{1gP00y*_e,,{Kg^'bvS=5z;p_7sD_ :trRQ.';k1P`3>q  1~_a*U*kY%u5t\{4w>^>s\|4k>`:YmfZV9xf6 mX?v:U YA2~β #5l^D@ jnTa-<T f.pT{Q%zP.g"]x(Rlv RfY?%xa n`/jR51K-J'wjNZ9mGZ8gLL=.;S}t8wt3 |@WN(;w<Vx5lk;2}*F[ 1o[%*HjZa 9!p  <o !9hz8f+ +Sz>kY%58YWG:hn?L;7mx &&u/ w>8qOT9nM}L*9liT?hz b`~-i dW%i,Z &r~h=, )i )qK1ygSH?}-qG&qV1Mq % ~L.Qzz  :DBz|/hW7<_5Knq+wz_r+q)2mCh_ZiB6yYx o^,;z|?%)o, Y'v,W/3kq<M &m0uV>&W}xKa'|qqKf.u}>Y{:\vELFN.&lV ('j %|_/vf;`j1o 5n130Z&}z:SP6S -qlZL(ImS(#j]%h/i&)=:zMqBgLd.rB;saфR1.x(  r<yu%5%0 $ph1R }4s n`/qM?)y9 *|8r +h U:&m~`]*S 0 ~R`{;Q> n.s[L 2}z#Yz)r$U3r`6rh30Sx(|U[^jE7 pK1],Y83!uo6p?oX,l"+?chH 9}~7Kzc Y>:n"WH<a-0&*p4ztQ0lnU!(h?2 k1(miB3v+sQ31|W: Z38myXj Ug3"6m يV1GU^;$vg_@ulIE-~]TI 1[zc[44i &Yu4^Q&\npD5^t:SJ%~R <l)Z 4q ZZ?kZV?pZ)DXz={WJ+2n oa_*tToc^:8k^9sV)CmYKt'Q9'jR*kcw*k^ 8w|<;Dp2m% =wbvx+PzW7k%RF9mhw},iR2/[l>}a0?{.`-l }R~:roM1;WzZR q<Y$R P:}\Q 9wu^.yjU1FwPY^*~?wQYq2;~#X*^n  K^4om2_P2Jrq ix1>zV~1?Z;nVd;s,Y5?yNA_2EXs L+seV%-f}WR8vV1hr{6{IU) {2R j<tK (iS 1.WRX3txYvb+hgY9Vs9Z{^>~g`m:oJp-B}^,lxQ>=NwK-6l:z3 V?:w Uo/$pҳM31=ys 'ivR2k.;Fp9"'v!,Cl\7/h9_wW/i#\.+eu8` Z(wQq?{j$^r9J"(zC4 >j?zdeR/.xB (M7 ^7 tZ\  :}XB 1r>wpW2vmzLi<n8W4_+"V1e|vL(r; > Qd3PyVQM>|Qz)Y}' K`s56j[@%yoX<p+X4,jQ^}?z`?zIT?e((mrf_4x@Z4y}j %jw%k}Z:4y"|/y8 8rL`=xn^&5M hd+(mW*lyNXD3{0 ,~r<>lKX:r^z^e5'yR6=R#0auk6><t%h^0P<nGMPK?sA8,nWWx8k1_K8sl up_7\dT /}!Ut]1~Pvh^a:+.pJ!K30vD_N&t#My9O7Z)6z;R:4y59Z(| -Z*q=uS 2`[()kS}/x@RMm)l9S~/xUMb:o )T%z%;[](${ 0|b |u0 !)gY+_xnIo[,_hvygf)R=܈W0nJyly*lS-og9kE3q-q"1)PK` ,[&)Qv_MZq ,{ _3 *0u0X7 &Uhbؿ ]6(ia *v_c@&jr@=^ki{ V&.yjR &0pV6N9z0s &m4_ 3/#1/%j^5)mM|x0vS%q.9 ^-*j5;/=Q[u>'u5 2K:^Z P9Ak4Y?-yEX|h5zBT`;1jW7 9zQVJn:V *mAMi9uU3%!gl{ +$iS2qu p@ z1<k!C>w_;7i)M.ys_'-v V^-{`zB9,DG1[ d5EK:4V+#LR2rS]U?r9R%w8\H * y<G\I+[#GZ*d|s ?w W!9~#m|V(FwhK-:+yMW1gQH)Agia`^:pr4Y<u_/4i k,Lq^r,MxqO@o+ K(}VL\>tQ'#N6&n!Zt yxZ+yvU4 ]Vd3d 'Ou%|co'IxZg25qQu>|});k8g,z=XA6~W . ~8/9g`8n74roBX'x.UKR3cw7Z?w: '^u ~;zmpV%,j܉Q =UgyhLG2mOL(y> 8\~^I<CDN0Pn/mJ)no;"z^~"~5GskY3x!ԗSY>u7*-wYM>j#ԚY,bu W+rU70s7RV69tau_29n;4*xM .l6`2n7Kfjd\v(~;M78u !4z'A^d?%y/6j,`|.jrTi&7t  >i"^`Z( ~ Y)7pX4Kl5WY%.nr+[&} %7vUA*ve.y(3U-2jVRA0EvyDHSk:)FX W/Ԗ -i+ `28zwK5<7{M_}6y~C&{M2Y>3t(HW-2!s#z8pzq ,~S*9l=-w>ynK>&g1%Fk}i^z&1F 6nV[S.z.V\/wT6w@|R/C'R' >|I =nI-n+ny}/tn9{>N l:R9t>Q xS9yDD0zX+}H^8wJSu>n97^v>h8S[ .wy΃_ .w΄_7`ts% S7=}+37)-wYP ,:{OWYQ/ WV K:g|b?wkw6q&"'^,M?|tz(l%3SIZ4ZguQ<7s -`w3_0 %Or6L[R6-naL`I8+h}h@L?o}Xg0>hK.ji%6j'pLP?kHSr4~n\b `<}Y{(-jn IK.PZB 8jl4_=3'kwy#t7~T+8y;V~8.rX0-tA (r 32sT3y$Q**gf<u=){%='uh&<.| s.W&s6U>hN_~{5q|N o{?xr[S+slfh. i͢T7cVa =rVb-lMu-9)u3_*.Zy\lf9wdli`8i 'oz"3yQ_:1JT?},*=Lw?{cQ(p[ ?K(wYX*:f54g}TUO%JpM <5tW+\(mGLD5wY H6wX}%IhDX]\8{SK:rXwUW3hd=S08xtd]-lR= 5+qP20y yC]3}8i#My<}nVu<~+_&V)i?x<`8%{i^1\|rM/z'=X| t/~dL7+| 6!4I;V!;tFQ$;nC_j9qZV#*|5!;[n *syV%o"V4sE{ =$E} oY14T<R&jk_)5jv *kWo%k4~n>vJ1H$cxo2_ (*AnR[UB><{R\=q(sZ9k^Y+7xO}?6 >nZl6scXOB3s>dW5xeM X/Zr+DM '\{FUx2bmGT_2|<$_^/s[u/=6Y>PIGX"(k{} V%>msf{p5{tW&go ?3xpƴT&2}0.T'[&u'M(s/|zm:^X(v~,w:/S<<#m,<% >3!_3huQ5w)eRwK7h;\Q3^y>;nDW #,rufMI5%xKV,qRD:Zo(UL^6nRE5?`UR=^#6o|\QR+sD7G/oi/piX`)1 |NQU.rup_90N'j |X1gR u|^=;|aYR&^+~fs&O|bd=zFJL %7dj|q7p^(oR6j i;XV(hiYD-Voz'%>LnM^;nfl^,y{&_&6lW LW9s p4~) !g8(qt 3lz#^[(slKV0*"{ sh^ 7hu l2Es8  f0s%Y*KH ro>,CR/;RpC^\b0}Ys)w9];KhU_K:8|aV L4k3Hr\H5_P?glP\02\[1f7? W8l|-^n/}ZD^&u68])=)DTxS=Iw]4wRJJ4 lYRK >4 {Y~4`.pV .7{h[p+inR5 nTK`2a#nV?FnW^5s/ȏ f,muW6;ugTr8EyK*w_G*{|N(HoX 8m)\rw7pQX(j6=:o[:Rs,ZQo'ox2,jg=[0i*h 0kNMV4*'~w%?~ ^&Cn8)v%ZM6MviM  4qKM! )on_%. txQ 7q2w\'j*^ v>E^_-jXZ*Br;372v1V6kfz3 v"d&mh];lS_ 7xY5<tPM'.KwrK:'vh0+'o ^;Gm r9#t1v>Sq7qh*~&x[R3@sX =tfYkl5sdzB;=r  [(h#JK5-u{]y-~^l75;D C 6@UM4JsR:8N|US^ &udkZ4l 4+=m,*^{0xvu5-lXi<o,,V 5u2=U ;{~.~a yr3~Vr/l9p_?'+s;9s7^k=Ziv'k=6soQ]=ezU 'zw_1m 9^'PR 0)T85qpjNTc1sRlU5ds^c2ItRFb2^Q4w~Gy6j\8j2'{WYV_?(DrDs3w2>n >[ySm*w&a\:n{'?l2Qa'W I<orC6K0rm]L .}|v\=np}L".|8vSYY5ke^*? ls3LP%nL/o2k_(|9U/'As_ ^1uK1mWQ3|^kE F7? {Z) v pcj<votf+}Xb;<} Z ,~3X6btYpE+NpW<kT4}8>5rN5y +w!\( -ubYh1z:=hh%slX :v!Xr1Gz04?` *u)AVS0rQ'JL_1}'m+i_z8uqY %u02|>^8r^(/|L# ' l( =vR`'ik(j TL'id\(V:gWJT3~rL/yT2Z}% /|R/pL/vVvI[}3|Yc n2{BH6IS^6xSO 9{nU;z %#j2?ji~4*o)Gu<_L.zq,0k^Zj'[Mu'j_T+NtRA%Pvc70xkHA[|}%38~|R%Q  %|: X )w` 9wrXB1WoL`!9xkXC1XMw?mgr-U+wZ |/kx^$<o*/V+zT?x"%T1)K=^])L=)R9 qMZ?Az`,xkVG9zjE|6Pr8Q>*)<kBlX>>r&Yk8l}u"2z1Ul>n3:l+S:k\li2=z\jJ1p$(|i_0)J0xL0:eQhW74q+fKAq:K; z;v}EZZ*t\X~b/rL+y*{V.R4/kzM+?m&e `<.T-:|x4{;hR4ky&z/XiaGgZ'+7t6W /1k0WT^.]wXt^k,Gm*uPF;XwIT7wtXd|2Fb zg|x_ Z&m `I&}ksxaL7Rh[Q>~YR>~N6 K.tM.~{H:"_)vmf 8QsK=RDX\7|qRj4)o_4{\G0{guZ.5An <7S]Kn?4sRS53yWK%~| @|KU 7~|}Z;]pmc/p0h=[b^;jEZ-Ku`=`|0(xyC_0k&{%jRP']p\ %K{+>-}rT{ )l|T1_+4o?z+Ij[&tp NY0i@;J_G= }Y@8iٯXW+k$w)<=LYH=x'{2|Ui:*n(R ,oVvSI:cs>l{wZ g+LyX-QX0`=x{iW8owT3lkjN N}0~B_b? iL*wc6ze6w"\;5szL:E+loz 8Zz_/wR:mbSE2S&~O! p;2Qt?-t%,w..{;|xT4>D_ -ZpL>Bu1_2.S:+%i {`7!Z>:GgKZ1mDL)xYFY2:txnVD?x =Y?rywb\J1mxUT<4 Q5wm8RW8y_m9v,8 P%[Ā^8(|W@3|uY<C 6XmM#qb`>@j_2I58sS8mtSc1j!vy 1|4R>pg^<3hVq 6g<5|q`.|~e+x6.mm;w v'uqN14pPR7?Jv[ 0$ISO4wN -qH!=s:%2#}[ڂ^r0kKmd|=sxbJ,u1W^6,nU92iRf+gPQ5}Y8VqG f./z[\(7{~(8x=n+z.)U=p%,6e>Y='K`So38smW3mR`}9~xqQy8sL[)kG ^S2/hV,m8y?T28iWvT:0"mb*m~,=on^,1*n =t VE-yym9mo'|tV )+e %Q+Ub'}n\?s[m =KvTQ_)1ihmv+Ouj z[-~y(Vf+-( bL%Qo 8U._*CtA);<n6Il7<@lIpO.&Mp5DH9dumnv(q_<tR^9j_W/2qٲU5(+kU-r?i 6(,oU,p)TN]6zR)TO ,iN:t'_%.zHR ;}NR)jZX9pQ-Sz57{:*r  &Vq| 3X}% 14u,Z%);}z_6~q>_$'l?2o3ƃ[Z:{2 ^!<$qY4lT]`+4~Y'?vpY:Pv#VW  G'm.S n$&utU%6m{_<>ӝ?')g q>m!ӡ_f(*-(y/mqu/|f `==6,< |`d1~ ,)q[u)U<}t G+Kyyp,nr"g*vEr`<Z>_l,mh/+m?]Y = g G 4zS:z=W ;vn>z,kxN,loQ2tQ_v=7}wh!&~i[r_7vQ x?t?kt,x (0so^:{S</yR^g)#sxQ 4sS &:pe\2; {8{\T:lc;2}7-l2y TU3/u 9q%VQm5lJ)&hQof5OXs,{X.{o1X_9JK7u1V>z9,Vo8q|By <oy7 -Pus v+iX;znKZ71f#^?[T05y@QF'h&t\z,>V(m<0yj'^5?CG;zGQ-k@(rU 6n|<qx@Q4m]@\K8_-bp_VK ;i;%pT=%|O[r]<nV  =j a _9Kh29\aV9NyI^<xT,j+6OyHm>j] 41~?8PlK,]hy^<~q\{1i=?Q|i.wL>8rlZt6 h~U^;k6Xo,r /X 9uv4 3 6yL9<L[7b:y,J1SQr:wQs*R)3IwB@ <r ]*5t*6|Pi:t6YT 4=jW^I?Ost $1YjO R -|m  ]5j 1+z~Sc5u+] /-VjZ1:ml 7,V>{ NS7l.>u  58o n8i=O>Z FY7N}i* n+&{d&}X;"C<:o3|x;Ys-s^y*qf y*jfOf'}yzQ+nDc%~UI*ei)9@x*Գ_%8con 1jr~_6h@R O)n@ Xz%?rQZ5+wxZE.R |8L'=#97?jD:k\R4z"2 6~cMj+v yz:nZ)%Z,6~ ,%vF$YB6x_'k6.n^3(b9| A1OZ6xL(BquW*wD(jzSY>q~ @ :j7_:xQw1( K4]1Sh6s*"LL'9n`Xo>XkNT5T8~ : yQX+6x}|Rt+by67n9qkE?vYY'_Z31auR?vmiU%F'4D} ^ 5gE|99hH,y}[7)pqZ~,qNXV7~S  )VQ_&*v#VR%:q#T*]jJ- #3q{^+8hZEJ^+ z^+8us+6DoJ'auW /%i f}.<pK{7k[ i-mF[_?8nq;X<>w)7/V,p:a7~o&v , j/7mNL&.)vvZa32HR|.*2c_+zR7M*8(q]U6tr)vYLx1|Tg<|.[!")oo.[7sY06m-W 5z?<K'?=b3;w@=}E, V5O::zhj96-x|h{;xI.yw?Wa>i8`BL:JmV+1hlj+I&~|~Y &P8F$~^7lpfQ5z R{3,y)"[q 7zDb [7{DdY4<h# qY9;yTY;4ApGUW59Fn LN:U,qԸ*O:ttS1~< a)H(^b)n\H=r0L:@m7VX5 (eK 1V/95=[t3m)p699Y{+}nW|1E .T~ @35wQ ^<pR}]R6WnQ5@pj0' .Y "Z .^j6oUA@v6 yKV1g}+ 4^ &w038qhUK%wRT2>v^N.g ( h( vZ ;x6^{;po-6XY7p'G..P:t1nUfx3U;BM>t"I[E1u&L[U>[V3tzT;Sn I4n+6Spo*k+; G(Ol ~>-V_]_:p#7gX;oX)@g ^/ta^/L4:r'R+ykM=phd\%*b}z8opKe>yn1+\tw+)/iSz)xA!9p3 9g&_|0kY<6/sAY 60vMsV6qtJUan |Y >MR2^x[/1%\yF={ll>Sy+}Gh^u?y y0dm#KF`*tk6\rS` 10kSa(zQ/uQ.Flaq'.iv+s46vPv/0-uT `3q p2}S\UL,6Q}\':k3/y*+,|Z\ 3q*YZ=+;Z,wQ;!Q':Qt/Iy}C2zQ) ;d ;sqq<~L7r3y: j*W[4?xA[4i{N{N/nr7X%+qLK/jcY(lwk,|er{0m ('y3q,d^>'{>W '| -AqLp\)zj7?ru%j;$y7jT9.tY9$oi2X0l s)`;ji32.kp_2v|БT_4=p72QVkj'mmK?|li*1/h/uv3t1Bu zf`9rlS1Fyݽ]@0 wXzLG:|[D*3l 2Pzx e ?G*u:D'lIJY-/rwK_3=vO&<*lZ ~t=sR,* *jsW_s% },X!/Y:Z^/t 5t+ ^6nb8=\Q6oX(h{VYa6kKG7~fX3bq$ZT =~ k#N1_sm7 m^9)9:Yv6W3nUnc,}J.Hze a3h&=h`m|+u5WpUQ+wRl0~zP6^,}LKs>} ].tT,wuFMc'v t-z^0e*D|DR5&sZQ8sNA$8q_=z}R=rEl]1/hYI:r2kh_2ljW:4q(WC^:9ZgsBU &zi9S =~Ys0*za,9glQ:6{v_+5vnr1kZ9pXU*g$W:W{/Vm6x5Vn 6q5RJ%zp gT%.xR/sC jVg5'n}%2ju+ Y=;ll\^M1~lB:[5p^,EmV-.r\+0}Wy/ }53}^q_{&gz[e07g߸X >z;X>; X >|R;#`tZ5 oX6,b;' e497gyk /t`E&[}0fv \'} j,Z4jzC>0TLs>dk+L <>-P[0tt^L 0uyePY*uq=s4|al&{QKf>p|6\-8>gh1p|*@h :k*ZO*pzL9ne4m_ @4-rmV])m1M;q/w^)Nirv-y5^6/ &(Z*y0 B8x`C(sWI9bk^K8tV=_M`7]m ^1s M(UtgQ6q rj7/{rD_2Vwz+i~*n"m<hP6Zk"c6[rT ^(wY' ov6or+tX+ :~C"7s0<*Sm&j :(iW3?r=V&{{}[ /x}V)Xq^m l/uPR~(9k8:Kn< `0V1_/{\#;\$'vE)e)>i%Z@;m\w59V n,x$4!q  (wDS!(~#k(<kR.,n Yg4"lW *3v0g7|kM\w~1,kAY-: 9(uz_?u -prbw&6teR;~M&'$m$/\7x3}A2U;~{B: R)v2MY?|vR_D18m{ ._&w#'mQ?0DrV% )xsW7x%Z4Mt^g߻Ud8i!UW<9j$U,rU9'vS?hyH7u|izQ;llRm_)vBmq>/x. F(LvZ `%zJ3jR%}4\c? n,8m V6?_zToR5z]tFx{7i7Lg=wnt^(mpZ(P}!1}t^D,yXU V5l T}0l*y.4iOQ+nW=.-{pi^&mw. o]%jQ%!C+k:Y D4mYW)qp})mKq`:%jAm\S=tG*?i[v*nfiX 5pxsm/%n-V'*i-V(:i9G/y%eo'/~o3 o`&~ x4=qDqek`\;@q<U -o`F'n)fS4y4nP/z^w(QwSo ?rjlQr)nJ'2~v@2&rZu9} !Y#3|<|KTq>gS:3hp 3qCU.vZd'qGYi.3o}4yLgT;rvxX25nX3 5nKW =gS~>u oK>ydoT8 1kr)ZlKE.UsW` <rdM.<oSBT0bkZ=quQ'Z/~kZ-pQ(V M)|Zb4r^!&7z^1sT*hz =ya+^yp)'~|L50q*Y2Hs+YW3nY^k)k/K$P=HgW|)t_^H=wozDX*}v5lU= ggW5sv)\50,>hl[:oX'0. 3{- 7}X E>ZR(tINQ=oRK9>ex ~pr<6 '{&h|W6Kl`ҜYfB+ns^2vvM|D6 n!1nu2'Q{0{ʞQB-o\8&m[Yp24xZ ;n&8?5yl) _: 7Xc1+s~7}^f:y7XL4i1 ^=wmV}E7#>\ 1o['nB>{p U4 G+ ?l_t|7L~{[N0^l=t)#hM>)to^&6"m-^^-|Qk9%MqTFQl?kKZ;jYxsX ;z)ڭ )/f^ .(l R2p [.qH^..|?KYj 0k^]'WhL  2g~ (lLj1zY 0^j;LjG4s z,|L<KTx-nZRM^V0[pKo[;yyb5sy[9jt\_-x3w0-6Y*?j^-{if>S9]x&m`"?gkR].{sTn9rg~{_9<qU{(VyIKd9wR%h&^ ^6:|M`80ir2>q^ 6/hMp9kS8G6jSIk5}8qnM ;wU`>~^Wf (C}wT&W e3jr@S6x5nQ5oE_)x+ ^t*&tKQp7p!Ic>7|&Bh-:uMZ] }6BuV7.t:f93gUo+Q,Km" \N1g"V h24yo;{(ʠYu7LG^'&tM`9ss:bzS92qq/83qkRM=u Qq-7}tU %gV\L?zu-]]2qn|L{={^G0hhM 1w(h.llgkPW&Y,|X>=wYdKIb3LlL_ ,t|^ &m5YiVN0x( VO.+$ ?&g}%|Q%h& ai.5sX&$2[ 'u@4uE['rSEM1 nUV !9{H=gr M?npLIIR5 +R)rgKg=i_%qQ;(|N *iTMx|?)_&]gV,zl k1})T72rAi^0k<|k/)p^Y!=ɺY"`+&ɼY0!,+5v:mw^+=<ɾY:| !.R4S;'p{S%S;(l{S'm"+y6lQV%}jL =rjWa3+xiTWU?But -H &vkTv?m}V:9,s:hOT  'vrqg1g\U4)oV&_7*w? #0vX4mzGR8}G-`?pCI)n[l]%`iB]%aw^^=WjX\H4}[+mAk?rR > u%ol/q!?wq1^ 5q[ 8w^IX4'uU^C&q)rm N/-p~ .hHY*yXm:v/T>=qn p&z{q_m8qU30eqbT">@,a&xPj])*Wi>'} 7+w[P9 wi>=[X63slY>%[)iQ(_,+h0h ,.h6Y|U\3aFKl p>{Sk/rW6 _%A%[ X7~;Zo :h" Zp :s("Y7|"I(6m2 &zl?NvzL=z{R4b#8^K0zaH&Ho\]0z6+ Y~&tX}%G-)i;Y*XU=tpY0m~Z= -+}; ';f}m):wLAb8l yV:2{q (auf 7h'\ ,2I'Z[p ;nD pe*/zH3jsV :jwUN6<t~1^&gnT_1}]"L%vw R].wwp_1lt`%&v-J5+~:0p&]-pHXE 1tm`R-_u7{TT.} 0p+P&x.Wy:pr$K62||qD,=%k5q9](rQTu>zZ^6*jRzp L:hk~R.} ji.~/,(rQRf.m1_'|Cm;\g ?6)u#2 *8 vi_9 w?i&3W=#l*`P5Qy{j!:|tYfT6q2W#>b|W 9u:t>#v\ 3$s?^:doZs/t&[)s2<_k/ar< '8rz%J0R~Q=g_;cm<:1}:L=mvWj>pAV ,51ti_v=X,Nr@$klQ:v,{1<|~<n[y*vZ}/hWX8kqdNW; ",i]W>pZ4gU79~X$/_:s"̰u2yp5jO5n.xEfZ.z V!m?ahV_.j?bp_@>n+v1[. ya\8<v7x%^:,p0y.''(mO<@x|{)v:s9wC(jLS^g,lJQ6>ze\M6%w48>h]^>h~(~l62m{GA6v$6*jsZL7\o<x+n &,6i D? m^w>v[(y:H6h$^3ira?^S9@l&U'/}w j.? nZ71|hS4W, 1q{eK0r1K;3nlr3_K66~Zw*k+ Q;(&|{ 6Q/iT/wl9jo&uo^+,wqUm )H~V=lk 2hL34<|p 1;?|ZYA 5|wpU=g^3xjs^+.|x*r<.}|q=v\{&I>/wWK> 5my;Y 5ntk>^}4,u]ZL.mpT  ;gsxT\n2yQv~&Rq@F0Og1m=T^t&SxF4R-,nJ9'-v`7zX5gr:1y_,\uv B90~us<xnSf0+O_f,QpXZ 0u\T$5:jmQ:G* @>Q*+ (no92^?y(b`M.l]dy3{yH ;j3Q 12]=l^&8s\0}"k[k =q,tSY 4Soe38.7u_]-:lrY>}_)!rW k^4|:7gQDr | -5h t0:Tyt<(mTV9m~p8hnHSQ!.| -3w2$)9|Wi(`w#^4~Y *7 j^>|)r.|W%.|W &Nm Vk&y z_y*;[ޣ9k sTc7Os?c_6uT[33[;|_2]vX.sS (o7 l)sj\3|P9;}!+vV 98z.+jO ~:xO4pB4ngRz0AQ'ih],hLj, pW5qfH+2~k>\ijo7vUmz%*}_s8km -gm[2M}(ZF+kF4Z(o,4w7B|'K7(E|2zd,:rv|05%1u"Y;ms S-rlEUu7k[F7oFUv1QjSU W(\s(V) t.Q'pnpf^_\>}YL (zyt0/iw DJ>~t82oL**jhx 4E{&%o 9j&Er^)>0wZ>1r,>2xW,qIS7nXX ;Si:gy9/ys 7G~W:uL*0]z'%q^Q/FuZ^X>FOοk'jV;x߂ 3j?w 4h 6j^0ic:`v1koE3oNs`;6m2v,=_,sT;Io^TQT4n'TU |c)~*T-v  ]<gpe*jS,  +K1] 1^l QgC,vk`fK $=pHK7?xQr)0l=8Oua8ry.yn[2]4iXF-Y}I058-&lrTY-'riuWi%h\wY_)\j==R1z}!)^}q@/n4kX['>h <pbi<w>siW%t  k^c&vK+sTK|(jiT`/o| v(7cLc; n%#p^4+|Q54#h=Qi.wwYq ]=c}our?.h^_2,(oYKJ.($3o>WN`'hyV=~pL*06vhz=xS9Rg( v,=@?tTS =AzX\`2 uK1?i15] }/0m6Y &.7kZ)=~:Ein_yE=~(Bu5[iV2B|Bey/=tl J,w;z:xK<x^~Q/{Q<9od In,pa[nN&"}KogY'_f /UmweU)>jsHmS]/j;GR S'h^`^'6 3; }9v|yG/G[:o 0e&6T1l pn 9-p*P.x2TqS}~3Ta;gsUTb 1xEъI8iQa9|*qG2kUJ,72nSJ0^:K`K2xZV3QPn;zUD?rj%!Q<;zQ2+Ixhm(Wl, 9+sQ=A1gl75} [;t =ou[;k> 13rjD9=reUR;>nxT%t,l Kx|&ik9! D4t 2lS.3{OiRy^@%y\l:-|ghP^-wh;V{_-+5Sw).nwKQ'?iN,uY0w=;7x>Y7y}w?0xyGY+Jn*yHH^]9{E3j&'h*7'+8zqTdr;~ZM$5'P/^~?q/X <zV?yL< 87mMV1J~tPRQ*0i)'Q}<i l%>l|F>AnZmA8yt78q v*hSSr8z$d A/pz*~lRUC,n-> ;l_V'm\?v [M1{Y8(ly1|>5O^51vkY%<\{qoU*|{YT2K8S^*:v{}Y)Iypu?`ei>e^ )x[ , r X k9Wlb`>tX&me_>1s2T$l);jBwR|Y9han\!o+u ZZ1's)Z{7tuC.nU!2<h?U;+~!? _J8 Y0wO^5l{U-~Y*Lr`3vkJ%vwWe^<h*9im^,n- U w+n@\6L*w=:gM*]=;)5h8Z&qJM.>Nqr`#= {x/(WMT3 xR`&:noogw:0a[K1w${S5.qS9+Uu(S:+Y(DpS2pN`&iC :n'{r*TVq 3s{xɍ vT8p4g?c>xe1xëmo .C*p+*] ڽ NG*&1O+/ )>'(pW!7!%YC#(IZ7pj'Ă$dܪ"p'9!'{<c X;޶,5ú$|,́&^-9K"VCf|/- J+v)g'/G$ʌC$&s##%G@% $#R  TAzr[-~Z.1*T9 ",24+!$P -6(Ak ,d!  )",#6&+p# ?#$T +A"$hTi/(7'U(%8[,n5=&yr k" .  (!)>) $?pA.-R$UB+-*{82 Y%.A(>* $U*5[@ ` B(A%$%Zn0&V?G*$$)(|-i2"sLWT-yݺ*;x( )v!h8 ܍7tO,0,-'}S( qJQC&J$xTK" 7vGJ 5A0(U](PD %wHY(M.l5+Q*b l2 [w;6#+(TJ CWkWk#7T$*0,) 5%EYp $' K"cB![+E!9^'9#+JJ0`.l-޴ ;Y(Q l$BY 5BY(PF+ [%vT ϳ+^ KZ$<B*<͜G>".0F !KqK-8d*"4-W#u 6S)`!ٜ&р)غ(+4+h*i($o++:#qX &)cQM!3W,G M6 @2$\)C:+xBD -%  @'Y[SP$W!-  I9j!C7;.Y ߳,*6. L՝Խ.&*+a%K*0W  ;!/ ,ͮ M@$:H&+ >.1%04!j 4[ D'd,-*a) 6+ 9-[&l@*0vEUj,).(IIW:"_ U$Q4o+V,C9(#!Zd-3xMۅ$59<(+0%~D~z0-%:(B !/V-#On-aC Vj,Q.AP>HC.$'-;&.ZC&X9%^%GWR"&:"_͚"+}G".> "B#"F"$"+" #s"",`.%**G LHsP;a 6j9%W$Zto5=,s2$L2*2$LŒYw2 #2Y'@t2wJY2Y2AYYfY*Q Y*2@Y!wYX(2:2'`Y,syY2=22)0".Y$(Y 2 %5YٶYY)0ȯ2!\2*QA2F52Yp :/ɰT%'p :/ɮ1[$&p :/ɯӎ#(ݳ ,pv *d-93$V"_A']C&mlN׀&|$h#t-e-?;A>d @J* Cp$(Et*Pt˝=+w{@S$bU!bLtQ-/1@Y.$*E!;- 7b(`%Z ޳u-Y?) P%j/2W(@-%?4R$NR1'L|$f $@4~g)("1F+QD/#4,%7$% $  ^CMH7!'H'vɇL $ ߽ 0_+uQ$$(b',(0o+"m(3]oPo2(Riow" ]oa9(Wm"\("'w(#(Ha1oB(X)+"8n+"1"Ri"9oª]oRio©m"@"r2(_"1(ȹ2(9o 1(wo(4 y(BI'(0(! YA,{._Ke:O{~~~:~:w~C~w ~~e~e~~~.e~{w7~w~{nCw.e~~wew~~O-~]C~w~77.OweC~{{-~~weee(C.:e7O.~nwi~w~>ewKe ~:iwe~~7e7e..ew(.eNCw~e7~ew.Ce77>~~.ee~-ee~~~~e (~7.~{~w~ewe7.~e7~K~~~ ~N~e.e~iO~~7~~~wG{,we~~~ww~G~7>.7~7,~~we:e~iOe~~e.~we~w~wmwN~~~w]{,.~.ewee~.(e.N~~ XA(Mh2R5Jձ5'E55r5+- 0,IC>/5+ 3V& &C 2*&zGA!Q6 HJ$X.*6)kWT+/*; /!n[ *"*( *a=VƇe !&'l< I#0w iM,BFcѻ  :$B&]&19@7q SDO"I + hǤ lGw)@j"kZ$ (S1,%!˖$^J|*  |%w1].!J#c*i*j&j-!%p27 HV!$+x TM 7V&Xn*̣*s19F{,tU&U'!q.t" !,(k$Lс &-M!hQPt*<y '(,ݤo'Ex-dX%="  "?E," a$}D,S8ٮ'-NO*"$hS nZ/G7p_-9#uN&S!-&I7Q"m,h &+uj%UU)ɶ&}:-o("$ 6^$f<(d#.^34&<#Mi) 1"v7H&,e>,+kL j1'c<$ x%8C6 *Ұ+UR 35a.P$b8+x&X * 6f *o@{=]ރ-B >#$hV-9S+J* p .*(JEM4(F"9jV - CX: i-M-S{@!$(%# [%C4(ѣ(U&A\ 5)x)O4\"9)sl)x+,6̀-\)kK- . &+!u$^1$Q:H'>UYVu.,$$g+u!<;-3*s:U-'T&u#1B˸&Cq%:+  {Ǒ,Bg1y G?$5+Fhx L$n +B2&Rc#!&[, 0{,"#B n+uK} l%w9iQ׿ c 5G*E> k(-9IgQZ#"S!8*{ ($5FmO)o,I*N" #=g.U-&.Ͻ W!+7%UR&&-#AjQ" &G!bZA' 8!B *a&!1Z8V"v.(d-'(8F" +)X$h  ,ʵ+?""?I- & w $})  6+#":> iTh*S&]S*7sR&*\ Ѥ*yWQG&$}STvE r(ɢ)n$ 'x8 $:t$%0 &p# s>|3!= 23!nIMחA( 9>[    1 L.,)$i,C' "2Xt(SLH!߈ *&*;7*<H/%,*K.!z.$"W.E*+E-!!/&B U<0)Ҽ&BK, hW"%&\<*q&]&B{O !XJ`XLY&B>!&B@ ?*  (HD#Ckjã< }* f]&Bp|}P(H{WZ (Hr Lj%!0Am(HV;A.1 >%9K'Q8|(H% %#g,:qn:wzW(H]` j Lk!#% %'Q2"%FfH nE% 5(H 8+jӈ%%ˊ$yˍ 8'*,3$t6'})H~%H-mR$.l@ 7!*QEfQF5Q& S\.1Fj== YtM'Q `,+V 5$V(H4 3 ŏ&BF %! */1W8BalYR&Bs &Bss=:?kR&Bf !L&[n!%&W)4FC G} ")XH!(ymg Cv1v P N 8h)(Gu~'QZ M'Q%++V}  g'dVW(Hn+oIN|'P`Nt0)4.ΊΎ)%%Α $6(HW"| 7k %Ʒ׈"%"6'Q3+=L3  g  T&&BtR_  .1y'u 8H$ +AP'+BQ 4.g&BQ+b!es0 t]S 5'QKr%t*5 P,-FVFW) %*#~20./22(HBRB8t %} 1(GD+NBJ,f8 ,- ITc"%d&7| s+7$Z\")4 ++m,-z |/'Q@N@P'Q@Q? K d~$i*( ")axa"qJG~CG'p&5 fz d)/EBV0,: ) 'l3 ,u%Nu6%qAY(HA'h=tGC$} -)z(H(E ,)*Jl+MNH)29oR !6 "%%[6 )G"%G ~6 )rcƸg.Rm-7 'Q. ׊.F%O%r<+r=zr>(HE +!)f?#^ %I"ur(HD ) +u;+u=X(H:~ @(H0e70g(H, $Q5(MR:i!\ (,T xSV-T3 +n rn0A;,:F fbFS `FY F[`WM fl S- K-֠-V>W%>["-$h5=!{(HW+q3!\^ I p,- J./2f3o S CE-(HTl!qTn'gZ!OrV,t t"ut0+~>P)@M {8_%)w |*[*J@I" SYV Y` {Xn\`~wr=5 C % %E S   "%@U,u 'Q=='G "!O&l4)x$z%)} &B%:Eq'Q/-. %k'Q! :'+t-, C8 .,:tM)**?!? $@ (HOZ(H[(HP )'#hvI_*ϫ&Vj{0%HL v ,:`].1w4 '#[[,-46\"47 D!%= G.1RF,:~9$4=oj`M&( ]z7 +(I(H   * +: K X%1z !*]=#W1 ҄ ҅Z҆  K҇fe ,7 %{$%O5-L &! (#&6:$q * p&r (H % )C  5!<8 W [o* k+f p%D?)!['I \ K(&8 I$ I'l)R (HI+d 0 (Q+Q&Bi K (HѨ == 'z+NY  Jm$ p-%< 9% J)*/6 FIWY! :+Czz!S#¯ ³µ*w(H(HY\^,:yWi.:7k 7)HMox!(MXK(|؎Eؔ z ABHyigV,7 Ku)+  l+  gY5Z)z6&B ' %V',:le)  _ CB"" ,: $%)&B dK$Ve(H {-.1,:<ʇ ۇx.1| Eg}MGn)X zX&BR,v/  )  hw-z ;,:rr+. a(H+ou({ (H<5%<6 $%L8JM)i`D\+y!8 -)00 +zQ7Q ѧyFJR)L[  ږQ'Qڙ e&B!"%j 7 >%d>^ j )  &$+v (e*];i';j CK )  "$Z@(H"e!"yUC(HTGJ K.1KAt [w/&X@ (HQ(!Uf Gne|V  +  ' 'QZ8 $)sH5_t F+ !$l` .%&-^}&>(B(N (H6 )49u :(HK!{8oy ʈ&B1cIۍ^)C\"%S] { ttӭF|W'RUY/ ` rpQ(.{6_8 -D&H  #s(H#< D "G >& (y,:uSzVMD(H`(H/$cH$za#( xzf$4( %R!  (H[ *S%ɥJo!ڑ uڔ%&B AJBF+m!S nS @ {.Z &!*Y&N+.2z)4 RI | $&{q .1{j Xe Xh O!LA);vN$vr+iS&B i+r  (H<(H)p"p"-_1 |,:5 C8 ,Z2%Z5P-1BA\A \u 3v    * sO(H-Xy$V,:?$* $z6i%ƍW.1v{CZ| ` %dz U{X@S'$  } ;@)%˴4'Ey}r'F"@ ."%H'Q# (u .&x)@ }+'y, v,D&cn ;R+ y)N%q  A$a{mF 1z`!+ze +l+(HZŭ+u%?u :I+5S.1S)j U.1j+0 ):$% )I ]) kr,_ +o q&B%[\<%7P)G+G G< +V +/Z/[>@i/%Pj%4y $ K% s< pD!5%F %)̞ 4y݃ . D+!$Vk'mGH( Hs,:v*  uo,71W1&BVKn)4AR{%V*&Bj|X(H)E'%} C: 1!%U%6e&BBy6h-n 'Ɖ$m %.* j. e&?H ?Qe?RXh_ R Tx(H  W&h;i;4}- wUpU# ("%~%2)@ > (i&Bo!|{ Y9A .(H& ' 34}.$~ $$.7% -% ŬK-%-t%L>#'N!-+!Q* 3t: 4:DK`ij!k"%'QnIJ "Zo,= >{%E !8) -,-2"%/W.10 P+a:`J8_u$Vq!Y_  X {T1(SEU-URxU#z- WUK u6՟f&, ,7k X m \)+N"t S(* "!ފ )GM(HލN+z)I P ޒ:a2A%Y(&B[R $c)'"u%) ) f  h&?N.1 cO Y(H, K+)& & o##,:Q34!f)UU"!5'T8, ),+F'Qkt+,-bQ1? . p+P)Y  s(H y!8~S).1j:LR n}3K>yb%O ,h.h$4 K +G(&Bq $O(H )E)m@<"%"V%"Wl%3 b3# +R1C (HTA2* ;^'Q+@7)"A(%< ,-)! 1&B )T9%,:`!J `l(H8^*Ei Y ?$n7i%\-,-(HTjQ J *Q(Z  2sK'=Q+q)x$yyr{N( .rFozW,w' 'QgrtSf t. ,:;2.K)jwt + '(p7d"z',%H$&Bn{'Q (X(HXX'%O&nj=:)/'Q_@s,cD k(M6 РM|= 'Qpq"9%"p$N WVQ! ,(lB")R %?+E ):* s+}0 +}1 C:j<.u(U6$4J8dV&Bex&BN% E+ W V%!/.Tל(Hb.)?)+A h d'T} !L6t#+=+# )4T%4V4Y7'Q`B,2Y"%)0+$Vq MN(H*+-z &( (%f| _~%9 =%SJ'%w&Bp R*nrBt,-% >!T&U, |(H~ .kv4 6OV` $ K @&߿ A+O{E[;/;&BW+K\ p]+"!7.#n o!|!D} 2k^,:+t0 E}'Q~?6 1''V['l-.1  C,:t(Hȴnjf69,:|+7,; 9!E A`7\T+(U+>l V) k! dCfI(H:f( IuPC(O)<x'C+-Jn&21) D L FZH 2zINx P$ %P&H <)| .)7 {9Yldt3'Qز1#{& JUD (HW(D+2) %Z (U\*  ,QI +,,:s  !*J)Z,I I _] ^`P_w*,: + g,: ҩ0{. lG%OW u+%p#$VhD-&Bo :{D= +(1"8'Q 3 RkX5-l  F$*MKz%yd K3~EJ j(HTX&Bu A@ +  @  pt] B a -(;>(M (H!)(<M  <I%ZPi%4Hf g) o(H5wt 5y3 (%El &{6)9'Q"%>E r";/ aNcTuXwx <)SvK02 M!q۩! C{{b'QC|.$ pC c+ ef%> W'd;(hb,: vD- E$c wr$nw;% )p"%#vĤ* B,:ukRs t |),,C T=F + q?)  ))3 %9 }!|'Q2,: 4Sڷ2&<BL'QS3o@  #C\+E .TL`?:h} (H&Br-/g-0) 7$VRzX,X^%Xcf/:"^3.1 !f%Ԑ_ *((H{ (>X9* Yf9 X  Y6I  % %1=!w m_ +j(li>C*`>D5$+O$VB   (HOq2% _!>L,:z.1C0'Qƥ)ƧXjmq 2I(H..RFM(H3q+ {:tb ӻ |gteӾ~(w%_A N'Q-p#dXK-)GYo Yp $ "@<.(HK"#I,(H, =}!;MM ,:q(%͗ Ta% \8w.1f k,:l9%v*3!5, ga+N)B,:H%B@)g Gd),-1 &). X>>)d sm/|+~'Q@:@<(j  > 'Qa -  v+ ,:NM'+(GS%hH%ݠ4MNSt [+; _U!aj 1?1'QA',-*Zz$lk}L&J=J![f+oC4 p)%%6G &'** m c Wm%6"%. Io "0O(%/)er7^2Ϛ"%Y '{ + {(_ !O""Jf p$4!"v4',a-SK/+M SU@Ac) o S j'Qb%/ /&Bh ,i(Hb,=s'a9bS "-H* q.IIF ZP$x!  [m5 &B[* ] _sF? I F!- b6>h _(H=+q@KߍP(H#);),hf1 -uJz)~) !.k>&B8%J P(m%r-@ 't5 Y658oI~%t.1$nNy ~ Y$%O(Mw #$ '+ w)    t+l' l( c)ճ -r->"u.=bNCp%NE )e}C%] (H,z Yf:, ':-  U+ `*   ~eB u .1  K,d%?f"&BtF%q.} + ?k@)O yJ+,:(r6Ϟ)Z -,^(HH4~  OX fYǦ{ |(H4 zIDN!DkMuQ"$V(3=z(f Ks,73n]- c%B BLRrQ 0 I(H # s ,s "%M > ,->%?h% k`&ߐGY)'QG[ K$+ * X  ](H[+׵+Vv ׸ c"tb% + (HyF (!J+f)"u+ 'Q8IX,2<%kz* {"~.1br3%"%є0%}0"s\њn]&Bf=)5 r %+*hz!#fޭQTx(%vG( tB"(H;Oj}**KR*/ Ko, t !8!85.1"#; ǧ ǫ$VmE!}!s"u=!M1` B(H5 !r)g%q*IgP1-(H|,SpESt(L) " R-FRF'* + (Ho t ]X!\s  Kqu)NP% yq,=e.e"+ok ,:],:{ gp׶q+v:E(H~?. ) S oh$)J+\%% c &BH$V( %}Uf@.t.&3 R!uX(pAF *,:AI nK,(Ho9 a(M| )9.| $|s_J7 J=JJ> Zr,- Jn 0x%ڀ M:d+ ,6 +@?. +.1# !Oqn*On,-$4 +lk%,:4{)k"30;3 @3^QT`b 9z/,$  w(M)`' ")2b |M ,8,h * &(Hc`$o a٠& E E_D kdw,:u+u Gc H+d,q$%Jdz)nU!%! ol)Nxi-xj(HvCD=]  CL) d'QӒ:(Hӕ; Kӗ%j)!Z UP6 W(7";r`u `'7 I{+4 Y7   Y<_n# +E4x ))%$V g%U|&hs},-u M)q) .(Ra b d .9h iJ<(Z.1Jə)wZ%}5 Bke=$ t!  .O"\#)R(H!\! +i&B),-72!75^$cGIo !&B}XT D3=ð Kbp%i +<{ &f ̇eg iTB`IdZZ snt,:w|0A(/ RR Y Zj&j!@"us )4v,s_T%-Fp)% qvz E6M ,-"H%u 9 ,:$:  L& D2)4(%Rtw%;QLLP'_,-,$ %L(HMN9'2%'5ܜ(%c!Tv&BmI,o`+g|$+z q D!0w(HVx${V+H XBh^+@ +S_jwV(HKQ)4L )%M` 9-9$o 7/=!6v%G,m v,,:yP$ W h */  ])a-| ^(Hy*)e> _ f1)p "%#>N(Hh#sE=Uu| #$] "; E8{8R!"#R#w(Mj  (h&Bs)* LJR1(rxA)VxF)4%(H6NgF'A"%Wd"jM q #r t)s u)t?5h.R g'df Fi+- ")LU*/L & Y&Bp  'Q˗l( 53%U E%_Ԧ ԧ0 w  QOn>$$F9/-*"b%ZrbZx<=&&Ŝ)&Bup)T; %N+q "%)r 3{O|fwx%"C6UXyC |)H.:.+90 g)*,Q~ * ~K "% P  'Y|.H QO`C.1? bE "BC  =%l ,c[g^4i,))4)+cIP:n"4+r%BB SS aj%/h3%ES,_?3 VP&z 9(U0G3H  LfX$T3mDŽ$Z!wE# Q$4h UY c&U % e 8%.k$u+?ME MF ek(X9(9*!9, MO ~ Y'Q1^) Z1c+P4(* * s oz (H-(H>k:L&B%*@<a?%6%G%+,:m/ t%z,:v v( 2 _ }IK +k$ `'Q/]-++08sR+ 6a'Q~S'}V+' '`";f|H!  Id,-Y4L H  ,: }6'QA+(  </l b!8s= IhO(H,\&B| (~ 5,2Y 6]^gD)$N)k+8zf!W.Wgl v$~*j֨ )I2> (+fSNj %dD*E+';S%Ua"%K $te"%F * fAfC@}o &BZ'g+X ,D5)ǁ+V"R,:m7'%M8)P (Hf')r}- % j&'(%Ѕ7Љn|/We(H+ h Nqgg2'$:"%L<%z8 CE(HV<q!gs$h VB M  1,ux'QAyA-v (H j Q(H &)m!\79{"%)@- &B* UkL^oT^(h6G)F  G&"'  c  (vwSP m KR) K? -P 9`M6ϻ /+/^){t( rP })p9"% D D+ ' K~(&7!~'_ od/"%9 : ;!\) "<Z#+Z hd%^'$P$Vg fk/!i U&B4 ֤&B ) `'p ;(H@N%K +) 6< o'6a3_,T{(*F* ~E/-Bk%$"%)%Єo.1r'Q8"%SY&BntbE$t9(H F V?l< != m.1H!N]6N^!z>:L$:K ,wZ,7J!*!2[! ):S2=L)C 40&Bt[ wnh,:k,7Ϲ !7 {G)7 l(H7~%HYH_ (+,-Y";B^J)Vw;1,:w<K+! =)DyRUdg   k }(W%9gp)-9Jj!"3(HZ l&B<   1%L\/&B,1)B1TlT+%R +}V z% Xh:(:(A3lLmmk Nv* Xq C(HC ! Cg-6+{<@ e)eM7!M'Q')8 YY"Bțȥs0.$,n[!L%\%&i % c+&skѰn|.1|3=N_l$VqZ%MnFv  Wb r'QA3!%6! 2?)V~|)!.S :(BS ;! '% vj*.uKKIKK)f)i(!f+Dy\ j).1 \ TV&B)), Q / )ؙ\=w@H.I"*  "ijJ ){|[ (H,?== !0&BR ) g_\(H2  f E9$}&V")`)lf&(H qdf(M+EN)4ws)o(}P}WL!m$!j'!&B  &%ۖ &( ,-&+]J K 1mf/T/& / /T-u,?f?Soc+\&Vo~J+x!4 ,ijii ѯD&9n-D'QJV3'Qf%JYS4%!?!\@* F` )W` l &Bfzl K $4.*T  #;tP%` c"[D3O m&Q(k~ CW?ԁ]C/a$~vQ&BQ Gw!&B|Z %Z?.1) ["uV%-(H<-Vi&Bc  !&#gJAeu-q!q6))  )f:~#t)"+"v$"(6 8 ,9ۚ<@(H:"W%/(HU +4P_l,- 'Mwr|NaH R %Y[W.1H,-$")*ef4EU S   ,:k r=h .n(q.% %[cYg.%o,:r,::[!+V, S S+j +j )lb$4.> c`?rtOO8%.Rhl%7Wb7X J&.{t S .G& }*Xp,7(m$F+ 3 s&B6p$7-,**TaT ! xZ,2<w`z%M %J ̦ !p/)݋݌16ݎ+,:z; K,=6~+M["% J{!~(HA&B (HR='QR?*"%d1 BB>1R-NC+igFg)(H% q=q%)$% x%J"&FW$* &Bv|X (M42%2)CfCh* &S +ӲF$p %,-K.*](Hܹ}'T68 KH &+mt+fQl+ _3   )||@,,,7s )=a )=fwI.,: * $j'T$zj' S%F((*7.n(i ?VV d+ovu!! x[ I;=M x-,58* Y%:Oo .&X& !&BXt%P4&+&B|%!e")%|I ;.1g|$yH&BLq݊ J $ V;%e+&'Qիw,-1&$ fp Cq e )RJ(HJRJe,-! % !7'F(+)) &%#Ɩ %. {'Q?X "% \ _R*/ (G J6Ff}%˿,ܴ'Q44 _%4 P U' <+ 7l)'Q~ E+ 0)@ AQj!i(H V|PI 19S')`$ 7xT(H 0&B:%ŵwoOS KOa,:(8:mKk")x  r Y (H)!kn%3/d C#Oa&B TJIH N@')@(G(HVP  O%'TC.;#,:x1$ H9#Yn<k$)$ 4 E]~_ suթJRfv! g<)Q ޖ ):+Z (m&D )!s< !w  #2Y +x&B2&BFBq/t/5  8"%.}!c,:c ,-3{%/r.|χG,/-Xw{e{#/.(HcID@  V kU)(HI>,),  l$VQgD  a +9PSI(cXn D( !n G='x&BEAs+L9 R% 5(H i6Rq>+>)O+O r&B&Bh`)6 1 ;1GB6X W&[%k1!mJ4"))"_*30,2'QC5F!k (H(;W.1~+LwfS |f A]&y &Bt 'QH ^+x-I .Rh }!2y` _ \+ig)тW23)= 'Q| ).1 "%} =N) ) N* )?(HN-%gyޛx#\ /-* l (")ED .Rf%#f}J(H 'Sr "% ( 3 .1avwfN'Q %5`& (H7 ;7!} )_$)X&Bp'Qǖbd'Q/h%/  k!orRi@iA  $F P N@ %)<R<8< M^-o&Bg?&BgC%$U #$W#%np$Z a` "%t%5;!E[EQ`4 % )1|*] LRU(j?$(H2)}7jke ,hs`Tt[%] x K%%"=e(H!6)$vx(HW$ ץ%?xkb!TH+ `%E Sl3R{u'Q %+N  !p&{+ q* fs  (H4^ (4a C7D .$V]c! e%"A8 [ Qp79Y-xI$xK V5"%55 ,: C"5eW4W(HW8IL.( OaY6S}<({J@. KK,:<#''yDM ].R Ø kb4)T! e g+ h!iC'W8{c( !Z CI&E;(H < a'm3e.RD$VKN'_ 1'  m)7p,eb  5!(HR`!%?{C3E6'QQ(H(MtqH KӀWE,_.&B% )P$.1S%' 7y",Y&0'Q4`_}4dD$ [(H`T,7,Y'Q,[$uL,\ -,`Y* ?  e%ZB3, -%:9wfX%{ ()%zP"%) ,:@!.ɃɄm(  g1uk,:1$ }fzjl(H ~ KҴ7)}l+>A.1hK 8q'Q&K'QG*myv&B'! "+v + 3z%3{' &B t'katJ1tv ~W-~X]*/P@y%   KWK&^  .1#' S% C(H; ;S;(S;,:9&B9 EL ;(HEB"D:#DMWL 80(%f(H0=. 6,:3Q8 kn+s|eN"9(H; R% * nW =$nQ%R"u e+) !ESE,9''V"V)V% 8(h iq )&+@ K<(6,:wʱ%"+m۶+K3<$o,:*g! 7   .|k y 'Q{  (H}* +?3 5  Pu o'T'k h8@ i+X  i,  H*.-wx@0#wz#E#(HU 2f|, !l=5M,7 T$Vq! q% >-Jq'q))(NU) Jt&.UG,-!?@(H2# %+ %JB,-S9 S> JNf .e L?9&Eh$GM)  f?( # +,:{+$ {%7w (HG.1%XXy K< _b'Q3d 3 BZ P+E)4w'Q<  M3+g%$c17 ,SݥD (B?"%99 9,@ xC^ I   Z_"&B|%RXc: B)k. ` 4 ` , (HD,-Ha'$>%W$,:AƵ~`",$k+VoF,,    ++ H' `+")n~(Hdk=p% (!*'oT8= )W,:\4[b&B|*/'dn!b.1w|":@) ]Q 2 S n$t^ jR j*k+Vn (HMOT'QEUF q$ c%͠(H5hW ,)*E&Bi`$v !A*JAS8 S;+XI ONL (HV +j-tF(H*A*BVW w-:! W$Ie#;$ &&d=4,-Xp 5 S(H: 0!`.V$)@D Q + +ZJg)K):V+\[ '%Ez +SE$\7l+L#վ h1G+1JaAc)n :4t:9awP(He :<+E/)?)"*,-WW%ƯƲ !!5@,-86%! Ϣ9SϦ{{,-; L\ KLa.1ns%zsX,m X ;f'u00U+.1[ pc'%-O t`(*# !+ZZ*g+X   Z v-&B(H-  ֗>f>%>|d.O*~l-8h'R)ߖT,:(H%%wo/&By$vf3K.Tb,- -kkBg&AT "u(u)P&&BzR'%'+CE ~+E-W-^YȊ~Z$'(de +'Qb-V*h%q- $;X a!g6% dK!8޹&Bz%)pd"z(%޽ q:7,^_&B&Tjz%!'Q(G"%2u=xj.1n&B+V n$)}w._,- K~'QK+,h]Tzϣ U K&d|?,-7&.1%+XC#H4-(H$UPq_ sM%_&M F)p 3}/ _-x$;'$| >R Rj RjjM) ><ߕzI  >'Xr"|T_)4Ta-f.1J +ir<+)<-d<0D (H25x#) ' %,3  Yf)G(%004!,: ,7 P+s` - 'Q,-NK]"%޺+z %F*&B   &BS j+ oP) +KS!K?)! )4$C +zH(SSU=.l  3O 9w2&B U  .1~&iU:  =i[m,)',+C h=+\p J ($x" )")0% &Bz.5N 6.z3/SE0)EcE&Bo+Vy ,47 jG!}Fk:O&B)KmK ( }N&ow& '%7  +.RGc~J '!mY H +?}PE wh(Hk%+em{/hS,/(Mh_$q'{`3%7@%yVX\X9% .DD+&&) 'mT%ü+&B~j y<$Vg  rA$yA( J8,:Im (HoIn,-Io,2}#-f1 %A+JSSR,S-T-J-N(Mq{! ST'Q6V%6X%-   F$R   $MW W:W:",_2 $E d%CQsS RRӞ(Hӥ 9%}( '9,- )ˢ(HˤL˩Jܦ>(H.7H&YC %YH(Mn DYmtkco-waD w(H,vI,wO(HPE.dc3(%M   ) B gdg=f$'Q=> (H7.XŢ$V_O!lC11 2M, S  'QI* Q)%Y`! o v)yO&q y7B$RW ~)7C,7G :+v> Fws m+v'P P +P|.1ia$r 3(HF (#M< g)#%pEIU fU@!lvՕ) - 0O,1 'Q1 * L 1.1=NHAK"Zt)8o,-);X,: J'e!.xi6U@FE. j_ O * $QB%; 'Q:b&#˨ Oܨ P(Hܩa&BG(H!sDf $U \ [+V` +0+)?>@!**(HQ[ Z +Q^ : fo(%/ S! <-5,!)V`V )|-lb+- 5&A%GΤ* q{i:6-5 KY[^"Mdy ,:y ; 3=T6>T9wE) KT<- 'Q@ )+%%'r d'+,c%)Ghn/ (>.*g  R";J $:.EKU!T'QW K-J-Dfj)ͷq7(ͺ):'~!d,-:  t h$eGgB" %m C)oP),:}* }.u?B&<x)q Hr z)7;(H9'T{1>` IXZ\X)%a&U|6,J-(HDg! j- 'k &BR,:MM'9(`(a* zC8vwO .1n*Z'Q +nA)q   q%@%DF(H' 6* >+[@%B$F_)6g'QQGj(H ){ /k(~(/"%"% %(%;Lx(+IK%(Mp;XH)i.1-mMY(HY/" +wywA")&BK+dnA%'d'|!0'QH, `IU%=%k Npi&- o% ( zze֮!c^ >'QSZ .1 0,.1(Ht l)Y;)*Vu.K afFq& & y< N''(mLJ}0L")[ ,-/$H!6)P  q Kui'Q pi4:(U </ 1(*++b>@< &' KML0^ݾ (H5#&B-l  . 5!A3'Q  }E$i%s^:Va.}* ])\e8oX <-f'QFSFb %O 74X&Bm9% PR' &Bv | 'QZ7&B )PP8&B P "rK'Q3&Bv8,-: %qc %_(HPT,:% ) F,@uH20 4RQq* sD=%((HJ J %.#FJ-%FfFg'QFh{ +l.1;,.!%(H>)OGRg^(: {y${>z߷(*Z(H*]3); !)$3a)3ec+iy=x') !8.+T )Åg  7 .1RIl ^'QГ'!ȭ+z/% u'Q U=)NhNj&B&B Nm:!8. %!#z :U(G)4OBZ"oW_k2%C" (HQ 9S ;')% =$k<'Q..-/ y %7e)Hd s9jlY#l(Hا 4G  pD)D.1 S(kk,uGl)  ")=$'QM =|M S x$  [A ($c'Qv *Dw+F+ F+\  V1 x=fS+xSR+)]7'f<c'Q.) OFQh)&4"s(M{;9 {=@+vߴߵr$KG(y|l  ("(H3cC q( kWG)8:Y+x!,7L n%Z'%KO nd p w w (0_y. "=5%?gwq`cqc(_.1y %cB}PI0Wm%!-,@l *,% +j  C6(H C7b  I*.1}fK hSK`]S' %s(Ht7b"%iHh Hi%Hj + Je )(^"(H/# Kl(HQ)R"%W X \= $ ="a'jD%M)%%,:."%> !p(Bu Z- 83h)n )%r)K(@R   /OnR3jX$jYufқ$t}^ $$&'!' *g)bK%=-$V-)+,!-*/X/ %  ^C$mr8 /ow)|CS? K?`Pe K"&B?A ( r(H rg  L!NL  &  ##$cUb_k )Mxd 9(H=YQ!QB* Z%Q  'Q%/i 'Q;I~%W `fMlr+mL) _o )!7(Hz!? & O+(M*8+hm3:)<WZ+ ?D)e{} -*y?;+-"<*K% !'Q  %"cXm"^)oY"<$'QgR2S%}ԉ/zm(k,xQ*+(6*)(8Z(H &(\.$%u&4 Vlfs G",!x].'(|)><!(K!"#P X I&K#+e(hP6ʝ!o4,72[25)2f!xM (H&h  hI k.t*/@)?Pd3!Ph n "8) u +E ! !n yE  P&  \o 4)\(H, ,)h8,-^ N&B~&B~A)M .1 9$F4:&BC YSp!  ~Z`ڬ{"%ڮ(Gxw,$Vxyd&BD6$O?&Bjj+t B* lTk1;</%OwR>sI7a?)D&BF;(H_ %6)# x"'Q+3T&B3.1)D; 5R C 8&B)+)+ztR} Ot+~.C%<.1gq ̮DEvy'Q 8 QMI!{(M % (H s'd6-zN% =gwSop'3   %!F43Bmơ"")v (H}T(HT5)( D+&[ w~ &!)LD hQ i,-U'@ %C8-)H%H r|)Bn0E+= K j:3.1g  $ zoO'QoV%[ž<(\sB )B=C.&)?!CKj m} c 8 T ,:Q=3&&U '++,P KGXy )XzVS o$&)$ "%P bPD^MX#1g(H̬ ,^"Zݘm ,1 P)VVI* l$(%< Q\"Z S12m"j(h (H  % } +=w#M!YZ [,- m!o?/k   %6} ;)!r!mQbs c""I'($&i x)4O B+R%e'#9h$L%4L)D   b&B)!0G H~` ;`2>-B%I;Z +Z!,:J:"9 *-  $ * (H5%5~\%Hu VE$V !)~+\, V+O (HO0C)3}$'h#}λ ,*&-*, ^%h.1 *) .P^)4Ks2'f,$$ )Nt*q39 'Q l$k<E"%8t/q@2oP) (H+`'Q' l)Yr8s>(h8wS%iI5+I(Hh!k!\I\&B(HD.l#f,)$aN6-")N;+uhOi'QQjT $V-&BqKch,Qp Ke%)\Bw!q,:=yJ,2>+o; o=I  L(HB (&B ,:j~jj@ `R.(H&  O%Co"B&7  t=#; > ! 0U8  !<(h#)E,+~V~$  8o{p![&B9Z%9\&Bd+fI,:g fIZ E $Vn"%    I%Kb*F(H"q(Jv,:C 'QD" R * e a&f-};b&B%>)nfO3q ")GJ=Q"% |+z'Q3:!CPTV yC<)<"%L B-y&B pM8xI5\tY*+Y%YowJvx-x?)A !,%(Hg*Q&Bi'Q$`e, ,o= I&=U%`%  %xA-J fj'QS ).\Cl !7(Mj(HBs&BjŽU)<  `3}.hK~ K A$e )myI 7 )72* +mO<B'QP%he %$|E)NT(M &R |= ,Q@*$` n.C {*)EVg  f  e%(H,S))V)Jet.e,:s Kj%l (g    !mO(H, .+W]X+)P+P-&[&\'$r Q %uJ+~ ,{,,,"# K[,:pK}t%#7B *I ^~2UCU(k)%kuQa0"%_E+{ ae  QT$C* KDs* |"i!( ь(i9 3+9f8%J1zn Z%;Q55 5>,-0 .1+V!*F  W<:(H x* = RFwI v<E+d(H.$Vc$;hRZ,  -(G m)");D j(H;F { B&B0o+A* B)3`Aa%3"fD U(Gt'Q//`!,,:*iI'Q' IeI\p- ٘95<)N.1 )lP.1O-:x(H>)#`) N(H6!&B+!h  *`<of (x^S2o2 i z$x 1C> p(?Cj+MӅ 1,-. cr+ !8!F- )7 $(H* eAmm! D N(4r$*&B!\w6)&= N&*,k,: &BgtA )  *& )] 8%(L9J+ HknɎ,H(o}u 1t)S*H(?&Bp6ZWPj*Ԍ)?(T/'9`)V+)GvL2[&b^Z:R$H{#$ı"F$ V',A"nM,)@g)!)sNl3"~$hB-9عp >g&W)J(ha(8W'0,VbE@ 9 XA)?!'2=*GV)R"p1'r E!/OTM!-Q`A!)&"D5ʢLI$hB 6I( ^:'I  EL,Mr J@ / E4$#7mQ$6$aNzl-4g{!8C'UW 5V STF՛7 "*N?ѐL1N)MK-  %.ۧHy,>r.:'(,,d#;#.UV!)q8+ b'<)3) ҂E_G"G" #4*Q<xg ?'XҮ 4-)I%E#  Nc##o2&# S'*:'B%Ry!(h 1*De--+ OI$\+WED#9"/,%6*'(S'6 D I.r.T))wBJ ӿ0 lG .l3 [[ 52+(PYV,v- [ (DQ,#D$D!PNA)rWg 3N'0p ! C.s-"d#Na"ϟ?7(8% d#E d8.P0S'7!Xb*)L:-"8LA$CS7'#x,+K"MI|P+*aPr%!UH'X -&5j,&# 22Ol((p>#+u.h,wT8Dgz>z)3&yօ-J"8%$'y.)(#B(v"E lXn& 5)+!6Gn0"Hs/9;# #IT+ 7'&&HK!a4ZA"#!-'rZș !na.HS,6X!!$Ѫ cW[*x/  E/$[]O,".(&$-_,I228=\*<! T%)kQ /]O$mO i."Z"B#+-'7*<%U`O"0'( |[(d~-0(OMM(S)X9-&!65.:$$H1&%p"1D@A$Hy.D O' I-!v)b ~-bǰQ )fR&Qz*0P#7w^% l1Q%6W &J#k$8#'*T $hS$ dA(*;1 J*%VS#hhm%wq&4}"I5*!d2e7.H`.$}#)!f9## (J(DWomW&2HK- X(sHi*T/E-;B6 S(ҹ x/<&~< -@ &Iq+q C&4Ɯ,)<(+j PF՚)V.Rޭ۝ܡKVW:D?N2&.ܷ>,x7sD KdڝܰیSTk8݆dyU-h Dި2ڦo.\E݁/ڏ@x'(۪ܱrty} n`{z*~_J[ږ]ۤ!ېxj9j1!=۠ݫfݬ9<47mdހzۆ!W d 'کQ]ڪ1L GݣHݤ\+bsi#L%ڳܻ ݈'lBܪݶ ܍D_jK۳k:]Sڐ~.B$fܳ;ޖ9~XKi޷k >ܿa> _~/=<=ܚ=5 &ۨܮ[ܑmCޟڒO8wuaWڋ!QڛHI+lސۗ~`Cݡ<ړkPIqވVۍvtVFW޾26O:{yڞۭމ |ݹ\Iܔ!$s.SSKceXY?kh/40xzmdݮm5j݌6c43>EzATlMt kھ|w]ܨo@zg629hݯ6]RۈM  ݒުs2 Qhے^%i+;ݓWvuޞC .܈0Kޗv 40sNލ8ە8ۖjܛcf](Zz"N(UX ts 6RabScwPާGܴ) (}~܂ܒR"`ܹR={AlܵwwX޿XV$w;o~S|:Hܦas?"}ۏ8EQ8ޛ4bfFAۿ~ۃa`ڨޑޒܟ.WvCB9^ntn^[u0k-ۧW ܋Nbܸ819݃T_PޥTrJV/ۼ۽M@ڂ)ܘfc@M\Hfgޕu.2LAܗDݜ' ޶%4ڸmkރބݸܐFޫn  $}%SڤBe@݀Y+JP;PR7SaF"kF ގJݠyEOݳ 7dqJZuR ޮޯ,@U,4ܢq1,E 'ݿvFܝGܞ޺@y{oZ{eN۬ܓPްڗ %iۥ`at݊\?۫~ <qpLچڇ _XqgKܧmP^0ݗڵO݂./N##:@ށpoޔ  V^޼"C bb2 ڠtD&ݘOڴڶOܼgYcݷjX܎E۴#'xqݼsW2\I޽;L`jhF &B݄>!݅C 6ݱ&6C,DگڰF۷%`Ms1_e ݎݏIiR+h۱3M%۔B6nZ܀[܁b.!#5  I%Jeۣ&ݴۀ܉܊\Cڍڎ|"{ݨg|E۩Kn-rA}ۺڔN!"gvڌTU\ݐ;m(')gpD[3rޤTڟۮ@ފ !NY<Lfޠ+ޡ%N Lڧ۲P_2`7kܤi)ݍ#B-.ݺwq?Z}e-T;ژܩD)A[ݛXdeNݔxڬ{+ZډVQݥ&l0,Fcۻڢڀݚ&S]^33?Mhn* ۉ7t<0O]HWG3lkYdݲdK7UZޘ55ݦܬJ,Dݟ`+yoۜSܠB >1OڥuqڄݾjNݞ*1 ޣbj=uڱTg9tuݵW]ܶ}5fDޜ~_ ݪb܃aHxޓpo/MIڕp=ݕݖ۟wۄ܌^ۘۙl<?ۯ~G|ښEH*ۅM*>P!$ݰ0AT"ۚd y{@1g݇iBڃ&ܙܽl^m`iIB`ڮL}4۶.ڿ۾U<A^wۓݝڹܾABoC_QޅܭG1>:UެR_ڑE#hyܥr [oZޙ5ܣ65QQޏKڅ޻ $lg=5rއޱ޲-GܺHݧjvmީYs*[܄"ކ{޳#ڲ۸hJq{:Kh>h:Q_ݭ9&܅݋|br0ں42ڽ <\pۦ(y9ދۑ_ݙ$ޝ>u[G-ګ+۵hڈe@H^'ڻ(ڼ+܇ަ*ܕڷ1:VPlޢn\ܫZxCۇI܏de=ڡ)pr݉MN+Gzo۹t!Q;cD EZۊr.%ۛ/23fFg-:ތ'?= ڜYܯyۋXv'C>ہ%'l,4eݽ78nufFxG7ޚ۞ݩTZ3Edݢ|\܆mYfܲݻێU#޴[/{2ڙ}  Kۂ:;ݑ)yR1/|* ڊwiojܖ{a#$<}4uYۡ\j;ނR^SAڭCځ*޵6;*t  =);v<ڣU۰VYQ1-X3P5gEvPIUUܜ?޸@޹[8a"ۢp:z$&5 Wob/b/a/aY/b /a/a/a/a/a/a/a/aX/a/af/a/ad/a/a~/a/a/a/a/a/a/b/a/b/a/a/a/b/a/ae/aW/a/ar/ac/a/a/a[/a/av/a/a/b/a/a/a/a/a/b/a/a/a/a/b/a/an/b/a/a/a^/a_/a/b/ap/ak/a/a/ai/al/a/a/b/a/aj/a/a/a/aq/a/a/ao/b/a/a/a/a/a{/a`/a/aw/a/a/b/a/a/b/a/a/b/b/a/b/a/a/b /a/a/a]/a/a/a/a/a/a/at/a/a/b/a/ag/ah/az/a/a/au/ax/a/a/a/a/a/b/a/aa/a/a/as/a/a/a/a/a/a/a/b /a/a/a}/a/a/ab/a/a/a/a/b /a/a/a/a/a/b/aV/a/a/a/a/b/a/b/a/a/b /a/ay/b/a|/b/a/a/a/a/aZ/a/b/b/am/b /b/a/a/a\/a/a/a/a/a/a/a/# 1S ,ȑ*СȑZUȑ*ܟC, 'C /.ȑ$iC.Ceȑ$7ȑ,XDC(pC(Jȑ*8.ȑ /þCȑCgC, HȑC.nȑ*޿C*,  'V(<:?%)P$M:.+)p+%p U#[X 'iSÓX PX /R1X tX $X )C:X UX7X JY'W[H1WIW-cWBxX ,dNLX ?X X q>3WtsK_X %lX2`RgX e}MX 35lX IQWv4X 6WZaUX 35RXNobX Z X  X <*X j(X 8`X -ÝX X 2s/X JiKX ekX 9N\JX E1XX 4iYX sX f}X 8!X [{bX J#X lBX ^JJWg 95X džX YX PIXN8)X  X !sX >~WrTX <dvX 31X $X BX sIm)W2X X 4X2J6WZJ WX X nǏX /X IwX w X IxX K7W#uhX X 1hǐX *jǑX +[ X 2FX l:&X pX ||X X F*X uXNTX xIX  _X S -X vO6XNjÎX +X @FXN-}X <AX @1_M+X ~X &<.X ĬYX W©X W4X k X  ǓW#X K:NūX IȕquW:EX kl@X Ǯ&PX J ŀWYLKXN?vX ] X DpǁX X .XN\'7X H! X m&DX 1]X IcFX RN"lR;W)VNX aX MI-CyXNZǂX XNX :}QX .X pƠX lj+X 6àoWOlX {X X ȍX 1X 5`QX  8X X mW[X DX %ƷwWI,X W-X OI,X X  NX  /7ZX - X TZX2xiX OįX h)ƱX IeUW'VeqX sFpX kkdX  eX NX 7X 8T.X !WuD X nfX SX i};XNP]X A96.XNI|p{ WX *NfX )FX ,NǴ9WX QVfWAuzX WR|$X <I4|PXN(X 6OvX RX X i7W+{X MX AIțW<=UN/X JuDZW&V~|X fpX N9VXNr|X FŁX KNX HBX IJX nI Ɛ.WX GAhX O:*X jk@X ~X CM*X FĹW %X Ƨ`X wX dLNJX & WlDȬX ]T!iX R?cWW#X ?ȔGX ;[X @IXWX iVX =&oWJ0%WcKĩX 4'WQLX X NRWtI_X X cX g!3X gX (ǃ1X h_X Z[AX I4W ǡX X \XX =X qWWCcX {/a%X ?uUX -+cPWT_*?X I.X F]X I-CW2}\X I=KČXN^drX =AbnX I>WyltWTlX +=X WX +X sa[GX OX YKJWMEgWoLCHUX 0 v~X |nkX fKX 6pX _wX l1W` X tMX JtWn9Wx`X  -X jX oȮX  X IWW~3nX .QX bdX 9ǾZX nA,,X 6š7X J)ŒLW:N5W_rX lcX F X lqX >X I}WwGƎX NjX JuWJsX J"W7=pXNHUpX &tX hX 1nW}WW:X ~>%vX wX rjEX ,nj:X kX IAXNrWȗzX J7bWe~X GXNIXC>bW=0AcWS4X bǷuX Yr X (vX %FL0X I2XN{X  9X O-2W\ISoWJIAV~W;pXNXX k^CX C}\X IWVEW?X aX ?pXNJ>W! X ^.WJK- W4X <E%X =X W2SWqX -zX ;!VX ~X "X 9l X >X (X ?ăX 'Jv.W/#X  X X Y WŷX RX MWf~X "%X =X Y-+*X 3aX ?OX &4'DzX 1qX iƒX IJCW çX ^gX MbX  5RX A4X )X KX oü$X )HX IU X u8X ;.X ¤~X 4-W0'X I|W*ȯX OGX <KX 4X Ŷ}X O;Wlm X JĊW cR>X >[X eI"KXNX UÇ\X <#X vX BOX ]%X wfX &X rX 'AX  hvqX HW_X bīX ǞGX zJpAoXNIPpWSWX #]X VX X)aX NX XJWXN$X MX r hX  ,¥X e[X +EX GqX cX pI\'WX I"mW{LWDAXX NæWybX V) X IW7IXN+w~X 72QX 1>X w0Wr$ƍX (X PX ?qxX W~hȅX JDu‰X : X IŵUW9gX z=8UX ƽ3X yNX  I& W jX MŗíX  ƣX RX O !W 1VX K%W9fpX MI&lXNcÛ>X I5ȾW4IDȊX uX mLYWdSBWR<)X Z7_X ;\X NiXNJnWuWG>@X H(dX NOPW%JX CX JsX DuX QW,)?iX WaUW1QXN53YX nx!;X X  J8 W:X m68kX lƖmX @3WDwX DǗX pX AI^XNNƸX ™oX )IG\VW!IL WFƒW/ę\X 8cSWUyX *HOWƫ?X AēW`IX X  ˻ .,5J:,)I&=%y'^#[-S"C',[*RDtX-\^V S$ R6 V [F( YIp\B [S Z5X"WV X Y)NXV YWUT0 pT ?W\4X!T  QJYj\RCW~Z >REXXY:Z XZHU4X>VY1 9[)YWlXK/ _Z N\P4Z2#XPRqWUp*X]XhWZ9xSTX#X5WT$, X\S|X-X WR X W8; JXL UzWWZ $U s ;[?X=R*XSoHV aWU RdmDWQ X RXZH6WVi T(}WV [W [XR:SH:SsX\ DV [ T8qUM Vu WvZ WX X YrQ pV<X`Zh >WuUd{ZXZH W#WYDWRZWQBU TBu[c ,R\ W~Rm0 W*+ ,\.TKXX3 SP L\= TWSAIXOT W[ Q2V $\* T WS\ X^Q +\ WW W\WWrWUnSMXfS XATUWY WTW\l :Y ZI DYWQ1? \ cX}W[s# W YRXQZ S WX VSb=qYWWVQLuYT^ mWPAWRB W Sj gZQS QS/WmRbA YX&Y5X<Y {T\/ Z WSWWXXZ W 1 V% R  1Y rQR X!Wb E YuWX5 X!WW "Q P vZ,oWpU# X7T} WRO T2 +SWO SX-Z^;WYoX5Qe ]R Y w Qx%WZe T NR  XvWmX RYw R0 Xy TW}X+[`~U! \^WVXUQZ U~rWRo;`QWmXKX_W Q YH XOYJ RS" B[# LUXZ8YX WWpV{V| SW[& \TX=QWQ 5[/FU W[ X[SR $\h C V 6WJW~VXZV:WWSY UqW9XT3 *UWI[Y Q QU#WvSK \vW[% v\W~Y XHW X.X.WUh |\' VWT TRT \:^ R lX g>V| "W%WVA YCSXOQjw>X)dX*^VX,W& WP\WYv?UI XGWk XVZwWX\9 RXYW\@RRY[ & DV8RWS>5WY%XfZ|XW R R 9RS]ZnXXWfxXdWWY-RkV!S <[' dX6WiY@XcW V U1[|Re \[jWRXA&V X#ZN$WWG [w WZ]X,W 3S TW YTWXW[ b Q XXRS{| CS|~ cYXW< VjWR1 mvT HX+Q Q UwX\n. dZLWlX'X^V1 XFWU 4U [<T XXTmoRK SWqV6 UW[uWQa YZmXWX^.WWkWZb ET6pWVW\? 5S% SBWR[)WUfXjX3Xn T0[y dYhgXfX@U X+VH\WX} vS Wu[|XXBXY* Y+ X= gQ`[ W@ 9\UWnQ V 5T X RQbFX*RXRRhXY[R WWA S\X>UXXGS7 X XZW :YX$Uf\ pSG3WS<5Y -QTF b S\dv \ 3WY2WZ Rm VWRV YWY8|X\UEa \CSlY<!X\kXVa\sWYbWU9Vc WUxR S*= ZZU HWV +UN RpX$TX$V T  qWVWY $T/ dZWWWUdXS RWuS SWTwWW V4W~W S+ Q^WVpW[ [ eW[ W\S S XPS $RP1[WWuZWRZW[ {Wv\ T,\@ Ob\ QQ Z Q[R R [d Z_ R N \O Xn'XoY3JWRSWYWV7WcmWV& UcDXSW*WRYVXQ VB VWR WX WX V U)RX+S[XAYkeWQXjZZWUw[ V`XWZ XMWRsX\ip YKXAQ~R V  T8 X Tl Wp cUTH[U8 U W -U} DVX.WT TX?R XWZ X U?WW\X=U #X[WZXhX+Y`M V[5hX-T W[ Xf\+y Te% TWZm W - S S`QfY7W~TU X6[WnRyoU[A \x WV ;[NVWU\XTeXR5VXWYWZ w XuXT f -[f Z$tWW3S Y& XXUV ^oU"QTXY "S [WSK [gWXXHX \ hRXtX&U*XY5TMR(WZ#WmY Ua [XU2WVv? ~R$ pX=SXQUhH\WUX@U| R XjZCWSLWU3TqXJ\S<WlZ5WQ v[4 Uk {RX"Td WQ!S2XJSV,HYWVpWnUK cW: VrW\ YZrTXQt Y | UX@Y[X S%PS&WX_w XW[M T RpWV,G BV9[0C UHLX8SHQGTj aR XR4cWX($WZXW[f &\DXZXT|V2' R[:,m,M,Ҋ,F,&F׽,P,J,%L,,Oo*eA!4B"$F CCQ*eLC!DeB$9o!NOB"-"& !!2r$9$9IfB""Y2r$9/C$9 j2rlB"o*eo*eQ2r*eɳ!R9o!pJ*e^e2r$*o"$"B!o$!"/CGk*e1 B"B$,2r$9$9+XN/{'*IWo :M)X2u :N?AW :t)W :IX  :S)ȧX  :TX  :N°%W\ :$ŅX  :4W :J>W :O*tgWb/ON_XN :OW :O,uhW :zX  :v|X /%7W :Xx/IOW :Y7X q :MRsW/2lX Q :IFW :JJ1WE : W/<gđW| :OôW :IvNX20 :JyQW1 :O7?XM :œW> :IR>XN :M!W :N_ûW :N=S&XNP :rhX  :1(EX  :N]OW :+ǜX  :PX t :MXW/O>+W :@TX  :J0X2 :N|W :W :InXN :1X  :IhW :Jv@W/Ph/W2 :AW3 :NVW :K=ŒX $ :ǭX  :{~RX / :JMW/YX /wX /Jǻ$W :NW :W> : X F/``W :Opr W* :O!W :J/X2L :OtbW :X  :jiX  :t*X /-W/OaX :JOXN/tȁW :]X  :OFW :xqX $/#X /OxXK :P#X; :>X U/YW- :>Wv :W :€W :W :FX  :NZuXN :NǰWt :X m/S¢+X W :N\OW :>[ŤX e :.X b/[*W :EX  :VdG%X [ :J*W/J hW :O_DRX2~ :gHTXN :JG"XN :KX /X /:6AVX  :JW :fX a :JG?NW :X  :InGW( :NxZ"XN :Ok|´XN3 :IwW :PX  :X  :OuKW :ŢX  :; XN] :VaXN :O*@W :3#X m :JVW :M#XN` :4 WT :%X  :@$pX2y :Jķ~X  :_`X /N?W; :N]ȏXW :guI[X2 :XN :N"W> :KnX _/mlW :O35X :7X  :yX c :N: X2 /`XN/NEW( :U_X 4 :,X F : XNe/gX  :N fWt :#4W :W8 :aX)X X :Y,X Y :H&W/Ie&W. :wW :_UW/Z}W :qW:W/X  :O3MX` :mB -X } :2wW/n6X a/ zCW/M?W :IDW :O bW :OiW :}XN :|X  :1sX  :HĽcX 0 :ĿeX21/I ,W/ :JW$/I W :NȘ*lW :BW :OE-vX; :O{VWG :wȀ{X  :N,2W :JW/YCX  :iWe :IjXN :STW- :nXN^/5X c :X_X Q/MpêWX :P)|W_ :O2W* :I[Ê4W :Nw(W2/W :RlW'/YW/ :A˜iX { :IWg :N,)yWsT :*`W" :J<AbW : 8X Q/ W :JI!HW : QXN :OX : X  :X B :ȺoeX  : KW :N9 Wt0 :X  :+X O :@bEHW6 :tJX o :XN :PXN :M2W :(X I/X  :BWd/P`ƭW :o{W, :XX  :O[H8XNa :OpřdW :mW :P. /`XN :nXN% :&sX /vųƁX  :jX  :O_-9W :fW :9v Xz :tX  :J18sW :N6SXp/pUW :[_X  :ļW :O;X2 :7X  :Oq W :~(=Wt :IIW` :N|OnWt :5W :IcJkW :sFrRW/*}GW :OGtTW :JN"X  :t}[X t :f=!W} :JgdWh :NxEBW :'.fX  :sv:X K :O W :UDžX 3 :OXWB :@<eW :N|W :N}W :[j4SWh/N0WN :IXN :O>XN :OydkW :OW :CAX " :{W :X  :%WÁW :)X V/mŽX k :O|WE :I .WN :Nm<XNc :N n=Wd :I=-W :dLW :LǛX  :N/EX $/OžWt :M1RX :%SWj :Oh&WO :I_W :;RW :AtX ^/Ox6iX` :DSXN :N/xLW :X V :J=0cW/Jp\SćXN{/DmW :%WZ :O) W :NK2W :x4X } :N#&,W :OcGXN9 :T/@W : X  :OjWW :X  :NX  :ƿMX x :OhX2 :XN) :T4>X /Oo¯W :JxXNz :J-ZIW :JmW"/Wp :@CAXW/èX _ :NqxX2 :X  :Ny<W/HRWt :Og7X ::X  :I(\XN :P ,W :OFX :JJW :X |/X } :|WX  :*X  :IZIW :X 6 :W :XW :I?W :|b*X j/Od.XNl :NF.W :4#X  :@bX g :fiEX  :X2 :WW :J$ GW :NT'!JW :#qX /{ W :I!UAW? :?:\X 5 :OW :Ns?3X  :LW% :I;!YW /Bȟ}X  /~|X P/Ih}6Wg :W/NxrW :Jr?@Wt :Ip&Wx :mdHX D :N6EWt/X  :7OX  :JPW :N/\W :IlW :WX  :NâWt@ ::X 7/2X /a*X2 :pwX  : rX @ :3X =/;JX  :O) WK :@3qX  :PAXN :M1XNG :]X  :nX /J=XN/OHYkXv :NW :gW :YX  :SgĸW :" yWV :MȿW= :F$X  :J;W/NzKXC :)>X /W :P^Wm :OM+ cX2 :0X  :IIzXN :OǘX; :ğdX  :IETUW/s2lW :I0aXN :NSXi :tũXNR/[wX /ZonX  :rxW :InW :I(IX2 :M5X F/y@ W?/}RLX y :J;W :;ȉfW :P6^qW/D,6X  :OJXN :@X </JX O :I0ìW :X  :< W :GX  :I&sWq :ǨW :OMǩW :P63`WE/OǖW! :>(X I :]c W/JW :O%X( :JW :`X  :+X  :+W/NlXN :JƵX  :GW/P)TXN :DY eW :PdXN5 :%r.W :M!tX2[ :d~¾X # :IBaW/<>WG :N~`W :IX 5 ::1XWw :OXVL :BrX  :#CtW/OyW :0űX  :J®vW/O W} :Yk7W) :FXN1 :GȚX  :qX  :IFXN :Nt0Ĵ;XN :I?fWS :OyąW :Ǚ~X /VW :8W :grX B :MW/CW : "ȒCX  :J; X2 :JHW :P [|XN :\}X /OEgXN :@3XN :§iW :+  #`!g'^(˺ U3|`'R7 kһ &U0B$ 6KDʸS*Tfz"2*y7@+ׂ$5,B$h ' W"$ O/,)&V$} M&|!$:$.'+* - (*OZ= l6-3L/P D&Uv&%*a0# $$n ?$!2M+ B5wF8$Q/ws"?P*2l#B +m- W3!J.c*"Oo"!b2U'/$^M%w u!M): Pv 1DWc''|+&L,d%,I)kw- 'Q*&E,CJ '*Y.!n!Gr$/$ : 8(d*&CT!&]EZ&M]x( &R Y8 n*m+ UZ%Ux× cȾ*N}C2V+-9*s7,I&9&/,6Jp.H#B5 iO)o  sUx*;"(zQ &* Lu-p$@, 0$)!#!9 )$5Uˡ0&+u* :԰(S#! m$P!&J HcMQV"v %0'>6-C$ 1/lP'x~'(,Oh!*<ǜSْE ]jm8EW'cM$ .~%$.͙ 6  *#&L(>*SJǶ$s-JJ8#) hsCjq;utdG%/@iKvr:s|kht#giX(v!x]8R @ Nnrt=~~t~x  2 zstwjFs7gn|ugo|rmts+/qCn @ 3"qDn#Ry\0eL1eOq#}}~ \5}#tx WW~p rp.fyq1L0jLsti: Tiq"Viy!fPvfTyy~~czU)hm4lf~ q`oo6 c4sR>I.!tUots6B>ff)lv~}r+pv upj*/~%6t~&7vEhp}t`m5p7GuzKzitqWt<u}uw jE {tyou>Euvr&nQ:kvnsq> u9v;tshqpqzw<s'[ ps4gIq- 3VuEgi)l/ssmrrl0us|iqq.W7{rywQ{x|w12tFzvXSWEm K x<BUqmgp-3 Dff0Gff+vSWxW|A"kt#k"vktH:ltIAsy|s\h\t_~rcervHaqpfZYZ ,?uxqk qRsuz.WWSNTbAWtgDj"etxrrqj}` {#t%|&tmht jg{rqrr|msmqiMQ}X Wug.}Yrk}\sn#yiw?sErlnr}[j)rxKu bqo}Qgr{|CuGURb&'o)sRmF2{zHsmItfhsp0u"rH6&xw9n+u,o}A8` a*i;tts/qr|sQ1i yNarNfm0s3lqs5ltvXUtbevjo|q;YXWX+gHsj;Rrh&7u_Ry1q`IlONrb  s1 ^ l*dpk{"~Kpzm5op7p=z//qgB"E%qLyp<r5XvZ;tDXV';uht u JrBMv+f}ftlxl|8xz5prpuQWiuhqmzVm}{tv?,qSx(r^WXH/sFxcqqzo_PvIlqsk]uf:rxy-s:~lppeNhbHvF-rmjn[twsxFlorTy_ql4 d u|x ul=tw'qwS+U,tgGeNjRjr3h5h:s}.i9xTAq5@'mtA(nthhrrmn'{tH}wkr]t|sqC#iuM hu<urhr#[)|u?S?{mtrb3t}y}Nt]i/uuBX<XMq|lslFKifq~s,|%Mtx%tzqgVnXrri#WW|@iay'&;~ vQrnj":u<xs fjTlttWH}kpor7  r%,otntv q w6t yrs;7@fUVi_9!|XsP"kT jpspsjo;t'C0uuooq!stGojQfs!yiuX X;rma}Lv=)P puUiWpWufeZfyr Wh^m^Sk`Vup1skMnv@OrxCytY u~Jsu [q(qBl-uqHLiuq18v^qsU'>tyor~vSrtjp&WXlwvRuqE{fuhyXt&nn  k}u "~n) x7uci`poj_idqUMot{rm&rm'czv)gjlb-qt vrq`qbw)ue|R/%VXX)}$ h2vsYm;sm?smA$]wir?n T t= |i_XgszZof<7v R jIo{y{dxdt#d4wqj tqbvfqms&|d~TJg~*RTrcf;kz%~ozuolonjQu(R{w]dfr-s%t)e v{u+egs]sJmqsFkketjux}r90qBfuo7ptxgt|iqmyZosfJq~H:scYuu}D0~'L`uWWnZm}VcKq9'4jt<tuxC+rm9Am::~Rr;rr?"xg+y^m ^] v0wvuZ}/q8M_sk qk kuW>sziEug /g0j7I7i 3j#WX*I}p,quItuL!tB] u]>~{3(t~{8*s;pKe`rqzmW/WWXzmY|uZtgrsr&ZCOz<Af>z=BfTMQWzWuu#kkbvBE<VDd|}7 Y :aEvsXrR}XfX~ga-u/sDq$F{f%uH{lYgsgvJrRoo hH~)u :i u|ti qf7rz6q>mubn6!wt7l~ t8l~XHw,4SqelrGur_Fuhp~grhjx1hkx 2~5~s)Vt4HXRWt<ur]hq|kKr%sH { {'jriaomt|4SqWsVy@4OyE9rsOw~sN5m|>iD|gS^ uL7hnqoPi?wW1 e5xqwL{uc(}`s Ui vsYs56.hx~&qt[s.#fmIrWpBsHysJy!dqejr|rkumrn{pvrn{u{r #|k^ieWteeZth>qA?qBtk;gzBhDlrls53r9qdcV%^sdt](ut/o\zwc.yo%F3uy(tqrupqcoqGfzui<  WzW"r}3X=fsYDfss0kl&tT('uUeqVo]tpxMpxu*p]rq uq?kP!v;Pu%u*sPu+y/fpkspk4WW sopuoum{<z~sf+0x?quOUtwm1b(lH<- l'Syn5aeq@xu|/vD|0Tr s6|<XXX!5Jk+t~l r%ur7B{}uZIqfqvG]vIvJWWIws~s,t Z%umjqxvn-vWX {,tj0sGm.i~rEm3lq}$%m5yw|xts $g~s &h~h@r rzLumrzMm[XWniJ,||8tg{\z.z4wo>Kpqri Ei'Hu;i^qFn."o#-t.xk< uvv,sut|2~Rwqwqj"pps6y ybtvrogkqUgstqit}jlrsvd~es~fs+bv4't UtLo5rX}k+3s`jf'tgWlWueft`fuqpouu}"yyQx,qk iz|_,]if}jp/ltuyHyKuyjt.  }~y~p}cq_F,k~\fry` tf t}zqc~Y)isnu\xttz>{JtCd='t+ts fs3y|wwk}M*k}N|ssunyurtd~v$p, 4iSuKG%PnSq5q6PuNgyqP\LMkRoeq{9.ur~s~qe&qi#1 qg*Ow"ov^|`Z"XQwjA1zGZNhtl}lu5gu[HrNzrOvOq+svfsvu(%ou{?csmb'skrr^<~ \w-#NKkrvvpgthsPvWUGVuuls?axr!m{ hr"m{ir0~J __u5mxRN QbrOggwazre>srf?t|Fj0ihAhutrrMni3tfx'EeuV~r$tr'sIjUc%s%!9rGnyfAsSsr,M}t9f??+guj?zi8u i9fvVp s-sXx+nzELmdupiu/ krs8k+XWtrwzsw}ft;p!qDgeFQoibs%2es(xm,WWvgdisp*jauC^uzjt0iFf_~u?hXBuq#LWWnPjX4XfQqJLtjvuj8<qu'Mio.r,)g#V >OQhs8.prfUtc~j u0YsukSroF'kMpGFt.pOzhz}v2v!m!v"m$hsrWfrq>v}q+qv *ptpvA,~Pt5tg~lmlmLO cq?x j"u@0ququC(s)* -\~$ rZStmv ouey vKm1k=ptUtruy%,&t{'fi,gk* ,qh0nzh1n{rJyS~n~jt?tEL|tUi&vq>r5vB ttw+LvuktQJ/rkuxta}ngLtW%u&xp|4z' 0Qitx sLtfnS_i)mUstHvT sQrh&.{"|bjfskir`_XZo~Gk?|gt!|glqx.qy0rtrt;ei9z|rq{ |t~jtjtrrtstA@  SttDstzzs~ZSosu'.sOg? v;slnl[a:iP:  roqjk_Fv?vr6ptz) tz*f|ueu;f/Jsquss~uqyo w mS^zIsht)vpx{ Itlubfk=N2WWX~"L ~jpssZ X6W5|}0P~Ang"l1lilm5kr{Wuwn38qq'{:2r>g ~gZB)ty@Vtqe q~f X|O"lhrlhm~rkhomztrg]'om^rmh sbw3n&jdt{Irrr[*1h81WWshh|42~~3~q]SX(qa{& qioruDq}ussh&f+-rZhZuqPj {Xv6mf qusEov8qpv9v&whtt=F/sEyiu~|%rsDsqmwxl"Bqxl&Go"tuDx5qwuj`8 tfzs zGNtKHa5nQ}sLdMe | nfBv(sEj<uFj=ep@yt9B-L9jhsmL"#N#1sw]s O$s_ Qt*ky83ly9}xi:qz=ls'/|p--(q'|wqsyj:tEnh+rt\ue?uCpDfls{tj|x^u-8_u/;zj/6hu2Y0htt  w :fr| is5O<<:rwptu+ qX0}!l qY1}"l s+k[{F uj _th6Esrm)z J8~u`vq2rr4r5rRk{(*`6yuuzXTrb<lr!q*i{nwsD4l6mXWwqQ7qW[Vtkv X XN {>4{ApxfEBoqu.4h7t(uz?&~RS'~T|suRTtkmVws oaizn-\ m>yBr^wq/zNWX<)s,e4ZubYRju"WWYs1htty^~|fS)i&]*ww:Zpv \pv]pr4oz u ozv|rD|vtzi0n<cKx}}sv}&v})sx_JQniois|[>ts{ud6kvv rt_?~v`B~uR{XWn18Ntnw>PtnwASveyr#;ie3tPwwS wrjie ns<r|o|q>m:Yj+2gqq3h VsKo,vt3o0vu~yTWq}vt!7w9w f=wmuRouY7*kh``yk4zht:~b7trly=tOg,]Qg/^B^Gz~/ryvyvlxt frqkG.kQrT%p1&p2y1tvlg*eV)eXvg,ksjelp*bsvX%rg lsw{\v(rnxTrg~{5q=fB;ghy3hiy6tmyufo{ul/qkQ%TCtuPlZi.qst|2rx={Il:s2 sjhO`uq]tK;qrxY[dj <|5usctM& 2jnw?s\k(Utrur'uC|x2ix|prUwF^uj>(=~#x1WWz q\@n]Aps_r\aBtaBjSnVQr kuR={7}4we`v'wIh^g\{"g`t(gesVlsWl_tx8%t+sfah CizfKGvVuny7rqxssp+j[=tY~*vsWtwqJE0}rVsc;Tufsf1lik#tNog^tSoga9pzx=pJ%~- tpN' fpxu3u7sT#tHNkmetpkoeo_ yf=tfAt)ka.5h__rxbr~sl1~P{p8}qM2f"3ft%jCuYpRpUupV#o~uAnI$d  uC&sgs:r|^=uQ$ s CqSjwr8}xm}xos%fXqqMiWWm  riq^"hdu9Er@-osM@rRy]tMzu_&iIp xdunqrpvrw!8u#:qZ "*+bv!lrrr{ dqu8E/s |rX%X.ox.q\le3WX\zwef4tuhsXrgv!rE3s-0X ? lq&{nrh=V& smFeBmLhFrw}?E " ;jfgs=lquX\X#uKt4u|BXp[oGn9vLJ3u qg|P|&-Wr F &~wzSg uL}rx s=nut13s'oWX.kuqo+uk|qM}5if+ottHs}rV}!v oRE ouu3p}xn  dEs)j4vtitiwp| \quF~`xHtk Fu<xhnqhxhpqoos| txWsv5r}mE ttvo0%wugvxv  p- |gsuF${Ar{}I}r}t[eygygPlo6yg%|sflq( 6 zImFksks`X8hu+1u^pszPu9 ^j'gs uqppty+QtlRkv'mu"r~q6:vZ_v[#aChW_}vr`vsRum h qnN2 E xG3qqU6rV7qq0Yqq2\_Attq{MeAmokn=qrewqVf.trtpuh/|]rqrIqJr|CzJo5uOM o9qnL6xOTt4\.}ro]v<9=@ ,[oitX{Jw3uerfpwH|i`k euu!runsvunuzqjmg<jng=`hsxr6pmgxmtd}sNw|lYZGmMuA[oOs5UsQwuz(tber/r0ri&utRm|utTm| tXm|cly;Fu\u^{wDrfsHv pstPt5tRo+rAFE`r9htzfjsg@kRqoxup@Btquv}fmRuueqkcKpQsrPrjflGlJ w<Zu:u@lu"vVkV[ztlzXE [}6AgsgEtfr~?mKjgit!lM~tv\|uVv"kJnVu nlg[(yshNqaqli{G.~3(-,.-u!,(5z"fR#vjkd UtiWu(ons@>xtxs7w<,/q:tA/hO  u rlhh&rm6tk*tZPh {rUs2>TwOtnsSrdruMq+.. q4#)W~X){qwmv}js| u p||;l%r1+hG,hJsrw||u)Nusys`nE~T ! [y"nnsj7C{pCw7Uiyz{n0zqIef*\sqtrAuTqyfryjj8yDt+v"Is}m2ipD5 ~h|fuX XN#zQOzRqG.s~ylyv8J?TuHuujx^cuP G V~{65r}jjs}$jk]os# j~}hr/4%f d| }~|xuGuvK^+s@k<t|n]m~n_mtvsxhHxhq7br*p6pvqR-lR~rcrxNWvvxT]wxV_qfFkw:kwqu}$rLpmrKs[IwKuLs\O3Sr h(rS*nL6qzX4qz[6tmfwg1yiv:lq*cutC)2Yqi|-xsu~| s {Th hlcndo lzqq shvIu3)qv{zrLwzq0sUxr+]NMtvksWX"CkfqO>)tdiOmuVhqeqkpj{fVun%r2tqwM{w~{y|yOWu[\q|Dq \Pk\=sIrm{vWtvX<vYv^t/NN D )etq#ENfOolDzrslFzu[t@|&rD t-h}r }r Xn}rtwR9onyD|NjZ5'` A5vCn sgrr9B}:YtwwTwuWqe>djs{Q \it_iWn~qss1t".zr0z4ztrwIrjpe{qjre}t6xLp~n|9iTv>To"NXmns*lYMvg#itLOsA1s+t}Xw/|rKR]cPil&Vj}|uMhd6Iu$> X]X$:}sOsta=stc@~QXhi! 1~5pZrgsp!r]f{3f{8HIF cwrs^aj%kq!tku)8~=i=hSerdp-oNt?gxm(rvDlquN)wzbs{r%$lSs7v#tqTtEFs,XRWh|)tBtXnFt_(Wq0*Xgg,3gzqlqh.qh/e&k{*r<(}r=)sJvjsjZpq_,MZ9)NokDt9hCytv.Axx~pq{i"mPsmQu{i%v5}}rP.|&k2wp |l(Z.9l,r!M6e(r0zW +r0s{$ex*ruvG!j@ (5tGq~ I n u|qrAn r:t|zsv(sftrw^ui;xmv wd{wf} E=wwd}r{r$Vtipipv*z-#hs?Pr' 2,$|-{h)0{h*$2{h,ulu snO8}~rKr~:]x0nlpYsEvBt} Jti siwtoftVtq'Ut gT(sgU)2Islgr}r r}rt)zt *z pjrBxelz- *oj>,tHW *toJ~ttkftkk  #2Z&s(vJy}ps}'@p  7|RI!~Qz2ugJsyOu$o}C3kuhv%kuj |yr~syt7fHd~sZvpxqQ #~tusIqeqf.zVri;nppXqzo6kqf*~ t}x9t(x;]~B+r_~C.qkUitutudftsggoGuo_ Uta"Wlt%*lt'+yrqw@kFu[;4_=tve]KuyOs{\Okyu-jEm7lHv~d~k~lmn&nrwtmsy!-tsqwe|g|l oll'{lZt vrX XNVg0us"qw*=sggvkhlov?Iur>tuwr}qvMOsmo0s/s{{hu~{h+~{s8r<vtnvg8km @ tvqs`Ov.nv/nOr2 r|Yu0su1'J3|P.q$ |Qqr*Nr{d6s~pTr.i8'eyxHuDstqds~~mMsyB"+Bg-t`j|n{t-i]u]Is@j7tmLsr 8tpBnAxX# uxX XWCvxqku{|ujCL@tj q+ptyywuyy{o2f.iu4xtwxuCdj|yseiBM\Vq uGt`<`Hyut?oIJ}?jx'& `f$o}ujDLwqgC@tFyZLk/MvLpnaeruEnHtmsub i,9eC/;eXImxu<z5sBvv+uwvw,sCvz0ta uQrSu7QWX5rrsxt$l]pFeAv,Ir_{q4soLdt1uuJJuR`.u8|wkOf6s>Cs@DCqmO W>lPs>r(?s27ropI8 vihuW{{ ANBk IRs)hLxhO~X>W>ptrXv0gf`~%r68Erzskiq[E/|rJ0B<rz|Mz~NH1u6h}phrqN7Xu tm0rrkPtyrkQdukmV$o&um[&o(strI7jqisqrYwxWW v(Hhvr"hcufJWW2HK|J;/mIws2k s6ko+rmkmk$g5u} pu} py>zu8i BwwTt}}tnu"ewsezpj2?j6$siM2sjf}.f#lYt>(p_G%qts>P=r =J/c9xwCu zt}ZsroB6soE8oG;oI<tufse(1r?t iysg)2y qby!WW~l?I,L_e!A|rD|rF{hq6u) VAClt&k6WD $F]UG^(:,&g7 'm2kuttt~t~u~ qpou=yu]yqZryfIzj.sfMzj3t2Fr:~u~ErkNm;qvvquhl { e ~p>i/qk0(kaF,sI-g-~upuojcqeuTlx<a?pu'v0vofh?hq q"+uouo)tvtgxsir~.u<||7rug}veX) 2A X3qhqsjyjroobv-h:5nKsHt  qxz6k Ses~0edsej7r +i}8r,rr[ms{lq ?qC0kwUEghsQJgkfDpr)gai>zHseLryVWsxyunjWuUXuXsg-rhvjo 8fs!iu< z;ngxsGurxsJx %u?irmsxs8RtfsUrx]gXzq}Jp6 o4vlrSrTX7W}/4to Ktbuflh$q=s%r~85yau@l q\jA\gVvot[;%G!r\M|\stz#tTov"opg]ruX XN`W L~qj&j\up*xsq~;nqs#qr xLjsruJy4ompt~T@tsZ[sfy ~nJu.ptp~nPuLt:Gu5X*X<is^srvFgv%Egz)MJo ss ,*Dh.Nrnnv#2>m#q\8sqNvpfp^r:>*>?TuBCXswiv~~r[zx 6lF#/uzlaq,rX XN<nrjq_uqas9{{hU7s<ggY qstkhzhztyYbe/"C -f[]as>lq3|i|kt7zcruX+Xp(D$q, Kh]kv7C~tS/4u*zrt,zt^GLrnxuoxvurv9X XNoB~r~r~rYtgtq7s:={uQ,Umolx um4nKtxump=tQy0k;tdit\"Mt_-/q$t@kOkR)VsasFo.}_8s4#~ -}?r}@rH_js3Yi`stytuasI5H}NWXSuugtJhg zs\lv fLx~t]k7(k9t^k:rrf-!~>a~@r y{PX) o'G4hTM*mG MgRi  rqfw|(0g{Cy@ssEts~!s(h+tuu~xqo@roAu#ru'rezv6>U%tfu~saq~vdr0VW pq<uRr(~G o-vLzhmizkpiv3qmvpb|fkNufoUlk xmlq+k,v vq,k.vt{eq5!Fh"s}{uKU) yS~Q~Rxg tF<q{p{ *xsu|tIRwu hu>nF/KcYv yrQ{s"ri{w$l{y%Uut ~uh*tNrvfaqLruw^cak&eer~4t|Wouu q s$vG}sz8t=}v yLf:ww(u;s<wto[p\%H)N+ u|oLu)wVriuxs|sy*sz+sjDh xY}94vqit<shh$}InWv1{rX XN|"waSCsWDu%kvsZ^ mvpvs/Y|uit`sq{~2 a7fsWi xgyuxhyq@sgse*wyrMl[~sX}UxWXjn4vHuyKv>v_MJVxd(jv'rk} Lq{e|q|e~}PjJ{osO;bzw&qtPrWIo~vCugZg|Hf~uBgE~lpyezuS ylUf!(nuxu{uKWWFtetBtfuT]z mjvrC<{yc[>!  fYf!6z Ps@r;S*v\u|~ut"'gu|'tntsqv6tCGv:yJrYx.l{2hQeqs\{P_uf2q:X-Z.rqtj5rwiLHsKqA=Rqg|JuBW!qEra5w<B.mbnQu!gqsgrH{szv,|!>qK5Wt>t%AiQq!WWW=k#t)HhhX\WrZt5&smluC5ukkrSz~Rrw)qj{wqkvGgy(,< lL|Jy-92hMJ)_)1E- /:.+u)1X! "9t!"4IP(># N${B-]*.$,hE3-9UE,pN x(d$+'G*P$vO?!n.,B!&& +%@)kQ(S'.5 _-3'x#$$ (n!,2QA.$:> R&*  1X Wt{$WXDfcWWxp }XX^|WXX WljVWX @WW8YlX1WpXX iNGWsW6WXNWkW}WnGWsXCqrWWbWXU8X WUWWe,WWtmDWW?rPWW}WWWXg'WWn4YX-XR& WWlnWWjX XWyX XN,wX:Xh+L WXo[8WXhm XhXUs~BX X2yiy xWX$X Wl XX1hyWW2 X W@mWXAmX(X:@WsX0[QWXIecWzWV WWm W}W`wXX-i{;XNW}a/WWWXXeW iXWmzWW9X W~WWg{ WWXWqWthz X)jWWk EWXzY X X2aFX WfP WW44X WWX o$ X WYWWji{ WW kEWXe WWns?^WWlzX W}p4X(W"WW_  WWlX W|lLX XWy LWXeXKWq'sjK": ~yX;WwiX X2 WW}X WqWXf6SXWjf{WXDqvWXr W|X0OX WX WeWXoH'WWvWW{|X;WqlzbWW~pX`W) WWtiWzWzkX WWWP WW} X W~rWWXX^W XWfWWlvg@WWuOWWy"XeWYaWsXC}WX(SX Wyp IX X2btqWW/s*kWWzBWX uWX1wX^WX WEX X2tX X`lkFX WwXfWXzWX;}[XX'QXMWr:WW|s]eWX|'XMX_r*WWyQ X X;wjX W5AXCWq1WWQpX WteCaWXdjWWsWWvyWWsU}WW*X WfLXVXCfgX W&qXDWmCwsWXX`Wa X WuIAWWv1 AWXWW0 WW{i7WXjwHX WTWWrX X`zq WX`gjWWtgWW&^-WXNlWWqX X2gX Wg cWXfG; WWvW}Wx>|WWmn^WXk-X X>ZgWX;UWW]uWX,XWrWPWWWXD{v#1XhXUm%W}W{WX(h h k>0-,I9)&) oP H0UL,M .`5iGLɡ%#u'9!Sd' $Hl -D9  (dHu(#2MЙp,DD!?f$z?o RDž@I{#1+("D--#(~.(T "-ď)$ Hx z ~1XQ 5.l lH(P?T+5YP ,%(*XYvJx [ ^%,>‰.Q0!¸rv",;V-"!'9Wf 3M+&9Z-I>RN( uUb#9&.q%-Nz +j!\/"4)4 WSc./@IA Jg*F4[G#'f5-+$ <%Sy.(?OүD6K `F# Nd.(Z''bR;2'&qS-)'C!{-(i;%=-g+;'ZO,%I-$+X"EDK#ԃ'E 51Y*L ڜ(P'J lYp+դvA [0R;(J.lLtIa%2+e8D"*&NT~OOLa=[,L(q !.-`v!1 v"/S+''!"QNV}.bJn'wd*t-$R!4.vpdmX$ s+!E(]ÿ,al9PKVQXT./!(" '9(  i&`*0"*˔$KHʾ0&C4r.U,tZon}"<%=)K#kS׎.$.!!5. !F<$  ^,O9 ,: Ld(%0# -FD,9%,* %M U݅&j *-Qg.$-*$-9V(0&*(M( $2!z].+=+ 0w  6,L/#+u":m P $#D-U}"_@0(!`7$H _.6-  ("V*;=8& $<?6.Y*T3Ts!9*+RR)ktK*5+TFC!/%F CYz2t#¢!H?ZB#v%px $&> K-b.,lhJB%VOu!n>)2';Y@&M%X7>S'('   n{Q&:,y PG&D`! &') ͳ7&"4W"l$*%- R +CQ!d&]E+.R4&Y~ cC #%UG{" l/":UK! /uPc,?8&'Wd$͈,K!a+!&a =)fEd }$hQ,IO$C$Mg  R, !_.@**w $&WP)$}U"Zgß#NC:j2!GpA 2!$nB/3'5JvT{+u·"0 HB5\%*F f!"$^!="L% #p. -h '+l*L4* Ax@(d4))b?PH%(#*aH .Z-˭ ܬ0.-* $jg:*s 9U Լ&&9< % *<T=+, z(S<X L}]&TM.~~$,$J!JJcNp$bHn'MEx y 0"vVQ 'lj#9+8"?*ZL>?$N E "'*0<)M!+bQ-'/vP",B}U=1Z"O *-,B$Ǣ \%wٛ  T!,g.W$&y-H@%?(fv5)&?P!h ,F -]0)}` (4>!% , 9?@g=TV~Uh#*^.'WI6aN` + `+`ƫ``%`aM`,` 8`~R !=?&@b&KI 6w`!$S+Q vYR&"06%*uU|Y7'k%, !"(`0# ;+' Z'J)hm+ƞ>+p,8"1+Wu-U 6$7 &(V#XGK?F(+]" '= 4F?D@$Y!/*_Bi0K|aX"2 N’$G X:4'#` Ӎ$ `'4@C/,xkR,3& (.WD. ry"6v 6 A$n(heMT(#w-gh-M!6 06$6$S 0 0>=]$T'.i*,p2&kI\*B*v*&5&K+'ML _$?G+(Q'bq$8Uh91+m+Fߞ;*V$". hϒ)%Y;.t %[>yF],iߩͣ ha%Y hI<*h;n֫*hb; he)LrCb%YQ5r[ hܱͣ hQe;<*hͣ)ͣ(9IͣrK>*hТ%YDe>)Wy5,i;֫*h)FA;.5(b5 hM (.&(tF](/֫,i<e h6( 2F] .< Q;>.&,i7I*h;.&D^F] 7(U;)(:%Y֫rZ eϒ 25('7)=*hFrke(9LrK;.ͣ Q!.&)8.&)cϒ,i(@.er&L lͣ)< ; =>r5 *hϒrYͣ*h ϒ h ,cLrAF])7 h֫)We h;L,i0 Y֫ͣrϒ(Tϒ(C<7$.&,iC֫rT*hUUL%Y h F]*he,i6ϒ*h/>rBz֫rIr<*h0-F],iF])F],iL,ih5r3.&*h<oL h.& Ne*hUs7 hOL5 h>*h25%Yrp7,iG.&,iѹ<(K'>,i#eZJ)V\< %Y+ L)> hQ~7\6(ϒ,i%Y67(?4#.:$X4DU S!.5 K&)uK+EP!|!!ZQ&4!!Q Q!!!u`!![!!!!-!!a%!Q!!QU!? G!0%!u%'!{!&!Q!Q!!!Q!9QQ!f+/!!qQ.!!Q!Q!%!!!+0!>!!!!6!!!!!QQ!{%! /!!yQ!!QUQ!H!!Q!FQ+/y!Q$ O!+ G! G /!!} /!G!Q!!r%!!!O! !!wQ!!Q!`!!D%Q $.d!_!!!!k%$Q!&4+$!4uv!!E$/QNx!!V!nQNx&4!!1!<+p!$+!QQ!X!!!  !!.&4!!$!7+!!+ :!!!+/Q!!h!8!QM+!'!!!!i!Q!!!"QM+QM+!+W!x&4!R!!!PQ% Q!!!%!+ :+/!Y!!! :!QM+!+/! !+ :$u`!!!!=Q!!s!Q!!,!Q !Q(!s!!+/!+/&4+H!t!! !!!Q!!! $"!!!:!!mQuc%!K! !!+/-W!!!&4 :!|!%!!Q !N!!!!!$QJL!!Q!vQ!+ :$):!y!&4!]!(!!Q!Q $)!!!Q!!M!!!!!-Q!%! :Q+ :!Q+ :! :!e!!!2+/!!t&4!!! :Q!!Q !Q!B!u!!!! G!!+ :+ :!$!g!;! !o!!&4!!!!j!Q!!!!cQ! G!!}$YQ:!!!!^!/!!*!w!p!!!zQQM+!&4Q!!!!Q: !!rQQ!J!QM+Q+/!#%! Q:!!+/!lQ!!Q&4!QJL!!!!~%Q!!d!5!\ :!!Q /!3 !!!!Q!Q:!A!!C!!Q!+VLQQ!!Q!!S!z %!+Vx!!!!T /!!! GQ!!Q!&4 /Q Q!)!!Q!!!!I$q7&4!! Q+ :!Q Q !! GQ!! !W!U! G!-.!%Q!Q &4!Q!qQ( G!!!!L%!x!v!b$!Q.!!!!Q&4!%uˤ#-| ̂w:!MPQ,&s(("%'I* QX}+;\- ',"Q!+]1 ,ʽ' ^$ O8b)J(%KPU>-''g1#)!"N.1E:)lU$~! z1%5('\<$"Eωޝ.um%Ӄ# 75QP~(V-`(Z)-pHG?[(&(OA Χ<="y!$#Ӹp&s#.W91g[PL!#AiQUSXvb#*'T" W*X<V!\$$ Β7(zċ)Y)|&(Sή&cMZ* n  K%UuUO).*<#>S)t V?Z&K)kٍ"v "iL *%  6#Q!1  P%m4L,BF3*;)h"' $g.?>E,u'۲9$ J83pu%,'` 'cZI j +gtS H # $_'<%*Dֶ-o%)'z2 nV ,c?+!.W" * \A)*<@ -'`%9+o qNB )7 &(Z  /# "JOe'm \& TfIhym NP *$jj'8&uW d=!fGWpM f#2M 31g`1Zgyg`0Zb1g`.Zc5@g`)Z^2g`+Ze2g`/ZaOg`(Zf@5g`*Z`yg`,Z_Og`-Zd"'v7*J&#!*@'X#$E'(& WN&+> L+Ԓ.p %~ . %ծV7y&>ƅ%$lP P,J-I"j$C,5;(W"*_Ԥ3 ,:I-`$/X$h+*A1-JMpIS&E+ f <-L%S ; w |-9>>"2 C.*S5-6 H t-%[(p/,1 #BR+ %!\u-&%+_+ &U [$1*+,!'*kmR 0l!'e%e\!! +(0'(cI#?- M O&@,"X&r *(" BWXNXjX(XNaWX X WkXNX X ,*YGa#ֻ"Q,\6) E/PW/93m$!7>]Y-R3q,AOM(3 [ v٪(+'%SC+r U;YͿ 57(P&; l1JC.l"MDJah %tʍ+#$m[A|[T9.f'0%#L%H-K&# #C' /\o'9ҏj(#y"O M wx)y\ 5r (PJDC($.lTY [JJ)u+Dq lֵ4vp*FV,<$EC۱&̻ *7"/hH=X'v'$=*D8'#'ef#K@Q #*.( O{Z.FV3(%/ Yb'9U3(u,mF "K)&~F'G4%D.iADFc<#J^7"- $-5%"#8|!"$"&  SiL-i: 8M0C7sK(AI}Ps)v%UJC((|!h5k-y#t,2("(*>$%#(.i*$xi'}>-H&&Vֆ$9Qu`Z'vrV#+o".N,Ug)&T"?7 @C(%Oll(-X!h!-,Y#A ^A99 ^n&69&6N*?979C9NƢ9*LGJ_>-9O*Lg-=']W$h Wpů&v>#WE$7\*S1*_&3~mR X9_*d#"K4..WĜ!vU %+V"PG.GRc!e[f # OX?Sy-\h!o).R&- h$ZB% e ?P* (A&V;-y66e$x[M@'} 8$%XtBQ -iӚ)v"0us g,t-H>X0E!h$CGl*H(|!ˬ(jYk(t#E6F-0ح^u!K".1V;'!8 FB(@)2z'6w":Qu 4$8pE 9 %H&Y.G  Pr<(*h hK h%)rǸ) t)*h)1,C~7~e~enew~7CCOieewww~e7~.~ .e~w.Nw77_~e:wwNe7:.Ge.ew>OC:7~~.7,w(w]7~~7~7~{(-.M{~,~ew~77]~ m(e.~we7~O~wK7~7% xaRh Ikɧ5SLAyM )uoCKOP &?'C'M*d{TL.c"7nډ; 8Z) .Y L L5VC%?'U( V 0,{J1*.XM( a+u +%**ˇ܏)  4$}ļ9!"?Ze(Sͧ# x,y;$^9yTk ,1RL ?#*; , *#,&*&CVEQ(dJS^m%&y+  :b&(c#!"v7%l*V!44& $.P'TTRGVWh$*-'(C•H1&lZ*<k!Y6z,6&c n-($>-95(%p 0 . U`&j lw$h  ,;,B   &/*>U- $'L1YY *r+uuOC,t Q #p="G&@)u!ZY&]N,I}`,*:&|I*=h i+d6 f?P@ -d%"<L$ ܤ.!o.U!94( %wT4!<)k1i" *a*f$ s+ 6"ȩ'Ng,1s*)0!$!n"kd+7w1'lY5MQvŽ(:"D$U4&Z&B*s׮$%U&+!S ?> uP"?+k}3TN,r(ee 'c'>%ϕ$ ~7j@ s8(IG$+U ?Nfh +OE&>1-v($hK"lʎ8-9.# 5}#O< 1 2k0RpI)<)|R:T&L$6c0(JTC %C-)&U$&.LM2( "+(0 KD((RA!Y2aW!,NB&6@ "c D 8.$|v!1 # $i'yC9b)) %64N.}*A&g ^!ZJ"FAT-7H!S J*?*:4$s$I!^dE&a$˕+Z"KIhЀ i"-݆ Ɛ%q );^=&IC"> $v( yR!+m "K GH.vP*(L*@% 2(!`Pb## -ڋ^!Y +=~&1C0-7 M|O#3=)n%-f2k=ce&1<`T" (E V8,%H3Ԯ0B)1](FW'VVE #!0۰*67-BH<W"*R"+=,zѱ(~?.#t3_e K>P !#$72&O+e$"7]+y`[#$>Zbٹ^(*+YʙW T<ΨWp U*=)>:|(P!  pYNM. v|$ha!l 'ǺZ/%{-9u Bs+. >R)>g$";,P.ug8 'v,!)'Ab 6m@У+7>Z|,.X';+ZW % 2.ݣ,^6F@B& e+X S!i#٫%&k 1ܢZOu'V.8&pr#fkA$4t 2 g-t::%! g)(HXER$q!/2ĺ ;M!<+5+W $ȓ t %y-Hi/F,f i-~ }$J+%Íy!#$52lU%8oN&Q )80,2A,ߊ+N&3ǡ.t[EU3){6 &=.I*+5]SUmQz&W;&5 G>*?! U:. L #t-`*"oͬ$&j?wq$(vM J%;AUH)1$hS"%b '!'pQ"I+u3Wk-9. X+,Gz 8*vL$& [#5.Ss/%.=2- )MF(sh-uc%sF^ Q8#G.)+p77*8> -C,.%B*#1DM|'./ cx.%BK-)[MCRx,Q%,CTP""yŔ'*'!F,(' D-[*(D.D ..yVl'9,ZY i^)T8 Q>$G mQWX%q_,("QކB# lv_(Ȼ7mX*+8o 5s2-+)B*4k# 7,+a."J%XQJ'V)+u.u$<bW$}$@W}-z(@ '3V=xm)2)QG hy*0N$]FP#+.YJ$ +->-'5 'nN%s!pQ!n-$H` 5W/,"L9$E3uT^-3$ 1, *sWxw$,ł)?.$O*;+>"8:,BS5% J" b"v]!..*<Euջ# *T  n'*R%UH!G]!t6}K& #?#!7,ɛ i.%%8-LM.=H(!  7-FG   Փ df:Rt)6#p+3&@b Ќ:S$L9#k d. ,)fS0-hQD*#K&s" ~!(S L*R@!@+#$&*ad4.:Z9T>PY2`U4(d7%0<&B*GG +R"/$[&]#*#- 9Z& -&Y' W,b1LAF!-bN: c)"C>*,W,I>)b%V&!a@I"F-9..WDa'(/r9$6B& T0*#;c JKN*YKC S  )k$j7g<#&%p$$ cg& l$ -$+<;&C!/ M9 >T|%w1SoN!*K)({T "-rӷ!'^-,$S)u+< ݚ&RE ~$  q#@!F6p>$h"p]2jCX(7"AC& E;M&P$)(G"J3",=>1&^o? -kj C%+l".z/1Ƚ$+  c;$ %*]"J7Z-?'9H$;B=(f;emqEI"Tv"AZF(9 #(8K4-;W&M<A(2SsZ~  xl?e S-*s2'Q[J!&HQsi)T+< K]Wa7MWa8,h*/$׌(?'9j%9  ۃۃ-1:ۃ*!$PG////xU2A////%A@NkK7K////@eK7?N1/ : : :Q&EEWW@,////H@,=6+F/ : : :Fo65X?////9<@>H='D : : : :LdW/D~Va0SP////߾S~3:72] :///(k2]GKPQ&////LLcH>>////|>V;<////<Nk2//T////ƽT@AD;4K//// O4K86/ : : ://NkQoIG////)PIG=D>R////T@ @O.81@ : ://͓@~V=Af:////MI?)O1////J1M6O////3;@ER:////KJGV2;/ : : :; ~EJA5////3=]9R :///6~KOOI////HCB7ES////>O)@VMY>////"3@6 9O)////O)@H?IR////IRtHM}8;/ : : :K@C94~Qs////Qs@WXOO`////­O`@NkTIJD/ : : :X /JD8BO/ : : :5#A:KN////8K@4VK74 ////0FR1vH/ : : :R.8N7////0=F= I :///?V/IGS91 : : : :910K0;u/ ://V;uX ~G,BA////kR@9y;A/ : : :&/GS:SP////#O J=L/ ://!=L~Ns2/ : : :c/7?HK6////<@H9N////Ni@P=RLa////C@R'K-I :///I8=R;////S0uS3NM/ : : :K@T03////U(@3U: :///:C4B;////LV;;GE////X /8x@QS`> : : : :XN/ELP9////5@VN2f/ : : : a/JB/ :/ : >~Q2Sw////C@Q=?6////E@DB3////W2DFFI////FIF=_9////י9Nk2= :///%8/=7TJ7////=A@@>Q////Q;GMf/ : : :/U0S2U/ : : :XN/U6MC@ : : : :XW/@~NB_Tm/ : : :Tm@7?MFB////FBI@//Ko/ : : :g/KoNk2=/ : : :NJW/=~=8  :/C5 : : : : VXW/C5~8w>E////VE@6Ik6 / : : :L@//@@=8@- :///%8/@-KRS : : : :X /V]xr7`9@/ :/ : $Nk>Lr : : : :aW/Lr~G=Q////Q@8;zJ/ : : :Jk~5=fD/ ://DX ~O=7{////7{@P=R7/ : : :/7H0FB////$B@5e;/ :-4 : : : :'X /4~O~DH/ : : :E/?"B<0////2I@EXL 5 :////5824////%zS">[1S////N@U^M1////>51E//// EG @Q2OP\////P\@1U4T/ : : :/^T~SpJ>////H>;GI////B ~D;PS: :////S::>J :///Cr6S<////%N@NkK7Aj////83@GK3/ : : :BX /3~HIQ//// E@E/M@>'/ : : :W/>'~A=C :////CT75@/ : : :X /@?58e/ : : :8e~@O=9T/ : : :</T@K)9B/ : : :W/K6O?;////0M@DJi/ :%KP////APHM}A////U@CuGOb////Ob;GKX/ ://=KX4S////ߟS@LNAU/ : : :X /=$GJ8GI/ : : :X/UOt>ArV;+ : : : :hXW/;+~A.Ch@e////,@eLPn:E////H%HT@FF@K////6:Dw=} :///U=};=}3 :///Ji/3<IsQ/ : : :;Q0J+P?//// [K@?G\/ : : :W/P,3!N/ : : :WW/N~B!BFV|////SV|Nk2N////Ke@77Q~P//// F @FwM@L :///UL9P////;GH////bHSY=\3k :///K3k<QP////IK@R05Jr////;XE2S/ : : :W/5t07G1////VuA=MQr/ : : :We/H?1 P/ : : :P5PTW////IHw427v////F7v@<QGe////1\Ge;G2////H&2@OIW/ : : :<.>EWW4w/ : : :;X /4wADP////BK)S1B :///8/BE8Q/ : : :Q~QGm>////v>;GA////=R@QS`////?H0k/ : : :.X /U@NK2////ߟ2@LN:////:WXCPT//// E@;H=U////2DUH09Qi////IS@77Q~>/ : : :We/H=kMJ;t/ : : :< ./3L0;W/;~R64////4KJ9B/ : : :LW,:O Or////* Or7EW9////9@BIR3//eH//////P@V4i0////0@:C2;7////*C<RQ5U :///25U6HU:% : : : :0J@O////-O2EK=////3@AT<{ :///2V/S:H0GC]////qC]HBYA////KP:B=////T=Nk=5////R5Y@844e? : : : :v?E19/ : : :3W/9~FM7L6g : ://!6g~=3////;G>n : ://M>n~OU5"////@@WXO6n/ :/ :D\@@QJ:/ : : :X /=SLp1V////1V@P=R>////ߟ>@LNR/ : : :q/PwVCP/ : : :?%\:O T////yW@NQE////ŠE@MA2c////:A@T0CxC/ : : :pW/CIB 1/ : : :X /15$WB*////|B*@UU2Ha////Ha@S<T:@/ : : :XN/@WFWO////"OSB>G////ũN@VK&<////U><7?Q?////J?@JDq3////3@6Ik/ : : :/KRX0////l>Nk21 : : : :W/1~T5'0////30QEBq////;LP:S/ : :.@/ : : :7 8N7/ : : :5W/7~V?NXJ)////-E@UP8/ : : :=7;M^3/ : : :X /3~1G8M////WM@6?D/ : : :X /=4V?4f////H4fA"1oA/ : : :/A@VV<0////ĝ0A=?5/ : : :3/>C6U : : : :XW/U~KnJIz////K?~BE-Sz////$Sz@5e;>/ : : :X /6TF3V9////@V924CD////GD@UU2W////E@DaI Sq/ : : :2X /Sq~9t1H/////<@LU-8////hL450////1N@8=s:/ ://MR)BI37////Pd@U2>/ : : :W/>H?/ : : :CN4////;@LEI/ : : : 2/AAP11//// 11@NkK72/ : : :/2@K)LR////DU2A////;:t:S9K :///?V/9KNk8J"/ : : :ҐX /J"9g2`?`////MK1UF@/ ://Ï@X ~:}@L" : : : :X /SN?:O!////O!BU_O////O@?=4 :///4S>(O2/ : : :53lHvLE////A N@Nk; 4/ : : :X /G5R:V//// <@PM@C[/ : : :X /<FM77/ : : :V%X /7~6S@QG////B3S4S}////=8K@=@W\//B : : : :1Xy8~C1N :///ASE7////5d6U2q?1' : : : :W/=>?D3u/ : : :3uLQNI(/ :3 :////3P;DC////-uC@8K :,C :OK/ :)N,- :,F :,' : ,"g :,) :,m :m :OF :,Nr, :,NIe,M :H :g, :, :N,- :, :,E :,#*N,= :=$k :sL :#~ :(,% :,'N, :, :,0 :} :, :,%N<, : ,) :,%O :, :,N :O3NM, :, :g,D :R,T :+ :,#z :,H@ : 9V : N,F| :I/N, :, : ,30 : :,7 :L :, N, :J* : :, :[,U :m : :,' :, :' :I, : :,M :IR,* :, N,)N, :B :OL :'NZ,F :2* :C,R :,N, : + :,R :- :T,8s : C :," :M :y,)4 :, N,[ :h,E :*Y :q"g :, :J=,N,B :N,)NT,I :} (N,W :, :JJS :K :m :, :@ :, :,L :M :o :<,#< :,%1N, :_{ :@,m :2X : ,H* : N<,.> :, :,* :t' :q!lN ,N, :4 :,( :4,) :NZ," :~G. :km :]O :O%g :L," :' :sm :S :, :,0 :Jt :F :F :J :y,5 :S,6 : ,8 :! : ' :!N`,  :_' :,m :, :J, :,(N,Gp :< :@1 :% :2 :, :, :,& :s,F :_"n :g, :,*Y :% :g, :,m :,N6,) :4,' :@+ :I,& :_' :Jx, :,Lq : :#," :N* :, :],y :m,U :% :;, :,.& :D :T6` : :g, :,G :, :#,, :,!lN=,+' :P"' :J, :2 :, :g,) :,_ :,* :R : :|$ :,#~N, :J :_# :I,, :g,+ :, :t#~ :, :, :,5. :Z.o :* :+ :J, :G :.>N,unXNX 0:X MW,:WwXN+X Z1X X OX )4W X %W X /wX XN.:XNOwWY " #+H#>&A+J N>(1%#. L*'Cc !+KKLI@1(;Z| e!#L 9.[$!pSt,(-E0#N}#S.=7G  $-I  h&% *h%  ,}% r% $XNa7)A"S')OQ$:XWkWkWkWkWkWkX]X]X]X]X]X]b39dX`X8@kP( { ,36WX bk5[ )Yi23 7AWWmKYW $imEWX$nEWW3jMXd k\@E*7X;W8F/WW*J Wn+8XgWlhGN { j9bXXk;IWWl;\ c nF<WsWHWgbC n2oXTW jpEY 9l\6 LoDSXXf:WXT7i|:W~&iBXW(l<W l1~XW2r mjBWWlK[PPN;XjAL wl?-WW hzTXBWnAIX$WU  lT8WvWiSWqWnJUX<EoD@ 6l@k *m\6sWWnFXX8jBXX5o9 5!sm9W cnZT#X9Wkm8XcWGOWrW|n6NXeW)iqBuXIWm>5WWd<.X2X7W}X0zk:WWNk7 R >_WXoJWpjJ_X$W#kwGX]XREhM 2 SX2XCmT5 U_ 9hTzXgXo:P |m< X>MjT1XCW::XW0WWoh0tWWn350 1l@7SWqWj9BWWkU'WWo VWWN>OW ojB5WWjtUPXGW38WrW$m7WzWSX( rh_9cWWiTX0X&lx<X%X#E>X;X3l2WxWvhDj m>gWX>JoX WBWX_R _l$TXW oI X e%IXWWl8WWmR2bWX +j>XRXY4h4hXhIX"X@mD kB "nO( h"3c R<m&O XAWNWWuEhG lJWW?W $SnXDW hrPXX/im1WXCWW1WWqRaWX#8jXH|W ClKwoY> 5 ph=zXW_nQ*WhEXE i4dX$W=(Wh/o'TWXm 7DWXHh4X#WNA m+lI bnJX GUXWX!jHlWWmT'Wpql(@GWX j(;8WXUJj)@WWxnhKWX#4XXLT+ n8VWWFWX[rm= LCX;WiQyW |nRWWOBXb jaJdWXY}HqWX.%6F =jAW n<WWo9O ^VWWpINWtWhL GWWG9WXT#iP7WWkQHeX 66WX&h$Q-WXd0WX&wjLSX3OW hmI; eJ5WtX9nC{X)`nQHRW}Wmi0 (hEH gm:4G <kNLWXf^lP +-7EXi9iBoWrXg;7WX=n?:WXCO\WWnOHXa nDWEo1 R Niy9,XAWhWKZXQXam0WWiUXeXJnO3WX,m<7W E7W [i0LXZ $iVWWjKyXE n4PW5mKq WTW}XHm1QXCXgi}9 2 6boaO 6M*lFD (j/7P iDXWkR2WW4WkHWX?hDVWWFX1WoMWWzj RXWnw8 2$j:WW?i8W Y 8 n1 YlsBXRW0~W}XGh7X-Wm}nS{Wl57WWbmT. kEPWXWkN:W}WC=Wr lTWW8XX8i@:A SlWX4mIRuWWBXVWoVnG? DOWHi/GtWX+l IlXYX,oSOXAX+xUoXiX4j2 o2WW_oUBXX)-iFq ~PWX$8WNWX82k#M] nR>WX*lWGxXPW?AWRIl<HXcWdNXWFj?; cmNWXjAz Q iNXXX7XMWm@XWmNoWWl:WXA@VX Wi0>W hOL [CX X5i?Xb \PBWXJWWlS7X+WlS.  js>WWxTWXY*2JWX6jC8:WWHXX4n JWWuqiIP M +n|OX7WXi8WX*nJZXYWyosLJWW`2XWkS!W XjTX?WmSfX8X[mG 1 hAXXiXTvWW<iYSW l Q 7EFWXTNjqJWWS?*W ZMWW lF6WWQWsWxR;W lH-WXU8mU4WWbFCWWnBX9XG(h> ;^W}Xk4:XjD4gm?EXX?k5a %k<IWlW;jX(Wo0WWh>:WXd hTWWiFi> RsEXDX<i7=XgW3fWHiVoWmWhUXWv?WX.h|5| i3X# fn[GoX! !k7Wn !jBUo jUXQWj7WWlEyWWDWW3? $ _9kuH d AiJ1WW mDnWWo|O F=WW.l:WWDW|XiJXX 8 m @ ) bm9B(i HWXkFl0z hNB >O_W}XmJ3XW2kOUWWmBNWW6n1p hLWrXDvX;Wrk0oWWlbO <lU  TIXXgghAEWWiPWXhDcX ;\j1WWhXWX$2iB8 i5tWX6<RWXg3XiXaLX; 1+HXW*>WXQo*TBX?XUjF}WWln2&P eh76WXm9X5WrhSb R FJ W HJWW3nDX[Wl@WWn!L ^H WW1oMX#Wl6 E nNWW=mVlMWXmLX;WTk=KWW,ln;2WWFWXMWXhS[X ho!9 W *E2WWm8pXO hJbX *,mO2WvWjLWW=XWMWWGnEXd mQ @4XKXY?iSXKW'm@WWQhXX&kOXdX?JWX.UWX$1XMW<W nDJ/ Z6k@$ W nilD i3dWXEnFWXEWW%hI X ]2DW kFL!W ?EWX&i~TXWnm3WW|/oS 3WWmCMWmXbkSLXPXa!8X`X]&2WWn/4WzWhI Y2kR  l6:.WWwnU[ <XWWM;<WtX_2WtX?KXWoOXWoe@DWWwmDX_Xk FWX'mk;DXLX\ = XX]<WX6}WX8iCNWTiDKXKX-lD }hU=XBWoC.WW0oR! TWXDyWW8&WWGWWi_NW/8iX`W@W , lvPXWWNPWWnA*X9Wk7WWxo?LX$Wp'FWWSXXh9 -jhQSWWlQWXBoB7XAXhpGWXfnD=WWNi=$WWn@WWiifVWXjj6qWXeH$WWhT6 i1 { "jAYWXUk`BWpXbnU9WWzi>WWlQi3* N ,S XX <oTxX XHLGXWk59 Ne5WWFl:K\ QoWB viC j9X_W3<XX?m28 jGT ' ihSk hQX$XH;hKW MEiUG wDj ;C D E:WWiiO[WWOXXGiO|XY ?jGW7hLWWhFEWWlMX Hk9XKWo1I5 O7h-=hXfXjWFJXXJlRVX1W7XDWmilPyX mP:^WX)<WXeHX l:WWK8XWj>, )mG`X Wh44WWlkMWWh0WWmP 5 2@toOX(X-TWrX/1 X2X]ky6p NOWx52X [F nj6WWK;X;WejUX?XJl"?G 19WXm0gBWWqi(?W ce:mXWzDWXYw3WWR^X`X^l;iWWwFo-CXYXhNnWWoM'X?WLXXLhv>~WXcNWXL7XiX8P&WX/jBX"Wkn2 X H DlYGXJX i;X%XjF dFWXEjj4 M c[mSWqWj4WoD W}Wm? OWX4bKWWJmCX[Wl2WWwnF l bi4Xa *j?X8W~k1#X7WTi?LwXdWEX;W6X(Wl30W T@WXYEMWXAhj0 ZN9X;Wr];XVWnP9:WW=W| m3"XXoi>WW n`EXWn1X%Wn9 (iMXaSjJSX9XTrkD@4 ~ l U v MXMW J5 ]OMWWnLR fl%= ct@WWik9pWh9WWmY0=WW-UW umRpWW~n^LWX7UWtWCWW7QX(Wm0g!(nFpWX n GWWl/;X9W(iPWXIFi8!!zl<WXEiv5XWDI]W}WmHKWo30 P W4GWWbnvOWWiJWXi9M 'w:XSWEWWmLXAWhU kJM%WXS{jBpXAWl~GcWW~^kE&p ?;W0nV/X'Wh&> LkKWW|mCXWKo=CGWWo>C H0MX1XlqRX l Js /o= hQ l 6UdW h0XWie=jWzWo$B cI5~X;WenI {:WWML.XW9X;Wo4RXcWxiIXWl3 X2WlKcqk9W 0l9NzXj +o?gNVW|Wl<WXQl@WWCXX0WW iBL kcQWoWn!lBXWuj24WWW)HcWtWj3WX.9EWWR8XDW lJW 5kRP RWW~ UWW>2XDX$Dl<XWYn6 ? _=HWWqjB#Xf?K(XiXg=WXbbmC3XCWm:SX5XjT[X2XLiG1W *1jc0X+W7QW}W?XWnjO W)kLfWWyIWXGn7YXZ 63WW:X[X,2LX;X[oEVWWoF4! bmM7XbGFnE1 el]EW'i@s* 5MWWiE9WWk2WX#xn%T5WX*09WtXCIXCWp@cWWkH3WX.m1WXk*UWWm16X X^kGX;Wj8Xa5#n7=FWWqoq0 c 7_WX9oO- v ,n@@ ktAX!p>\WW~nThWXH6kbK [X3XDWUkE;XPX\n= d1k:X'WekDWX[WXIlWWiKX=X*mJX.WnPt F"XiWiIWxk:@X"Xdl= MlSWxWoTWXDm@WWSXX:WW A}Xh@5] $zlT!WW2XVWo8/XBW7WXeoi:[WoWk HWWg<X2WjZK!z:>WXhaJPw6WlWj0 NlD+X$Wou1vFKX j9XXkdC-X0X/iBW Yn)D | ":8WWUXWma@WqHW}WxnM h(BW :l9'X hJXW{lH] j}? + j_MWWh:?WWjR .BXWzk5 WWL2X`XgnLB +%^7TW nb5  vWWW>Z h E* - N(;/WWi@XX }jBWW:ZX;W)k@CWWm4OWWjIPWWnqFOWX@!AZWWH1W l7C coLWWSX 1WtX6 jKV WXJ)oU1qXAWxPRWX+lVX-Wm+8XWhk@WW*kAv WljRWWlk2[WmXH(o1; *voQXeWooG3b hI@ C 2w1o P[XM +hR0X#XbolR0XLW(iC} Lk> @@XXOnVnWXCijP  2}OJXWWm;, 6 iC d ldA(W $(JXWWGm/GfX"WjgQWzWzhViWWIWXn.:MWWPXDWo?@< 5$j E>XWWNyWW_lFX$Wn"Ek Cn; _k2lW l8 , mMX\XAW}Wcj? : ClKX2WFhyC EWXZQWX$mSWWnPLWW| o8LXBXRl TWXjlrBW d1WW(h,PX-WQn0VWWmFWqW0WX o@1W 1hi6(WWne?{X\WnN ! kFnXj>_k4|WmW 4WWiOX`X9lK>z  $<mJ SHiFzWXnk2XW%n:8XgWo(UXXSTJXiWk%2X+Wik&AWX h7!% RLX`X^nP nVB^ '8WXKX2X2nS@ <o50W{X+|lF WXaTm"1<WWmQWW*MWXT*>Uo{P>X,Wi]U<WWmm5FX]W7XWMvXDX]`l|E5 2l-R , Sj? l5<XX6ovDWXBmr;?WX+i<@WLdX_Xh4 j1G Vk{XiX"ot2XZXlwGd lG jU D 9;h:X%XhNWWylAX`M*X;X_:WWH/q :QXX jW  EUWPiAhW~kAMWXiG6W l8 hL\WoX5yXX5ljVB Wlj2 :m@WWi2 * n;WnXXk:WX oVFXo lF.X,Wje0 $5WW!m7wX@WoNTXhWh?]WWKWX- kMWXGiVWWi:bWW+mMWWooK?X'WjkHX#W[0E kNWW(n9H'W hIXAWm8HXR 2W}W^lRWE3XVWj>WW2hAX4XHmQX9X62JQXDXjEXcXaBm@TXX\|6XiW<WW2hLX 4WWi>&XPWpk;VW it7XSXZ30LWsW8XWCX W:WW+iT  >XXi: C (!?WXSm8XRXJiHWX=HmWWj2 2k OWX6!XDX^kqCWWzIWgl9|X$X?n 2W jFX7XE=Wv4DWW~z1XW=XX ihLWWiS@XRX7>XXSH,XX&mbVmX=XFSmUWX9^WX8h1>j>TXGW9RWW8hGgWWm=C$ hDXXbh*7 XWk@ B n5XMWqk5:W MWX@l}:W wo;5 6lo1 =XUWo>J !'?XiX,hRnWnsGWWIWXcK.XWn;dW c*j: ]m}A W 5m~S {:hX;XRi$3 & HncOWWk2WWFvXWm<XTWk!WSXXckN> yW/WW|oD rJJX |jWW8j$U$ dnRFXfh0PWWu9WX];WWo =XX/ 3WtX&1mWW]j;.WW2mX3WXlJhWxWpk9VXWGWWqm%UWWRWWXi?WzW0WXbj-KkWolDXAX7Q W jRIIW{XAIXW2iBDLW Yb4QWWlD nVWX^6R6X;=WWW~1WWuNMX;WkO1WW6WW%k7BfWoWXKmWXkNt #U7WWnCWPl3wW `6XWboTWWhsDWXU0WXk(Q<ohMgXX?i-HWXZjH6XXcEXX';eW -mSQ 'kv;X BWXBMWW;l5W iPXX<JB XXgiKWW]i&@X- IaXW h\EWX#dh?5WW,CJWWnMh@ykCe7X_X BI.X;W+FW}XhL<XeW=l;HWl=1WX+F^X9 o@WWPjQ?TXX#elM!Wl:AWXCWW9XVz3JX1X//oyHhWyph1 +7iWXAFWXA5jfS j@5XhWh0 Q_R S0WW3kMW :TX` GlL]X8X?n<W hSXRXhhDXX h8WX^iJJX$Xk2 {l[<WmXQLi?|WWk 3;WX8hNW Y5_WtX]T6XWW44WXTrEEWWiLvX%X#NFWXG@kJ 1 jMlB!?l=4XWvn;5WX7B>wWWl`PS m3WtX^mwIXSWk? nt6XWJix<XW0nWWlC2 WGm2W jv8WX j2 6 m=WX6nr4X7XFl<W /0WW1@WWvE h`NWW9 WWo%2g l4'  k6,WW @SWWoF  wom KtW iQ Ej5WX|W WmF>X) !87XWnAT< ;XW#PWX 8X;WPX(W:KX'W`LXO`B%WWh;WWMtWi^NlX$Xko=l [ l&N 7 [>8XWh>IWXXomE[XX4jyB4XGX7<jz9XKWrn1@)WWsn24= zh3J& $ujOdW =XU nI h7;WX NX Wbn=tXXn1XgW_Oo o_;X :mCW?i=xXYWiSX5Wu2m3?X,XQXXikOWWxzMWWpi<XYXbh;-X$Wj:>lXXaoEX*x*h9WXJiLXXQ|kr?U W*kL& <WWEWWJn:XeX+04mc;  ,jHWW=QXWNj3WXA_oQ>WXm;LTX *r=W}WUMHWX6jk<\Xj c ;MWWgkQX8Wn0,WWCUX`Wl0Tp *W5 jlPIWW hQ7WWnlMdXZXa7BXX@mdB>OXh _>kWX5iR Ri{W3Wu ch+R :P#XWvMWW(l4 XKWjJWzWbhUOWqX3X2X hC;:n,TA E 0EX:WuiV5` mI}X"XJ mCWXU9UXMWzQ )mUXX3WBWWx~kX5hXXS4h=W 5mR +2#X\X>hc<WX6VXX:o JXX?#lSWWnPX XmCWWkKDX6XY?'W}Wvqh6$i2~XHWL4WX&7WX%88TXXg=PX;Wk$GhW^PXX `j 9WWoQH hJcWWj@R1WX)n0bWWk2 FX0 kULWXoOWWj\T W8m.9WWCXW3X `mDW mDX4WkkIX 1iR~ElV< oz>aW>bj>8X l*n-AiWWhRX+XL# [mBWl  k8WY 17&XXGkCWWUX`W?m'EXW5WsX%l?%WWunS  6lB A h<3XeXcn0W 6k9WtXMn4GWW4TXDXUh7uX5o=o) CX wjrP>2WX8%n&45WX!5S]W o7XWiH7 lMWWoEWzWj9O !=vX`X=&X`WnN xiNv y2XXFWX^#m2WXjRm yh%R XX)n{VjX&X]&mNeWX(mVK mDWW)nY7BWW@ XXEj:W j1P h=DhXWo}C+WX.TiaB,X/WpnIDXFGEXX2=XVW(;WX#jSKz 3oLX"WU4X]WIbWW?hnVXWoKnNX&X.QIXWX3o,;QWWj51 nm0XW~(I_X_X#k0WxWl7XWhDl IklM { 2+iB:X=X@>nXKXXIX_WD1@WW>mpO0Wl PbWWkH Xa 8yXDX6,oTXPX.yi=WX# ; WXmGX"X.<n0DXJWni9 WWqBkPIhWWok>D SXW9HuX2Wn(T_X"X.kFXAWFTW}W=?wWXSFhK Y1hSFWXl=eW ::m4WX !oONWWjUWXoXEXZWrmA=p Uis9J^W )hhIX XBi=8X/X6kAXEliBX?X0A9XDW,kN$WxWvjm>XZWCWWn8WXoI;@XAXcIWX^jDXiXmy=X=WmJ kp: lHWX<k7|1o\:DXBXGo]>cWxXOF=WHj=X# *la=~Wl QZXXYF4R MlX2Wl7WXRi)NWW|jRx*oL0 enGWXj|C ZoPu jP=XFooP=C i E#XBXloWWX j*WWWn m EWu jRXLWGXVW mOzWXHl73W Vl84XWfVBX X>i[7XWXlTWXSi\S nH < *E5 A o2WWIX;WjTZWWyjBWW'mB m|DW [SkB:!X8WyjI[WWzjKWX[Qn<XWjbQtXWol= 1WXGw1XW7o6WWQ{W| h:jWXH,h7}XWDnS PkgFWX=V3WWkR{WW1WXgxlGWWj;KXAX"o 8DXW?DWrWlmNWWUjJWnCXWK WsW:_X=XkZ?mXa'i1R hS1 n  MP S k=ik> P R,n<XYX\k6EXW'j0$XX&j;lWoX<m[PX,WS=ZWWl2DXX 8W oK nlARXiMWk=WWiG5 niIWXFny4W l : {AWWnHWtX7WWTWWumWLWXGkSWXKTVXiWY@fW T8?WXlB?WW\mWx57WW7hKWWjP N !TW}WltAWXQl=XKWnJ p@`X& mV UWWnf9PWXRoAB E 7dkHW 1bn4m>YW i7mXWm7k vmB kJG W n;<}X )n6W l1tWX+lNWWgi: WXT0m bkSWl jC r JXnTWXOnED]WWM`WtX]iCX-X7:nTWzWnJ oAWW@ZXX8nJ NzjDWWqjN2)h :jO5XIW:XWxk5b n2HWXJXXBXMWDzWXh8'WWlu8 2kQHXZG 7lXWo7rXcWrlU,WW!mCBXX F'WWEO v h!7V < hPX\X5lDWW9Z m3E7WW)hw4&X\X5h0%WWhxJRWW@W mMXhWkF i5W$n8X(W,jPXLW?hFWX#|h7aXEGi2i[lIvWxX@m?X 7joPGlGX+X.?WPgWWi0wWXo:WWPHXVWh0N 'muHp m4kX9W=XMWkIdWWQWW*iPj jlQkXWnU9WX.<D0X;X]'n@XX$ j>WXo/QXAWnJ=* ,i 3WWiF W{XK<9(XVWEWWkx>; qm:nGkJWW7o#3hXWpig>AWW)m{5 C lF=WWiQ: h'VXWkI=XGXiOJ uAWX4_?jMXHW mLlWzXRmNW cjSgW 2G WljHWWlPHWXSlnSXWn@WWl@d 5GXWW o`EX?Wn?WX?k@_G$+iM9X!><l3zWpjH d m)9NlTXX3k?Q9WX64X^W{EWtX]hT{WW,UrXXh:+XW k,: 8 .W.WWk-> :`2hVX$XPhNWXIMX(XY>X Wn>TWXA*lE89 -  k0pWWk6BWWmRWoX hKr h0JWWi>LxoJ.XDWj!>]XUWdMSWXbkWMXX?hgQ  'nNWlX l3iX/Xep:XWW^lLXcW4XDWviCXX5@6yWXj|7XLWnQXXk.JX=X@ j O6WWHo~QWX_NjIX*%5WW5XMWR>WWlNcX< *TlF[XWnT jF i>  lOU)c hT@Xj mL8WXNh<'WWDXDWk2"W 1N?XWRbXWWX3XX=*@xmGB.WWijM:zWXheL-W hfCX$W=XDX)nDx c #lpMWX W[1.X2W2m MWk/5W8X:WnlTM 51W nC:2XGX,BmBHXRX4HfWx9D DmQ <5jXX)m>.WW1hR XYX@:RWtX:4L i:63jM_WXIWW lHAgWX-_n$6WXHorT d hZI l= Dh[NWXfkGIjWW=WXK(qΓ+%M.@/Y" A'=0.Q'KO%FU $7V68Y"f!,;.]%h"oג(c]W'3j -;!Q6;C Ru.LS6 .L^*J[6*J:.L &6  RG^Ru;8R;R*J2Ru.LRu7k;B4*J<^*J.L!yk \^*JqR.Lv.L^J*J`k;5^.L2KR6*J 'k;8/;["k U;Ru Vi ԑ+f"7߱#Zg-R /o*NW+?N#)m) !n -9(d!GX-[Q'J*V1®+XǼ#؍-rh4*s &]!+S$ZG& 1]5@$ IZ  !b-*n Fm- VP'x"'(C& q*v*y&GF ;,*a 6k#$5 *W,CX& +;I!:Bx)o ..#?Q("%w+zz&,%(WC&C)D.NE! n=$L"&-9#+"S,I,+5+p$h>%UL !º+u #7!7Ѭ*W] rMdVCe$6oEV'Iw .#--3 ] 2,B6*'x5+&M!f T '{"  k)k&sDG2 +*;&+*@!!  c"?c .5c3G!8*_$:)96*<!M  ̍$R(! j"v &5&Y,)F EV(S0w(&*;"$ iS$^% u O Wn$n8'$ lVQ$Q6y.lVs,9V&IU i $}1%0(56(!d -'(Y(MO8ͦj0/$ /ģ-'c!%| 6_)'x */>_(π&,"I+*-Q%+# Q8 C7*̑.S$&%ՋfM}) zl4tUt!]A%Z-?2JS)ӌ0`7WEI$.@V_;?  ruMsh-`U)`)`eWnc,`U`h}]|`ptv&`rUr+`p{F`\N`X}`[m```~j#,`O |`l1y`x 8`f]/2`s\s%`rv2`xX`Kr?`l~`vF`}`{iB`~K`w=`mw!`n/`i]`Jh `Q|y`Kw` '`qL`6e`P>`!#`z.`(`o.`uoi`jf`um`~${`}lO*`]i1"`y &``t!6`s_`H`S`T3Z`iq^#`f}`)`Y$n`{}s!`fDB"`r"[`xy2a`Z,,`c+`;i`M7.`~ze&M`x&`b rJ*`_h]`wf7-$`VyJ`k``]*`^`xnM`Nc`g.N`O+`G#`LG`|Q{`K|o.`d'T`l%x`$`WkA`ag:w a`u?`g$`k`^n`c `{z&(5`RmD`nk}(`Y' `U-`t`JD`B}mI,T+! -c >|$G-  l hI&* #?-P3,Bg^'(:G"," I,%ws$5SQ+$X 1 6:'TB,Z1$^AU/*$n:,$Q,Cρ.$}ǐ%UA!T n K)k'Hx#=/"G+p4+u!%0!n&AK|xߑ!,&, F$vIes8.V+u(d0'x0"!F ! 8U+=f<+֪))9&ϼ*&]y' =,Rg"?$)o8 *<kB 2ƛ&Zܿz;5&F+U(6*- i7O*  dV*Qse;#Q; ck$hSw !,)<$6"$:<-9+(6mR's R$:,.RѢ,.${$ .,Qmc-5( !br 1   Vu#?D-3O!0+zp&%["vݿ' .G&CDA&  k?*9)=*sY+Y*; #L *yMN2*asELF 0H!Ku.&$$‘SE$7"H-(SgW@*K,I W2#('&!"6s&&Ӌ (Om+M0HFo&'& *"(9NINb+X )^#|+96SSO"HHnH ~H<Hh@HaH~He&HFH~HOHH~H~H9HzH|~HUHH~HPHr~HpHp~HkH~H~H(QH# H8~HC4H~H1dH~H~H~HK~HY~HH{H}Ho~H-Hw~H%VH~H HHB?H~Hx H~HaMH>H~H0H~H;~H~5HH>/HyUH{H4~HZRH~H~HeH H\oH~H<3HHmH~HWWHlH"Hz8H~HTHcgH2HR~H0~HYH"GHG~H~HJH~H;HqHH:Hv=Hn7HEvHt`H~HtHyH[KH*HXDHf~HH~H:uHN#H6_H'bHHH~~HsH~H~Hk~H9H.~Hj~HHxH!H3~H]~HuSHb~H~HPLH1H!~H%H'H)~H}~H~HCH~Hi~H H-~H~H=~H$~H,Hg~HiH\HHO(HJBHd~H~HHHM[H5^H^H@H~HcHHHV~H+~H~HDHwH|H`+H,)H2]H/XH?H& H~HL.HEHQNHsqHfH_~H7~H~HAH*6HA$HIZHFHrHl~HmH~HjH~HIH~H~HhHHS~HT~-gĻ%e?0('`-^V#u|9*(k &+-.\ -,. .#K6p%gqCd$:`y n(YRS&7.VJ]&Po% X<)!GM QY$<-qʚ+r 0)@@#o,B_bWtWtXN9mcWX :^WtWtXNV  , ,WkF`X2X2WTWWW8R_WWI^ WkP3fWXVWH X2X2XN?YUX`W :_4WtWtW7`WW@[`WWX F]WrXU/"WWWkN;X_X_XN6 ^qXXX :WrX@(=X`X`XN2`(WtW,_WzWzW6fXiX WF~^"X2X2W9;`WWtXJS8 { {Wk= hXiX WXMJ^WtWt9`lXWXW=^WWW4WXUWG_WWW;_KWWtX@WWX 2v] WC^WtWtWRMK /WX2DWWsP XW&$X X WkP~ lXDW1O WW}Qn^WWWH^XDXDXNVyXXW3]X2X2M,`iX9X9 Qc`jXBWWJ`WWWG]XWXMVt X9X9W4Y_XNXNX ;X WX : WWWt6- KXCW^MWWXNU\XXWFWWWB{`4WWWk1_X W/`WWXN7]X W :]BBWU ^WtXW`TX XO] A AX :p oWWR_WWX <`X;X;X 5 1X8X]QKX X2GD_WW}W=_WXUWK-WW/XXX SQcXX58^XNWF_d 1 1Wk1X XMIn^XNXNX 3F`WWXNF2WX1X ABWWX21W^WWD`WsXV1T;WW}3 WWX P WWWkKppWA_WWXNI^X;X;X2R_X;X;X QB^YXWXW&E:^WWW3}^WWL>WW/9)WXNWV`}W|W|WV`UWW S`UWtWtGbXDX(-]W6% WWWFWX`XMTq^"X"X"W<]X2X2W@ .WW0{X W.>WWs)`WWW;_  Wk2W}X` :XW :WWX;W}/IcRX^WQb\WX2C]WWK8]WW/09XWW;^WWW>>T)WWB' XWWR`X2X2WF?WXWXQ^WWWT WWX 5  & &WkNL  :  Wk0Y]WWW?}WWWkT~]WWtXD;^iXXWkD^1WWX S)WWXN=XDWXM? XWW`TWrWrW<`WsWsX 5f^ WW}W5!XW :`|WWWH]  XN7_qWW.>T_WW}Wb>[WW/KXXWMWXWF`WX'WEbWWXN^XMWWh2 `eWWX29LWW/=?cXjWkWe"X W/X:W : 7XgWAL_X2X2XNJ=WW/]X S^'X0WbBWWs**YWWrX03_ZWWXHY WX X 6?` WkBQXXWk9XcXGU.X_X_WkHoWXi4:`WWWMoiXGXY0C^WWX CXiXM/^X[X[X 7_WWWOTWW>72XWF3X(WW9 aX W/^YWWt)4_XXWH WWWMqWWWk9^QXWW1f]XX Q_WW.>@YWWX2A`WWX FZX WW<X 3`}WWX @!^XOXOWk32IWW/ WX(WH+JXWWWM`\WWX G_EX_XW5``WW.>R( WWXN;`tWWX]EdWX: :_WWtXDB_X2X2V XXXN1_XXXN:`:X2X2W< WXPY WWX]R XUWL X1W/EAX W/^FX.X.X U4 xX W;k>W|W&^^IXhX bMm_WWXWEq-WW/LQ_HX2X2W4q^X'X'WTXWWE WX2O_WWXNS_WWtXR]WWWLWW1x`W}W}X CXDWTI X0OQWkCWW(H]  WC^WWX 8RWWXNFl_WtWtWG"WW8]WX'W<(WX%6LWW/^:WX:XV`CX2X2WVU5WtWtW=afXW :_WW S~gW|XXWV0(WX:X]01WX'L*WWX EI^WWK ZWeH7XW :] X 8`WWWL]XDW/CnPPWkW@WWWk2/XXW0YuWXT XW :^XX;> X W :XqqX Q_RWW.>2XWL`))X @w`WW<`X2X2WPf`WWtHi)WWXNCQ^vXWXW&EP_oWWW@ WWWRXX/^XQW/tWWX]7ZWX;TWWWP`WXWX12}_X`X`W;^kWW5w/WWXNNxX X X ECX W/LT s A :]EEX 6Q "WW8^ WX2Wf0WWX BBWWX F`WWXNVWW//X W/_aWW 1F_bWWW2`WWHE XNDXcW3eWW/W1  , ,W4] X F X:X:WV_:WW>WWVWWBE X 8`,WWWF(X'X'X 3yWW3WWWkP!_oWtWtW3]XVXV.>V`WW.>I_3WXWXMJxWXWA(WX18_WWWQ^{X'WWNX(X14 - + +X J`+WWXW4A_W|XWT]ccX LWWXNJ%^XWX> %X W/^X2X20X UWW;h_XX 7^WX9X0E^rXgX/^uXXV@K j X_X_X D^QXNW.>WXiRXNWX]@|WW} :7`W}W}WkR &WX1/1^WtWtXN4WWWJ*`WX#W}X`/`XNXN.>T) WWKwGGX :^X2X2W8_dWW O] U UX 5=`XWWX <7W}X` <[WW7] XNKEXVW/8]WWXN8zWsXX 1 uWsXXW1hWWq WWWW-_4WWXN4XWXMU] > >WWKaWWX 08WX/8] W85`~XX(S^WWX @kX1WX 4 ^(8WWX G`XXW=*X1WB]`X/WWVN^X2X2WQWW} B`rWWX 0`_ X;W :^#WX:E|_eX X W6]WtWtGX`W/V;^-WWWk9lWXNW5^W}W}W@&^ZWXL/xWWX 2>_WWXIBWX `X2WXN^ WW8WgX XU:WWX L^WW.>MX W :X`X`X E3_WX`WT]XWUS^WWWMs_WtWtXN68]WWtXD7XXD@KX:X:Wk5yX1WO]WpWnUWWXNOQ`QXX;?,WXI2WWs)_WtWtWIWXD :_WtWtXNP`XWXM;]WX:W<`WWWJf WW/^=WWWKr^WWX ?XDXDX 8S(XNXNWB^XhXh.>8WWW@y_cWtWtX QDWX(X?EWX/3WWX ?^]X2X2W@WX-4WW/] p pX C^X2X25r_iWWX]@ =WWX2BDX XMVWWW6^WW S5X W :^WWXUI^WWW3#_cWWW: W|W|WkLXgXgWQ^XWXM4b`(WX;^X2X2W=2\ /zXXWk@h_WW.>?I MX'XhKWwWwWkBaWW/ WX];WWWFWW/X 2sXMW]  X :]XX?^X:WW4UWWXB_WWX RX W3]WWWU fXQWW41XXXN@*]X O XXV^KXXGJuX WG_!X2X26XXXN3UX2X2WM`xWtWtGO$3WW2]WXKd_WWX>0WtWtX7"X`X`X H#^=W{W{X2?WWX@`QXNXNWN`WWWM) \X X X N_VXiXiW2L^WWWkP6X X XNR*X2WtWnE+ X0X0WQ%]WWWR WWWBV_X2X2W>^WXA^uWWWFgXCW/@T^XVXVW3 KXMX1/}WX25*_GWWXU26 MX X3M^WXW%> WX;F^X;X;WIM  :Z / B/] X N^YWWC WX1WS]XNXNWkB^XX <&W5}`WW|6kVWXVWQW_-X:X:XNG :X`XMJ_  X H^XWW}W;FiWX9_)WE)@WWX OWXNWO`XVXVWkM`XXWk= $$X BDX W=ZWW_LWXW%D9WWX H!_WWWX 1(_3WWW>`r 0A!WWXNG_WXf/'W}W}X ?^WXJ/tXW/|rXNXNX Pk_XYXYWK^WWtWCZWWWkLg S/^WW.>V7WXNWD`X`X`XNQd]WXWXMU }XXWkS] : :W1^XNXNX 4n 9WX29QiXXX RI] ` `X2GE5WWLD^WXVWL^WW{WVWW|/`WtWtX 75`WWWWV1^!WWt_XVXVWk6gX X XNI_ :/D /fWW} AWW}6YX X2QWWW0XW/ Q^BWWtX;`WX:WKuMX(X /X`X`X Qw_8XXX 6WX;WaDaWWWA,XTWWU WWWF)oWXM`!XVXVW=^WW3H_8XVXVX QWW  WkF(XW :^$WWXNC(XWXH]X2X2WI XW/XiW : </]W|XWU^nXNWW3jWWWkU~GWWWkS_~WWWMAXWN+`MWWWDW}XWe4M RX&X&XN>1X1WS_<XXWtKK 2/ X4W> XXWtD^WWX R  :WWW0^TWWtXU_XWW6WWWe:y^~W|W|W8cWX2X>EWWWa5`XXX Q^dWWW> kWWW3_WWX PkX;X VK Wk=_!WW.>QXDWX?`WWWkC<1WWWkB^zWXKWW2XXi6^WtW:^XX 4g_8WWWSWX : X2X2X28WX`WCX WDX PWXNW78WWs/`WrWrXNG^X V`WWWW0^X`X`W6WWWk7RWsXWKWXLW>^WWW>WW/] X 6X1W^WW2@@X 8WtWtWCWXCD_ WWWRWW8WW8n_WX`WWXKX//WWWRRXVXC6WXNWV 9W}X` U`jWWW?HXMX1<I b1XRWW/`nXiXiW:=WXLW`H_lWWWkG}_R X JX>W!`X XMW8gWWN`WWWM C CX HWWWLV^mXhXh&EM#WWXNTrWkRG WWWnSsWX(XG`X`X`.wPpWW/"WrWrX BRWHX WUjX W? X^X^W8_eWWX JtXiXM/WX'9`WWWVkWWW6C_XXWQ^WWW5 Qm < <X S RX2Wt/>W_TWWtXHfX:X:WRr`IWtWtXNC^AXUW{2WX(^OWXAWR"% WK`kX2X22'WW{/v SWD?^:XCWW9 hX XN@B^{X2X2X Q^WX(:FWWX I] X SBWWWF_UWWX 5 WX W _X2X2WOnWWU`UWW.>LFXUXUX Q]] WG XiX W8@WWT PWWtPV yXR`.WWW99_X2X2XNLA^NX2WXMWW5^WWXNRHWWWH`XNWWMrWWW;&MWWX J WXMX:TXgXgXBUWXX]8X 3X1X_ X 9-_WW/0Q=WXi :^XWWWUg_ WR.`X1WX3^>WWWQWX&WWW3 ; X W' EX WT_XNXN.>E]WQl^aWW/4"Q@ XNDfXNXNX AWW/_WtXWhLICXW/_1WsXXM6u]X2X23 qX X2IY X`X(P_VWWXNT XX/  X H^^WW|;`JXWX2Z;X'W :_~XXXNA`WWX FS_WWW0jXWW>K`0X2X2N^WX9XM4`(WX2/`fWWWB_ZXiXiW8a^W}W}W2`WW&EV6+XVWX9 X M >WX;9i W}W}X LGWXM=E`7X2X2X25>X;W8)_ 1 1X 5`WtWtGM] & &X P@`<X2X2WL6^WtWt<%  X 61J WW5V WW}/XDWW}3^X2X2WQ7 WWX :g^XWETX;X/WXME] l lX M^"WWWS^XWWWK`XXW7EWWW=WX;W :^GWX:X@_JX;X;X S%_bWWX 1E_X;X;WS^TXNXNXNB]WW1sXW3O] WT,WWWS`vWWX 2  WtA{ WWOaXXXN3V  W70`JX7WX`G_X9X9 _WXWW`:WWWEU_WWP"^WWX 4^4WWX2LTXiX G^WtWtG^WWX SS 1P[  :] 7 7WG  Wk1> WXMWM. XMW3^(WWX D9XWX(8WWtVWXV/(WWW9]rrX S XDXDXND_WWER?WWWkL WWX 5WWWSN^>WWW@ XXE^bWWtXO WyX/r_X2X2WN6XXX PD_\WW,SWWEX W/{XW< VbbW>z /_X2X2WD^WWtXP WW/WWX 5JYX W/WWW=u WWGXiXiWUXXVWKcXo8WkWeWXD :^WWWWZ_WX`XORXDX(/XWWW9w`"WWT~WW/WWC]WWM]X`X`XN?`wXVXVXN3Y^SXNXNX 0[]  X TR]WWXW:WWWK X W :UXW@_ X VRXWrLWk7]WWWkF;X1W WWWk;<WX`X5WW|05(WWW5 nWX20T3 WXH WXC :^WWXNRAWXD : WX_ : WW|WO`WWW6 WWq8_XW :]X H_WW Q WsXM_X WHsXWWWhLWW/ WWCa^AWX>^OWX]WPXMWXWSX 5W5X WLX*X*X 4XDXDW2^ WWW7H_:XX ;`}WWWPrXLXLWk43]zzX >KX<W :WWVWk5WX X]4^XW/xWXBQ}K :X@WCW{XK7x^WX0/]X&X&W7` WWXNA`CWWX M;PWWWG/WWWN^=XXXNG~ t 8 8X U%X W9]WXWW`EiWsXV1*tX2WtWn2pXCW{7 X W`XXW2@^WWWB X^XB/ ` S/^gWWX CXVXVWP WX03mWWWO_~XCXCWQWW@ ^ WWtXI^WWW:sX_XW`?RtWW.>WsWsW0 X;X;WWN^XXX 9#`WWXN7^DX1X1 JWWt1 WWT]XiXM/_WtXW=#`WXWW66%X(X &$_WW.>HBX(WX2; W|XW?X^X^X ?WWWQC] s sX Q^X?X?Wk2X X XNR WWWE(WX2 :X(X(W4` WtW/FXW :XCWXW8_WWX 9_RWtWtB_EWXVW:_WWWS WWX M_AXiXi39WXX]2WXh/]WF_X2X2XNM/WX`F`XWW?XiW#_XDXDW>^uX_WC CWtWtX NWW1WWWkL X G_WX;WH`WWWQ WW018 WXCW> ^X;X;W1_WtWtXNJ9_XWW}/I WWWR5WX;7_WWWFeX WWK01WX2X 0i`0WW&E4 WXNW7^;WX;XMV _WWWMq u uX 6WXNWAX:X:X B`WtWtXN9F WW/EWW}NWW}WM`aWWFN^XiX X`P^XNXNXNWWWXN9C^>XgXX7`WWXNA4_ j WI`W|WWRC E WWJ^{X;X;XN3~ WWX6^fWtWtXNURWWW9*^WX_XGb^gWWX H_WWX K^WWX CkWWs2]  XNAmWWW7WX`XW2-WW*^yXNWK ,XXWMWlXWrC`_fXLXLWAX_xWtWtWPWWX(X(X =lWW/_WWWN_WWW7G`X X WIXNXNX QX BWXNWRO TXWW8{WtWtWV /@`WWWkD}_X;X;X =i_WWt/EK{WWX Su X WW2WW/ WXWWeFeWXDWh>UWXNWC`XNXNX >Lv/_WWtXDB_WWtXMpWWV@^QWWtqXUX9/`WXW5XNXNX 8WXNWK X 9 XCWWKXXDQ_4X2X2X W X0X/#WWX;N`WX>-`WtWtX 7O`/WX1WU^XNXNX Q`WXVW7_zWXWWTsXW :XW/AXCXCWk3$WW} RWtWWWkSxWWXNT>XW/X WXM4_XW :nWX:Xg Q/u X:XX X WBkXiX XD ,XWWXT_WWW3_qWtWtS_WWWk=]  WC^WWtX=]W|XXM=gJX`W<]WW3`WWXN82_WtWtS$_WWT_WWX 0l;WX:08^WWW6oRWW  WkB^WWzWG WW|W4B`WWWT^lX2X2WS`5WX+X1`zX:X:W7p]WW&EKT Sr^WX^XHtAWXDWPV^WW/_'XWW2WXVG_:XNXN.>L_WW IM x :IWWR4d X 5^1WWXW7_MWWW4\ UE`XhXhW=^(XUWWQWWtWhE`WWHWX2G ZWXWXMNrXXWt96WW/SXC _WF& WX1WWWQ@XiXiXK"^X2X2WA XX/`X2X2W6XDWW`J WXTW>^WWWS^WWX R=f M/w WX? WW/X W5+WWWk3XUWRx_WW&E<_WWWQD_X`WX]J]WEX WL`WtWtT^WW&EF`'WWtX:O^WW?] W@%_sW|XXM=(WX1/F_QWXLSwWWXNB@xXWWh:QWX :]||X :]WWW0^`W}W}X OtWWXNT^WWXU= WW<3`X XMX]: WWW:^WW&E8vk Q_tXXWI#xWWl!_mX1WsXIVq`X2WXD]WWO X(W/`WXWXM:^X2X2W0]WWW?y^WWX WTXVXVWR L LX 1^X6X6W5 WWWL0WX1XW<% /`WW >V X;X;W3X WtQV_'X:WXW4  X`XM6OWX :]WF1XDWX>_WWAkWWWnV\X`WWn=^WWWT^+WWX O~XNXNWk1|^vX`X/^WWX29  WV_XYXYX 3>_XWtWtXN7_YXWXM8 X ; W}R^WWX 7L W :_XXX CV^X X X29X`X/WWWI zWW?_ X X XNH^W|W|WN_[WrWrXN=OX`WX]M?XiXiWk4nWWX28_  Wk>^WW} 75XWWW`VWXLW3_WWWHFWuWuWtO_WWW>|^KXVXVW8 WX W6^AXWW06^{WXCXMQ^WX;49WXEm X1WX ; ]W}W}X J^TWWW0_JWtWtW5% 9/WWX1A XWWP m mX J<^!WWW9^WWW3X(W :_kXOXOX H c cWkJ_WWX ; X`X`WTX2WtWn0`pWWXMTWXMW6^WWX ?j^PW|W|XDR XXX S^-WWXWI^WWWP_ WXG2_ WW X(X(WTk_QWW|E^QWX&W7U^WW/_lWWWR/|WW|/YW}W}WkI!^)XNXN.>2_8X_X_X2E_WWXNE\~X1X1WO%WX `WX2 :>>X J3] XN3_WW&E;^XNXNX B00X S_ XW`4WXiWeNRX W/WWsT]WWt9^WW}W1^@WW{W|S?SWWXNQ.  WTQWWX R_WWWCWWU`WWWk4v_WtWtWGXXWtF*_WWWk;nWX1 :WqXTJ^,WWWF7X1X1Wk<] WCY`WW&E7WWWRt]  X H_WWW6@XWWeV)W|X> XCW/_XDXDW3j  1 1X 9XWWAKpWWXNGM_ WWWQR^X:X:XNIWWWk7^WXGWW{PAWW/^WWX G7 EWWsXG`X0X0X 9`]X2WX<-]]]XNSQWW03R_WX1XURXWA`eWWX C2 XVW|2_WWXN5 nXbXbX ?XWWWkTZWWWK] X M^[W}WWB_ WWWT^WWW7^WWr8]X2X2WA`W|XW>`qWWOkWWW<fX(XiXI?l XWW/@"_WXL/PK]WX9uQXBW5_+XWWbM WXD :oX W/_WWX V_SX0X0 2^WWWC^WWQ^WW.>TyWWW5 8WWr@WWWJ^XX D~ &WW@MWWXNUNWtXWNPWX:W=QXMW :^X2X2XN3EWWGWWW5T_JX2X2W;Y^WWXW1`X2X2X  WWWTxX WT X W/`WtWtEN^ WtWtWM X X WkU_)X(Xi/4 X1X/^X`XD>^WtWtXNGW}XWR$`W|XWE4kX WNkWWsE_X0X0WHZmWWXS`X2WXP"WW;#X^XB/]WWWO,ppX ?.WX'GWXLX W/eWWK_WtWtXN>^WWW2d^WW WW|/]X)X)WkE]^ WWtP X 0_XDXDW=q X0W4<X WIX_ XW/] ? ?WK{ N NWk2^qXNXNXNG'WWX 9HWX1/HIW}W}WM ~WWF^=WWXNNd_|X2X2WF]XN@]WXWW`V]WtWtWSv] W>_WWXAG^XWWX E0`WWWkI{`OWWW;`WWWH_|Wk=_MWtWtXNHXXXW=y_XXX U*^WWW@MX(X(XNRlX X WQ;`XWXM>QX`W7:OWX' : X2WtWnP1^WW :KM /U`-X^WW>eX W/ZWXiG`8XNXNX H`fWWX2S IWX2AnW|X5#X(X /_XMWW6yW|Xh1WX/7[ XXWkJWsXV/_&W}W}X =K X XW*_WWW>JWX_WB_WXDWdL`XXWK  X CWWX T;`5WWXG=WWX'W :_eWWWMX X/R WW.>_WW4 XNWXM:d] $ $X A^8WWtXDO_W}XW4WW}/\XXWkE`XUW{O_<XNXNW9[^WW}WJXXXVKXfX*TX XN WkRw9WWt/D%_]X X W;(^X2X2WWWWBX W(HXWX(MG)WX//dWWXN? WWS_WtWtJ]WsWsT`XXWtBJX(X(XNDX:X_5WWXNRWWWk1TWW3x`:X;WWA$WXDX00aWWX LC$ 0V WX:F__,WtWtXN;WX_X:By W|XWO]XN;mK^' _?W|XXMDdWsWsW0' WWWUL]WW&EO jWWX KWXi/ X W=_W|WBK`pXWW1 QX.X.X 4^KWWtX0`WtXW0^QXKWXUG^WW.>5 XWWJ X X W1}WWWWkJ_XXX 4  p/^YXNXN.>3WWWBe X2WtWn86`tWtWtXN>=^WX/X;6_SWW&ER~XVXVX FWWX]T=_WWWFXMX1IDXXWk:`X`X`X EXWW?8^WXWXMT^WWU_X2X2XNQ3`WWWkU^W}W}X GWWX 3WW4+hWtWtXS`XWWXW=XCXCX @9W|XWW `WtWtXNJ`WXCXWL`]X:X:&EN8^X;X;(6X5WwX 6WWW7q^XNXN.>6^NX_X/] a aXNUIX;X;W9]X1X1WkQ`XWFWW WR_X_X_X 2hX`W0|_WWXNM^WXWXDR^WX0X1RCWWWkP WX9XSWWXEf_9WWWkIUW|W|XNFkggX IX XVlVWWW:]^XWXW6Z^WWWS_X1X1X K ] Wt2LhWWX ?]X @2^ WW} WoWoW=_NWtWtXN>] X FX;X;WkB;WWXNHX_XhN`.WsWsW1/ WWWC(_pWW9`WW/V^rWW/^XLWXWGA`WWX UWWWI( /`WtWtWFu]X =)_WW.>1 WW}/^X9WX`?_bW}W}XN:`dWX'XE  XNXNX H`\WtWtWP` X!X!XNT WWs&$XiW :] WAP_WWW1_DX9WXWT"`XMXMW3|_0XNXN G;:W}WX]QX'X /WWWk6WWW@X XMX ?WXhXV4`WWWO_GX WWN]WW.>?PX/X/WR 0 GWXKFy^WWXWF]W5p`gWX?X;L X W/BWX2/8#XVWX]5 |X`XWPeXCW/D,XiW :WXDWT_]WWXNVWW7`WW.>OyWW/ XNXNXN@]WWtWI ]X2X2WEWW8FvX^W/Ll  :WWX J ^X2X24] 3 3W<XW B_WtWtP_XWXD`WWX V^WX&WA\X W/~X9WX(X(XNWA^WWX K @/9WWT^X ?  WkG_WWX 0cWWW{0 R] X1X_] . /WWWC[WWWk;w _WX;WhHX WXMIX1X1X >dWWWKH~X W1_WWWFSWWs0 I -WWX W>^WWX >^!WWX VWX2/U] X 2`dXhX X(9SSX H_WWWIWW/VD]WtE`WW&ETWX :WWX N`X2X2WCE^X2W/WW/TWX`WzAt^XWXWWkPm] XNN_WWX2S }XXWkT_IWWW5  /^WXG<]WWX 7XW :WWM^X2WW`4R`WWW<2mX;X 3`XNWW0]WWX E ?XGW3XYXYW0F]X 7UXWX;/`7WWW>X W/W{W{W<V$X2B<^FWWWk92WWt<kWW?~W|W|WkU8WWW=9XW :^XDWWGX;X;WtD`WWW3SWsXV/!WrWrXNOWWO V VWkOUWWX]MUWWX 4c`WsWs I WWXNGPXXWEWWX]T* XMX1O] X < 'WX1WK]W;_DX^WX1:N XDX(/WxWxX K$^WX:X<WW/_sWX:XSJ`X2X2)4; GX^WA^X:WW:_XLXLWN`@X$X$WMTWX(WD_WqWA XDW0TWX/D|l  MWWs) XiXiX S^=WrWrW9ZXMXMX LWX;RrXWWTUX W=VXWN^wXNXNW5W}X`6 X Ip_WWW4]WL?XpXCXhLWWXNE9`X;X;X AWX1]WtWtXN@b^WW12WWWf?_XWW^WWX2<"^yWtW^WWX`C@ WWs0 8P]X;X;(@^^XNWW7 _X:X:WWS?WW} :WW/WWt/V_X2X2WOD#X`W1$WX :X:X/_X0WrXe>hXWWDd_CWXVWBz^/WWsXMF]UWW}/ WWXNI<]XNTX'X / X M ^WWWV^^oWX/XML-WW}3_X2X2(HiXNL9  @/^WW;`X0X0Wk7 `5WWX8WWX 77WW/_XDX TY%XXX H_WWX Eh)WW/_`WWWK#XCWW|Q(XWXM7>]XNXNX ;nWW;Q XPX"X9FXMX1/^WW.>2^XWWG^X X W;; XXW@^XXX >-WWBXX WQ^:X:X:WExXWX>%WWXNG)WW(%^CX9X9WH[WXM :`WXVW2]WW&E;oWWK=WW>D>XXX ?Q`XXCWLXMW>f XWWW`IX W/`X'X'X 9HCX1W% X X W<^WWWIWW/ XDWLfWXh:  RW}S^rWW/t`WX;WFRWWX QWWWR WWWO_XXX3gM) WkLkWWXNMN WWWK:_]XDXDX 3 XiW :fXW :`WWWkAajX(WXS=]66W?'WX0XW0(XiW :oWW`X2X2(H]WW.>WQnXVW/ XDXDXNBX XMK  _/| XXWSS]@@WL[^AXhXLUWWX2L`7WWWtD/^WX X^3[_FWtWtKX;X 6d_#XWXR]WWWV5 WX1XML^vWW:_2WWWF_WtWtXNQXWD XVW :^X2X2XBE^>WWXM<` WtXWS X]X]XNVu3WW_SWrWr&EHP cXXK dXMWWX'97]WW.>IXCW&{X WJeWW/6X W?WXWXHHWXUW2 X`XW;~_WsWsWAX R`WtWtXN> WWXNO_nXTXTX2>`  * *X RhHWW}5`mWWtbLn WWs/O+_jX^X^W>_X2X2X1Z X L 1X =S XWUw_X9WXW@WWX 7s^X2X2W2M`WWX ?& JWW/] XN19WWWk?W}W}XNKUXXX28u^WXhKS] W1WX/W:`vXXXNN2Z L/WWXNH mWWX CXNXNWDX W :X@X@X S>XUX^WWt4_WWW<] .X`WX]?S XNXNWSYWWWaJWX6J^X2X2@^XNW?<^YX`X`.wE^WWP$X W/X_Xh: WWL XXWE^WtWT X(WXW<`W}XWGX_X_X ;WWsWF %%X 48^WWt)4_oWWXW; mX(X 'XWRWWX T_X'X'WSWW/_LWX;bBrX1W? X X WE"EWW 6`!XXX2NWWWn7h%X W/{ XiXM/XLX0/_MX2X2W8\aWW4|WX_ :X(X / WlWlX 3`6WWXN@[XX'U ^XXX F^>WqXXM@l_WWXNLZ^X`XX@J`jWWXN0X'X /X1WXWOKt$/_X2X2F^WXBWRCZXWI QWX :qWW~W8=^WW/XNWWH]WW/ppX = XWWCWW #JI`X9X?2]  X 1XNXNWk5HWsXX 7^WXWX1E`WXWW7WXVX`@_tWWWGWW/A ^WW.>HhXNXNX L`pWWX;WWX N!`XXXNO'X`WX]BOXX W/WWMR WW}/^WWW3`XSW/X =WtW :_&X;X;WDi_WsWsB1XhXhX GX(X(Wk0RX1W :XW/] X I_WXWW;O77X @mPWW8^4WWXN1SWWXNA_X0X0XNF_WW DY]X PWW`<WWX 8>`"XiXi.>C] r rX 9k`WW TXCWGjX:WX'W2X?Wm?X W/~ )Wk7^WWV;WW/XXWIq)XWXUO^ WWWV{_)WW/J WW/^WWW=:^kXX 6 WXX2^IXNXNX V_X2X2WrXXD03^yWW%^WWXNI^WW.>TvWW/5_XNXNX 4 !X'X'X I^AWX0W<^)WW|M %WW? WWX PXiXiWkUV$X JXXX</T]  X ?JXCXCWk;^aX XM/O<XW/WWWkIXX/_-W|W|W9&^X`X.wXXX 6.`RXNWWV`IWWW:qXWWz;XW/_WX:X]2WXNW;B bLt1WWXN6 X X WUVX U>^WWSPXXX L_WWX O`JWWX6WX:XA__WWWTH /1 WrWrWN_XgXgW5:XWXWX DX^rWW 3`WtWt.>BWWWWS`]XWXMG`WtWtGEHX1WX Q^X1XVG 5XWWU]W<+_WtWtXNJeWW/8I X_X_WkN^;X`X.> WW|/W|XX(A^/WXiX@ WWWkWD WXiRX WQ   Wk3&^YWW(Q]WWW2=`2WX_%WWX`<0^WW :`WWW< XW :@WWWtOnWW{E`WWX ;$WWWKJ[WWWVz CWW)4\X`X`W7%OXWR`WWxW4*XMX1/`FWXGXMN^XW/x^X;X;WQ^XNX=_hX GXWWX]I*)XCWU:`W}XW?* BW}PUWWWEL_XXWI X(X /XW :WXD^;WWtX<]X 4@M :dWWWV^cWWWT(`WWWQ}WWIM 6WeO_>WW 46_xWWXN1;] # #X M_WW.>;pXX/^IX0WeJN^WX:X=`WWX D :X X X1,`hWWW=`&WWG ZWd=4XXX @^WWX QQ^YXWWG_ XLXLW0"_W{XXUD:^WWX25Q Wk2!^X X X 8]W|W|W0GXMWXD8X1X1X2A WWXN= `X2X2W9^WtWtXN3WX07WXWOF@WW1BXWWWkF^RWW0V-XCXCW0_XWXWXN4$ X As   Wk8`[X4X4XNI_XWWX 4`_YXLWW5P]XWXM9\X;X/ vWWWk8WW/?`XNWWS/W{XK3WWWkTXWWX = WWW0(WXUW: WWW0^X2X2A`WWWf4ZZX >`WWXNAwWW/HE_XNXNX 8^WWrWS`WtWtXNN~`)WXgWP]`$WWX Oc^WsWs.>KxzX W : Wk3]X O, 8`WWWGDWX1WOWWWD]XWW6T_WW6`NWWW0#_WvWvX :LX XNWa1)^*XNW@ XWXBj]WWX @ #WWWQWW/ dXVXVX O`8WWWC!_WWWI9^XNWW;fWWM"WWX25X:WG^WXUW3^WWXNT rWC^X9WWOmdWWWN?XiXiWCWX1  X A/WWWQaI  X J &XiXVM'WWX 4?XCXCWkA^^WX0X8C^W}XW9 o Wd<:`WWWUl D?WXCXWJdWXNWU WWW;`X :XW :^;WWWGu]bbW@ ?WXNWSWxXWe3AWWs>WX2/9XUWCc b _WWWM `W}XWDWWX2Q]WWXWEa X WAX1W0:]WWXNI>]WWWkV`XXW;M[ WkUb r rWkW4X X Wk3_ d dX 7]X 9AWW/ X WW ^WWX E }X X WkM_:WWN^XNWWF W? 3XgWU,X;W;`WWWk4BWsWsW;{ ^^X NWW/ WWW;KBu :]X 7A` WWXWFXDWW=5XW :WX2X4_2XiXiX E^X`X`.wIg - -WkI WWX IV O uWWX 8K WkJ WkAWWWV`"WW(=]XNG^"X+WXWA2^XW/^ X G^XQXQW5S@  X SXXWG W|XW=^XTX8VVWWWkEe..WTWWP] X G XXXNK^HWWXN@qXNXNW3]X E ]XNWWM:X(X /^[XW/:XXX O_ WWX22WWWkS'WWX 5^lWWX 7,WW2W}X`/ UWXi.>`PWX`W4]WtWtXN6"WW-_/X:X:XN:IWWWR^[WWT_WsWsD^WWWRXWW/;] WJ W WX I WX#W}Q_<XXWk:  {`;s WW;U_nWWWUK`X2X2WU`XhXhX Rd_X8X8XNV`XXW3 `WX:/7^MXNXNX 9?WWWkW0^WtWtWNq`X:X:W4\\ =WW<] W<_X_X_WQWW{ :^XWWG^WXW@ ;WXi/XVWX;@"XAX_gWWtXDMXWX :W|W|XN7X Wl`XDXDX2P WsW0ZnWW3^WWVFWWX 6 TWW/WWX Q^,WW/t_wW|W|XNN^{WWXNLb X;X B  | |X F\WWWGX1X/_FX2X26b^WX0W;_#X1WWJY` WW?^`WrWrXNMXDWW6 WW/O]WrWrXN;^WX(Wd7f & W0] X 6^7X'X' 9~^"XcXcXNWEX&X&Wk4!^WWWJ WXhW>^XMXM Vb]WtWtXN>rlWXi/ Wk0 X @_XNWW=8`WW.>? XWXWX K`wWWXNN]NNX KB\ rX;E$^WX2Wh2'X W/2XDX(/\WW/ o X C^X WQM`PWW}WGZAX1WABWX;6WWX>xXX:?`WWXN1=_ooWH^X$X$WSVM WkJWX DC E  :_WWWD)WWXN0<XNX2 KO X/X/X T WWW1X1X1XM_zWWW2X W :X W : WM8L v/`CWtWtXN?F\XXX 4}X:XCD^hXVXFrXiW7@lWW/^PXW/_WW&EOAX W' XhW4>WXNWC> X T9^4WW27_AWWG3^WWWHX"WtW :TWXCXW69WXX]@WX2 :`WWXN>^XXX5v_WWtX:?EXXWkH^GX'WWWO_@WW{/F% X(X /` WWX 7^XXXN<_WWX UWWW; ~WWW@]W2u WWX Q^WWWJ[^WWC`XNXNX GCWWX]Lq WQ WWWk2^X2X2D[lWXCIF^^WXLWC:`WWX ;ObX(X(X14WWs/`XLXLX2@.sXW/ #W|XWV%_ XNXNX UWXN/QX1Ws056 _X X W2RXNWUX:W4%&WWWkMXDW/L WWX]Q`XX;>?X?W2BWXNW@WWX]Ni XhXhX 9X X WG^WWWPWWt6G^WWX 69 WXVW;mX1Ws^ WWHC.X JC^WX(WeN(^XhXhGH%|XMXMWPXMXMWkB_FWW&E4._XNXNWC_XVW/:7Wk1_XNXNX 7.7X1W :WW=X`X Cs^X2X2WVc^XNXNX J`^WX'W5#^XWWJ^WWWUX;W :WWXNLN^WWX DLX X; r WkM0_VWWWR7XW2XIWGYWWG%_! N :^WXWXMT`yWX+/^yWXb^WXhXDkWX2 :_TWWW<_pWWHG6X`X`WR[WW/`DX2X2A[^WWX K^ WWXWRs_WWW;`$XgXgX T^XXW8^WtWtILXX`WV WWWkPP.XX\X =^MWWX Ho_WWXeA]X2X2WNBTXWSZ_XWW<  Wk17_UXXXNHWXC :WWWtR^XMWs/OU]WXWWOX XMWn3% X P WWr:_X1X1)4K_XXX2@ X X WOqrWXNW5L v L0F W{W{W8+^X(X(XNTg^XYXYX QQWWWkLXLXLXNHX'X'X :WWMuX XN5xWWHSWW{/]WAx2GGWkHWWX]S]WWXN>  /.WX(_WWWGFfWW4X@WK9WX'FY%%X KN<WW/JWWW2NW|W|XN8_WrXNZ  Z/Mb 2W}ST]  XNG`WW.>H] 9 9W8fWWXNT&GWWWkS`9WW_WXgW|0G X W :`X;X;XN:X`X`WNWW?c_DXXWk5`VWWXNKX(W YWW/`WWXN6WXWnR_XNXN.>8^dWWXIK WWWaMwWWXN?n`WtWtXNBn^WWX CDWWWXgK WXDWU8`WWXN4? WA=X W/XXW3^DWW.>2pWX2L]mmX U_WtWt<6^%WWX 0 ) )X KQ`WWWB^&X/WWP X/X&$^zWXgXW3`WWX A&dWX2X<^WX21]WWX ?XMWA#X0W9_WWX K  X U]X-X-WkI\I ,WeFbhXhXL/DWWX>`X2X20X W/^!WW} WWX SyWWWH WWt5`/WXMXM5B WX' :G W=>`XNXNX 1CXNXNX 0&QWX1H[^)WW(2K` XbXbX A X 4^hXW/] W<@X WL^AWX9XMUX WE_X2X2W>WXLXM5?`X2WtWWI^W}WU`XNWW8Q`XXXNT2X W:UWW|Wz0` X2X2X1e X(X(WD`?WBMcWWtTp]XUXU&EK3^ | |X IZ]X2X2WK@WP]WsWsD]XWXMEB] J JW5dWWtW0eWXgSX(W/LXXWBT]WX_XM7gXCXCWB_;WWX <^CWWWBW X2X2X2H_XBWW;`XDW=WW0O OXWEz PWWWSW`WWX N|wWWGv^WWPwWWX 9T7X`W>^YWW8]WWX Rk] w wX Gs`gWX[WS&^XNXNX VG^(WWW6lW}W}WE?`X2X2W7_ZWWWt<X W;]WWX L XDXDX 5R_X:WW;`WwWwWk:XMX: hWX`1i^XUW2WWX CWW >^}WW Po WWWC>`kWW&E;WXV :XNXNX C X W/[HX`X`WkK_X_X_WE`bWW2WW0Gl_mWWXI03 YX1WWJyWXL :`XRXRX 0X:XP]WWX M^WtWtXNOcX H;:WW/M~XDWWAoX(X(XN?,^WW|X`K?X;X;X RWW;]NNX N 9WXM :WW/`1WWX F_|WtWtXNF{WWWkL_~WWWI^XXXN1]X1X1WR\XVWW1`JWXdX`H C/7y XVWW=r_WWXOAWX2U WWX NLXWWX]3@aX(X(XN2`W|W|W4jX XC^WWXN80 XXXN?~SX`X;]^WoWoX U_WWWS\_W}W}WN_WWWkI `WXD_h !/|`WXWX;cKXKW :^vWW/]  WSM ``X <^WXWXMN/L3 A u/_bX2X2W9]WtWtWA7`XBXBXN49XDXDWk9`"WsWs&EU1_oWW}WMWWWHpXWWRW] . .W9 ^7XhXh)4IqXMWWJ^"WWWLs /@=^XWWX AXXX NXWWX]VcWXMgBaWX/HnXWX:/f X 04_X'XhWRS`XXWkS(]WQ_C C CWkH^WWX < +W}W}WkG<WW}WJ#^PWWXN?a<WWS4WW} :`  WkO3^WWX 7/WWt<1:XX_/?    X 2G>WW/X1W/Ov J_>WsWsG2T XNXNX 0_tWWX B\KX WFs^lXNXNX 0P XWWC`XUXUXNJVX X Wk6^WX./ WW/ WWX >@FWWWQ^XWW@WWXNSX X2T^..X 33XWWRX_W :^X:X: GwWXX]R W|XCFWW6`,WXWXM>s WWXN2 OXDXM(%X0WWhF,`WWXN<_X XMX]OkWWWU] ] ]X2A_XhXhX JW|W|Wk>^WWX 7 WW/R`|WzWzW: WWX2SE_WX2 :L / ] ]WkUs WW} =^nWX'WB]  X 5) WW11X WO_XXWk0ykWWX<_3WWtXP_=X`XX1U`TWWtXA3_WWW@_WW}WC`WWWk:_$WWX C`WWXW8NrWWX PWWX RN TWX :`TWWW>WWX 1_XMWsI  , Q`_X2X2XN;^WX;W}:9WsXV/ WXL :`&WXM`HWWVwuX`W|0 WW;_WW}W5XNXNWk2WWtNY_kWW&ED_XXX2P]X1X1)4F:X WWF`X X XNFWWG?^+WX(/ XNXNX E_WWWk3]X2X2CWW/_X_X_WQ,XDXDWK8XWUMq :_X X XNS9WWW9WW C Y/WrWrWI4X_X/K<WXCWK`WoXWGSWXi)4`WWrW`=1X W/WW7^YWW7NWX(; UWWX U/AWX;NV^WWW4WWE_WX2X2WNC_WtWtXN9Q w wX :SXMX1/_5X8WWCl X J>^;WWt]  Wk<+ (`'WXWW0fWXi/^WXVW6`IX2X2WTS _WWW9^WXKW@ _SWWAWWW9`X_XWUu^WXUhWWXNF_WW QX WW?WX :^IXW%@o^FWpWpWkPO  X ;^yWX(e^X2X2O^WWX Ff X 2WWX C X T^lWWWANWWW:H WkSL^KWW.>CX W/:{_WWXW=NXWWR X XDC~XWLX VXNXNWkB XTW kWWBWWX 67xG X]UWXMO^XNWWBsWWWkDU`X WXSo]WWWFa @X W"OWWtG#^XXXNO`WWX 1 + W74]X;X;X Er WXNWReX(W : cWW/X^X^X2M= WX;Q)_gWXWX18^NXXX P9WtWtX 8WWWV\X W/WWX]Bt_ppX KXiX XMGXhXhWO WWW@_;X2X2WR`W}W}X RiX_W^)WWLH_8WWW7NXMWWI`WWXN:~ 8 8X NX/WW5^X2X2WD^WkI:_WWXW8MX X W:NWWX H~ WX'%PXVXVX ?B^NWXWG_XXXNL`WWX U]99X 68WW/4FW;*WX(01__WXVWMDWWWk:i X`W : XIXIWkU_xWWWV X'WWF]..W?>kX W/_fWWXNLh_xWWX 4^XXX B'WWs :MpWW/)X`XD UMX`W :] WA^8WWXWA^WWW6^)WW@^WW 7c_8WWX S\XXWGNWXDW>]X @%%X @^XXX < WWL^WW&EI-`X;X;X S_ XW/ U= /!@g W /:u WWXNMZ_WW&E?ZWXX]I`mWXWEWW8|XTX8E}X(W/WXWnBWWs :]WXCXJqmXiXM/zWsX.>IW}X`Q`eWWXNT]X X W>3_fX X WU"_xX2X2X J] X WXNWD_UXXWkW*M  :hX`X`X N,` XX 5 (XWWR )XMW :_LWWK5^WWXNA +WWWNWXUHL 7/_eXMXMWk9\`XXW1X X17__WW)4^HXNXNWtLWWX:]WX2 : 7W}W}X M -WtWtW2KWW/ WWX CiXW1WX_94^'XWXM=mtXXXKX:X:W2`EWXKWA{WWWk;!CX2WW`Cq^XVXVW:] X TW}X`>%ppX @\_WW 4 WW`HHW= X`W"Z Z/XDXDWkRj_vX1W iWWT^nXLWW9 @WJKX W1D]  W1{ WWX GY^0XXX ;N^WW&E8X2X2X2I]X QbX(X /WW/6`WWX GeX;W :_WWGy\WW/ X3X3W3=_WWW5_XTXTXN6]_yWW{WD XiX WQX XN]^,WW/XQX5/A8`XXW6zXW&E`WWWO=W}W}XN7lWXG "X XNP:_ WWW7  3 3X AS`HX:X: B`tWWX 2 `WW=fWWX2>^WWXPN XNXNW2^!XNW.>/X W/ WWK`X:X:XNQPXNXNXNL 4/WX1X N`aWtWt)4@^XNXNX 3^^X1WX`53^WWtXG WW@9^X;X;W1nWWWkSX X X V W=_W{W{&EPdWXiG XWUD`XGXGWkQ|_WWQ^1WX`WE`XXWk2^1WW}WAWX1X J,WX(DX2X2X2RXWW8'WX/? <WW6X_WWX <WWX ?t`X2X2WLM^WWXNNLJ ;/WWW0d`WWXNOabWX1X RWX;JkWX;:o X2WW`V X9X9X 9s_WzW O^X2X2W2WrWrXN7{X W :0  VX]?\`WX:XUWWW5oWXCX(V`eWtWtXNEX W/XX_0M_WWXNF_WWXW0_PXXXND `WWWkOg`qX:X: 4;_X`X`.wH.^WXcXW8X'XL7_WWtXK_pXKXK.wUfWW&$]X2WX5`X1X16`jWWXMP`*WWX2?XDW :`WWWG^yXhXhWC]WtXWhR]WWWKXXX Qz X EX W/`9WXcXM5GYWX`XMU`WtWtO^5X2WXTe_XXWCt^RWWX 0_WrW^WX`W5_XX G^WtWtWS8WWs :XWR a = W<_7WXgWW[^X9WW4EqXhXhX 8 ^@XjpruXNWJ` X I] WJ X 3`WW.>6`XhX WR%`*XXX LoX WUnXMX/UxWWW7WWX : BX#X#X R_uWW 1`XX2X2XNC-XMWW:`kWtWt.>Q =X W:|] WGX`WKXW/Xj>X 3DWW/DWX2I1] X V^0WWW9xX WJ_X!X!Wk2^WWtXND^WWO61X(WW}IDWWWLu] s sX 9_WWW7_W|W|W9xXXX L5^ X P_WWX @`=WWW4 aWtW :  /?^JXVW)4`X_X_Wk=^EWXIWBAK /^WWX M>1XXX 2XNWX]4WsXWDWW/]WWR_WWW@}XW/]WXWX14WWW4]WWX 7*X W/WXNW?bX1WM kW|X 00WW0OSXCWW5-X1WWBXX/ WXMX1V$]WtWt.>SD' V VX D^WXYWBGX(X /^6WWtXD9"WWz&$  >u WWWkN`{WW.>4WW.> 'WWs :_XXW;^JWsX "WX2 :WWtPT`WWW3WWX ; /^X_X_W8WWWOXVXVX =%W|XXW>X 1XWXWWOXXXQgzX_X_WA{WW7|X W4>WsXX06^WWtXHWW/WWXNO&X C^W|X/WW|/AWW=U^sXRW/XiW :^MWWWCdWXhWI\ vBLE /^FWWX U_XX.>OhWWWE^6WWXW9X W/WWWVRWX'5k`3WX1WT /7_WWR^X2X2XND`@WWX VX WTfX`XM1WX1X Q^XWWGWWW38^XNXN.>5Q]WsWsW: `:WWX >F`X(X I /K^VX:X:XN=;`W|W/R:X W/|^X8WWH<^WWXW@C`,WWtX8pX WS]XN;JWWX I]vvX 6'^WXW/ X(X(XNJk /?^WW} WX(mWWWOWkDWW|/^SX2X2WB.WrW :^X2X2XN8 /XDW9`WX?^WWX 5XMXMWL,XDW% WKXfWX BXWXM?SdyyWk1r^qX2X2XJX`X`X :\^CW{W{X2;_tWW KRW}XWeCw_WWWkU3WWMXXX EX3X)9_WWWPe_PWWWV`XVXVWkUWX9X:AWW/;9WX/R^WW.>N&tWX0`X2X2W@X#WW1p`eWWWDDfXWXMK_WW_WWWTC_XcXcXNUWXNWC X 9 X(X(X8 XWX(FWWWk5^^X'X09`WtXWI_WWtXC 5 X D ^WtWtX27^XWX N`WtWtWkFX W/ VWWWk=_~W|W|X JwQNX;WW9GWW9XXW4PX1X1W2*^qX1X1WS6PWWWW#p pWgWCr m mX 1 WWtW6WX N 1W}X` 14X WW7_h WE`WWWkrX W :`-W{XWBuXWTWW/`{WW&EV_{WrXXM; WWWAe^ X2X2XN5 WW 2RgWWS_)WW/CSHWW3n^X2X2XN1^WWWkL|^?WXH_WWX N.X X X J_WWXN9q_XhW,]WW/_ZX(X(XN;WXi :X WUa^<WW.>8^WWKQ$ X K`X XNK]]X 1SX`WLWWtTWWW4^WWtXI,] l lW:^_WW9{XLX0/WXNW3`XhXhXNB]WW.>TL c : :~XXXNDu_X;XI WX2/<WX2 :^uWWWT$WWNW|X :_XNXNX LWWWP^ /Vz e eW2U`JWWXB^xWWXW;LWWXNS^X"X"Wk9WMWWWh;N W}<X WQ?^WWW2,fXLXLW0*WWX < X(X(XNJ]X >/ WWP_ ! !WkJ!WX;O] 9 9X BN]WXWX1BXW/]**W2_WWX2D&`;X2WXH WW}/^WXUW2:WW_0WW)4JMWzX]/^XXXN>`WWX G~XMXVQv[ /7K C CWkG_XNXNX MiXWXWWC\_WWWkW?\8 'W}GR!WWWk=.] WAjXNXNXN4DX W/$XW/ 2XPW>^}X2X2A-XW/P  Wt? ^WWXNFWtXW79WWX = WX1X DW W}W}W7WWWJ@ X W.>]  X ;^ X`X&E WW/5;^XMWWQWWX C^W{W{WCX W/MU`WrXW3FWWX Jm_WWXWSUWWu WWX 4^XNXNX U]_WWX 5d^WXb/WWWGz] X Gi^XBXBXNQ$_WWW6VWXD_EXW M`MX2X2W1!XMXMW2{_WW.>G^XNXN.>Ve`+WWtXDW_X_XXMQh 1 :^3XIXIXNN X Nr /WX Wn1Y^X X XN6[XW<^X&X/=] Y YXNKWIWrW :`6WoW2&X WWfK^`XWWWIWWWk4N_WWXNU^WtWBX WtN^WWX :^WW/_WX9W:wXX/iWkB^#WWs;WXV :   X T`X5X5Wk;K^WW.>1WWXN47_WW D_WWX 2 X]WJWWX UtrXXCWcO^~WWXNFRX WWRWXNW:3 WWX BWXg< WWK6 WWX26XXW@'XhW :WW|WE_JWWXN;HXXW9^X2X2JEWWsWrWD*_XMXMWkUWW/WWWS^XNXNX N1WWWk0WW} OWWW3``X(WWFGXWCf&WX1(WX2WA_WtWtGA0 nX]A^>WWX 4`XRWWN^WWWk6z]WF]WXMXMG^@ YWW2AX XNWa6FWWW8Z !W}NWWt=`YWWWkDeLV :^hWWtX2^+X2X2>y^hWWW37`XUWWDWXMWTV&Wk<LWWBC 'WXNWU XiX W`4_P b bX A`WsWsW<+WW/S#_kWW.>5WWWKWX2:_X4X4Wk0QWXCX(2` - -X M XhX .>] WV`WtWt0/XMWs5^'WW{%F]X:X:XNK] k kXNMQ[OWW} :WWMa WWX K8WWW0^X2X2WFX:x mW02_WXWX17_WXWXMOWWWk1^XNW X W :^WXMXM0\WWW;IW}XiN[WXDW3 ^WX_X4a]  W8WWW5 XgXA4 WW9`WWWPX2X2WK> JXXX25^WW.>S^rWyX/\)X`XBg4WX/4WXNWPWX2 :`X0X0WkUK /X"X"WkM_$WWWkN  WWX VXVWP.`xX2X2)4?WWWtI .WW|W1-]WWXN09X`X`WV],,X RCW|XWF`XUXUWNrWW0 AX'X0;_WWXNSXhX5^WWtWT?WXCX(Bl`WWWK  dWWs&EtX2WtX]FN_WWWH`WX(WD{^WX+WX<_WW(OWX WnAA^WWrW4zXVXVX 1XXXN@-WWtAbWW/sWWWk1 `WW&E3 EWW0T/XX1X/ * *X 2ZX`WX]NWWWQ\W}W}WG_LW}XeOX WPWWs**aWWK1sX(W :WWW5c^wWXV/^YXNW X X WF_WX9XJ`XWWB_WWX2EX(X(X<X_W/KXiX We9$ IX(W/_X2X2(H^NX;W  KWX^TWW?p X X WUz_WtWtWkP^XWXW&EK_8WWXN4^WrW{RXWJ]X 1HWX(X];XW LRB% !!X D1_ WW5, X]XeGSX;X/_ WXL(] 3 3WL/7XAXAWDQ`WWXNN'^WW(=6`WWD_pXX KX:X/X W?^WXWW`M /`XWXWX CX_WUcXWWtg:]WWWT]WWX DZ]WXWX1P C X M ^%WWWD(`X_X_XN<8^&XKWWI_WWXNUXRW#^]WtWtW= WXi :]||W;Z^ XWW^rWqX/X:W :_XXW=!^uX:W|O_X;X;X26WW/WW6WWWkPXMX1/>8WsW3_WX"X;Q *XhWrURWXCX8WWX V^X;X;XNQ/XWE_WWX27X`W`WWW7^'XLWKCC|W}X` A}X XO'WtXW/ /]  X Jl zWXD 2 X R+_<WWX2:x] O OX T5 X S|^WrWrX J2^WtWt>i]WWtXO`WWXN1H`SWWX 6^XXWP`WX:XW7 N@^RX[X[WOYSWXDWh1WWWkKWX2 : XWXWWk@UWWWWs :_WWX ;gWXi-^XWXWX U XhXhXNH_WtWtWEttWWXI8QXW/`WWXNH9 WX26t_pWWG:] X G>^WWtWBs] XNH`WW.>VX1WGWXMW3pWXiRRXWXM>jAX X XNG1`%X9X9X U#rWX1X G_KWXWXMJ|^oWX&X;q`XNWWVX XN7_XWXW&E6X-WWUpWWWL _WXWXMJ ; ;X M^;XNW.>_WWX 6>^BXNWW33`WWW<`WXVWBh  V VX S XhW1cjWW/?VIXWW<_uX1X1)4NXWWR WXNW:`vWWX JT_X8X8X H,XCW>`dWX_WCz_WWXML0 Q 'WKsWWXNER  X Es_XX%C`+WXWX1GX0WWh>QWWX ?_]WWW3_vWXWn:W0 7/5l] T TX >6 XGXGW6x^X'X'&EAX X WF`WXDWhR`X7W/`$ {W<`XBXBX2>_WWXNR X X WMNWWtADWWX 7F_WWW8hXNWWH8lWX Wn3DXWWE^ WWtP0 Wk< ^oX WWV]X J?`XgXgX22 WWWeDt_`X:X:XNE]WWWCFT  X 1^WtWtXN0XDWWHX1X1WE C CX UWWt2^lWWWRE_bX;X;W9P(W|XWG`WWX : WW2_WWW?h WWX 5_'XWWJWWX2J{XNWX]N_WW/SWWX CWX2N_`WWX C`XNXN.>Bm^-XWW9^jWX*/t^X;X;X22X2WX:-`>WWtHg/WrW@_%WWW40[WWXNI_XXXNV_qX2X2IXWX;IWWW@_XhXLW<L^X^X^WkG4 v/WWWk4 fX(WG X 9_TWXWXMC$WW:_X2X2Q^rWW.>5_WrWrXNC_rWxXXD3UWWI_WW/K XLXLX N^/WW6<_uWsWs9XjX WVvWWW4WXM :] XNS WWWk4y`EWXgXMJXNX:#yWWX]2 #X WIuXDWX1< ^WWX 6 WWW;xWWX 0X W/X`X`XN5^HXXXH:WW/^WX_XCoTWX21^XNWW:G`WWX Q_WWX FWWXN< WXFWWXNUX1W?rWX_ :^iWWX Q^1WWW9+_;WtWtXNEWXWW`D-T >^X_X_X L:3WXNWL`WWW1z WWW9=`SX9X9W64pWX2HWsXVLNXW/^WXWtOR X_X_XNIXDXDWA'TQ WE6`|X8X8XN8LB /;WWX 9dXVXVX3/WWt7_XWXDN^WtWtXN?XWWS`WXWXM5s^rX[W/$WWX F^WXBWDo^XNWW2`(XXD,]WOP W|XXWGj&WWWT_XNXN.>M`WW5`_WWW=Y EWW0=`X'X'X25X WWhE] WB^XXW>WX5N^WWXNIX WW_4^GWXCXM7 `}X:X:XNCG/4X W/ WWU WWX N]  W9^bXNWW5{XDXDWkC^EWXeXW@j_W|W|XN4WW/:`XNXNX 9%*XW/XDXDW5`UWW&E@^WW2 ^WX2M RkWGX WW_A1`6WWmB9X X WPWWtU` WtWtX 9X1WsX]HW`? c cX KCWX;NS~WWWk7 X W'_WWX 6rX(X(XH&XWAKWX1 dWWW5]XNXNX R`WX;WF]WWWM<WWW8_WW 1K_?WX:XN)\XNXNWA WW/WW/X1W :_''Wk5_?WXVW:_WtWtX I^wWWs/X W R WW WX1WGV_gWWXW@WtXWV^:W|XXM:7WWs/0W WWIm^WW9`DWtWt.><TX W//lX2WWe5mWXCXML<WW/_:XWXW&ETb QWWX KAX]W7^WWW6hWW=,]XWXWX J +XWXWW2QWWWRh [X0LWW/X WIWWX]=^XWW}+8]  WS XWWVr_OWWWzP]X 6^WWXNM zXVX:/WWW1I XVX&{]  XNC']WW H^X2X2S]X;WW3s mX;X;X KwWW@i XXXNOWXWJ] C CX 3S`WX[W4WX2 :WX3]_*WsWsH^X'XLOWXi :`XDXDWk1` XNXN.>I`X0X0W>)yWX( :WWs1AXNXNWkCWW/R X PL<k/_WrWr.>>v_ WWW3_X2X2 OW}W}W>8WXWXU;_WWX2AMXWWe4}W|XX B LXX`X]2]WWWF_WWWPQ`\WWXW>XXWk= WW/`XNXNX 3 WkDWtXW0H_WWXN9]WWKD\ = 8l X L_XhXhX2NEX1WW1WWX H  X 0`6WWX 3X W/PWWWk7XLXLXNB;Kj CcWW%_X1WW=^~X:X:X ?Z  * *X 8YGGWkM(^tWWXN3WWs : X DXW0V-XNXNWJOWX59j#WX2 :_WWXNQ CWWX2@`WWX WGWX)^XX%2`JXSWXUyNWW #JWXEO  Wk4`X2X2)4KWX:W7g]WF _wWWW;"_WWX Bi:X W/X:W2m`X X X Q\1WXMG RWW/H^X W/X'X'XN4)`DWW.>J X XN0C*XWWX B}WX&/}S  [X=|^WW&E>LK\ : /WX2 :^X2X2B]XiXiW1\`WtWtXNNjWXW3P WWWP_BXJXJX P`hWX;WV_mX(XiWMiSXWWSaX X2WX W/`PWtWtW3 N WkO8X(X &$~ X ?_WWXN@+]X;WW0XDWXMD] i iX UuWX%Q6WWXNTX XMWH WWX G*WXi/_WXWX1: _X:XX X X 8mWXi/WXMp^$WWX =S:XX^/3CX W}9^<WW.>V`WX;XM5mX^X^WKWW/M :`\WWW;%5WWX26#eWqW/RfX1X/_WW.>6/XXX =X'X08| < TXLWW|KXWW/PWX( ^]WWXNP /sqWWX IgWyX/`cWXD+;R}PXW/ WWWHQX0W/`\WX`WI6^lWWWB`X1X1X 3JX XN<9X`WX]Ay WX/Q]X ;`WWX2R X)X)WkQ_WWX 0@ K KX 3 D DWNN_GGX 3] ' 'W8_2WWXNU!FX WR`WWX 2^,XW/. X ?]WXW/`eXDXDW=WWXNSWWg9JWW|TN]WWXNV_WWWBXXX C;TXUX&G X 5OWX$C_oWWX V WXCWD^WWWE 00X 4rX(X(WN3^X^WX4X X2V^WWO]X P }WW5/V  X C&`VXNXNX GO^WX;bHGXWW@rHWWW7^WWW@] WTXDXDWMYX WE@X8Wz@^=XNXNX 5 ( (X FG_WWG; NX Q]uuX =N VXWW< WX2 :_WX0 :`BWWWP$`MWWX MX X#_`X^WX1;6^WWWQ 5XMWN^ X:X: 5`mWWK<_jXXXNU8WXM :^WXWX?KC Wk6 fX I_VX(X(X RW{W{XNHz`mW}X%5q^oWWW9^}WW&E8{_ WWoKaXWX1:/WW]WWKX`X`WTwW}XWI  WWt0hWWWR^XWXW&E7JXW :^WmWmXNI_WWX UWWW3_WWXWV`W}W}WAl'XXGTWWVEWWWA`WsWsWV+X(WW}W"/WX5>}  XD X WW2_WzWzX Q X_X_XN0-}WWK`iWW.>H5^#X W:l`jXWWN^fX2X2W:'^ZXXXN5 Ly/_WX:XM 9/vXW :_RWW :fuWnWnX Qu_-WWWV X =/^WW}WO6X W/~;WWs?\\X HeXWW0 !oVM|VVX >]WWXNN] XXDWG!^wWW/&WKWXCX:7d^!WWXN?f W X FV^WtWtWS` WWGIVXhXVd^WX`W@L?X:X/XVXVXNV!`~XiWs4`UX2X27WW0TWWtJ q  X A_WW62]00WL_X X XNI_/WWWLX_WWX P_\WW"Z<_ WXWXM>E : ; 2Wg?^XHXHX 3+_WWFF^WWX RWXM/!WWWJX(W :ggWk73]X 1`WWX TWXhT/F TXW/GGX L] S SXNA_h W<}WkFL_WX0 Cp_nXXW@-WW=_nWWXN@n`WtWtXN4^WW G^=X9X9WIeWWs:`X1X1XNSC_WW/^WtWtNuXNXNW=IAWW05 X%||X T'WWX FFWX`UC`XXWILWk=^dX'XhW5_kWtWtE   X E WkJj^WWX:>5WWWOWWW0sWX 8o`WWtX<WWt/tTXXXNOWWWWk0WX<WWWk4rWW}2 WW/] WE<WW/`WWX 9^WtWtG3]WWX 0 - $/`WW J`XCXCW2s / ? ?X Cj^dX0WrXe:]WW L<WWWkA= WX.F^WWX MFWXVF_WX[XWLWX :WWW3 X W/WWWkG^ WWX O^WX=X'= dWWW?i^!XBXBXN:0WX/1^X2X2XNAX X8"XIXIWT8W{XW:\2WWWkOAWWmW>)X_XC/RZ >WX22WWWk;`?XNK`WWX]PXEXEX 6^rWpX/k  X 6  U UX TnWWQFXiXiWk5W t WQX_X_XN8] WMz^W|XXMKl`OWWXNL`WWW3^WWXNNv`XW :^WWXN1]WW%LU_KWWW2^qWWWk0r^lWWWRY=XXW3)WrWD  /N W0]W|W|X 7`WWT^X2X2W)^WWt)44WXNW0`*XVXVWCTdXXX Q_X2X2W5xWW`X2X2WH}WX(WFWX X XNN#^QX/WW8M_  X <] H HX 8_WWtS$xxWkJ`SW{W{XN1^rWW/>X X X P XXh;=X L^WrXX1GT~X;X/WX2P'WX!P]WD  X ;^/XMWXMIH^'XWPMWXWW`F8_pH :WW;^sX6W/t_@WW/QfK# /WX=AXCX'/-WW4X:X;X W/`W|XXM9eX)X)W4I  y/_aWsWsG6&_bXDXDX2P WX :fXAW)4^WX`WPs^IXXXN0^WWXWEg_WWr3G^WXiV_WtWtXNNX`X/] W6_xX;X;XNJ3X/X&$3 WkO4XW/5WWWV /1+`JWpXX`?xWUWWWk;rX W/WWWN^+WWXNF_(X3X3XN2YX WW_U`{WtWt3t_WWWH6[XX` W3r^^WXhW@uWW/^XWXWX1[`-WX9WT !WWX N`W{XXDS_WW}WOv]X WCL_X2X2W10XWO%]WWXWM /=UX3X3X 7M WWWI^!X`X&E` XNXNX K`X;X;Wk0_^oWWXU; ] > >WV`XWXWWkC0`XVXVWD  AWg>C_WWX B0 X(X(X E X WUVWWIqWsW :qX3X3WkI~`XW/ X`W :P&WWWE WW/^ WX`WS?WW0_ M MX <_kWW AX XN7 uX XNVR/WW5-]WWX 9^WW&EL WW/1RWX<WGSWX :TWX;HdUWXN] X 2^ .WXX]6L^0XWXWW<)^QWW} WXNWC`X2X2W> ^XXWIw^XcXcX == R RWKWXDWXCW/VT X X W2 WXSW}@W_WsXX0W(`@XeXeW?'XVXVW:1^hWWsW1_WWW4iWWWk>`WWjWWW;R_XXWV]  X P,WXMXWO X <UWWrGLX W.> b XNPXX/_9X\X\X Q_&WWW8X WIi] X PG`XMWXM9 X XWWi7]W>q WtXW/`WtWtXNI`6XX"7XwX;WWF  X XWW4 WW| :WWW:B`WWF\^WWX F^WWW}D=WW|1CXCXCX EX Wt[`rX2X2XNVW}X`/]XNKMR X 1uXUXB=XW/  W:_WWWV]XXXXX Ju WW/ * Eo_WtWt.>K_XVXVWkHWWWC_^QXgXX1_WrWrX1$  WtC WWX @xWW0DX:W :`WWX PX(X(X1b_XWXW&ENWW/S*XVW/` * *X < yXX_X]O^WWX W&WX26]  X2L_WW @WsXV/`WtWtW5u_WtWt@_XNXNWkI/WXWXU{WW}2N X 8WWW5LWWcW}XVp],,X U`WW VXWW/6P_MWWWVJ^RXXXNE. *W}L LX W/] X 9^$WXH/`LW}W}WP{dWWXN;`WWW0`6XcXcW2jWX'WQek ./5]XXWJXWWe9XDWXDVWX : X21  WWUWXWWD^WWWQ#XAX$TL X W/XW :`X2X2(H X 9[  L/M^WWXN2W|X :WX'X@WWWL=_0WWGW X WH_WWW3a`0WW 8_WWXN1SX W;[^WWWk0EXUXUXN6XNWF^WXf/XNWX]7~WsWsWkQWWX ?3WW7\ V /:F] = =X Si^WtWt7-^ XNW.>WXWn5^X W/w]XWX`G+^XeXeXNE~WXi : ?XDWW}Q8cWW%HX W :$X`X`XNU`5XWW}A] X 9S XXX UIXW0?^WWWRKWXVW:r_WWWF X^X^WR@WX(W5"WWW3]mmX My #WWWaOtXWXMM_IWWX P WWX;WWX 9)WX2X>SgX(W.>CW}X`/WX9oWWtLi^PXAW12X WWM OX W@]X JH`XBXBW2w^vWWB`mWX;eEuXX:DKWX`X>WXNWVOX W/ WkF0_WXUW5 WWt=^/StBWtWtX F^>X^WW:  W}Xi%CX W :BX2X2X T_WWX PWX0TQ'WW} Ja %X`WP_WW M-`X2X2WE^XgXX>^$XCW/^EXMXMX T_WtWtXNE 'WX1X >WWW>WWWPEyWWX UW|W|X A^X1WX UYWWWJ$_X2X2 C_  WkU|W|W|XNB=^WWWB_X1X1)4>^  X G=_WW Qj`1WWW8^WWtXGWW}H^yX'X'WDm]X2X2WF!]WWX ?WWM D , ,X EQ^X1WILWfHXNWI"WWWXNAZWX1WI^)XX 9_8X'X'XN?4XDW3T9 v vX AT^X X X 6W}X`/>XDXDW4^RWWWJ!^XVXVX U@WW/O?`DWW.>3  X O^ZX0W/rWX:<WW} :_WrWrW< s/Lf /[XDXik WXi :X(X(XNMr^XXXNGQWX :KD | R :`IWWWCjWW- /WW/  o/HWWWk?d\XhXL/  X @XX(W1WWWH_XCX'Q[WW/W|X_/WWWG|`WXCW6_WWX <`WWGvWWX 7 ^WWX A WkT ] X TF_XLXLWP] WEVWW/V]X2WX@^X2X2E!WWTO WWX 0T_WW.>S_jWWX 5cX'XhWc>9^WWWN0X'X /WX3 ^XW/WX :^:WWWB3XW 3X WWf6_ WXh&E)WX0=WWXNG=XWG4X(W/9_(WWXNA  WWW5KXWKj WXMX:Q X`W :XDX(2_+X W/_X'XhWE  l lX G]WoWoWkT}_WW&E>;XMXMWMR`WWWR5^nWWtXC]WW.>F`$WWX Jn^XUXUXNVC WWWNWWsToXNWX]2WX;U] XNDjWXNWGG^nXhX W;1`WW =_X X WC6]WWFXW/X X X2B_%WXJXO-W|X :nWX >7W!WW/WWtD^NXCXCXNW]^gXXWB_X"X"WEnWWW>oWsWsWN `XDXDX24M] X ?`3WXMWA]WO_X(Xi/FPWWtWJSX A] K KX 8A_XMW/?^XXW4rUXW4^WWtN} XiXiX :: WtW/U_oX2X2XN1WXiC^mWW&E9#WXX]Is ,We>OWW}Np]YYX @`X2X2A]XWXW&ERK`WWWA^4XXW=[ WX2 :^sWoX/WWWL WkD ^ X^X^W@_=W}XXDJ^X-X-WFAWW/HWWWk1^WXg@^>X2X2WP?WWWG5WW/^WWWE`%WWXN;^WW @#WWWp_sWXVWQL^WX<]XKXKW8 X J WWWIf \WX1 iXVWW>^_WWGW|XWK`WWWkPq WX1W:_WWXNTj]W}W}6 X8WFc^WXWW8_WWW6`WWWH^XNW4^WWE WWt/V ;XW GXVW :^kXWXW&EAn_WX?WGX`X2X2W4x`)WWX:C_X2X21 XX`X]0X X WtTVXUW :^XVXGeW{W)_X2X2X E]WX]W|GWWW:9_XWG`tX2X2WMXW/X1XVEYW{XWeVPX X22AXDW :-WWW6_XNXN.>Cv4WXe)4WWXN9^WWW9IWX8/ WWWCWW}WeQYK */`\WW}WM`WWW;0_WX;7^^:WXVW0`SWWW0+XXX?_zWWtX:6D WrWrW>P W3_hX MLXXWkK^[WWs6WX/Qx WWX ;^}WW.>Ev WXCX:6/ X W 7!_WWWHO]WtWt1XW/_/WWX <|_ WWtXUW|WX]<X W0WX0TS_gWWWkCXiXiW7#3  Wk6)`X1X1X T4WsWsWkKWWX 9@XTWX;X W/{1X W/jWXhW:O:XXDX]UJXXXN1`XiX X0vXhWLKWW/ XWWMWmXP<^WtWt.>N]WW&EEnWW1?_WX`WP<]WW.>P `iWW9n X Rv`jWWX M_WWW< X 2X(X(X F`X X0K^{WtWtW=+U-WWrV.X 4 X @X W1`eXXXNKVWXi5_WWtXDS ZXLXLWkMMWX2 :`eX;X;X JfWWWR9_2WWX26r^3XXWC,WWs1_WWX OV^TXXWN^WtWtWK XLXLW1%`X\X\Wk2a^VWWX G`WWX Q@ QXCWXD? WWX ;]XNXNX J UXW/^fWWX 2 :X2X2W5^ZWWWG$W{XWM X 9WXWKY UG^WW:$X;X;XNE%WW/`eW}W}WQ`WWX J_ # :^rWW/x^WW6]WW0;>`XMX11_WW.>DfWWX]MW|X0O_WWtWL_}XDXiV]X J(WXCXM?6^`WWtXDP2^+WtWtTWWWk0}`XVXVX :Y]WWX 6`XWXW&EC)WWW@/`cXWW}$4A^XNWt_X2X2XN3,?WWR^WWX J^WWtXTXMWWn?]WWtXDk XW :]CCX K_WW&E?WW/_RX2X2>WX2 :_W}XDEWWWF^KWWJ]WW(KAX'X'WO`lWW|WTD7WWL WWs/XXWLLWWX 4 X2X2Wt>WWXNU]iiW7WWXN:sLWXWnR-`xWW 3 ]WX0O ^XWXWX N_9XXX 3v`WtXW;y _ _X 6OWW}/*WX1.w X_X_W6 ;WW 95^W|W/U b /6_WW.> XVWW|U_ /WWWU&>WWXCR_WW_nXKXKX M`WWX 3eXWW0]WsWsWk4 }X`XWzPWW/_WXWX1IA`0WW.>LWXWn=WWW=X2b_XX2X2W9_YX0WX9  WEX WX:X:WO,X'WR^WW/<5^WWX OeWsX:G XXWK% WpX/jWWX]=]WWWkL WWsJXW :WWWS^vXNXN.>MT{ X A] X2;^8WXWX1WWM_%WWX`R] X CO  WfMV T TX SA_WWXBjX 0^W|XXM>$WWXNOC_WWX W]WWzX:K_WWXUC` WX2XWH4_XWXM8WWW6_=WX;XWL_WWWSX WW4 X 8XiXiX HLQX W/  /vWWX 0_!WtWt.>C_"WWX VVWWWEZ^XNWW1`QWWWPaWWWPWW:"^WWX`Kg`aWWGUT^XWWIOBXBX/H`XWX`WVDDX 4{^fWWWLX X X 6^gX2X2WMWWXNF7] @ @X B9XDX(/S 'XXWJWX(/1{X`W^WWtXDR`WtWtX P'XWXWX V WX@X 9 WXiL WW&ECX W :WWsV^PWX?/`sXLXLWR_WWW0 _+WWWLWWW6 WX^>>@WeC XDXDWk<]X;X;XNDI WXL :^WWW>`XWXWMPWX`WfQXcWWtD4 W@\X E^WW P +XXWA4X1X1Wk1_X'X'X U2_WWX JoWW(%`WWWtO WXMX?X?Wk:_AWW 2 X  WL^XWAsWWWWX LO7WXi/^oXWXM5] } }X H |WW #1geX W/`WWX 21_BWWW@{ WWX :V*WX :X W/]WW&ETa]WWX 8WWO4`^XLWW6$]X1X1)40]XWXB^XiXiWA>WWWkW] WL WWX2D XWWW`; XW E`WWX H`!X1WWH Y 3 3X W+XXX E ZWWK4"WWWM] X UnX WW;oX X WV^WWWDXUX9/^WtWtWRlWWKXW/B"XDX 98WWW?K' R,,WW8SX W'XXVAWX:/HUT # #WkLWX^X^XN9`:XWWX BwTXXWk6WWWkON^MWWWFO @ $/G{X W6^WWX L_WW}WR WJ/WtW :_XKX/JX WH{^kWW(F+_EWX:XE`5WXGW=`zWWW5_5XWX @mWW/] X 5n7WW@YXWW :AXhXhWV`XWtWtWC^XX%?^WWWAWWWV`vWWWP_kX2X2EJWWs :WXiXW5^WtWtWkDgVWX1cWWXNTG`4WWX D`&WWtC%V X`GQ`kWW.>FK @ XNN7`WWX :WX/B`XXWkD^WWtXP]XXXNSWWWVI^WoWoW9^@G _WtWtXNNDX X2% r/JWW5sWW>KptXNXNW@~WkE] W=`^]WWQ^WtWtXN?K]XX)4XCX'/XXX(RH^$WX_/_2WsWsWJW W}XDJXWWt0>t Wk8XXX2WP:WWtKWWXN<3W}XWbRyW|W|Wt0^TWWWH`WXWnE_XXWT_X2X2A`bX2X2NK] W4lN X R`MWtWtXN6WW/_X_X_XN;_WX;W<rWW} LWWt/1&yXDW :XWW9_ WWWEl`2XGWX0;WW/>*XMXMW?WWtE [ X EXX 7n`WW <^WW}W8bX_X_XN>NXW/X(W/ WkM`WWtXD;wXWXM=%X9X9W>X0XT^rWW/ XWWFj CXNXNX <_WWW1_XNXNWT WW/X W4JWWU^X9W<]X J`X2X2W8XW4Z^uWsWsXNU/X XN/V(mX1WX 23`XWW;`5WXcW}H"rX X WP  WWWK7X W/  WkT`X%X%X =T`hWWtXP` WW/^IXLWJ ~1MWW/X Q^$WXd/t$ v N%, 9 9X PWk=XWX0: 9WWW9oWWWkRX X W2^W|W|X <4^GXWXMCX:X:X DVX XNRj X O_rWX6X1=pX 3`5WmXW72WXWn=^BXMXMK^HWWWRWW/7] ( (WJ^0WWXN9 e :] XN@IWX1 ,x6{XDWWE_{XUWWQA3WW Q`WWWk?W|X :`WWX =WWX2JBXXi XXX 2nMWW/WWU^XXWWaDWWt@^\X`W0_` X > We8rX`WFD_AX(X(.>G` X2X2WU^XXX @_%X4WX`L] X > "WX RWWtS] _ _W@XDWX]J=X WW>"XBXBW@X`W] B BWL~ WU^WWW<WX?sWWW8WX(XUk] X @.XWWT%WWtDWWXNPhh 4M`  :]WW 3\T+X;W :`WWqX;3BXIXIW2j]XWWJ WW/9f`X2WX<&]XVXVWkJ`XWXWW0 X5X5Wk1XLXLXN4tXW K9WX_3] 0 0X 8G]WWX B^+WW.>?_WXDXMS`|WWX Nm`X9X9Wk4X W>WWWQ`XWXMKWWWkI^TuWW|O^BX X @^WWrWI$ XWWF XWWF  X ?; X DBX'W2 NWD4]WXVWI^2X X17z XWB #WXhW:^XWX4X(X(XU  G]`WoXWKfX1Ws5T`X2X2X ?HXWX;T?^WnX/kXYWW=_WtWtX O]WXAWC7sX1W :^ XNWW6_XbXbX 6 $X W>:_XMXMI7WWWP4;WWWF`XX =-^X5W/hWWW8,_ WW/WWt4u`_X,X,W8`X2X2WI^pXCXCW2?W|W|WN<WWWPZ[SSWk1oXDXDWWWL WW/WXiR^'WX0XNg^X/WWDFX1X1W6^WWW=TWWB_,X2X2W:#WX1W<XgXgWHXCX051X&WXM6jWW7 X 4`W}W}WPX W-z`XhXLKWXNWJ\] F FX T]XNXN.>2^WWX V]XXX L_X(X(XNQWWX]AKm Q /^WXLX`8OWWkXXWk9a]X P^)XWXW&E0_8XhXhW6 f X O@XhX9<<`YWWWk0YX W1$_WWXW<^aXXV/B_WWWT PXXWV8X:W :_WWX G`XRWWP WWX]L^WWtS_WW.>FWWWGr WX:0X^XUXUXNQ_WWWtMWWWC WWXR`oXVXVWT`vWWWSe^@WWW9/`NWWXN8kWWWnI`? l lX AHWWW}@z!WX2M~_WX/@WW/^WW Q_WWX U"WWWSWW}Wh:56XX/^XXXNJX`XM%`>WXIt^YXX W_%WXfX`4]WWW<_L/HrWWWB-`WW(7e\XWWHX(X(X22^XGXGX 4_X:X:XNLeX 3X0X0W8`XXWkD!WX2RX(X(X B(] ' 'X >^WWTE^X2X2XNB WO]``XN4O_WWW5WXI6YdWWt=WW>X [ X 7KWWX E^lX2X2W3TWWtA^XWXWX E`WtWtXN3K?Wk;AXWUv@WW'^pWWX @`[WWWk@_X0X0W?X2WtWnOGX W0 G^WWXNRBWX2P_X0X0W@HX X Wk4S )/1L`PWWXW7tWX_WL^WWXN4 > pX0;n`"WW?`DWW 9TX:W|X]R]X L@`WXeWAWWWkIXWXMW`vXWXWX C   6 6X H_7WWX:>XDX(/CX X#_] XNJ^X:X:XNWM^`WXWX1B~`MWWWDM WqW :Wk0WWWB>`;XNWW5^WW9WWXNKiWWW?^XCWXMC`WWX Ue eXWWI WWX SIrWtXW/^WWX CXWWL yX:W : X WP+WWt4sWWX2WWW?UXMWX XM^WWXWI%WX : W3-^WWWM9^{WWW7 cWXWnR dWXi :RWW}/^"XNXNX 1j`WWWO^DWsWsGOw  X 5WW8^WX`WS] f fWK^X_X_&E3K{ / uX1X1X 7WXi/F41WWtDH] - -W:_X2X2:xX:W :^3WWX ?]WX1W8_,WWW0uWX2 :Wk7WWWkPo  X PX2WtX]K`X2WW79 x/^_XNXN.>;`WX'WDWWtC] W WW;WWW9`XNWS_dX1X1)4<, 'X W/w^X'X' 0WWWQ WtXWF5W{WK XDX9 WWr9BtX XWV{WWgDE_WW/3xX X2?K G^WW 2k^)X1WWQWWXWWV"{WWWA^WWWAE^WX1X0?9WW>oW}Xi%WlWlX E^X2X2W2^WXc/=WWXN<]XXX ISA_bWWWFd_WWX 3_WtWtXNAbWWrFk^XWWGWWT+]X WL^XXW8<_WWWIQ`oXXWH`vXNXNX SL 2  :!WWXNF `\X2X2XNBXDXDWI,XDW]X Lj_WWW6+WWX 8 ^XiX Wf8] WA]WWtXD54^PXXX 9_WWGL}WWXN:_!WW ;_"WWWAC^WWtXQ'^WX(V] W=S WD8^XXX L3 WtW/JnWX9 : :]WWW7K^}WtWtA)XW/WWW@a WWtW:kXMX13^WXX6N^WW L`WX:XB2XVXCOxbbX Fm^rWtWtOT`X2X2B  X 6^kWWOSX W/WXMXD1]VVW7WX:X]Vs^WXCO]WWX H^WW QUX2WtWnF^/WW5;XMX1Mq1WXV'W}X` 9] XNM+WW&E`WWWN`0WtWt<^XWtWtWVWk2`WWX]A ]X(X(X 7WW|/WW(%uX X WkV X Q^XXWU_NX2X2W7X(X(WCX X XN:8,XX/_WW @?jWWW3_!WW&EN5_"X1X1XNFkXXWkH`%W{W{WRWWX I#XXWK>WWXN4XXXX 6]WXBF K WkD#^WtWtOj^XeXW>2WWWKXNWX]1 cXNWX]K X X W2S^WWWFW}WSXDWXD93WX :^CWWX HI (WX25 X W3WWX2?W|XLD`X]WLWWWnQWXNWP^(WrXXS^!XWW`WtWtXNSdX1X1WB]X ?QWXV;X 8_WXWXMFU^WWL`WWX R&X]W9WXMG^WWWT^X;X;WJWX0/=WWE}XCW/4WXV^XUWXQ&WXi/ @ @X PlWWsO=?WX2 :^WW&ER^WX:WC WWWQJEX XNV'^WWWGWWWf9vXNWX]9WWOIXDW@WXWRfX W/%WW^VWWW=b>XMWX]P5 WXLX;D"_WW Vf\XX^V*WWX 2aXFXFX KXNWW;T]X2X23' WXNWTi+X =3X_XC/,X(W/=] X 7`X2X2E  e6`X2X2W8^IX2X2W2gX!XbX E_SXhXh&E>`X`WX]CXXX6XNXNX Um^{WWX 7XDWW}R^WXVbWWW>dWWWRzsWWw0 Sh(WWWT`WWW4] X >;XBXBXNS<XX`Wn; ZX W/M WW QX WF`X_X_W>+^WWX M`WWW=X`W :_WWX 2P_WWX 6 X W/Z<WX;WG_WX`WUWXWW`B`XXWk3% 5'WXWUXDWW4 WX( :] X OXiX X9^ZWWX ;WW/QXFW(H_WX0/^GXNWW= WmWmWU-XDX 1Mf 9 9X R `WW6a aXiX G_h  XNLs_WXWWK=]  X M_>X1X1)4= WWW=`:WtXW0 hWX2HfX(X(X?GGXWXM@7WW=dWsXWh6 X8W29WXWnO nWsWsWBPKH :HX2WXB+ X D.X1X1WR|] } }X IX X W0]WtXW1^WWXNL{`|WWWO^^WX2WfN GXDXDXNA ^XXXNE^ZZX W 6/RWWX2JX XM`WW?O_9WWWk3B h X NeXW/HWWXNMk^`WWXWAXWWTc^XWX`WTM Wk;W^WW/`WX:W2XDWX]H X W1^WWXNFZ\\Wk;`7WtWtW6_WWX]I X XiO`X^WW:&^~XXW5D]WW I_<WWWT`iWW&E4`jXgXXG =w`WtWtXN2F^xWXeW< WX0X(Vh^WWWk4`WW L% }X D$ ~WWrWW|X0J_WW U  /N^ PXW1kU uW6\^;XWW.> {X X X <;%X 4[ZX1WXTP^{WX:X9J9X_WX]1 X W/  ,/^NWXN.>^WtWtXNE_FWW.>8^XLXLW0]X2W/wWWX 6_X2X2WO'X(X(XVS`=XUXUWV~W}W}Wk0X'X'X28CW|W|WL`XNXNXN@]XNWWHy_WW3] o oXN7+^WW.>B]XXXNO GWWXNKb HXXXN>cWL{X(X%`OXXWQ`XXWSX W0^X9X9X R^xWWX DAX RWrWrX :X-WWG@ @WX1WHX X X6`sX X XN6 WWXNOs^XWXW&ER`WW@>VWWXN3 XNWX]8^WtWtDF_iX$XeX]O_h X >WXi<~JWWX2J  6WXX X9 XXW;p WXA XMX1>BWX2W5WX(W8(^XRW >$WX1 :WX X WBX W/|X WWX1X 6K`PWWW7U>WsXW2WX[O;`WX?X1`? 5/_XMWX9^IWX'KF_W}W}W> % /:^>WWXPLN e < :WWWkL WX/9`WWX MWWN-] X 7 `WXMW< `WWWtD `BXNXNX 5^WWtXK"XiXV@3vWX1/t`bWtWtG;|tX X W0`XXWA~_QWXCW%8X X X P-^WWSj] J JX :XWWD5^iX[X[WkM^1X2X2XNB WeA_|WWX FWXNXNWk;G]00X PtX'X0W']XX%EX_XWO XXX PX;X;X P^QXWW8XW WkVWWE{QQWW}/y , ,W:`hWXWW2yWXA?_pWW.>J^WW3 /^XXXNP}^X2XWPxcXWX0V, W:6dXCWS~WWX :X'W :W|W|XN4HX;X/C^`?X R_WtWtW8_PWWX ?!`XXWkJWX1R^kWWB/_XhXhXNS^WWtXLYWWWK X-W=]WWW0xNWXWWXNTWWDT^kXX%B ^WWWNWX50!`XXWE WXVW:W WkK X:X:WSR^WWWOXWX;L^WWX O^-WWWk1^WWWR`WWX N^pX:X:X H\] XND` XWWG `.WWWPTX_WSWX@P^WWW8fWX1X <9X2X2WPcWW/WWWk=^)XX%A]''X 5z^WWX 6_rX[WXW;XX$X$WJzWWXNP XW/G_RG >]WWW2WX28Q X K@^DWWLWrWrX O{#X'WWG X,X,X POX W/~^;WW} CX XMWn=^XTWW8] 3 3W5^XNW ^WWWz?`WXeX:`kWW Iy XWW}D^rX^W/s_X_X_XN3WXN/]W}W}XNH`'WWW>WWXNC8x WkVX]WX:XQm`WWWE@XW :AXXWB WWX VWXM0_WtWt?X 7;WW/^ WWW>+WWX 6M_WWW0]_2X1X1W? Wk6_WWW;]  X V}X6X<WWWk15WX2;^>WtWtXNG`WWW:)`XX%Qp] 4 4WP7_oWX`WB_W|WX]E_WXWXMK}]  WMB]WWWtB6`WWX G WX( : X X X 9^WtWtLGX!WWd7 IIW>B WWWkC D W3N WX/W6_WWX 5`;XWXMC"^rX2X2G2`WW.>H3^WWWA]XUX_WWtXJppX 3^QX`X&E WWO_X^WWD_HWtWtXNS XXW6WX2W`MWX2V& s /;^AXWXN``RXWXMDp W}W}W;#X^XBSOWX;>H^WXWXMM{^XWWXW=^#WWXNG `XXX2P8^WWX J_X2X2Q`WWX2FelXMW;  WWW6N^WWXNUiXiX XW;'WW/^$WW/)WX2XQ X:XMWWt/}^pWWWSG +XDWW;`X;X;WD_WW8B WWXNG] X =  X FhWXDX0F^WWWtEWpX/(,-(HY! !MCU<&V,KU<M U<!8 U<&rU< %_U<B5 PW9 PRU<!wU<2LU<%_U<,KE+G_U<+2$ !P*X w (AS,5)v@!t-VW( t$ Q\0(N(|! q!h$xK'}I9;#-yT&V'-i*A $%sw" +bp.܅(J =W$hU'#%D X$) KNS_A8-9F,6L+o6-wExfO%#G! $29-$CR(&v˟.=&2 %%j ?g?(P(}.A>6ظ "M, --GQV!"DW. .#1 7^Z."Pޅ>B' KI.M=$?.l(P7 [(@OD 5++ lJ  1Yev7f)'=U[ c>47KWU~$YR ~8 (J v2!|'q.#()?$u  {RXB :XGFuj.XC''9%-mY+ <Z*  >H#(](& 5U(S'F l&# 5=+I#&2آ!Dι+תv]+b[Ə#@ ˞L1g<T).,8-,#, {JR$ œlUc!*" 0 "G0SC(dpS%X&8"{.'@(.*+60 4Y!4&y,Y-/)'L)h7)"Y):(}(}.8H(}'(})L%A)+[ӯ(})h(}"H(}-;5(}ن) (};7(};)$05)!.(}$0P).^(})WF))W(}"H)-[)+[)~)"U3).^))-G(}e )"4(}.8J)e!%(}-O)!.); )"UϨ(}Y(})L#(}:)) )<(}`)-S^(}$0(}$(}ۥ(}(}-);(}+1 %Vu )',I)f-%>h+H,!TXZ&xQ'- J)0CnaW-"¹ &X<-Tؖ&z*4> $q c!nz!dS&B!G*i5z@$'l@IhZ%J-*;C0x%0Fv%pֽSVZ9Y"!&C1&]{+% "RF*s;%Ug  w#  "N _ 1g. X& ;S$b($;*- -9m%:1  .!ϡ&#F ."v()_Y3x-'"1+u%.WFj/$< l DN*U!"4$hF)L+&!#u"?:$]-h'eY l+%w; T #W5"L)&G> R#p&(S;~җ <$C4ѳWh$!)+P {.!9l!Cr,(l#6x$}N.VII 7-&j"e h;c%'(6,B%XQ %"?'55.'Xn+*)k iT'f>7" $!#!DR.W >Y3. 0N't$+(%6ƶA^$$H $%w$)p$* >#3P!8 ni,$ $D$j!*< "M,&z' !!̓R2 r,'?C#:*Y*M& N(W'_#0#(+ QC''*&C r6* 0/ " W:!E*TO*0y-9,t6&b$6 =!-wbp#k9`I . p&]. 15?(dQi"* A'-,Y57M%j'9I- G!)1'Ŋ1.41"PQ1)EŁ1.d1!%ZvFX'5)Fju& QDP3 /,j  A' -<ɤy+,!!X2$4+;.D* iW,!!,!!.X;..XM.9  .C,!!"g %GDX W{^2.EvXH# Wc~w/. o^Oe1 X;C /EXN`XWY.ZW.G3X9g.Df$!ladX+K LGX;D!WD.X 8W X L IZuz<Io(nZ~c|...,!!ٔ)&WWtFAWW.e^VRiX0V  .MWX.W) mG:3N~."g0&E"X_XB%cL .W QWdIL7X  -.$OcOdddC. EXW.W,!!)X1,(W,!!,!!,!!X WWNA.>XDD.)X WW0.X')zWWXX^Wt( >K_~,!!X_F,!!X@.Q@QBXi,!QIc\Ex.eeNccWX;W.DG7,!!  /C,!!WENWm.C@FpX;F*"WrCv cXD&W!X \-se0GaBb7hUXR]i,!!X`X`X`VG\ҾXMҿ W w WWW.MKFCX ] XE b&Y^xtWW.WB\.X WX VWX XJ.'}\^p.W[W+WWWQ.".wX?WC3WXVG6`.L'uQXWn.8..H^XEWtWtWtWc.V(t,,!!#g.WE-X9..WX1W.WmXibXiCF.WsD[(FA'.mEgdn ReE|W!_CR76Cl.0,G X;X W*X(X;%|X(*M. GEXC  W. "gWWtWrXNfE\C_W.cRWo$K&.Ch *c*D8.>X +;  4LGL)WW#WWX2W0.XD.e2XV.X'EJ.WfW.G ^FIF-.>J  WsWW,!!.X` Gp%XWG.ZhW  ..FwOFtXV (dF-0: *.DrW|snG.W F._eqXN΍FD,!!DWW *_AWWW fʹ .Fc/"7X WX;N.,!WWCgWXWWcXNWXNGW4X/7W6,!!.XY.X  DX WkX NG_ZWWP XX^WWWF9.,!! .X;.8G'.WdUVdY*S,!!A0%1..X X2W@ =WW" $.X."X1C1W 5ՆWIPsXJIWPWWJC;Cwͩ]4ͪ?kqWWUWX2W29G=.WE .W %)XDGW..@^E,!!1WWWI 8TB@",!!$Q.oF5,!!D2?'OGXj_Ur6XNHWX.HA&,!!WXE.WWZWW tY\DzWXWW;,!!`zXiX0T:TxW.dc +C++^VJ<G5W_C+D WeIWtC..EWmX9.D9#ZFI.X_fFX v X.F;CH@WX=W>cΌU2OWy DWGEWGWtWdW wW|EW X!dW3 WWWF9WXVW.fGM&d.WB8E.,!!.GoW|IXhXMq,!!XQXD.+2%SXWWCX(.,!!EWC`!X Ln,!!W'XN,XWW.S,!!. AW.WW$W3 ,!!gIW,!!"WsX$."X^[F[G F*L.W,!! \d..cdebXcKWC.XV^%dG:XX 3WWWVy,!!eeNcdc7~$KV X=,!!XLmWWd,!!.> !@Vd1/ccd2X X X F9Xh,!!X(C7 EXNyS;dF,!!m+.Ps %Gp.W. >]' WW W E^,!!ekWX;X'V4E6 C .. rWWWG.f*@F_^WA XD,!!Rf * .>).XcC~WJJE.. X%4qW,!!G.e .XOW_{<XW.WQWX1X1X190WWW vX;XVXNWXNJMOCXXWWXWTTOXBOC,C-\XT0G  1IdEX]&)WW(2!%\ !XWE@..,!!E-GWX(,!!JWWs0a'X`,!!.D,!!WW-3Gp %FqWtWXV^eXBZ JWW!{9DNIj $  U;,!!\~"WWWT. B$ !X.5D4[XWE,!WWW> WJh.WXWUgaxdWt 8WBD,!!XVAWdNXDjOU3W. YX2+"W WrWXN f,!! .IHFNWucd,!!FXMF&,!!W@SdgXDC ,!!FF8XNeBXiI nX/.BdV.X WX7c8;WCLdGGr~  pV3D>,!!X ^WG,!!XYcGWW.X WWT XM  P:CX;X(W0J EWt X..w.Y6D F,!!X7DIWed [xt<e. %a2XFXLXfW.7((W. *?}y eZ.XIcWEEϪX;..y^X`KF,!!Ǿ&mFk^D43 XD'0"'WE.X^yXDK.XXXDW'A9WM4eT8 dW,!!WFX;.>e. .tWGX $4e ^pX(.WRGR_'&҉WsC b,-S>.d`"O1FW,!!cLc"mX^X1D`Wd3 $W<X;Wsk.D"g#~ ..vW*"C$(XWWptXiG1G  . WWH -DHEWI!PX' -X1X1X1T'F|XN.eEoX WX#.,!!WdTddc^"/ E; .>XN NSX WX H.Wt.nC.\ mX.XW.D-F -`'.iWt%u.WW..2^,<,!! ZdvS,!!So *FX  "K^mW ]CV`)WI XN.V.cdte+"WrW'.,!!WX"W4Wn/c#~FWXN.({Zji[Z.6Fr,!!W,8WW..,!! X;$XQ!w",!!+S*W$FW~CxE}%uXVvW ^,!!>X9,!!,!!W}W C,!!WXMX WXCXCXCF9".B&R3,! RFl!W..:Kc:,!!DXIEWq.ۋWC *kf..W.ed9de8 v.Wt.sW"RNc/FdW/ W.WXCW0PQd{. vXX'"WcFD^XX.E EW ( TWC,!!^",!!,!!"g=. F  +.G X X X PZWD0J.>WX:zW~X XNWACf,!!X:W)W  jXAdd$d%WWW90 f9,!!QcsddmXD.F,!!XVV.WXPi Wt,!!H.eC,!!zzWg eXVWX X2W9 WD.GOWUG.. [.>f,!!.0G>cX,!!X2'dTde3d.,!!F(G:nEXXXT  ,e%9eWVeO.K XVX XWC WX7333 D D(XND+snD.XW X1 L78".WV.XWW|.FWUWsCW} 6XWrT$KIx.f*@WWs3mLMWٻUYdx|FFW._W 5^"X X2X 5Z%XWXNWS0 V. ..mXJ.X .N,!!=zX)Y.Cd  X.D6` XWEF W,!!Fa".. CV.W`.4WX1,!!-/&ECP8s'?Wd de"PJ.XM.EW'DXDC,!!WXVbmkG.dTdde@_G.WWX`EW|D $OD.WWWT..XHWDWX;W WF1.W,!!W=[1 X X WB& "g&w,!!Xc.9X2..WWWG;R0."M}o.1VP$4X: .WWtm &m|eW}X^X2,!!X ,!! qW:G7I.m.f.Eb GmEGIJNO,!!3,!!.FWWW;(D% 2EW)&X.W9"{m"<lfdiD' ݁.("W1e,!! )'WXWWXWNXS|E4XhX X;WRevW X2 >XFCW$.. "WyWtWWt0WWs.>GWcG.WXH gWWB,!!,!!q.CO >X&,!!W`WW7(W.. * GF`JW.OFoW...X!XcWXiG]XDC]A vwWE.XA cWIWGXXiEW WdXDW_. DXW,d?WX'GCs).WXWWTTWM04qX,!!%WGX?C;.S((4sEr,.W,!!cOd<d_e.MQ WWtX2X WW7/..X <,!!XW '*Y.WtXWXjX] *J~Xd, EXWdsFXN,-!C,!!F~)W..W dWWFW]X]X]X D17OW]T W . WWFcX_XWXX%XWWWV F+ z. MXPj<5eSWqEYM Jg  (8##OXMw&ECWPX;F8mJb 5WGd1X`XWX1W0mSXW,FHoQX'[XVDW3wW},!!XFX`.X\TCmC E`,!!Wds WDGDE^GFGep [nX`WW5.X`."ECWWWtWX;IoX(F!emdYcTy`C.>W WF.YWWWT,!!XDWtWX`XM˰ X;f,!!" FDE ,!!d'qW.)U!|E*cdtegWWX;0WF|'q cccgWXAXC.>Wm^Ws/@GX9WEwWX2W;W,!!C<^A ed9cdW9D Wq.Z q,!!d$ e0$E fF$/.EWWXN.3V.WXR-x4hddc>]]!H.X'ΩXNXNXNPZX2.w&'XD--cdX W E"WWEK .W."X XDmC6cNmpA}KFXiW|.d$. CR'XWXWXWT. dxcX$X,!!WdTde3deX9'(,H($HXi"q"5]7Cc.F.F,!!WXL ES.EXXNW| @U cl  .,!!W.F*u..Nf,!!,!!m.<x E~$@ECy,!!,F$WWWXXXGXX#G XdFJ,!! ,!!XXNW;Sa cc WWX,!!X0diTcOde>e  ,!!*WWXNB&  ;=FHX`WlD53X;s`.< t? ~EFEdTdddWXV / WWX.< c|DV< .WWdWWX.XNWtXNG vd ccB CWW ^,!!XZWWWWG  ,!!hEG<.XNWXNEWsY X;X;X;GR,!! X WX WWWXNA *,!!"g-W}. DW,!!N C,!!NC#,!!W,!!WG3.X1WD.Ws3%X WXNNC gFX*stT?X(dW,!!+?b=XWFWE` %L.$O30X<._[,!!.w+C'..XW'W3,!! !`W&EnX1,!!W NX {oXW,!!,!!Wtdd4W;. R.W+`,!!WW#~9V.'q 45W;*cW% GD}ޑW | *WX`.>XWXNW;.X._ ؗ?%DX X(Sc.WW_ G*T MWW*h ;1? TXV .,!!W*]m9 fuWWFK..OcZm>.X]RE.WX_WsFE.DOcWXX9)CgW.m85d~M>*XXXGWF/XMF]l=m .D@yz...WeX hWXNXfXVW ceX(D 'dDWCnW)*Cs fC}XR.1uEXW!{R lW )nX:em&,!!OCW.Wh' WX.X8FlY",!!d  ,!!. !XWde!?9)4?1XXXF9 X; D .W}F'. l.+CWN. * M.>&E0L~чLOX7(W.WXBO!lf$XNX2XNHW"$ m...U*Ͷ;֔X  ..XNWWW}e] X WW0 W9`Jm.WW|"gzXNc_,FFl3wd6{6mC/S .W. W.WW bW.CFd,!!GxWCXV Wt_.*g} ~IX.WP ..."WC.wDXLWW,!G Dp;#,VXCC[.'XWXV ;X(.WWXQE'rXGeCWtWtWt:e *XWt.hX;WFW  I,!!WXNWXN0XNFXVWe{fD`WXWGd(.. uXN.& CWT W"gDF.|VX].mWWW(J]W *X:'F cCj22WG.>WdFX'EC5*,2W.K,!WW..dbF.V .mX 06`)3WWF. Et ,!!,!!XMWWW(+(X WWI'X-9.4,!!K/WWrDL _.DXD/WRX u.WX()TX Xh .= [>W}cN,!!.,!! Wu"gq~.f,!!WWWVmm'XjD>W.Ff.d0E . d X - W *+.^O.W|X`<^Wu *,!!WdhWWX;;,!!.WEXWWJ. G._5IFG'EX[c{WWXNX.^m,b W`o .`X1W,!!dGJWF7FX`.>Wmy.>X;XV =XVC.X|gED06/h60W,!!WXh ,!!GH.+| WWe !XM0J2.W W.,!!WXP"X ,!XCF%X WX2IoL,!!*.WrWVG+; G.;iEhX 'FG  X udTdee?p.wnWW.WXe&X ,X G,!!XC\ .FoXcWsX WXW0.D,!!W..>,!!MKf$!l"WWWX E:G .Xc,:X2WX2CDWv {rEj2.C,!!G23CR / !.G"eHeICX9XeWtX2WtX2C.,!!.O..GX:X#ۮ FWd X &,!!WW_nX`XDDWUaXV WDXW)(XNX WW\@,!!<`kDEDWC|CW ,!!#X`,!!X2KcsdeWDEeiGW|. ha b,!!WDbXM.Re)9 WE XMX,XD).CG9WGRD,!!W%.W{F%O% )4G-F.>#< --W`c\ d7.EX`.>Wn .>TwQWCF) XXVXX2z XWcdcQ.,!!emdcD7.W=FW;dPK `,!!E];.E.dWXX .@X XWRn&2,!!.WԎ..XWWXWJM&EWWWtR 1WGWW{_._X`EWs9 jt..X0 F4W}(X XNXN,!!W'ҙGWI,!!XOUu,!!F1WX2.cOd<cd<.> G P.X`XW&E.XWed9dd%ayWoW.,!!E5ZQW!ZR,!!,!!W,!!.ed9dc ".W}XW ! X"gdW.>DI-wLqF-x,!!WGDeXX WE_G.,!!m^/c6I.wW.csdcQWؗX["WpW .>.($$.7.7,!!i"WX`X`-X^.+DR,!!,!!W..ed9dd[.W.dX(.'a'.W +&w4.>.WtWLqXiX:,!!Je\. XiHXiXiXiTc]'Xid&"xdL~Xd[E,! ,!!WXNWXNH H@.DWXLCX`WDYK,!!2WV 4zcOd<ccpWCW!62fFGb.WX(eaX`GS1WWS4 !%WJoW WW*LeL=0GZd .X WWXCWzWX2W.d;e<GHEfXH?/yF!D0/3cOde>dW;GWWX1WWX WE`|,!!X w..>+X_WWtWGXi"p p-,!!*;.X_W$4zX[ݡXHGWF  XWEW.WWA_ _ ,!!.sW,!!tEXV|; N)a)f,!!F)iXZXUJ&..X WXN2wDF|D%&NF5W,!!CgWW *GW. qXQC5W,!! tFG. xdh XX?XX +.'6WDWX.; *T,!!E Wr..WW.H-C h(t.> ! OX'XD,!!-IX0W,!!nPWW a.XGc.U,!!.,!!F .GaEX0X.WGi.!c=c,!!G.X WWtNcZD[EW8-W8Fxc1DXN&EW"d:LdW. BQ.X  2.W*%,!!>WX$:D$mD6`,!!^MY [X(c;GX Fe#"XiW^X dW9WWWGWWW*d(Zd 1,!!,!!./~xXjGTGU; L~KMF.-wx.CȂW' eW}4 wXD,!!- *C,0,!!,!!D]},!!d'WWU&E cW^*#'X`FX)g~_ .$"W.:.} d X; (]X; *X,!!T2o MX W.;SSaWS3.GtXiWnX1WXWW.$KeYjOW,!!X WLX. D." 9,!!.X(XiDG! X.)#BWXND~4"  _pUDWe"gWg,XcXcjch(X *c<.WtMyG. *IX:X1X(XiX(90tWWN(.,!!X`IW W ~ ,!!X  F^oX N."CNX WFWXC*W  .WO%m,!!Wt.XHFF<W*ߏWWWWWWI,!! .X;D"tW% ,!! WsTYX]W!`gW,!!cW'-C hfIXC1F'"WcX W  ^emdYes<! 0XW=5,!! WALQW. |  BWGWX`WX`0,!!dGX& XWXWXWF9C?W5.'Cd/WX;W0D+dcd. 'XW,!!.XSXMWl.WD.WtEW›.PF$* GWW 3  .\KG yFDcC9KXX:Xb. 8DGe<G X2H*ǥW|((WwW.dTde3c;=X1@X."w! 40,!! WCF.DWWtX Mt;..$lW,!!WX1XCW'WXB .w#zWVpWW{.E yCh.B )Wt,!!`pe_d ce.X2}"X_Em.CO)Wp@GUW.L W"O.WXVz|8-l^rXfW[ ,!!YEXc. fW}X 8W)@,!!.vX(WWe,c EG &#P<X2jC1W#~.WedXWE.)X'eycD_XXW^,!!|]Q,!WWXx FWrRn0WCGW}"F%EE.>X-WCA.WXNXNIXљ9WW(,!!O) ɗ.CLWf=!DDn.1@XXWW cX2X,!!. *WF."W)&WDoXclX;i. JF*S*.X$,!!;3%oENKmEOWC WD.WtFgJ3KWDW,!!DE(.X9WXE\W}m.WXW.XWGWe%<OEWzX.X`WймWX28...١W,!! WWWW.X *W"$,!! GeCX_XD.i".5.'WemdYd*X CXiOc)W b.W! sm.G "W cCW^XiZZS"|'Q"'Q)*6)$.W} h Ӕ L*mWWEXW.W..H*e .XWH."DM'rX2X2X2VE{."gX%).AWsFNG:m.TX_Wl,!!X`X2XWl""WXMEW$K.  W.OWX`ɔdW.G~;XD,I .S. X..$X>> ,!!C0WW"gG*9hX1,!!..XX WX`55nWWs.>!DQTf.W}XXDIoX;.F,!!WXf,dWWWTWW  n5<^"FWWWGW8.WG/aX;W3H.?0XY>.WtW,!!,!!X0C)WX XWWN *..X;XC1WWFG,LKXg=@XXVWrG3X`X X WAcX d.GqSXDXD o#WE)W..?W@CwԪWcOde>d',!!@M&E.><'W.W.>W.jWr.X ,!!W.XTH XWX o.X2FuFv,!!P Wrk-1Ve0;m%.VT. ,!!WŚWO.G.>jDgy>nDdq_fhWWWG.XEHW}D3,!!.W dM .st X WX(qW d"yWXWWW_| .2XiW/A" XWWX2X2X^UWckW'xՐWbWX6DX_Mg,!!a[F.. [%y.wCX;WX;Q^XkHX.BWX WX10.X:CXCYE . W"m 8W Ef.C(W,!!,!!X`7X`+ .mW X`,!!R#,!! .3.W.,!! VE&W|. lWEԨC.@.vwFW,!!wMFm"g&EBE'.XX..f*@ $W|W}GFXDWX:X:X:F9X`y'zX2KjX WtXNW|.XH i WdGFDX,!!5c,!!WX WWt9L Wm,!!  .baCW.WLc 6^; 8 6T,X.W],!!W1kWs)&.;W.X'D LpX .X`,!!XDcOddcA GNXV2N QDW_,!!.0<FSUcm,!!C=W,!!J5i>.XNcOd<d_dG;F}//,!!. ,!WG.ͱ NxbXhEWE? WXWcXC!Y![0X:X`..'s1EbytCZH *NoWEWC.WsXSWX:X;c^z_XM"C%u$.W{H  +)C>J/GX ,!!.ǀ,!!XV.W.(.d3}W_XWVYqlxIf*GMCWW.CA\XfXLEEXWtXTTWWWh] & eZ.6WTg,!! "...if,!!X1"E X. <*5'WXg;JNyD:W 8W.,!!X.!WG}#f.4?FXWWW .W ,!WW.XD785E9XX WkX 0K p"X WWtRcdtc.WWW:ex*,!! :cXcjexWXWjWW..W> *,!!p,!!.Wz &E2X2^\ .-/.GGC(,!!DGWWW}WTENEY.{j߭dW,!!'$SWruWXWd.wEW.//.W-X`.Wv |.(,,!!X"X WW}N\ N67Eq X0&mW.WWXWTT,!!Ѓ e WW0-7:GCLWX .>.cBL^a5Iw^J,.%_mW oDi15-JvB"86_286Rb2vf EKIi?%LOK~ok0[<dU@]?+(|8mH =WIaX UkGleW Uwv?,!>VifoIxU<~+`BEZV ?nl>5\b u0o(Xbkv ,B.DXN (XWF#cWX,.>GzE.n.W^SX'.cWXWeV`X,!!doxX W(.D.{.dH,!!H0/FDX WWt2AXD^?+ KCES4bXV,!!=.F?.."?PmW,!!.wEWsWsWsTdX-WXW"G XfED.. RDdSCQV,!!XCW_XM^0,!!WW`F>W SFR.X1 .69.4{X.W.>.,!! cXWX9eF,! J.H W8WxV 1X& 1/8WzWWXW;caX' X)+.2{' ,!!X;,!!:C 5pnWXX^WO:,!WcMWm]X;d SEF,!!ed9cc =߯X Gp%GxX%".".W."WX2WX2Q(7)0W` X XXW~XXV^N..X(.,!!%LW.>F.Wt9W6W !R .)W_SY cz.X.Xi_Xe(GWsCbWd.W8WWXN"g,N`cH|.^|D< .'qWX ..*xX_PX2`).X' bZSDWWWTs. 6.9 RWX:m.d.kX'DwX WX WW *,!!YwCXiXiXiG&.X$^"mC@,!!]DXW{XDWh,!Adc..W=.X`$GcJW,!!PX W!,!!XWW(W/WWLd&W X^W_ )4G.FB0? Df.C7X`9u)"WKWWXW;{Ec_.WXNXNTXWsXdXWWf$!lO6GtWEY"$O30GXX1W@,!!,WD,!!GSW|c.l.Wq[DP&R`d XWWXIoX_q. .XWC.XW'U .,!!U'GĔĕYW W\,!!0,,0)X9X9 *-d&WDAedmQc_WsѮX_X(G =.GJ\WEVXV)E,!!Ee5R8G^ WW&E_w,!!XC XN.WWWT.?<CO.dw +W .D,!!cD6K/W*W^.0=**$4E X,!!W.WE W uX;X'; .WWpFHCc^W'C9\W.(+G8 .W}W.GV)IX JQT.#v2 d ,!!'Wcn.-aWW.; f=x>3,!!m(}68 GydX CeG.qhK$(tW\W!FbʓQWWۘ.WF9._1IX;XDDW|C,!! ."mGWWWTW,!!C21X8! !WXNfP.G?n?S+W#W ^XWXD.>)X(W .GĐdF2 *U, GWnVwq,!!DWW.56WFW"*FW>R.,!!GfT.w X& X ɮɱ"ڥYcWWWPZ5YXXh. uRW"d; W>yDR|W.WXF&vF.F...WW.7ZX X WtWWWV. | crXi.]W]W]WXNWXNT W9.W}WwD%,!.T .X  C{ {q:XVWWWCd!F|hWM;W-WF|X&ECX;e" XX`_XM8DW,!nu,!!W7BXGLm"gn,!!,*$Ws.>EPDW-dDG )4.Gd]G "..W ==XW]W} VWWc.^-r(?@O# VWt W/p R`dJ.ƙw.Ux Ed/|..XEMDdyWK/XD.XeDw.@D,!!.El? >WWLܳcHHerlW} X1W( .Cc W}W}W}90,XCXWXWXWGeWXVXh"WF_] XNWU.>WvW`4F) @,!!VDX1X1X1GEJv/W}".X;^1E,!!{XC%$4FWXH!n'oG.XWWWWGWEeX'Kh.>G _SEW|Ee FX_csddWWW:e L,!!.,!!,!!7UfW,!!GRcXd"e;,!!cqWF.>F,!!`g!.v( *_W qW - )4EXNWXNHW++XC[.}"W.#~ERXi.]iWJQ,!W.̤.V4X'݉%F,!! mX(. WeeNcdX;XDBcD'U1 lFGY mXWtXG4g0q'""Ow" WWFI.c9E. vW W.>'XW.XW.d8EX,!!WWW. !WX'.X(H'WWscUTψ#cdcAd XJ-,!!X1EQX`XTdR.W.>,!!.WXWWIoCC.n{XCW}mXZ,!!JSDzGr7yWWLX X X :eW. .W X WW0("WX WdjXWQqQr.X.(sخ2,!!^W,!!9O W=f,! LX;x.j:X`^,!!XW   (frX["ce.,!!.%<2.elD?Źu,!!WWC,!!&XC.WXi::X[ Km. HX`$ODX&.WFW.EWtXK*8@qE d (XW%* 'X_),!!Wt :WtGXD,!"Dc.8gWlH4X`emdYd bHX.XX`X,!!,!!..,!!4/,!!E`WWELWWWXX_Xz,!!_SWN.CcFCpWGWXi.WX .d.^ U* XG!X`Wt Y,!!W v2_,!! 'X0@BM,!!.XWXC..eC[‚Dv f . .,!!C.>X. eX` t_VCuWWtn 1IHWH Ws@W} CodC .X0zWy^ ..34 XD#~9VE WW.WsX;.WFW'f%&DXi'rA~XMd.X_XWWWD&cWD.WE,!!$O |C,!!,!!W cddLG.W.XCWtdTdec`J&E.w. Wt m . <|(.,!!W._.WG^WWWT X dX9XVc.^a..3+XM31,!! (W zTH} ..WX.W+QW.H-C h(t.W..XX`,!!WddC"49X;FLFMX9d X0X W}XR,!!pGXI aY"gW JXD  WXWDWm.  6GX(E%.;.>ޘFx .,!!_CyXR.-&WFWXUDkDL~B .EB X$CB`XBX^BW;=G(DP *XWwcXd"eMdaX[f)4o((XNd&m2PWlX9c.7X(X WtX0j.H.3EXXX(W0_LXWtGFAXN.X%ЧT.X. v . GHX:,!X/h$Y 6WtV]; /XDudX8GCW"X WXN9-CMc  ; XD.W!DXWVf',!!Wt.XUWu.X: `,!!" YWF, S FXDrUXiXU.XM..nWsX`WXNWH X' +Oe.n).oGt {LEW I"gWW4fX9X`c `|WGv2dBE..X)E.WCU* X2WDcOd<d_e'X`()X;WoFemdccqX,!!X1J" :zW -XN XXVX XE+AҙG5DFX_5&Ws0 ~DEG@ ' .>,!!XFFC`W,!W P.WXDG'W;>xWG* f M+X;W}W}W}G. jWDD"TWk.EC+.XEW#'csde$+7. V.e?Ш'"'}WX EZ~. GccX WX 5Z. WW#* X1WJG_XWcXcjc ~.XNf%2mDWF  *@.EW*%DJ.XM Q Id.WWQVSdWWX WWt0XMW"WXD?,!!.C S,!!X _D;WD=Wr,!!.X1 aY%!Wػ..>WFnWt^F4m.XDWWWTlW.CWEX" CWXn W^,!!J!Wt>d-ZAcOddd8z7@WXhW."|BV)WX X WN,!!.  ,!!nRWkX WHWWWv.XG&Wd.W :  Ws.GEaO`WwHWFOFW&M"|"=X }X FEMWWrXNWWtIo TWGk _GlW"+'DT,!!DW,!!WXNWXNQdF$e!7,!!X0GRU^`A_6 aX_7X Vet^ZiF,!!KFQWs!." WlhWtG <  XDXm.X E_WXBWW^ 'rX`en(7WWXD 2 5Xh1WX;..<X  ,X2X2X2J),!!X"LqL  G WX`˃WWX2XX2GXWd cd>=_JK EzWEGXX X2W0 C:,!!XNWXNV.W AdDWM."+WR_W 5Z^v.D(. NXDcX.> XDXDD.DeW"g^XMvW.WWWG"g!?WCUWfҶ,!!N X&GWWW5,!!E.i.>W,!!=Wt.WXV WWdD۵ W'v.eWWX2X X XN@ ,!!_2'.W&W.WtFBFP3WX2WNW(H"LX` W.WWWJMD>_ F+WMX >T .,!!G'.WqW|edW..,!WF)4)C,!!WD. EH@D)XDCۺWDW  E%WC^" !VC^:,!!XWddGX=~XZ.cEX?8?f. ...cx  |.WtFpW0W}.)"mE[W,!!,!!_rX<U !Cm.r{SEpW= .h.&dч  WE=W"Jr@E>WXWX'XCnWW}.I,!!GdGG] 1 nM b..=:XG.cd.wFWXIWd{XiW}M+0uW,!!8G.4vXXMdTde3dQ@ Wv (7X; 3D\`-T R/!X  WX<^}.XJ!W}WW}020,!!Eu!D$k&'CW} X D# mX(,!!~Z[,!!,!!f FU jCH&E#,!!WA'.oXWWXW.cXd"e` XOWd..,WXTXh>SGEfIEz. TWN.*].>W$x_.%W6XXD`.WdLEI]^M+ ^L EƱU  W.`*X;XiV"WWW2.DWtTW.ed9deeXFX,!!FWXDdc?dcGmWeeNdc@.X*A,!!TWd@BE,X;XW,!! XNXW0ZEXW3WX`XWWXW0P=DD Wtmc sdXWDX X;Xi'FX`.D).f=!l$E.W7nXl..?WWWWTEXWX@t(X;Xh.6"],!!WXi&WFi.CXS,!! oK$.X_X_C8FX X W55,!!W WXK$mW%1W,!! M 4ҙGVOX X WN$,!!cZ.X;G<<WWC )cC=F|.s\8,!!.$&WX;WX;0 @W !dDXNEX .XL.XW+V..!uWXCK,!!dX:.DW! !~m V 6JW X'BWX .XW;%W,!!&"[#y^X$!H(V,")!# b,J A),*K$ #-+! -%-"?* z'<.%&%*~%xR, x*#:( '(+Y*!&&0%9($"$aGT,}%.aZ pk'&M;)}%n+&!6)-+&I++|$~?c".!+B-$_G)ID' y(5,'*b)J-'4!\K%$ { O)<+/ b. G"b2 8,-V!A,*(M# *&Y#-6."$f$ )$'a.B$)#hdHw(=#\!#s%(!?|=a.# *&+ ),;$S"/kq(f!"-PeQ.N-?.% g&'# >, }*$# 5}&  .~' 0R,R""-$ ..,f-' B!'&+-.',~ (j+$&).K,N(<#c ,)-8 Ud R-9].-#'I&%&+ "x -Z)d$!P&` _%%$%#(,)+(N%"} ,,  *FCf%+P 0%P&-Z"#t %d(,oU- ,$p*G'&/+n4)-/Zy% !'*.1~$v-X+N. $J"I_!))),' Q,&D(5,h# &&2*+,*\"b-e)B&z`(rh%@#M*.G?*V'.3'U'.!s% &# b}+#$!@,g ." #1x.q4).("^A *ln$_G.D*4e3&g S"5+% M*>A$(&= &.U$7(.'$[+") !'"+*X)+!)*G%"S)&7&Hi m m.D8L'W#& %&Z % -+u \S).g#?.)'.J$=` $l{hs ,1)E*'+-)["p+A*z(*{-N "{_>(-= > R.xr'!d:,` #.6 MXDX(XDQG >G NGE?;D  XX X`WXiX2Ddz.XU.n]k8W~ZFGWW.[X:X;LWXLU1C 2We,d WXCGsWWWV..X X2WRW"2WW;Uu>'XX10VkXNXNXN90"VT-@,!!AX W.DdX#.>N^BFQ W*_WWW0eWW} !=7l79 ($.d=,!!cdce4SCQGOFH" *WW WtWtWtT.WW}W'GX\GX(DDX`W|..GT3*?,!!Fe%,!..Wr,!!X :cFX'XWT`nce W,!!B.CX6 YDS"g@E,!!WiOF W.,!!X`W.rX_IuXLcB {Fq7 4^E~XNXNWIo,!!W(}'.XNWXNG).d dldG?EG@WlWW GcsdeUK  CFCcQ\.޼KWX.wW X\Vm_z  .c,!!2x *W BH^,!!WGW *OX2X2X2CXW"W~ = XUWXi...OQXWdX#cVqX$ϥ.f@G XP.W^XWXTD7,!!WeeNcd XI/Z\pX$X9 ,!!XiW؄bWWXW .GmW;X+mXWE+XW}X0,p1."gWsWq m",!!9n9uCW%gDzXV1:F'W.,.R3XX2X2WAR^W[~XSDDL'XyiFWjWRY%GX%1,!!,!!Gf W;> 'dWWXWq.cWVWG[Wt7X;X(A0WDa.WiDF XW)[dTde eQ CWX`X`X`T'6,!!W^C'WWYH)5X2.WtyWt.a.u{WE#qJEW.Wџ.WtW`Z(W~d\G E]X1bE .WrW Z[X,XXhE.I ,FDm,!!3^ .WX,WXNXWXX`E"W¦N.dG*dGM((WUWXWQ&,!!z,!!.G.WDhGUu?.X)0&XXWA..W|D@X'Q ,!!W. =W WWF.DGWtDC!= 31h"g0  WOdCFs vWX2WX2JMc. X_.R .'W.We/..BA  ,!!X`t YJM W`KX`KWX;|,!!~E.XGD.jE"W4"gW .'XWWW,!!cY.XC Wdp^.X'd duc W  *eeNdeL WD]W(&E#,!!.WcOddd4XNX'4^~X_W oK.]Y]Y]Y ,!!..WsCi!?,!!...DY,!!W u<c. & (ADLK,!!xWXV."-.XD,!!. ,!!.X:%2FWNچ,!! R.B,!!WWu 0(2CzdcF.+GIDld cc"|'Q"'Q*6)D \X_,!!c.&,!!X1W|WHX ;]GwK!'R;Wt.C WX W24C,!!Demdd: qCuD",!!efi,!!FY.XV($V"QX WdWcXWWXWGd////Wd XXR7 ?"_DuT@IX5.wzXb,!!WsdX Wt$4 v.hX$+&!X` ].E"W.-VxWW.WF:{XWFlWXi.[,icJ"m.>WX&S((WXfW.DWWWGX"XW'W.Wtf WWi2X X;ySFE E! & mZ,!!X(+,!!X0L*X`XXiX 0GQXU +XMtX  a^.n"G,!!.X X XNIoW8 > ,!!.GW}WEU.wX;.WoWCH.XWX#C\WWGw_.W. .|R"Wr)XKW;CMX!$OWC@BE&cW ~..E Ey4 ,!!oW."JD>E<JI.e{XNX2W0,!!,!!DX_EL h .X#* EA,!!DOWDOw5mWX,!!Ofo,!!&r;C 7=*GG,.W!W,!!" )4GdXB.DxW(s_mTXC+ W24Xm"XUWWc swxWn8XeeNddm.W|XV,!!f$.HW DodR-e_XX`X0. W}CF XDW.W WcI.Z.GLe6W YeoRTXM W} .W..2WX1 Wy.X(%u,!!,XM>dcdcdF.VCXV.XX:WX E^`#^P,!!+If4C ,!!cOd<d_d yXMXWWX(0+"...W FNO M..d d"W. DC(WG8. 1Ws 6A.MEsXXNWWIoXCWX;WQm.p68DFWsX:WC d^dE.E,!! c.>WD'rBwXX X;GXW,!!dTdddr . MXBcXdXD W_c~WrSG> _ aGW}W}W}[zX1X WX20.weRWX0 1C,!!2Xh̏̐XXI4"EFXWD<^.WXi.Ք 1O՘.X\e*XE,!!Vvd!XCGWF$0XMDD,!!J X2WX2GXUWd dKc8.XEW WDDWXU=.DiWF V.X% WyS".W~:s}i&"CX2.E,!!.WWOO]cSC*"].C,!!.[ *.>XV=W,!!^F^FXN" 8 ;WX#Wccc WuGGgXDjWtԱԴ.'BZVb#rG$Wa~We[XWtWtWtJX_."gX_G,!!CdZ[X(W WmDXNXW,!!"W !0X; Ee% Xkd+N`cKX2; &ܳΡWNF...`W"jcOd<cd  KTxEY.\a.)X.3rWCT8 W .i.WXCa.,!!CC9X XWW55,!! X X X V,!!...FF ^=F WC ,!JSeADGhWtW..  TW46X WtXR#WtX :,!!X_,!!EG. GDWDU K`.CpFcWW^ W,) & XX1W.DN.mL,?WWWWTX2Wr )4GͻX(.)<:'f$!l=Wp,.!f.,!!CW_*FW֔'.9 #ϴ _yC .WW^WsWWWOW 7 . &m -![W}W}X2-K.o) |.>XWa1G^%2$O GXX .C"XC.Wu-^MWW} I.FXdTde d}7(CdX WXN0ԲFԷW.,!<DU.y WW.>F WuW W=eEIY< .FdWWFWmX`,"n%X.,!!XW;Uu*T.>W&DKde~G ,!!,!! "WjdCC,!!XWWXi0WW|D4DWe7d; &.WW,!!(S -W,!!,!!W,!!Wt+.,!!.>X+ WX"X,!!,XD " X'dTdec/0,!!X^'dAK .^sWD YWXWWCSC>$...^EH FW.FeW.Xil.!WX2".C.~5$W^X1csdcWX/W XC&WX2,!!gd ,!!W/d-B.L~iY[F"GXWtX0;XAX X?X 5X Yvc5 'XWKa ed9cc<c$XWdX`&..0CXNR7wGXFWWZ)m.,!!WtcuWtWX X2&/GW0,!D|.,!!Wt <'WXWWWQ_rW..VX V_/dEW L?@"C5WXN,!!XX X2X W. *WsWsWsGWWFT:X'.WW.v XR|.g>.X;EW( $W~B@WWE,. E. W 6D.`ek.W <.XW"X,!!E qEXWjWc.aE,!!'X  G0Xe WCX%.FcdcXiV$SLD[.q/0 nXMXDBkD`nC2,!!Q,!!. $Ld^DW9We`F,!!).W.d,!!c} `WpdE.W`.78,!!.6wd9,!!bCW rGHDjX5X;G,!Xi"Wt ,!!Xa,!!.D;%EL A>)K"r.CWX WX;RX(_,!!XCpXDW}"gCy(..WËX WXNS0;X2W}X2GWXC.s,W,!!U0Er.W\gW,!!^?,!!e .XWd,!!I= +WXMW.ȬX.F'W *WX;WGVEjW VH,!!^WX`emdcmmW,!!Wt.XWXNXNWs?`.)4Aq.C _ .>,!!.'&DW.#wE8BW<.XVXXdW,!.~"mNPXV JLWXD 2ExG),!!X;FW.XXWWWF9ER,!!ZXcZHFXC,!!U.XDW3.&EW,!!Ued9ccVGp"g,.``WX#fX WXNR )*.w e  e9,!!xXW,!!,*G.GX" XY.WW3h.XGW'd|.Ç.68W1W TLX`E2YFHCXgWC.W'.FP.uF[,!!XyCC ZF65WXWX'.XM-#,!!1NixX;Nl V]Wr FyXWX` X-`X`Wj .W.CC.H!G,!X WWW^S.Tu'q,C,!!;.T;67WFnk.WC$! ' ,!!X`.WX(WWdTde cWWWWW90W}cD /بة,I eX@B"X( d ImW{,!!WeX X WRXW WXVX,!!$.Lc G|W...,!!XDXW.X1.X X W2D,!!F\..o.X WWDW..ZcsddGcOde>eчmXP3E"EW:X4,!!2DQX;F"X6,!!9RU9W.JEWOX`GK,!!WW$xcPX_&G"WFj7]GW!WJoT&;..c*C,!!.5.(^ O XWW&WSXCS" n"D9X`IDW ӶK/XDc>. W.>F=,!!,!!XWW}X9XGW"g K$4mRWWW0FN.W.hQ|WFjFW`Xa,!!X r,!!X7d^'Y.'`0X]E X6X_XXVEX XNX Q[W2%GAXi2WWBX1CX2WX2JM.>MW>WX;X1F txkW*)DIyUXM!,!!e'eK#"'C.>tWCW}7b..X}.W|,!!W,FcX2.`i./W`jW 62,!!H,!! $O:BCWr+ 7Xh++-X XBoG4<.WGcB M"g$-,!!WWWWT,!!4.@W>V)VWW,!!CrXW^"g.FS..Mm..Ae+ ; ǔCJWWXW ..XXXV_O...',!!WDF{YVyABXNCH@d'WXh=GWs N.X FWtWWtE W?`)DqXXNXNXNTOWmXW WW{"X)\'XL'XM~, 1XaG- .C.LB,!!GWWG'5.CT..4XWWW.X..w$^rEX(vX.WWX; WW,!!PW!'XWXD?.X$WZZF]" dX,3$o/ *AVCEW"g >O|;=WC nfW߀W.߅G#G:WXe:G%XX.WcWWFG6sGBTR9sR.cXd"dWf)D@3WWX1PWGuW'8snCed=dWWmHX_. X\CWecWsW4_D.Wcdd5F|D_VXD XNCqW^RmXiC.,XXWtXJM ?. ,!!d :&GEd d#dDEcddGDWWWQC.W.eeNdd2dW2hW\XHXNd,X;WkX;DZC 2X*TWtX0?].W'.WG"X1.,!!+ύXiyP7GWCt.,!! 7'WXX`WXNX26`WEWX',!!WRWWWWF9X["X:cWtm.WWWIqj<XC.{ ,dkcD(cEX XNXNT}dcWPcDX;.Wp,!!WGFewD"E.W,!!|B>,!!v3WWWC.W},!!W .MWWX;WX;CD:XiW/m,!!DWX2W2DL"WX <t$XWX(@XDAWnXKD [-W.&X;Dt.XGjX6WWs~TT.Wd(fXM Ddf.XXX:evWw WlW..XWCe . )4WX ,!!E/.,!!YW.WX2X2IEX00.%umWQW XWX_*TчWm.]XLW ,!!Xi^",N dUuN3WN:,!!z..F#XNu..W,!!..F]HWXNW0X2X2X2T)WWD2b. EX(X;WtBX,!UDCWX2C\WC>. *K 1]P!k's_WsW.,!!X.DWD lWs.>WXbG. ,F#W..p  )9E .eeNccWX; cWX2WE.D_X WXNWWS.^@X2X2X2PZXXX90W.dW,!!F); )wJxEWX_WGX  ;X WG W@X0 . WX;WVg%2zC  cd)e-XF.WB.XCH.0 ! !~F)WW 7,!! |),!2 6,!!] W)Gn%.%#$ ._m.*GLmW|WX W0X\^bGP.?W`.X_P0]X;vW2. Wh<DX WtO,P#.WWWX XWX WF"gXV[.XMX'X2Z[XxW.~  'X XNW55W F W ,!! .X X WIo. ,!!c>ClX ez*pdn.WD" .K cBWW *W *WX.WXW *OjWeXDE,!!W},!!dWWCEWXN^Wt{U1dOWWKX,!!XW X(d .WX 80c. 4äWCbW 5,!!7GXHc o<XX PL X`E E.W|,!!WW~RW eeNdeDeuHMZFٓG$b)_ WG{^.E !WWW90Gp %.WcOd<cd;.? *Wa-<WeWXF`.,!!CXX1ccdpABXW5WX,!!UX1JXdJX2XWX2G.>W-XX1,!!XiG:?EX"X.&" [X^LWӇ-sG.*,^`PWD.WEEkFX VzeCW.X_.XG7W.. r,!!Y.FETcv.Z'WW{(T.W.cWp03F|&En\ W DF3R@0,!!G$4..W}X; ^^ XN.W.,!!J/0XW;W'*% ,t0' 3I-&' #..8!O1 )%A^8'& 8@ͤ'0;+P"RF(L6N *h&_"z-@r:AԺKG,Am h"96rIPrAr׍A/Y*hY*hO66A*hKGY"r6"z;:A'r݄,8x+*h.,  PAA^6"zBYr',/"z"zPKG"zDm Uz6*h4m 6,?m hx2qKGrBm KGr<KG"zk  '9 Y,!::"z hm" P:k,90"AJP,P"z16"z1,$@"z h>Y*hx hCAR,P /"z"Ag: h :A?*hEK:*ht:Ax hPrj" h_KG̩16,+16,`YrMe,>6 hUKG*hÞ"z*hP,C8reAb" h/1+Y*hTY (J"["z6*h;" h0\"16 @m h16Fmm hY O| Z-"z˫P *  hP)xr}x,VKG ,L :rġY x"zKx*hYjr16r/s*hPAܔ166 0I16/tx' hǠAQ hJe*hg16|t#-QaB\# h?p9%p="!< A FQ*9. UY iY N*s u! n&YN =7HXc(̔, <*<F4"v;) yQ+*OOÐ!n8ـ& E 9!!*y6B*a*(̳ ,B8_w.!&u<" 9%U 1"!- *Bf&]&@>i#,$%"&_/c'&P~4>&Txj*+LU;qVjE*9&+u ,i<݇&Ų$rwNfH"k^'=+1{Q^$%X%w#yQ!X!1F  );/"9l&C>_ "?x$^Ga*AQ$FzKQ.:).-9:3S+tH$}$h=(dU,In$}4)-MϾ,SؤI#(+'l ]%y'JhB%:̡&*MJf ; ;$B(YI3*!v,$$ ʘ Cq!J&I@!YQ )"&$I"my 1l,L+ M(CW65U)C7-s&d#KF(XF#rX+t'/'15%Z'B~ ?#"J*ռ L&;/\)4|"JWfZM.k')*!) $fZ"Pۻ*+ )s $|,-nCW'A  A'S  n!Mqw%n x  еI(n*!)'Lz,; [EY+k)j@!9"} oE3|$,XHEV.% m =8 V"|4s $(S >-&+s',+D n "uR**[+V/(y,#9g!> %U( *z*;k)kT"i$ c, %mW *<+.Tg)F)R#8&"v 6=z )t.'S@+k##%jd'c((W,/<>%8sz$ X؀!~: %Ӵ'@X%TMléo )!R .1M,.)x*-< P-A,.:&:HY#b,S-WG,0{Pq%Dv Q&D]zB#Ѝ.Er,NL;(0 `#3)'1V%4Z%9m-I. W!ŧf:D$|U"+%Y" yi=.-m# m!^e'9i"2-v,fYi#C&J6Tq^WX :'X  /WWW :WWW :'WWX :W WW :W kWX :WWXD :WX W} :WrWX :WX:X_ :qrWWW :FWXLXK :W=X Wt :}WX W :cW WW :WWW :WWW :7WWX :W=WXD :uWWW :WWW :pWWX_ :W_WX/ :1WFWX :?W^|WW :X  X1W : WXW| :W_XKWq :oW 'XW :WyWW :W X X :1WlX Wt :WWW :$WWW/FW^bXW : WWW :WqXiW :;WWXW :WWW :fW+WX :xW+WW :W}WX :xW GWW :WWW :WX XW :nW(WW :GW^SWW :sW)WW :WWW :W \WW :MWX0W :m*W`#XWX :X ^bWW :p-WWsW :n)W X W :W%W}X( :WWW :lWX:X' :WPWW :y,W X W} :W WW :`W XX :WtX`W :WX W :WX X :yWWX :WWW :W`WW :#W`GWWr :qXX  WW :qWX`W :WWX :YW^pWX= :jWWW :WWX` : WWXW :x-WZWX :kW {WW :"WWsW :{-W`WW :W`WX :WWW :WX:W :WX W :W WX :tPW`AXX5 :yVWLWX :w8W`ZWX[ :|UWWW :#W mX(W :g[W WX2 :W]W{X& :WWWm :WZWW :W`WW :TW`AX@Xd :6WuXWq ::WX X :WvX0W :vUWYX X` :W=WW :oWWXW :W`WX :ibWWWm :W WW :W 3X W :W oXNW :W WX :WWW :W^pWW :WXNW :xWX XW :jWWW :>W WX :@W WW :wgW_WW{ :whWKWsW :WZWW :kWX1W :zbWX0X :WWXW :jWXMW :5WWX :W7X'X :gWWW :DW]WX :WXiX :RWWW :wW^bWXS :SW@X Wt : W xX W :<W XCXU :sWpX1W :WXMW :IWWX+ :WqX X2 :W WW :rWWzW :uWPX:W :W XBXT :qWmWX? :WWWW :WX W :FWX XN :\WWsW :WX"Wm :+WWX :WX X :f(WXNW :yWX;X :WmXXD :ZWXWX :W WW :"WX Wt :gWWW :WZWW :WIWG :jW_WW :x WWW :W XiW :dWWXW :hWOWW :hWWX :`W^bWW :m?W`XFW :WX X` :~WiWW :k/WX'W :fW WW :n:WzWX1/%WXAW :uWXiW :[W8WXW :yW`X-Wx :2W`ZWW :WX1W :6WX X` :lW WW :W4WX :WWXL :WWW :\WWW :WWW :W%WW :yWWW :nWWX :wW !WX1 :lW JXNW :qW^pX+W :2WnWW :W WX_ :|>W2X_W :WWW :nW WW :WXiW :W vXgW :W0WX :W.WW :W5X W} :1WXW| :WXDXi :W"XiW :W`ZWW :WWX :jcW`WX :=W-WW :WTWXC :}eW2WX :xWXBW/7W WW :muWWW :kYW WX- :kZWWXW :&W^SWX^ :,W`AWpW :WXiW :WWW :lWwX Wt :WWX(/;W^pX-W :JW_X0XU :WWXW : WWX :wKWWW :WXW :bWWX :WWXi :WX_W :2W {WsW :lW`ZWW :{WEWW} :W`AWX :WWW :W1WW :WgXNW} :nWXXV :hWX XW :W aWXC :f W^bWXf :WX1XV :WWW :WbWW :WWWX :{W WX :OWX W :WNX Wt :(WWX :W'WW :>W WX :W^bWX, :W^pWW :rW`X,Ww :=WzWvW :XWWX :W\WX(/*WWX :W`AWwW :ZWFXAW :WXDW :JW^pWX? :W WW :W^bXFW :W^XDW :WX XV :AWWW :WXX :WWW :vWX/Wz :WX XN :kWWW :aW WW :W^ W|W :X WX: :W `WXW :WXNW :yWWW :rWWX9 :|#W_WXI :OWWW :WWW :uW WW :0W#WW :zWWW :WXXT :jWX X; :WX X` :W^WX :bW XWW :{!W WW/"vWiX^W :WX X2 :WrWXW :"WX W :WWW :WX W| :WWX :WX XN :WWW :#W WW :WSWW :WX XN :W wX X1 :W5WW :W {WW :$W WW :{[WWW :WWW :WWW :WWW :+WWW :ksWXLX^ :ktWWW :tWjWX; :WWW :W PX W :WX0X :WoWW :rhW_WWq :W^bX  :;WWXW :*WWW :x[WgWXW :WWW :sWWzW :%WWW :&WX Wt :qW WW :WWWr :6WWX :JWuWW :W^|WX :X WW :CW X W :UW >WX :WWXM :WX_XL :WHWXW/! W_WqXT :W_WX? :WWW :"W qXX9 :W WsW :mWWXW :WWX(/fW%X XW :yW WX :_WWW :HW WW :WnXiW :WWX: :W^bX3W :o!W^WW :xW kWX :hWWXC :{W`AWW :BW+X`W :=WX1XV :W`X;X` :{X WXW :WOWsX :W`WW :X WsW :W X Wt :W~XMW :WX(XV :oWWW :}W WXW :t#WHWX] :FWWX( :WWX :W XX :wW^bWX@ :WX W :VWWX :kWX W :z WXWW :nW_WX :k"W WsW :p5WuWWq :WWW :W`AXX. :jW WW :jWWW :jW WsW :W WW :f@W LWX1/ WWXW :W WsW :WWX :eWWW :xW WW :WWW :WWX :WlWX(/W XNW :fW ~WsW :W WW :WX'X :W\WW :l>W W}X( :WPWW :W WW :WWX :WNX XU :W WW :WW}W :WX`W :#WgXW :pW^W|X :-WWX1 :W WsW :sWWX :WWW :W-X2XW :W WX :lWXDW :W uXCW :W WW :}W * :W^X]W :W9XUW :WWW :vW`AXGWm :9WWX/W^SXW :W WX :W XBWq :W GWXW :vYWXRW :W!WsW :W]XLW :'WIWX :WWXV :wW9X:X_ :WVWW :[WVXUX^ :5W>WW :DW%XLW :WWX :)W XX :WX:X' :kW bWX :WWX :nW`ZWX] :W gWX :jW.X XN :3WXiW :fWWX :vW`AXX= :WPWX' :}W`XNW :1X 0X W :iW X W :W^bXZX :vW^|X`W :uW jWW :WEWXW :ZW XgW :/WWW :fW WW :SWWX :s!WWsW :8WWW :WWXi :W WX :qW_^WXU :wWXW :WX Wt :uW=WXC : WsX XV :dW_WW :WFWX] :WW WW :gBW_WW :WxX XN :W HWW :WWW : WXX] :W kWW :WX Wt :WWW :n>WWW :wWIWW :~W_WW :v7W mX`W :WX XW :WWW :mWWW :WeX W} :W\WX( :sWWWr :WXMWr :W-WX :W ]XiW :WqWXC :*WnWX :WWW :rWWXW ::WX:W :WX XN :W}X X :W$XW :WWW :WeX X; :#W^XWW :cX `ZX&XK :W WW :6W^bWXY :sW^b  :m{WWX :+W`ZX_XC :,W~WW :W WX :W`ZWXG :WX Ws :WWX :WWrW :WX Wt :pWWsX :WWW :)WDWW :0W8X_W :s WWW :grW X Wt :lwW WX :W`AXFWl :fW#WX :xWX W :-W WW :yWXLW :WnWW :WXVXC :W WW :WWW :VWWX+ :pW^WW :+X  'WXC :qWWXV :oW [WW :rWWW :WXX/ :>W WW :WX(W :WXKW :OWXNW ::W\WW :WWW :}WlX Wt :LWWXW :eWWW :WnX W :WXXV :WWX= :W`ZX:X :WX X: :WW HWW :WX W :W^X'XU :WWX :W2X1Ws :W^WW :W`#X`X( :X ~XAW :WWrW :y&WX'X :WWXW :[WxWXW :WWxW :sW WW :xW WX :WX XW :#W WW :p'W.X'X :u4WWW :nWX X2 :W -WX :h+W FX2XW :mW`AWW :WX Wt :WuX XW :W_WXA :nSW`AWX :WQWX :WWW :WWW :WxX W/7W`XX\ :WX_W : WX W :W_X-W :w0WX XW :nW"X_W :NWX XW :kWWX :u2WmX W :nWX(Xi :WWX :fW_X&X :WWsW :s^WX Wt :|WX X :kWWXW/WX W : WWW :}HW nX(XV :rmWX W :LW^X&W :W_WX^ :WWW :W>WW :W WW :QWCWX :kwWWW| :wWWW :jWqWW :WXUW :WWXV :9WXiW :gWWW :W`ZXUW{ :W_WW :WnXiW :W]XDXM :kW^WW :j WX-XP :WWXW :W0X X2/CTW^LWW :t~W 8WW} :wfWX XW :vWWX :z_WXX9 :lWrWW :WK P :W`ZWX :WX6Wu :WQX W :WWX :j W WW :|WoWW :WXcW :fW^X(X :X WW :WWW :W^X.X :WWW :W^X;XD :qWWW :oWXiW :k)WXBW :W{WX :zWX W :RWsX XW :W tWX^ :WqWX :W WW :uW &X Wt :ZW^LWX? :WWX :W`AWxW :WfWW :1W`AWW :p<WWX :-WX XW :iWLWW :W`AWW :|W WWs :v-W ,WXW :gW nWXW :XW^WW :X W|W :aWWX( :rW X Wt :jWWxW :W 6WW :WWrX^ :^WWrW :bW WW :W sWX :{WJWW :kWWX /(W WW :lWWX& :~IWWW :WWW :WsWW :?WX W/WgWW :~WkX W} :~WXX: :nWWX :x:W`XGW :j[WqWW :sWHWW :h;WWqX] :WIWsX :W^4WX :W`LWW :3W HWW :W WW :"WXVW :[WR | R : W[WX :W7WXW :W`ZWX :vW1WXW :(WMXMXV :W[WX3 :'W WW :EWXiW :qW_WW :iqW]WX :wWWW : WpWW :4WX W :kW OWW :AW/X W :hWXiX :WWW :WWsW :7WXNXh :W WW/ԊW7WW :pW WW :W]XgW :]W_WX ::WXW| :mW@X W :nWWW :WWW :QWWsW :@W^LX-W :WoWX :jWaXW :WX XN :W WW :vW WsX :W&X1X :WWX :^WWW :cWX(X1 :WfWW :mWWW :W dXDXi :PW_WW :#W^bWnX :W*WX :W X XW :gWXNX; :hWX;X( :TW_WW :WWW :W 8XDW :xW^WX :IW XNW :WWX :}WWW :"W^b Y :YW&XNXD :iWX'X :WWXD :fWWW :yW`ZXW :WWW :W_^WXh :|WWW :}WWX :v=WWW :}W X W :zWWsW :<WXXT :sW8X W :W]WX9 :rWWW :WWW :9W`AWW :{W$WX :W`ZXIW : W`ZWW :WgWW :nWNWW :lW_oWX :WWX :oWWW :!WX | :WWW :"W^bWWm :W_^WW{ :nqWX XN :wWWW :WWX :W_XNX2 :X  ]WXW :lTWW|W :eW`#XNX :eX :WW :xOWyg :fsfl1g :fkfmOg :fqft@5g :fnfr2g :fpfo1Xt([F.h!U*(B~-+{ %КU>#.O(>ZM*O* .[1 `+[ȇ& k)=Ff-8$~3}5wG)Y1pF,$hf$Al]'-9,0 9qY#C,&,D+,B1Q$wP-88Z .O"q#=  ,q1n(MZb$ &y"+-w+5@Wz-M6@c+0 :B\i [(2T.l(PEZ{ڪ 5.C<+@~(֜vSJK & lGYj#L"i*z$#+s!@#![/"c^4&"h!Җ"aO%i7!% k&Kd;O\&:O= p1Ҥ]X9Lu D/Q [\ l3 5nJ'v Οdm_YEP+.( .l.M(P a7WkgNgwa8Wkˬ*M%Gx\#(  I " G ~&1h, )V",#,S.H'0) ),< %y )/%=%K֭Q<AKv F#"+h$@W'"5ҌN%'YWk7R!;h| T. (T2, L,^': R%!)0 e-/+@<  + Xש=  T3O= *+1Ҁkw,~K& '[W( -O#vv]Ek,%<W F!/! zDQ1U.}E5 sU#I#P"vΖ*ssN#  9$h)+ cF-'L;(T)aS,E-,V:?.$1""&!&$"%F%D*F"!Q,=-*Ď .7*\W Ab!C(~<!6n)k$)Ow(r$.ΰ!`,*;2U*&M\T6c"A2#+$*TZ B*R1 @cT!׫, !<K@8 l "Qn$8ِ+!p''B[$j w%p0 %y$H"7L$܎x"?("*IԞ(N)8D'.*k-SDSz'Ra%wG$QY"֝-s.5)vu"UX"#S&M.1,, +<M^,B"f5Wt i\*a""U.W(Ө ET'2R.FG#S՜CDr#w.C&"8$%ַ%%0*c(;,&CK 4N-9H$ugl 3o'.-((27>=*$bBI ҥ &<-7 ,rF)f <3d !(d43&G"#T&*<G-FE$  Xh, $}"L!"#N@#pD-bR-hl'k#y W%ђd#.  n&$k?P5&q$<'8$+bJ.( !Nc!'9u?AF#(9<"JJUBiƤ'߉$֙.f֙,j ֙(l֙*j֙ %֙U֙r֙ ֙,֙+R֙:H ֙$֙'p֙!cӳ֙!֙-֙,֙H!֙ &֙ Lb֙=֙C֙/֙'@k֙֙R֙W֙#֙$f֙u" !+O>.('l=KjZZ 6Z)\WO{O{Z $O{#U:O{#aZ'ZYO{Z)\V!Z o4*Z o6O{O{NzO{jT1O{O{,b#4Z!N=O{Z#a.O{#U;Z({ZLO{NUZ'IO{YvZ({߼O{!NJeZ,bڱO{Ҏ bT.pZGXbN$T8cq*#A) R'RK.^>L.$/XOI-\JA!eD-  !o"  #%HG~yPM/u>Wwx-)v*QL-H+u,J(A+!h<<(@sӱ&'H-yO&Vb  *5|( L"$x=J!:(|$%Ui کQ=$6Ю0at*-iM*._'}s%  +^V6"`3<*19Y&%3(wԭ)Ν ;0@"58A &/\)Cxc%NՊ?aZZ(Dw~8 eV\ '$  F+*Zoh,|Gp&!t&&TYS+t %!_?nT])| <!j #"#.D;>$)h@+6).]-?<M'($7+%Q<g+.;)_&".;@ 1+ 6k%IHI%. &"l+(I.;XI.;ΔMEI%+MƬ&" y@% UQöI(|%T@<5&"@<)/Q<-.; CI(@=9&"(* I&@Q.;E !( M Q L&"M.;S Q<SB@ߝ+("Q<(<I.;}+ Q;)+(&" BG@3Mϓ%iM M%P3h&" W, M5G" )  #c,+;>FO4I@#I+/i>W"l]CFM+&<"6%%%7(&I]CA.&-(WQ % )X*l.ZjK~%Q(%x,LcT (r 6I#=.6'/D(8-, YK.i9(?g-9$z@rQ% ?$-d(O)>[),2*6j*H $%C n-NT&&=  K &](+hY r,2 {B}*D".!uC*s P+&W+v#ָ+u)"P*^w'(\+"vN$}2!&C,t&j*14c:)  *ϖ&Y !*;B$ mѓ&$$$^CB!R&*,I;$?.-\Y i> `!UW"? &3YS/ґ,B$h$%U, ( 0-c9`%&>"\%pQ%Q,% 'l?"J *`!>S>)Q7*$ &'>K*M!)klM/ dh%Ʈ%w$P&!#G(- -cj( 6 %0&0 l&Dq$2( f&n1a# "kC!nX dž(++W!#+ '' 6%:"E $? *a, H*< ̫(db.'*qV!@(S9wpY%S**Gq'SD<%'$j'c?-α$ .8Da% WkWkWkWk.ɦ N><'&))3$%4* 6L 9K%.v-9M'&~pL6g7$h  ,X@w6(^N#.!$ !0J(h͛2.#>83X"(oQ %|+T2$ @ɴOIǙ%%SG8dy*8!?E#"H-7AUv WXW_~LLkw2  GwwlWvX0 o Q Jw E UW& !WX1XW ___uwXXfuX;reHWdoW< 4 -62;Ihw-WԌ 1KW yd L׫)XweXW|XB/~0/+-*(,.)_)_"_+_'_,_$_%_(_*_#_&LIRJOTPMKQSHNaa@@@ZZZ GKo<LX`W WwiL<_M֚ YWW}؀#XU wVwWWnZKX[w fww)wXh Sx^p|WKvqwb>w YwwX(!"gwO > wtX(xwfx^#wWKW   LL 9$oo _^_LmMcX WXCWtWWWwUWWW6aWt2 *6Wt Mw LwٷM wD[]WKWtwwK KKKK KKK "!]]]]]]]]  sn] NX;0WX` , e @z!"WW_=UMW^nX2XWW}Ww3%XDXh2w ;wX9Ww FZhRf_b L!@AB#XXvW}WXa)Mmt cXNXWwp1M_wWYwwX:Ww}ԍ%  wwX`"wwXWXiX:`Uً wԾWSwWwGeWXwwX1WLմW7WWsXVL  yONwwXBggggggggggggggggggggggggggggggggggggmglo]qV`bpvhY[c_adkZrXejT\tinSuWU^fs    !  COMGEIHLJKFBND "!cvchcxcgcmctcocccjc`cic]c_ckc\crcqcnclcfcwcbcacucYcpcscdc[c^cecZjib4b0b3b1b/b2HHHHHHHHHHHHHHHHHHHHHH E^/ +*Wwg [ ,X2kQw ) *wO: ֈWsB\jWtww"Wtm   } lw_cX&X5eR"KX8X 8wwwX:XDWXMWe X:WX WWWX@W_V"_@ jp "wlwLyX V7Xw0 : ; <WXWXWֽvK%>H&xXd_____________________________a!a"aba[aZa\a]aYa_a`aaa^ABACZZ$#" $! %# A|AyA{AzZZZZZZZZZZwح* d9 {Q_,ww ;ww rwNwW*wXw{v1ט37WWww wG]wHL $wvZZZZZZZZZZ~gFgIgEgHgGaNaOaP~ioaqhs_\buZt^rzX|mwjvegxd[{yp]lkY`}Wncf___________aSaTA`AgAaAjAkAdAcAiAeAbAfAhAlA_a_0bWW WX%  XiWWwX TW1_\Kw^wXDX(_GWX9W ٱmZLK  V  wK}w EXNScLHK]X%w`wU-wX1X:  a ^X7wwhWwwwWw/8oKt׍3 3wKX!X;L5~p"  '}Ԧww MXWWX` +0W B WXiw1 wx0 $WX3  ^X M>>? CfokIPQXW.#wwKaLԑkwKw$ XL cwXIwpWw_a mLu X;ժw#wwWWWp)N w +5   *^ /O֜WtE3-ww1@wwXW؃+ [6d~L D W~a`wfgNW}-^r2t/(]^i`_^^F_9^`_^_$]__` i)wjsw! s wv  cPHXPPԈW$W hwXVXWX:Ul_j_cLQd wNW2^2M,#من d&| GX1X:Z ~ig֗W֘wW=W]www|__   ,  I ]]]]]def^^ WXWWwc^x JX@X K`$^_i w ~ W ,2  e :wwFG_{X9  ww}U#I3wA{xWO_XDFW cFdwK( +=Lwwԯs W_?R #dop@ؾy_X LW wX'X0 WtWXDwwװ s 3 G\ ! $Mv 8w w__k(WWXlJw  uXww X;X([WCQ w \:O- ww xweeeeeeeeeee~eeee\\\\XPwLFxWI( 6MWWWs VWwLaRU6am`_\icngtrpesbkqh^u]jfoldq ww TRPX<wWLKw6W^7V e `_t^C H 9{KEX:j LhwPwgXKRw sH2;G wXW;x w_P_D v_`ME  "G #;r_ nKC 6QWI_ eq@ 3N qw_w @w |C } s ?R `uWWXi  $^wGwhWX2pL q H 8f^":D1 ~מv U;WtwXKwXM))'5QWWXiR԰WaKiw N5)gWw?AW /?wZWv@$wLewWH DY0[wWww׀wWwWX:W:Mf ! b`'X252 Wwx 6_(_'1_XLWwwWtXNX2M8Www deqr7W Xi X2 S W ~WWX(bffffffwwZw  W֊XDXhWXTX8?\ j՝8XN__zM ٯxSWMU3=!@ww D v12w]G WXFXwW XO;w{WsX_X XU^XU<wx Zw0$P]_0W bDXHXb"kWw+ccccccccccccccccccbrbswL؈X؉ UwXN)W u <mwx  w?[([@[2[)[3[+[7[5[1[:[/[6[>[,[8[*[B[A[4[-[9[0[?[<[;[.[=Sbl]ropaZjcTVWi_hXdUknqe^Pm`fgYQ\s[Rl  N  X2w_w4w9XU<sX(w.4X`WWLXW9A+w WX^Wu[p,+ wK` &^wM ]z6WX`7@__3`KLWX_WXhf^>LKV_i_{cM-wWww wX_WtX`X  Խx]pI ^=WX`XF'_0wX 1FBsBB;BBBBBB}AB0BkBlB)BBBJBfAABBB4AABBmB BBBB BBBBBBBAB'BrBBBB8BBzAAB`B&BEBB!ABB3AB_BBBAAB<BBRABBBAAB BABHBwBFBBAByBuBBBB+ABKBAABoBB{ABBBBBBBBBBUABYBgBBTB B>ABBBBjABVBAB AB^B|B$BZAAB5BBxBPB/BABBBdBWAABBBAAAB2BAB BIB9ABMBLAABaB=BeABhBABB\ABQBtBBBBB(BBcAAABB:BqBBBiAB7BBBvABBABXABB1AB@BBB*B~B]BBBB%AAAAABABBB#AB.AB?ABABCBBAAB6BBBBBOBBGAAB[ABBBBBpB-ABBBABBB"AAB,BABSBAABBBBABbBNBABBnBDBABAXvpx^z2j_N:#dF "|B(kc7lD94t`!u/y;GfOCKRA)h-!< 8& i'eq S #"$(*o'3~{&1Y\,I5MZW >?= H}[PwT%g]Q0UsLmb%$Jn.@EV6ar+b7b9b8ӘӚӖӛәӗ Wr BWWWw׻w   XRQhwh Oww8wwrl UWXw '5kj7w X;{4lW;Ԁ7ԁww   w!? W> pXKX8W]|_7sp9Mow XWP'KjWX1WWtWX(3XX U_Po M_/L6#`_`2W)c` _9rwwA_C^KM5 5ywWW bM34wjX(WWtW/fX;WX w֡W xi 0 IjWX:LWM QտXK U MLwwwwQR>vKw$ՔՕww wWXMWWX::WtWP bQWtW G+WwWL!wN K'w^(w(Ww WiLUשIK Wt]?UWWXDX2XWw waWo 1/wWPKwXUMRmb|bxbvb{byb}btbubzbw[A[?[@[>[BoUA<YP=BI6\:X7]GMVE>c_QZbN@[D`RO9?FJSWTKCH^;a8LKKKKKKKKKKKKwWtWXWw(wwwwXU  $XPX%ٽ ׋{+XDWX wwWOWWwXWmWtK3~XD] w+Q_*-% քֆWww6K[X w`ws'^  8n o2WW]EX(עW 1@ـ VwفXW^dLԲLWo XWkWXW^|WWrWX֏fXWhWE5wwW  L`W tBXWwwWsw 4 6w_ W&5IWWtWW} |qW"c e_`LXW^,ww`G_0_l @\ R  Tf\]XMX1W/X2Ww___ twKx^&  BX(wwUԫ/WYoMW wp(6WW MW'e sw *IXM^WW>XWk`G_>$f MD=%NE> _aW =ַABWUw-H4X`uwX_WWw ~x#;_,  dw!bccfeJdcdfeg>bgguccdfcoe9fg-fme.f[ccfccpc1ddf6ecfcegJc8eEc=fbfe\cabbyge]eAfjgEftf>dEc~ddbfdffg.ccfezbdcgeNfhccVdd&eepedfbggOfdfqf ccede bdNbeefdc cFcUdddc feeHd gfdDecdccfbeebg&cc$befedg2dbbcAf7ecetcdfdXfdPd#bddc-ckec"gffOec&cnf/dfecb{g6cbfd fAbffZfffgaeec bdc_f1gKdcydecde(bde;dmdeffsfccdfYfFefffcQcc7cfbgve2ecgibbcfbfLdebgfcEc0ceadeeebd+cdfKcfc9e7dg^eRc5decgfgAbed9e feec,dfd7fbcene{b}gNgqd:g e*fdHd!dfff ecfff5eccebefec>c.ddQdddVcddcdqccdcfebefcdOecf?deedefff~bgfbfHeMc(eqf fxe!cg@fedbedfebfvfce8dcbfd?ecRecedfDdvf|ceobc;fcjbfeebcsf}fcgzbdbf4ddfde~g,g~d"ebgfcefgRee4gjfdbeddce_e$bfGeLdd<c\dcfdfXd;bddgQefzbbbdff$cbeKgDggf#fEegcececc{cgMecefcbg0d0dcgfdcBb~f_cdbefeg#defd5d1fVf'f"ed%eedbef+fec4d{cDdLdlefeebe cexdeSgmffff-ekdubgrfBg1eced|bf=ccHefUc ehccdfbdZff)fIc@efee`dSecc#ceccf3c2edficf;ctcXfgg fcdbd-fSdYfbdRgpggccieubbe dbc fgbcgdg<cegUcdcebbf]cd)bdgcrdbg/bd'dcdbcdTcgee5dFebdGgdg_eBf%cKdedbd^eTbd2bfWgdd>eeerdCfpde^cdfcmf^ge1dbebe,cfCfue)edcgceeVddeedfbe bd(cve@bdeeff`g eed~e3fc^ecfd4df*efgcdxceicg`cfecdg9fegdedIemcesegYcczc3gbbdcwd}df@cCg:cbcdg ef{dd]g4ceebgncffydd cdgIcefg+g}cgdcegZf<fg8ffTd3feYccfefceeCgScedbcf:edyeeed$dgWeFbfeZecgegTd/cbec/cdcMbddbf,ccebfec cd,dwfwffbbfe'f gfRefeec+diddUdeQebfkgcfbefbbbze0cxfdcPg$eOffe?g{ebdfbf(d_fbe#cedfcbg%dgccLbge}dobe cf9bcddgdjddfeg?cfbffgCfg]fbddcTeggVeIevfg5dreffc)feg'g"gcchdffdzcg!dgdabgefd.c?bcJeee|cIfedg;ffNcdc%dfffccWgwcef2eccOffcbd ddcfde"efaebdbfg3fgLfbdhfrf!fdbecNe6f8ebde>dbcdBcdfcfe:cge/deXfgg(cggtcebbbc!fd8d[cc]f0feg=fbgofbcde&ffMcdccfebee+elgkc[f c:bbdfbf\bfbcbgHce[eUdfddgf edWdd cfcbcqedJecglg)gyc}cbecdcewddfdd=edscgGddecdeddfgXfcdneg[gccgcSc'g*fcudgecbeDc<feg\deedMee=gffd@bghb|bfgPfbcd6deWedg7gcZd cdfgxc|fclefobbddgdcYe-dc`cg|gBfdgePgffgFddfPd`ec*ceGddKbdkdfQecfflccedbedfgdtbccfnef&cejd*dpd\edge%f.feydAbg edfJg cfcGfbgsce<c6edbmbfbhbkbebgbcbdbibbbjblհ23w l.Wm!׌WWWX%, cwH_ w wnW2 SC5O]0pv6]WV k(-nm,wxXFօI NS* 9YFXa15wdU< bw`MW _K("w֯1wwX;wX2XWW}W t MWXUWK W#0KW-ww>SLZwWXWWL jWWtwwww@ww~KX'X 2<3$\ ) +X ^W=(W^ > rLEw^bL~*GLKwwW<?wWrԄ#X== MWtw  '`L_ ա ك Rwp*AWWyWwtCD 'ewW@wwwWXSwMD^X; ٸGw wXw6M68!?wd cb^&__K+W#|, 4{LذWرwfff {| _e_ ]$$$O%$c$$$$$$% %$$Z$$X$$$$$~$%$$C$$\$$$$z$$$$$%$$$$$$$f$$j$u%$e% $Q$$$%$x$$g$$% $$o$$?$k$$$J$$$a$G%$$$;$s$h$%$$%$$$$I$$$<$[$M$$^$]$$$p$P$t$$v%$$$m$$b$}$U$$$A%$r$$$%$N$|$$$w$$L%$$$$$$$i$$$H$$S$$$B$$n$$$$@$$$$$%$$%$>$$F%$R$$$$V$$T$$K$$$%$`% $Y$$$l$$$$$${$E$%%$$$$$=$$$D$$$d$$$$% %$$$q$_$$$$y$W%$$$$:%$^^^^^^^^^^^:IBHF>=E@CJ?;GA<DWtnX`EOXi{{CX)! { +WxXNwfFjw9w<N<w   b n  `+^,2Ewd_y_LV ,FigWK ^w 'w WP dwmَwm -] " dاwX2 l`'n`K wXOP wW  M  WwTLXDL: vb ilw kw'tWWWW|W\ot w  wWw wLCUZ Fw  YףX_>   )Rx^^Gk   XX?VwWvWtW  * /m֔t!XHNnXPWWn]] ]] ]] ]]] ] &#!%*"+$) ,('^v^{^^x^u^^z^o^^|^^q^l^n^^^}^k^s^m^^w^t^^~^y^^r^p $.*) ,+&3 01-#%/'  !("2dd>d%ddd,d*d d d'ddd7d!dddddd4dd d:d8dAd&dd#d6d d-d+d d$d;dBdd0ddddd"dd3d<d(d dd/d5ddd9d)d2d?dd.d=dd@d1d] ]] ɝɢɣɘɠəɕɡɖɜɔɞɚɗɟɓɛ$($$%$ $$+$!$,$#$0$.$*$$'$/$$$$1$"$$$-$&$2$)FD@RELYATJGHXS>ZMOP=V<Q[N?CI\UKBWu7,@"bF4U5H$XyV %9p;~') f6J1?eC!ZNwMztPr|\_k[ n]d}aAxW<(/^ =OBRQgEjmcYsI8#ho iG.KS*TL:0l+ &`3-qv{2>D  ooppppooopooooooooooooppev ߝߩ߲L߼߰߷߿߭6ߔUQGߘ:Nߪa4+uߧqW-[ߒDT0s\z)!~ߓߕY.ߢdߏ>H{ߞߗ8yVߵߣߺ*r߫߬jߴb%AF I^"oC(v߾ߦ߽]w h$߸߱ߙJ/<ߛ߮1߻xkE|ߜ`@ߨn߹߳ߚߡXS_K9&ߖߑ O3Zm2߶5=,P?pleB7'ifߤ ߥ};#߯Rgߐtߟc Mߠ]N]R]O]Q]PMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM     }|ɸɻɿɼɹɺɽɾbcbbbc"bbbbbbbbbbbbc$bbbcbc*bcbc bbbbcbbbbbbbbbbc(bbbbbbc bc)bccc'cbbbc+bbccbbcbbbbbbc!bbc,bbbc cbc&bcbcbcbbbc bbbbcbc%bcbcbbbbbbbbbbbc cbccbbbc cbbbccc#bcbccbcbb[[[[[[T[[k[[[[_[[[o[[[^[[p[[[[[[[m[[U[[[[e[[[[[{[v[[[t[[x[X[l[Z[[[[[[[[u[d[`[Y[[[w[[n[[[[j[[[[[W[f[|[}[b[[[s[z[[V[[g[[[[~[[[[R[][[[[[[[a[[[[[i[[[[\[[[[y[[[[h[[[[[[c[[[[[[[S[[[r[[q[[[[[[[[[[wstvuf1f3f/f0f-f.f2f4]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]vNvM($!%+,"#)-*&.'^^^^^^^^r}xukyl{pnjsot|qzwvm~`=`I`B`@`>`H`A`F`<`?`;`E`C`G`D_a`@5@8@9@:@7@4@6@;YZZYYZYYYZ ZYYZZYZ ZYYYZYYYYYYZYYeeeeeeeeeeeeeeeeefzfy``vvvvvvvvvvvvvm^^````\\\]]\\\] \]]\\\\\\]]]\\] \]\\] ]]]\\]]]\]\\\] ]\\]\]\]]]\] \]\#.#0#1#/ˮ˯˭˰@@@@{~sy|tz}uvxw{Ww_^L=wFGW Y- X2_ Mw ?wW  2M_hww?P ; a4zw_-aM;WXiX:w٠XWowwWwwUWW 6,כWo "WwLuX:ԮW]c^!? i GWXX} wXiMX7XQ 8KJw & L-`^MCXhrWW w{Kw w6W{WWt@wZ[\KCFK! W  k N X:$wRWtwwwX8   XEX k`rwla ؍G] /@AMh_W;WX` 0Wt" _v7XVMLWWwA w7KtfxTA*pHJLwֱw R wwwQ)AWWtwwWX  `WWM1{C|  ez)ww ww׆W/ׇw  P@֝wwLnWWXTWԠLX'WX^ wX)wJM'w ! nX Ws<wlwe>"wxj1wWWWwNXVwWdi_Y "WX8 Y iK__acT`]b[ZSVWdUY_^ef\QRXg\n\t\u\o\r\p\q\sBBBBBBBBBBBBB7?EH<C9G6;:>=DF@8Aa}|{~z  & mL1 xMzU7BL? www!?RX(wwKww[  - 2w[pw c WWW }{K_%V&-I 3Jiczٹw6j  r V 1 <E  w [/w%&wMQ ,X .@-#H!?WX2pHWX pW wXa5&wlQaB WWX|~Ww 1XwX78j*C-4}wwWWLIWX&K4Q wZX#Wd}@@@ZZZ8g g gg gg a(a)a* wMLgK)# 2wWX_W G$`~hwWWXiXWx=W -\ .]]' WWK8wB K WXSG?K X:K_L1 w~e}E:+ ( dwLwռ MJWnX_ BהוX`WWxKWWtW0wWCv 1w.|IMXj cW)K4 L   wC X1X W weK{zՀՁWwWt ~H 6LwP Xw\*WtwXW!!?w%`BCwwmJ*nw>@>wLL$*X<WWXX;W=ԣW2ww_HxTwfffff   :W?^__@ X& w__L ^ ( s_+^w_^w9wWW mw8k XWnWW L7wW}wwwWtWXDwL#Ww w^D `Dw WwJW yW_"wٵw?WtWWX3wX;WWh/![~X/XW#GXXVջ89 i `5_%`J)ت  WXVWQww`X'XiWwU  !' lWWWWXX W w^ Xww9 {JL?f DMewwW_LGWp (y ! w:K " W [wWWm= LBwWWآ`c`G3 twWtwwwW_XKS {R =<CD>;@BA:?:9;<cDc3c1c9cMcHcJc0c6c;cAcCc:cLc5c2c>c<cGc?cBcIc8cKc@c4cFc7c=cEQ\ZXO[MTYRL]KSPWUNVBBBBZ^Y[]\XaaaaaaaaaUWRTSVgggghggggggggggggggghgggggghggggggggggggggggghggggggggghggggggggggggggggggggggggggg    HHijk\}\|\y\z\x\w\{RLNUQVKWPMJTOSXYrswA "x\w{+ ,S @ ~W  6.˳˴˲˱˵@@@@@@@@@@@@@@@&%gZwZtZuZva%a&a#a$a'~RW1w}N Zyw34 XDWXjwWW}Aww  "W}_CX;  ^SX YwX;wlWWWWw/`FW}7 2wWWtWwwWww8>  3ԉ WXVJwWtW}wX2 YX wwg dWtWXD#KSwL$hWWW}w- b7 Bm7  VwT wWy7K  ٿ 'WXWW~ ՍiwX& C WwXXWwwhi nw7 wWhW}cwJ3c I^vx X*WX;wMq[XWzw"# )_XwMbXWW2w1&'L|~oWWs Mx w; N|XDXh*ՈE;WwtwWLA:`h wWt[Ks+p جKW\I1 :LswX2W؊ YHWwe}e|[[ wB}ptSy 6 1-Ֆ`?w>p wxwW^^9``]_` `X2WWtXVwԊ [{ ,*/H&Wuww^sת} ` W*{`WtWָ~ "X( 3 McdGgBL/XNX2)WtQ]V]S]U]TX: 0_xMHWX(WIKFLXX5WX }>IWwJ)w wew 58w W D 1 LwPww $WtL cwwM}Iw TWWL8WX9X y{x|zf]f_f[f\f^f`]]]]v~v|vv}v{     534^^^`bc@=@@@?@>@<ZZZZZZZ ZZZZZZZZZZZZ Zfff~ffffffffffff}ff{ffffffff|f``````prvtsqouvvvvvvvvvvvvvvvvvvn^(jXLW ZZZZZZZZZZZZZZZZ+.0/,-c&c%DCE_][^Z\aa~aaza|aaa{aaa}aaa14320>B.6F541A8G?/,*<-7D+@302C=)E9:;ӝӥӜӧӢӠӤӡӞӦӟӣ\I\Z\R\Y\K\F\H\U\V\S\E\N\G\[\P\O\W\T\Q\X\L\J\M_____________aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab?bAbDbCbEb:bBb<b>b@b;b=bFwwwj8gy 0X  X,wULXj }*LK>Xh WWXi"Kwwc_K,wdw 9www./MVWrL[ &6 CKV 0LXW  X b [ Zٝw,|wX  0TX M%_ wb6b5b4b3WsW  Wwؒ E[w^  Xi _`_S$Olz xKwMBwwWWjٰPuW wXnWwcXԗW  c"w5ww?wQX2w e  w@A 2\wLvW_N``iM\)poMjwvDKwc9KW#և Ew K - W?w; |mw  ٩4g_w   ~ؽWX(w pK]KwFL9wW <vW,.WW |MX(wWWXizWXj s x ww \ !'d W +HB#WW`^ #WXXw%,ԝ\WXi %2 Ww&  [ Lw  Q V^^cw+LYZ]V\WX[^^^^^~ ?Whٞo WrwX+wwwK% dCWXMWԇWtwWwYX'WWXi ROf8nP!NMM+QFXiwqiwLw! n ZwCxy5WXMTDbw $>Zs J   'wX K wwT)#W*k >lq"ww֢;w&Lq7U  !?wIwz ,_w``<:!w $ 6 *+^wDEO)  ^]_nHcjqvWtXVw\ ?  qG-SWWtXWw/wwW}gznW  wW! dL?W - S DE`ww & w  6 WX,wL0x,w uK @؁ _+ a a a a a w< <׏?43)iwW-a %g^i I6"vw KL ظ0=WwUWL`ԆWL LwwW w QzO_kXWcFX(apSK ֳQww w$_)./%-,0$!2"#& (+*'1-#؟[} rZZ w w ;"#K[X`X_YK&ww|jX !WXV_ LXW.stWw_ Dp}<?ֿACK/wwwL= uAXKwWwM? 6 w PwW{w *KW ' md Y  &w5LP K@WwXh,www ` `$_NF+ X@ؖ>Kww֌zFX;>]<;KKwWWwwwJ[\B\\ \5\6\ \T\b\\1[\[\O\[\\`\7[\G\m\P[\\e\_[\f\Q\h\\\9\[\o\R\\K\?[[\,\\\V\\y\H\\\+\j\s\D\\{\[\"\\\\U\n\[[[\v\\<\\]\F\z\>\;\c[\S\ \t\\d\\~\8\g\@\x\I\X[\l\L\E\J\M\C\$[\'\2[\#[\\u\Y\q[\4\\%\p[[\\*\A\\([\\\r\=\ \ [\\Z\\/\&\[\W\a[\}\w\\ \N\\\\\\\\\\-\\0\|\3\\\^\)\\!\:\\k\i\[\.[\\[\,JN'=.yAKHu 463i<`v{M kgrC_EhUOD+qaF\@WSe}">Y*78G/R[&$zQbLXx ]?l)90dc :Tf 1n%s~;m5^-o(2wPt# ZjVB!I|p;pppPP}PxPPPPPPPPPPPPPQPQ P|Q PPPcQPQQPPjPhPPQ PPPPPQPUPYQPPPPIQP~PMPVPQPPTPPyPQQPQQPsPHPiPPPzPPPPPPXPPPPPPPPtPPPqPPwPPNPgPQPPPPPPQPPrP_PZPOQPPvPPPkPPRPePPPPPLPQP`PPP]PPPoPQPPJPPbQPPPQPPPPEPSPPQPPPQP\PPPPPdPPQ Q PP[PlPPWPPPaPP{PPPPPPfPKPuPPPPPQPFQPPnPPmPPPPPPPGPP^PPpPPPPPPPPPQPPPPPPqak~hW]Oj^yn{zpZucSomTisdb`grvtl[}xfRQ_eX|wV\YUdDdJdEdGdHdIdCdFdK0E9 3q$_xu1*kF&ctB]V,WJiw72YHS>N6KX#!{d;Dma|8AT4+"L5:PejMoOh=-R(/r^f[).zy%IZ`U?@s'<g~C\l}nGvpbQede=dde9dddedddde dde2dedddee#e.e)dddddddddde/de@ddde ddddddde+dddddddedde1de-dddde'de dde e,edde;deeddddde5ede7ddee%dde0ddedde e8ddeddeeddddde6eddeddddde>e3de!ee e(dddddede4dddddededddddde?ddddde<edeee"e&ede*e:ede$dededdd##7#m##o##E##?###N###{#u#n#[#2######p######k##K#}###y#####S#D#i###Z#>###c####d#q###^####M#x########W#U##w###t#9###B#####I#;##j##C####A#Y#e#_#5######:####f##z#3###G#=####8###`########V###h##b##4###]##H###X#a#F###v##T#P#####|#l#Q##r###L#\###g#<#6#R#~##J#s###O###@]w]]]]b]]]t^]]]]]^&^$]]]]]f]o]]]^^]]]]^]]c^ ^]m]]~^]]_]]]]]]^/^^%]]u]`]e]z]]]v^]]]x]]]]i^0]}]^-]]]]^ ^#^ ]]]]]]]]^.^^^ ]]]\]]^']r^ ^ ]]]]^]]^]k]l^]]^+]g]]^]^]]]]n]]]]^^]]]]]]]^]q]]]^]]|]]]d^^(]^]]^]]a]]]]]^!^^1]]]]]]^]]^*]y^)]]]]{]s]^]^]^,]]]]p]]]]]]]]]]]]][]]^]h^]Z]^"]]]]]j]"^m=ʉYPʕ(ʬʑzQʃCdr2-SʓAʅʤʘMʧʦ9Gʚ1}DRʮʠʋv_6?gʙ \ʗw3<Nʒ.ʝʌ'ʊE/5J`eF iʇHʐcʜ8)Lʡ%ʟ,ʖʫkʣZaV& ʏ+utBʆT[ʍO:;l{$7ʪbʢy>Wʂf|x~hʀ@pʈj]K4 o ʛXʨ0ʁʎUʭʞ*ʩqnʄʥʔ#I!sAMwXX92 m !_Lw = WtX`__LB8wW]6Iww  wKw/G 1 ,Q9w-Wn XD @FYXi wJ VL]h1  X`WwwwL^7 t NkXDWXDEwW2=^!  [wL_ lw wn=՜Lc8wB U RwwXWPu ` X,X!Kww\wW:0 7gc[bE L{ WwؠwWt6pWW{|t!4 M4WWXWXX(=^XEX _ْlX`w#;E LW|`w/ -  w Wz֞WtX;X`Www<Ke5?_DwwP  `0WW6WX>X0wXDW  o2 " |w} XqXpXwXnXoXsXrXuXvXmXtwOxww ZLwmwww[wwXix+yi MLww% Ws YW=!M c <xW|WX Xw#^^^^^^^^^^^^]]]]ba```QըS`P ~RW`ԼK\wWX3=wL-^_w 66sXaK(c.XG+LUOټKD^ SM7ٚ5g % :o5W X&WtwWXRtw  w!?؏wKnE}XYw o L=SXU_ 1WWtwVWtWXCXW i*WWXistWXDwWw  bF^(XWX:Ԕԕw U1XD)wo =pqbwXWvwXWWWwWqWjYW 1ٓW WL} Wwde6gWZw mf.2!xw؆1aGa=aPa<aNaHa@aLaRa:aMaBa>aIaFaKaAaQaOa9a?aCaEaDa;aJ_WW)Ny  ~ 8EwM$XWX( X2wwwwNnHMغ =-Z tWXSfX{www w'(&'|M@ X`XD ZLTYtXDXhWl\ vo_ CKww W<Wtihg`4`9`8`:`6`7`2`5`3^@+@.@-@0@/@3@,@2@1 ^^^^^^^^^^^^^fwfufxfv`vY^^^^^^^^^lfejhgdik`f*f+f)]{]|@@@@@@˩˦˧˥˪˫ˬ˨XW W ؤ E<pqLjaw9' )_)  Cl) (!. 3Oz]ww  ww w'J  XWwwVK2tw u12VYXMشC 2 wXXXh}KnWwL 0R= Xi BKw 2  WWWWWwwrXWEuML ]L$WW_f `#OI KNX:Xi M w ;XwJW_wX2KX(W  w 0fhwZ ~Yww_=w X VwwU_WPXNw*w C[XWٜX(XG` ^m7( Jz v nwW pI֪#?@wwO+ Iww  __)_ MF^^_www f_K!s =sw Wt՟ FM?  6wWWj,%iLCXLCUZ K# KWWXLXU WWWWWw  _>?_WXWBwX;XN^J`8p9wCw~`Y^_l`[_`_B^`^%`_^^` __(7aaaaaaaa```````_``bJbNbLbHbMbObGbIbKӯӪӰӭӫӮӨӬөBBBBBBBBBWW| +lwww&`5 WtNԥwwAX X^K #w%X1W} wU8HW```````@@@@@@@ZiZkZnZmZpZoZsZhZqZlZrZj!?՘i p [ 7KX2 ]G?@XX e*MWtc &  " F 45ww\WLyWX1XLW flX2Wwf AWWN /LBCjH wWWt dٌ_uX;XKp` awDwW Y ֛n*wK e;: W DGwX]JwX` ^^q $  .W Xwwkb8hQL1WW Hw_5LWGwh3JwW9K  WW &&[b7% k 7w #ePAZX(wWWX WXWLW|w'www% wi[*xtWw =%W ٕWtX`X WTEai|wwwB# WWXT3xo  1  fCWsWWf m`Lwך+ m e ZAffwWwM'"$Khw$kP`W +w085467_M_V_K_T_>_5_;_I_\_A_W_:_G_J_@_Z_^_P_Y_F_D_S_<_]_U_Q_N_E_6_O_[_X_B_H_4_7_L_?_9_8_C_=_Row}Fu֋ ~w jt aaa Ww%-ٲwwՂF^G WibWW|WW ~WtwXXKqXi@  ww+g -w wLN 5*յB {"C9WXWkE> -3/4012.43756c,c'c-c.c)c*c+c(fbc`daehgwOP455X4XY+X9u\ԧw9=Q -MZW `˾˹˸˽˺˷˿˻˶˼Z|ZxZyZzZ{XdX2wXTX8_0^^Wq )wXLwX1w  _^2L wK= S_L$ !"X;wwgWii|XYO  X:&WtWX$J9w _`!yL)WXZXaWwX$+w2W ,WW__Jw5w $%!"  ' #&   $WWLMDwp +Nf 8Չ6Jzww Ԟ u'3 خ*w ww wAwWW  V 5a^ M:hgwwٟ [ P&יww0! ֬.]__I _11LtԭW ؔw79!eMM_`IMWwW70B w4WJWXfK:[7WwXF 1<w~LwyXWX2HWXWmqֺYw(VjWXhH  AMTGdWX3wr^LWtX`X  7 ٖWV3" R>׎XUWm]67  rWvW x֣W! __^iy6X2Xyk<=Pw J[w9\wXNX2XzWWOXDWW| TWWW- X_&`u2W  EwWWt2Kw ) 5 vw#L w_qXw_%KQ_dLBwXWիw w~W' wW.w  wKwwWWLmK- /Lԟwww؄ XMX1Wiw׿X;Տ wxWWX`BwW~^<'|*wffwXWWtWYK^XW<Wؕ[ {`WX_WdwWWצwPGwXAW X(w } k 2 WMwe\\\\\\\\p p#p'p$p!p"p&p%XYdYXXXYYXY)XYmY!XYYYBYXXY^YYXXYXXXYY XYY>Y&XYYXXXY3XYYXXY.YYYXXYYPYYYXYXXYXXXXYYVYYpXYXYtYXYY|YYXYYQYYXYYXYXYXYY YYLY{XXXY YYY0YYY8XYYYXXYYDXYFXY6XYjY@YXYYNYIXYXXY?YhYaYXYXYYXXYYYrY YYYYXXYXXYXYYMXYYYY5YY1Y-XYXXXYXY'YYbYY<YcXYfXYZY#Y_YYvYOYXY XY/YXXXY9YRYEXXY7Y;XY}YYXYXXYYsYYYYXXYwXYY(YXYXY]YYYWXXXYyXYYXYoYY`Y[YXYKXXYY4YYYSXYYYiYgYYHYYeXXXYY~Y$YUXXYYXYYkYYXXY:YYYYzYYYlYYTYXXYYGYYYAYYYY+YYXXXYYYXXYJXXXY"YXXY,XYCYYYXYuYYYYYqXYYxYY%XY*YnY\Y=Y2YYY XYYXQQQ"Q!QQ#QQ [T\YV]UZWX^7^2^9^8^3^5^4^6########9:;<867=ʹʶʷʵʺʳʴʸ%%%%eMeLeNeKeJeGeHeIfffffffff ff]]]s]r]u]t]x]n]v]q]w]o]pq5q1q6q3q4q0q/q2^^^^^^^^^^^^^^^^^^^^^^^  2mow_'wvLh^6W=tX1 eL ImywX$w KWdwٗwd  4WXh w :Y\l\mMEQIPOFKRLHNGJ?@=A>cScWcOcNcUcRcTcVcQcPefbdac_h^`gbb&bbbbb)b,b"b(bbb$bb+b%b#b bb.b!b*b'bbb-X^ZY]`e[_ba\dcbwbxyI $S^_ L6w"XNwwlc}bzew&.'wwX2H3^ ^`wew.zW@X[XcWX  W LfXSj [|wWDa_^2<(2 8 w 0WW wLVGWLWiWtw^ V U#+#-#,IJddddd~d}dd|*+ #w`9X  |XWX:  Xjw. C~w]ZwW շw]J.{w &w[_F_w$W89wL)wwM WM!XFW2m_+ WXUwW!*Lew ww_s 8w WwWtWX WX wXCWXWLw _ U #)D WXWwSw;_p $  w : _K MswִهK7pԸ6 DWWW^_KXLi=J   oXD9` KwOW_`%KfKL eX!?-Zw) EWW iKXZ` LXT wmXIM<8uWw$E_g k ,W&FX,WwןXW    wwWW!?ww {1wI~TLw `? ww`Sb\CZ%v XDX(WmWtWXD    `^ jWXw %h 'f.XWew4wFԚwԛfg w_dw|w1wWXDtp !R^ոX$WX[X\ "wwLww__^WWMwwswLr5rWwL;W3 w_aX/X#wiww;DEWtX-\wvh{lj}yLWtwhcw^z_wXXLXiXW 61/w2 g *׵ W=` ay V   WtWW  kLz[%gqEw SWW TwL2w wLpws@oXX ^ZwWtl wP EKHX1Ww =K w,WWWW5WX ER^Iam5-LL/i w`XY\wWXV  6w 7 _XcLLK__^wWw W{WXwXNwwWw:XFww WqWM.O uPvXI ETXf7FWXDXMXV !q Q+.O53  ^`FX_WX0XL ~WW Shր ]|W !Y  (X%WL s sSW ___OMXwX` XW_Y֧ 1V : 6wWt!bw XYWX(wXXnwYuwH___ !"gJb'b$b!b(b"b%b&b#  AvAnApAmAtArAwAqAoAuAxAsaXaUaQaSaWaVaRaT~ cWXX2WL&L'֐WWH  C 7 WX<`3{)XDK+hwGW0WwWwwwZwo 7KKaww Xٔ L@X'W78w hhiwK ^KUX>XCkpW{wbL `)**m+P WU hvwPX vWWL  WwwnԬRLWZwKw nW3<s/ WXWX`WWWX2X=x<W}XDX2WWXVwFwwD ;[wJW~ Sa9gxA w] wWX'1W9wKإWwWN$ ni[ h *wղwXVW|WX`.` / پ wՌwWiUHwLDX2`w_?@  X5X*'Y.1()VWX@LWX  vX2S vXWW1twv)www/9XX2wqG$R:wwM [a/ԳwW \wXw -E% wS KOXW^s^KP .^nwswwL -'w&XWwXjwwMrdX2X^Ն 7eXhL[WXWK+ SwS:KK WW 1YJ]K]GXVXW :6#ww$wחuKyww?wwWlwW}= _^?wwMXwT WWXWX )P 6 * WW XwL"M{-wa^eww-բLWtWWH wf_g:WX`Gw__} OK|wwwLj@?f_L;w  X-  , w3 w!??  ׹wWWW}ձ@WAwwW# pW WXVX' e_w  JW <Y5mW_.X(WWs  L%@GwwW cCHWJwX3 \|WwؼKw^yXU B V WXOW.LzLWؚM ؛X;W cwB ^Wj 3 XW{ wթُWِw& Wwn wWw^ 'wK$4_V Y  04>LZ[Xi&w, M{ 9W^ ]Z^UM[ e ! Wuw(  s)Cԅ( m __M tV jw J`_` LLwwCD Xw VLJwWw.MNLKdd/1.,0-2ee]]/](]#]5])]4] ]3]%]$]0]-]]+]&]'],]2]]!]"]]*]1].WW > 5X2Wf^QT@Wt` WW_ 7eWW WyXKAHwww __ AwX WQ"WWJ} `HOwXBW(WXCWW c7W| u%Ycnr !-^K`W ?O0 KWXwwKWWXwwa&`nwXWKZ> K W WX/XbXDwLdfwwԏm m_A K? WW#Wt2WWdVdNdRdOd\dWdbd]d_dLdTdMd^dQdadSdYdZdPdXdUd`d[\\\\\\\\\\\\\\\\  ʼʻʾʿʽp3p1p/p4p6p0p.p(p2p,p*p5p)p-p+%'(&$#$$$$ $#$$$$$ ###$ $Q(Q)Q'Q0Q%Q&Q+Q*Q.Q/Q$Q-Q,e]eYeXeSeUeVe^eTeWe\e[eQeReZ   CAB@D>? ;LMk׮ p `lT FXWWw BKR'(+` me' :w $ Z >wXwKWXX9;w  lpQbԩmWlWuWX)cwWtXWBZWWXDX0WMWWXx )MXWaXXWWWXijPNwDX:WWWdWwLWWw%wAפ\w NX1X:ֲbWWXil/)Y؝wBWt֕ (] *wmww P518-w" {>wM vLNWX/X8 ׈3wiX(X W_ՋwOxz  @w$wWt {*,ww`Nl^  "Ww5wWW}ty_ wXac~cb<b6b=b:b5b8b;b9b7b@b?b>$$$eafdc`b|~wxu{}zyvccccccccccccccclhh h hh hhhh hh h$)*(%&'H\Zeteseuereq [9[:[=[;[<ooo0524-.13/IIIIHIII\\ɤɦɫɭɨɥɧɪɩɬ$zq١wW uלx; {)) +   XWwEw(~gN_`7k: tT ' 8դVwզ0tLsX:tWw DWX+us{,wH SXWRjSwK7ՃՄw\ - wk]sWXiWWw_yM بX2w |w}}wIWW}X#,:u M ]ն% pٙH<X[X7WWW|w }J  y  ZPX;W pKM nHazC_$KSWwUw։WzKI;wwww  RzwK> '@YZ[wwXW f wX OXVWX'w ԒWtwX1<XX! zwX@X(X  WWu׳v GWt#jW WWsWW_1wwX OL?@wS WlXKW1WWԡX;1+w   w*nw XWXf%w 3w Ww-* w W8WW|X_\WEa Lv nwzbj[X 489U`7i"pofQw=r,5*_KJT'/\&~@M:FYu|^1}h?Z<6G>%q kvHAStdI+l!N;aOynP#g-CR0).2(cDWzVx $] EBLme3{s]C]<]E][]F]h]`]U]A]b]?]I]>]X]V]7]f]D]d]]]_]e];]H]R]T]G]c]:]g]O]J]\]P]S]^]@]a]Q]9]Z]=]L]M]8]K]B]Y]N]W]6<%+@X\=_>[2D" ybPYL!nm9HSG45cs/Zq6N]vpw^z8j`TC)eO(|J kd?lMB;tau7xEQgUKRVI#0 h3'F$Ai- frW* .1o&: }{,ppq qpppppppjpq puppqppepppppppSpq!ppypgpnp~pppzq ppp{pppprpWpppQpp_pqqqpppppppppRqqqppp^pppJpwqpppcqpqpptppKp}pMqppppqppqpplqpqpp`pfpqppUppdq ppqppqppqppTpmpZppkqpLpq ppqppipppppqppXppppppppppOp|pNpppppxpppqppPppppvppppppppppppp[ppappppYpqpppppspp\ppppphpqpbppqpppVqpppq pop]eefeeff eef effeeeeefeeef eeefeeeeef fefeeffeeeeff feee]E]N]]]]L]]~]]8]:]]7]$]p]A]f]]]]]]]]]Q]]]]]]]]t]]]n]]{]]G]e]I]]]]]]]"]]o]X]R]H]0]]z]]]g]]J]a]]]]]D]]]Z]]]V]]]l]](]]B]]]]/]]]];]]]]<]K]]]3]]]]!]U]]]]]_]]],]*]]T]h]]P]]]\]]]]]]]]b]C]u]]]]]].]=]4]]j]]i]]]]]]]>]]W]]m]]]]]]]]]]5]]]]]]]w]+]|]]@]v]9]d]]]]2]]]x]]-]6]]]]S]}])]%]^]]]s]Y]F]&]]M]]y]]1]]]?]]]'][]]]O]k]`]#]r]q]] ]]c]v##`_^XX~XXyXzXXxXX}X{X|XXXXXX     ^^^```eAeCeBeEeFeD534˖˔˓˒ˑː˗˕fffff]l]j]k]m]i@b@c@n@m@a@o@j@p@r@d@g@l@q@k@e@i@h@t@s@ffgfhfifffjZVZUZXZ\Z[ZRZ]ZSZTZWZZZYq-q,q)q$q%q#q+q.q"q'q&q(q*!" fffffffffffffffffaaaa~~~~~~~~~~~~~~~~~~~~# !"]]]~^^_!_ FGEDwX wX;WqWX;sLReX;wM_Nեw>"WXW+ԹKnWtRWX_wW&% M+LCWWwX(> _ }b[&['Oaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`)`(`*www{w XNX2XGHWXWXwwfffffwW]  NHL٘ ww o p #2K# s(wu m sWWtXW)Z+W'Xgw0 M 2a"A^9w Y  ZX`WWL +՛W/:  ~SWswW{WWw H O֍֎www.I L4Z  y_^\wwV<yw 7^wbX;W   WWt +XX1[WXg0bW|Wcw wwM  $ v   ;vALo .dXWR'(fLO-L  wՑ!?kW]ZzXwlXK`^!`^m  ^dKW wwWw=W>{ר~wWw WWu ` wrR =L wD t I twwD;w|qXXYL{%MwwwX1wX/ T 9Ԥ _KgM UbSWXVXW!  gXWXws~NX,WWXX%Ww :pWX4XwZ#\.KwX ww֮;WlmU' Y Zg_   M8GW)$AAAAAA AAAA AZZZZZZZZWwK`w}QwsUMWU!@' ;XDX W WX%i_ww7*WwW:w( wثWX+wWWtWW}WXLYw Ew!WWX! wK e Lwww_.BkwXXK;C$fffM# AWWW uw j6  =Ww(.OؐK!NW G3^'qWmMw?wYVZWX  <{wX])Ww XW|SX>X/XW? 4 M   *5wwXWw 50 oXWw $5_WWwZw׊B2/XL3_Q_K1{q| RwWH wwWwq:t:w>L\T]__m SL]X"(gM= LHw Y!:X,] 0X(wWww_XEXZwؗjkafadagae  w  K XM|X1wWw(Lw6W*VLkW8:Wtww4j5WwRwwXC[ bwj 2pٛw;@@e(WH w MY WWw > *}Ls^W!X2X5 y " www4ww wwwWX՞wFGقHoX( Gqd_[wWX֑w֒v.ww GWX1WzdVYWL!?WW`gKK4W  u XCw 4$A w7 n\OLw$Wm  \ ^8K 2  \W|XWww2_o| S5,FKWX0_W՗vsw}LGXW | LwQwmw=cz_`4XW_>5WW 2wԋww2 dwww wwwWwW}W w" vwwWXV X.L>WW|w eX; _XX=wW}wwb8KTճw3  wM12W}=8fjWMk d <| :AwffXW_ _>: oooooooooooooooooooooooooooooooooooooooozuy{m}foq|dvhjrnpksxi~gtwelMbbb~bbbbbbbbbbbbbb]]]]]WWX =WWԂXaKx:   0 )XWXWnw wWN`ObX(X:wXMwIְK6 9wN> $ 9Kk"Mw w7w hw RDw iXiXW Qb)  ;WUWLW WW~W|WwD d,wp  S VWtX2xfgL~ 8@ w5!?_@ 1 :Ww׽XDX E  `q>\ XWXW!u$uwXX@w !M&*_^w wY!WXY{ؓZ_TWPT,QWDwWWw 4gr WWsmww !_`M D YbG$K  ֹF9:XԘL| *_w wMSwFwww,ewKw 2W >y4 4,W} f!f#f%f&f'f$f(f"]y]zf!ww L4WW R wXwWL Y r:sw,. W/lX>L {g u oW@{myGKW.٪jW|Cw`_xSW!w^w * B 8 wW/w؜R`&MQ0XKWw WWL TU`^nBczc}cyc|c{hhhhhrtkmqsplonbKbJbEbBbDbGbAbHbFbCbI#higkjfWWs^w M/bLWXWXwWׅWV,DJWWw 2aFw``W`9vVW  cX2 g  :W׾ D   vXCX XS}XI'~^w'pXWK\wWtXWWwW^Gg:tLRww0L]VXWvXCM/ dSlwKmw cWF 7 WX  K*$e GW ,I\r WXQ ^u\W X_g}!?wXXX'XX&oclX wزq@QwqwwX X.XX, |Rff،_]`^JLWtW e *" WXiXDXhWXWX3y< 1%LwWWWwX  G>?X( XWW? Ww_L#>MqmKs____^LR_@X:w!wNX\dwqbUWd WX wW`K)b`ba,[_TUWw؂ZWWww#WWtאבWWXLr ` wX^Վ _ w u .XwwwQth w\ X:XK]KM\:# qr$wWt0 ?٭_m Q b  +Lٮ SwZKy wBE!?لp N wX; j$*%LwJKXwnX w   BX: (wMX#WXS XhMW8_ ,MX2W>wwpMur4<سX5 Cqw   X(X WWwcd H`A[w')&fwXW?w@ ' -/]W``__^``1^_^t_`@`^_+ X^XBW֭ 3 q GX5`]_f >vyWvF.WvWwwWW qXwLּEKca X(w  V_.K"W Mww www qWWWWw[w3wwfw CX(QwM Myw&7w^LWVRc  {֥w֦ ,_XWWXSGEt. W>r[ cLfWwfW wwHW{ `03_dK T=TW| W(w qwWXLXW  , _WtaW7WX&WX/WX8vwwNwWWtwgw֟  ) wwgw؇WrR*X- WWzWP w ]X'WX^eՒՓ 3٢ A +PwcwL,j MWWW M] OM^X , rXiK&X1X:HLw^_E_# wMN_MOf` ?R[TNWX$XWWW1^XDwwSW J9 d yWXiwwW]:wX w2wfOM qXaX WKEMXhX2/01L:/o`ggggga0a6a2a4a5a1a3A_vursta$wXWwg6L>pOPZKS   E __M`E`"__:֤/ w rw ! :WGw qTLW YyzwCguWW y EwwKw WKb P_F ,xwX p SWk  J W 7 r EXGwMp%,wP E [֠/ wX g ,R\XWQ 29#%WN!wXE W8Tww9WXiMXUoػWWWK=Tw _wqp&wXww MAK,rX0_w0|_2<w +W d\وX_ww%pb,b1b/b*b0b+b-b.b)('+)*&-,˄ˈˌˏˆzglˇnˎp˅ˁˉrq˃ow}ykthsˋˍuˊˀ|{xvm˂ji~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA}AAAAAAA~AAAAAAAAA@\@]@`@_@^ac_________________________________________ZNZAZ>ZIZ8ZPZLZGZDZ?Z6ZEZOZMZ<ZBZ5Z7ZCZ:Z9Z@ZHZQZ;ZFZKZJZ=ZZZ``!``"``` ````%`` ` ``` ``````$` ` `#````'`&bRbTb[bQbZbSbYb^bPb_bXb]bWb\bUbVӽӸӵӲӱӿӾӼӶӺӹӴӷӳӻBBBBBBBBBBBBBBBBVKHRQNITJPLUWOMS\f\c\g\i\]\`\e\h\d\^\b\a\k\j\_\\965788c/lvk{wuimtx|~z}yoqrnjsp     ffffffffffffffffffffffffffffffff;:EHIFDJGababaaaaaabaab aaaaaab ababaaaaaab aaaaaabaaaaaaaab baaaaaaaaabaaaababaaabaaabaabb aababaaa aa a aa aaaaaaa ~z~~w~~~~y~~~~~}~{~~x~~~~~|aaaaaaaaaaNOPQbpbrbtbsbqbvbuHHHfhg     \vI____________ ___ ___ ____ ____ __:5968<>=7;jkmihqponlcccccccc34=<A7C>;95?6:8@B`````````````````````````````````````bRbObSbPbQbT@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZZZZZZZZZZZZZZZZZZZZwWw^bw qA4r u eMF+FWWww]SH*w  WWkLCdw W !mBw {9Fص6 t]3XwW W ^G KZ -ytXUWX^WjL q ٧٨wWX`XVTסX2XWW}wzH{ lgQ   > KsWV ؙwh wWX?wiL%W2 + O Wwz ׃ׄ#W WwX(XWW + 3/<F2wX6KXD`W$%(h{վ Mz?זPurX Ww=6)Mw֫qWtw;Ԫww,OX TW6w*uwՠAL`/)wHX`XDW&wWtw = wa Wֶ;z eZ1Z0Z3Z4Z2Z/ZZZZ tsuvrg7g9g*g5g0g-g;g1g<g3g@g>g:g+g8g?g,g4gAg2g/g.g=g6aMaLaJaIaHaKWX_X'XUWW   wwX(w׷wW/Xwdw JX\ I W Z AyPj8)+CWwX(&w,WE~WW|X VI_]LMX`X:(X KDW}q_WW 1T rr_5Ww  LdX/XAw 7 -XXKwԎW dw+KM ^M  (M 3׬wR WwWW wXW yz w wLlW+]lHԜ<<L` IwX`XDց YwXw_ZX wB_K;X*w HVKtWwwAwWW +`hcjh!"z{X;WtX   MUw W~XZ=MrbcW q 8 x ԶԷ];YULwwcX^]  D3d@Swww9   WWLwwx W1EwWw׸WՊ# www8#J WpX;g$N wX awxW $ #؋ + wXNX2X ww~M8]oXWwՙ jWW8wwGet\_` D V Ew&iwhXWV4M`7Wt    @A@@AA@A@A@@@@@A@A@@@A@A@@   ZZZZZZZZZZZZZZZZZZZ;832?95:B<67@>4A=abdcogifmkpjhnelgg&gg#gg(gg$gg'g g"gg%g!gaBaCaAa=a7a>a?a:a<a9a;aFaDaEa8a@IGCNHLKBEMOFQPDJb2[[Z[ [Z[ [[ ["[![[[[ZZ[[ [[[[[[ [[[[%[[Z[Z[[[$[ [[[[[[#____x__w_{_|_~_y____z__}AAAAAAAAAz|y{wx}v~a-a4a*a)a3a%a0a2a+a'a(a,a/a&a.a1     A\AQA^AXAWATAOAZAPAVARA[A]AUASAYIGJKLFHamakauajahaqapawasavalaranaiatao   ________________\;W Bw@ wWWXVu~w׭ n_wWX XWW `h wٍ w _`\%fq ] X``)LII  DWWp-4scrWwWWWPMw ]WwMW'm  6 c wwWX(WswW W"wCԨ_EKwUضwWX&ԃ 6W]wWooqwW@]pjK'LKwW|X  WtLWXVw Pa"aaa aaa!ԵKl'l"T _L*W &֓WX(wլ[llWw: C#  (  bW.w-#,* }jWxMgwK.wW)LJXQWq#دXP WMwW W wW|X `WX_w=2w_4Kwwkw@ d. X!Wu $WU/$T=Q:UGKOF@[VMRXLBSEWNAIPJH>;Z?C9YD<wWXWBwJm[wr__^` KM(&  wT]wWtX`X X2XWW}WKwWwWtRXM!?2Ww|ww 41 J?WX&WX/WXeXWX"WWX.WX7ww  wXDwJwpq>mY$*ئMBTw  {WPWi wIWtwWWqW  Qw9a  5p gYLw >F .1WwQW~w 7  owWw9 Cu pPp  6wW(1WXWMa "wX5 XQWWW Kw :wLq ?{ײ ./ &.- Krjh MX( }  OWtWw0 c Q 4G WWXUW}I'  w WWwՐX;M|wQ.kltIHHHHHHHbgb`bpbWbXbfb^bebYbabVbhbjbkbbb]bmbib_bcbdbZbnb\blb[bocc     [7[8\\\\\\\Ɇɂwɏɀ~{ɁɋɈɎɄɇɅɑ}yxɉɃ|zɒɌɊɐɍ &%"#!$<8=@:;?9>cccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbbbbbbbbbbbb[G[H[K[F[D[C[N[J[L[O[I[E[M\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ooooooooooooooooo߄߈߆߇߅߂ߌߍߋ߃߉ߊ߀ߎ߁pCpEpAp@pBpHpGpDpFPCP@PBPDP?P>PA] ]&](]!]"]%]']$]]]#ɳɴɲɵɶɱɷ]]]]^^^^^^^^^    A<@C>B?=$$9:;dwdid{dsdkdudfdqdgdcdvdhdodrdedjdpdddxdtdldydmdzdnenemepeleop{bzws[NcWqnjToM^kXvrt]Vh_OQRgZfS`PimuaYxl\deUyRjOm^ch\VMnekJdXl[ogWaib`SPLTYNKZQf_U]f,]}wwy VXrwDw w)E   w_%LGKXDXhWpw XOXգ eKww_R_"Mtw A2_HRVeWw LXV[ 2Mew , _ijl8W9 wwww wWXWX +_UMx ](Z\]hn, / wXwW__8_kK"9wXDG lw|?w . 0/Wנ__/gGWWXiW՚,MnWrJLW ! Y :ww $ ؿbGqFLf  W}WIW wX_W Mw!? ױ *M0WXTysw'w^WW|XWWtR`_4JR  PSw7bu  _ w > MIewXגWwLwX;X(:Htde>eh pww*r.ww4@@@@ZZZZ\]^_ggggaaa`aa`````a+a,a-a.~~~~><?=XWq^tL HwB>$XDX( W9X:%o$  WX\z89qקWWwwwJW wwYZL:  SwWW _ D :  [H u wwwwMc .$T Ww!MwwW=Knt$zaWWXhMh Mzu LBw ___ `_t_w^K0.nHXi\W<WX/XTX8wXW!Fw ww w[:]XWw ٣٤4_x{WtWo0  WhwXwXH|2XeWw^{WT w``~M'B ' !wb%BWW]XVw W WXiٴWXWw WaX[www!wX(w_X`WKw MWw XEw_WXabչպ KwX_ * WW> f',kX wgדW w  M"wWW֨4.WRw@ XX;X  >` , wI%"c%w @wX^XB wwX<W^kl W> FoNxwOww :2XsU+XֵwX2XWWXHXb:(!?wX\ءt0LWWu2 'Bebdc M_Mwf>i?@Wtծ !w!?ws &'wX;׉wWXhaWw  Ww`%^c]__vwPԢhD1d ow"Bwwy W d9v zWswX'iwXN  -). ٥wwww__.3 WtWKzwWw-_]X;WX6wV  wLxZXWX:  WXVwWsX_X XUwx}uz|y{w~vKM  ` W wيWO9wXiX %nWWwyL.w9-"6&8 4:%!$3)'(,.0*#12+5/7ccccccccccccdccccdcccccdccc3c6c.c1c2c-c4c5c/c0c7[Q[Ppp pppp pp ppp p pppppppP:P;P<P=P9P8]+]>]-]F]/]A]J]I]6]B]7]H]:]?])]C]<]9];]=]8]1]L]3]4],]0]*].]G]@]E]M]5]K]2]DFDEHG_ww vm!"wX B׼8 wbKww Q bLXW ; d} ~֩^_] X WXC<WX'^ww  eWwXiWbW^3^^^^^d[B1\LwLwwwwXW^1w M*SMp^ Chwfff ^6hbOwX KwdwwX!HoKHw +E WWW  M yw_k_Z3׶X WՇxW/u9W;wsWXVX'wjGHwwXNW*MwwJX:X_/ww6WlW|PwwwwHQuAW3wLbwWX^K)WXQs  V _ Wmo=j]LLXZ X`ىL< L= V__Q^wGX yH$j*^qwwWXhX ^^`__6^_^^_W^`^__MGWW w\= wwWW Wt.www  ~2 _`!?\XbTt  S X cwwM4LrWwK$w k wy ;wef3sKW;g]} 2 ;*^K5XiX;ԴwLWFF SwwwWX_L(^wWw 2 W n 1 J $ x&fD^SW    LLٶ^;^>^?^=^:^@^<ʲʱʯʰ####### !"#CeX`Wmln\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ F!k sWW^_9_|_LA bw=Kւww N`Wwwy $WtX`X M9X( wwwCz&(o.w Ml7A 0wWM;KWWWXWZWymMP_ <LcWyXWK*WWwDG")^_hhw{\pWXWwW}X  XCWWXiLO w dqO , |X) M W|X"wj  WuXE KX7|Dw 5  fX;wQ8X oc"S pz|6qrww3b  B@ :v5 E/w(K9 T ?R rS   Wt  yw__M}IwM~ prWWqK<WtWXUWX^E ,+ok=> wD   cԐXS nWX^ n"XWX'oBWhk Q%w&ThijX XL$lW3Ww , $A)ww=fffgfffffffffffffffwhN7a^wstDKdw=wX;^  XJX#LwMXL *WbabcbwbGbgbb bab`bbbabcabbcblbac bbbHbbabbbDbPbbbybcb1bbacbaabbbcbbbbbbOababab[bYcbbbbbbcbb8b=b bcbb(bbb-b9babb6cbzcbb cbabhb'bZcbb{bbbbbb<bbbc bcbbnbabec#bucb/bXb3bababbabbfbFb>b0bc btbbb]bb4bTbbbcb+babJbbbCbbbcbbab)bbMbabbb!bbbb"b5bbbbbbabAbbcbbQbbb bbb@b^bb;cbbLab~bc bacbUb*boabbbabb#bcbabb_bbcbbbb$bbEc bdbac"bbbcbbbbbbbbbbqbbvbb&bpbbWcbcbbabrcb bab}bb?bxbabNcbbkbIb.abb7bbsabbbb%c!cabKbab:bbbRabjbiaabbVbc bb2abb|abmbb\bbbBb,bb aabbSbbb .$X298U ()'P-HV; QNT3G5O@<4#SI6E1A?M/C"*+7%>DY=J: BW F0R!,&LK .E81 yg/ 'sF!k}Be[)\ Lq60^IW>P5M]l;Dui7AX2(N3:SmrOwQp=*V%-{fna& ,J_hZ?@|#<oCctvHxjU9d4`+~"R bTKz $GY\[[[[\[[[[[[[I[[[g[[b[\[\ [U[\)[\[M[_\&[[[[[F\>[\[[[[n\?[[z[[\/[S[[[e\\\A[[\,[|[[\:[[\"\3[[[\[[s\0[[\@[[[\\[[j[[N\\([W[[[[[[K[[k[[\[[\%[\;[[\[[[[[[\[\[\1\\\6[O[T\2[[Y[~\4[[R[\!\\9[\ [\[[[[[v[[][[G[P[\D\ [[[[[\[i[h\\-[[[}\B[J[[\=[[\#\$[[^[o\ \ [[[[Q[[[[m\'[[D[y[V[[[r[l[[t[X[w[[\+[c[[Z[[L\8[[\[\[a[[[E[[\[x[\C[[[[\[[d[`[{[[[[[\\5\[f[C[\7\.[p[[\[[\ [q[[\*[u\<[[H`R``m`:a`4`=aaZ`aaau`aX`a5``U`x`ay`a[`q```ahaaab``a-`}aaSa'a``Vaara]```Q``````a)`>`aaFa1`aIaH``ama4at`ava ``^af`aUaa@`k`iaaao````a3a`E`Jax`a0a`1a``8`F`a^``Ca(`a8aaa aag`y`0`ja````````I`a`a%`a7```aA`va?`a.`;`h`@aaN`aD``ac``w`T`K`<aa$````n``A`da``a!`5`aW`X```P`a`t`anaM`2``\a~aBa`a`a``+`Ba aaa `aa``N``a``a``awaq``M`o``Ha6``[aJ`aa#`aTa:`e`3`aK``aaGa}`,aa+`r``p``a9``a`-``Sa&`ua aQa>`a `a/``aa``````as```/`a`ga*`aa`aR`aa{aaO```L`apai`]a"``|`W`9aj``D``aYa`a`.a<a,al`Z`aV`G`s`bad`{`zaEa_``f`a;``?a\a`ak`~``laa`O`6`a|aCaPa`c````az`_`7``a=``aL`ae``Ya2zyx}~v|utw{* & #' ()%!,$" +  *()+BG-aR/K*G33&06% IJ=b7^w?xKhF'PJz7esYl O i&y20U`<@ -Q2=]t;L!# >,1jMTok?mX@r;F4.8<IA5E4f9){1v#[\E9V.%_$':Dd(q SC5>$N}*/A(8n6pg)H:cu~|CHW+B",ZDwe)rf JwW+D_`Y&>^ ~W 1X  wL7Xe~W XHbe/cץ wE ^ww<^__ K -A owlEX4W!MdXX&WqWgL+\\\\\p>p?p:p8p9p;p=p7p<$$$$$ $ $$$15*720-83)/+46.,ehedeaeeegeiekecefebeje`e_HGLJKEIF\\\\\\\\\\\\  ^c^N^F^W^B^A^O^_^K^a^T^d^P^Y^X^j^Q^C^V^G^L^]^R^I^E^H^J^D^f^[^g^h^`^e^^^b^U^M^S^\^i^ZE,790H'>G63A-&D?;4*<IF28)+:/.5@(1=CB vwW  wwX(X  [ LXLw@rrWcW־vMw K9^^KM/XwWww  hW iw X(w "M&Wם|W ^Aga#@@@@@@@@_s_r_q_t_ua/1&)(*,'.0%-/+qALAHANAEAIAJAMADAKAFAG@ZZZZZZZZZwK]ww#C-Wwx:w wU XFXXcc-w<www wuww>WoWWnٳ o XV  !?ׯ_ 2K~M[X)X WmFu X2WoU __ԿKة wzwX( b wq @ wXSwW J?XWWw [Nl649785$6$9$7$3$4$5$8wz{|x~y}XlXk]]]vvvU^^^```fefcfbfefdfa@T@V@Y@S@Z@X@U@[@WLwqr\ccccccccccccccccccccccccccccccccccccccccv}yz~{|xxtu{wv}~|qsrypzWWXW olLwg JwWY5Bط_B wG#w w ٫ LX;ww^wwXF+AXi WORww w6&wXP9pY wK$%WWx֖B,nt`  MowbcdX2Xw a u=4 55KBk'WtWW__CKKX0WWwwS:LcKw.wo@y < wwww(pSX;WWKX; ywzwq/w7W_r*_)0 )WWR*zw{   FLW<Wp G /u9_< HY# ^s^`y^,^`^$^^^jWtW=uwRXa_  ?KWWWtWtw1 d w_ XMN\EG)ֻDԙ.Ww PWWWX5wwwXdWX3LW!/o  7MwWm  XX9W ,')#./$&-%(*+!?X(Q  v D^WWtWCI3 W{WXKY\WZ N    l L^ \w uWX_WXh٬w X"QRKSMLOPN~}fJfRfQfWfVfFfLfEfXfIfUfDfOfYfSfMfTfGfHfNfPfZfKvvvvvvvvvvIM<>J:TQA6B8FD@K=EO9G7SRC;H?PNL^^^``````hmjlikgnd@N@G@E@Q@M@F@H@K@B@R@D@P@C@A@J@L@O@IZ*Z-Z!Z)Z$Z.Z%Z Z+Z#Z'Z,Z(Z&Z"fff``````a`a`````````vvvvvvvvvvvwuvtrpqosx_^^^^_^^^^^_e`````@@@@@ZZZZZ~Z}Z-(,1054*.)6+3'/72g g_^IK w Q|W  U]^_]]]eeezee|eeeyeee}exe{ee~eeeewe~f9f;f6f5f8f7f:f<vkv_vsv[vgvPvcvVvyvZvmvpvzvQvevuvhv`vwvavov]vrvivbvtvYv^vnvvv\vlvUvXvOvjvxvqvSvRvdvTvWvft w؞ X WXUWwC)_;Mw XhWWWWW{X0WM2 2խ M34 bnbowZ4K $l9`4  X, G [~L = u .؅ d.o^\g/ փwwwXWWW wKGwb ~w vwG3lwmN w MwXBWXKQ&www aaaa ;< Wtw5 AQO:wPwէOwDwWW W qA A A UZZ˛ˡ˚ˣˢ˝˘˞˙ˠ˟˜@@@@@v@@u@@@@x@@@@@@~@@w@@@@@@@@@@@y@{@|@@@@}@@zQZa<+mU3>Fq%lCNbA5Vo P8p@]7IdJE& '9?"XD,BeOS6:.LrRG;0=f\jKYM-^H#4gch  1`TW2) /in$*_!( [k$#fffg)aGaaaaaaa~~~RWXiԺԻ_w  mw IMXW֙ 5&WwY. w~WWWXKwٻwX2 n.m׺w^+IXXeXbWlXK:KunL_v^ wVUTS___a6a5!wwXN]\aKY:WwwWW؎K1XXWWE 3www$#Qolqsw MpS8wwwww XWw  ԓwW  d  Sw ^EK wwX  R dK@n w״XXՅ]ّ w`X/wwX* MU;wc3321~~~~~~~~~~_0_-_/_2_3_1_.VWYXZaaAAAAAZZZ|}zy{gBgDgC NWWuXX;X`MMK^W 9' wXWWK<wj  k2w{Fw pqrf>f=f?]]]]~]] 2wSD   !عT ; N wz_XXCwrw  5 lWw  KW p LS?WwLwWP`NMu , x /WA Lأw7 u_,0G [L,_oW v M_`^կwٺwWW wFXWwWWXfwMiWWswL LXW}wKiWWW   t}WWX MhKw _!٦bWtzk20Ww&Pw 5 wywX_DwBEWo  lXZ[:,Աؘ^MPX:JKwhbdddAd [4]w~ׁׂ)WW}G Y aw  [ WWWwwwM   qwJSLTս;Wq W D $F'WwIX2WewT ^OwwwWswWXwwMؑ WwE5w5RX:gWE wWy /@r_g___k_l_d_c_j_e_`_f_i_m_o_b_h_a_n_pndcmgj[f^ph`l\]ob_iekaaaaaaaaaaaaaa aaaaaa9A#A2AA(A&A:AA;A%A>AA-A A@A=A?AAA<A4A*A6A8A0A3A/A1A$AA"A,A9A)A5A!A+A.A'A7ww_ XW  hww w `OTXԖwX;Wx3w,Wv wW7pWt$w.wF (\$\C0!(C7D(t\p.>3.wm'3k \O3# "f+I4b.>2)&D&EV (4&E7F|"|!w+S(F"g/&,W &"I"Nm }"\m/:w.w'VDO$e\\ gL\\wx.>"g- r/.>q"8&c&EN#* ""a)$"D-8#\fzQ.w"g"g'L'\' 0"y'].>$O"g:."?i'] 8 3"P\VmO)R&0#& V#c)% 0%1j1'F|'& Sm]\3] $Oc30*@).f "%gA)O4 4)":m>_?'])A%['7'(-]'H@ )D{.>;"#wf)=4C'5.g.>".wX(71- VlZ$kD&!'~" ?_&FLX"nnrf8R"i*3 = )"X]nm6`)3j"2Q! x)(y$O)FwU.> '8s<F"A")"/ut_"m'O.>nL.w_&E) q <'q,mZ.>=e  5\ LENU'?/  (0" mH_ 2U$O4\) '+"g&mRFH@M *W['&.>,I  w"DS"t[nXVg M)4!G.>.>#~D$OcM )&Y"g!#&E~n-5 G (] e]\F.>f ".,O'uWpmM0g.qmI  !s+"+f @L"o&E`Nm^ mi"U% H>vm0i (6Xn"Z' "%1+"BB"gWK/!>.>a"6"'y#~!kn.>"gz(tb V|.>,0)0 '.>Lq&"g]!rVE"gK,:@ .ws"D'6`'-">"m"m9 .>Dh.>.'V 4]&F3I-<$<$/?f2TN8%R ,*(Z0,  mfy\H P% X@.>U 0'Kj ( foh"b|.>l)O4 Y%,,*G.!'mZ@"m,I mn0=3%$eAm1"'m"n!%,f],D :M "$K 'J ahJv"gqX]/2 b)4o o CBZdm xV 5J L.wD '%'r3 9rXm,.f$O  'W7Fm.>tvfRE'5.[R"- Gp %R5K (L"9Vr#~>\o".>m\] 9M.> 'q=a.w"mW"f "g#'.Cf$p!lua}!LF|"g[>.>k&E@"gV"S"TmF.M2m%"d'5.[4"% Fm]"]'('r$'M* Gp%c !!."Vd(2SD(7S)0 }'L "P"73.>%u  ImJ-[,*{'E$4E.>.>D T^.>p""R~n"'$O |(U.>n'n om<e$4V2u%|\).>G L \)eV d0qV<"=Kf5$=x!lv'$.wg + "Z6m';)[%~U'H)Gtno.o %\(.>VT$4 lR*@.f>i {-s_.>_mt" 2'"_"g p%my^((- K&FGVZ-<$<$/NfHQ1KL%A<mm M{ .>P'F|.>.>Ys.>"mfA$pL9"\ .>(}l$4_'")&A"L$K&"K/%nWfq )4h%&EnuX'zW n  GGp%h7.>CK/2c'){l 7.2+mNn4Rfr"w ,'E"g`$O30&'*f1(H*kn8'F|4x&w#"'D^ni$O~"L X]zW0+'E "'"BV)HV"T /  f*>)K"rD$4J%8 ! ?l"g"]"g\0*l "+ o"ha"gI 1(Fz\\"g&0\ f'Kf)ym &((*)4{V"1"'m~&0$e5"!'8B.>;.>(SPb*"F,!"V'fD"g?mO/*!"g#i  ~.w,>K S&T %u`.>X]r!uh"Wv+ L$O1Q!/K(I76Tm"J(S"'m(}1f!$,=!l)zEU"gRM-LO W"g*$&Ef""$Y{Tm4"9+"DT^' CORHf#%1Tm"t'ZDkRm(( ;"$Lqwn$nQQ.>|2D''3f:$4? v)4G%&"M>J2G%,]_D]%u+.wj.> L9 "(7F )m=.>]"g3YV' ('+&Hf$n!l`fv-' (m)'cm$tz"m.w"g"n+$YVH*"':*A"!["&E*m"gz& N.>G($K;DV| @5\0 DP6`"`H)j4f'B-s([,.> C [T'+ "nhmmV"m )4zLH@Gp.>m Q& ()F5\(q7",2ne";&E'/8sNNnM2O,\y)&E"g',,(0 d!a"~L*@}.ffD3"g1\"w"Lf*\"\-zs"/$OaV\df$7O!leO".>DW< mJSp't*YV"g\U"g[y&5'% " &"D.>Ar"@I^k.>"!:\L5.w yD"? Lxm#$f 2f$Ok!l3Q +(n%%uCFv^0'}0'JS,A(c)'W\U"BCf=*'"}$i'rnRl$"0J'G*?mb"V$*m`LD*8 o'%o\"Vf.>xK-:K/'5JB8O)K&:&E.>+_| FM#~VoJp)\mB&  ,k) X"g,"Mm7(9f"=\)' '$Km +K" m (O" E&F1=-<$<$/Lf>;fVC%> F I""X0WX]#XMXt_X{WW{`D (+F' "]L>+;$4IV' \DC""g.w ,jI \S]\9V#~5 F|'\'qB"Iw e.>Y.w&Ej'#*o%u%!T /"* F'q "X Z Gp%=$"Smm&FF%+&.V)W-m"+o`("+($dnmT$K,8XI E"\G.)";#*bmmd&)fmmm*s=\ uU#6 -"g'0@9'A.> U$4D'qm1&E=)D *Gf_O} 1 [S !J".w'+U' mD U 3Gp%"im Vg m3xE.>IM m"$\\"M"I.&<"-\*]"6)&'q)'"'0:MmsF|#z% BW^.w"P e'9 /.>. R'*Y""W &Eu(7S"Mn  'tD"g#~,*G.6mm\+{&R+ mDg.wj'rQ"\.w,*-.>*FKW<'f' f$(Yf -Gb3=-F )4R.>F#<i%G0=r - %O' &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%)  71n &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%)&"[#y^X$!H(V,")!# b,J A),*K$ #-+! -%-"?* z'<.%&%*~%xR, x*#:( '(+Y*!&&0%9($"$aGT,}%.aZ pk'&M;)}%n+&!6)-+&I++|$~?c".!+B-$_G)ID' y(5,'*b)J-'4!\K%$ { O)<+/ b. G"b2 8,-V!A,*(M# *&Y#-6."$f$ )$'a.B$)#hdHw(=#\!#s%(!?|=a.# *&+ ),;$S"/kq(f!"-PeQ.N-?.% g&'# >, }*$# 5}&  .~' 0R,R""-$ ..,f-' B!'&+-.',~ (j+$&).K,N(<#c ,)-8 Ud R-9].-#'I&%&+ "x -Z)d$!P&` _%%$%#(,)+(N%"} ,,  *FCf%+P 0%P&-Z"#t %d(,oU- ,$p*G'&/+n4)-/Zy% !'*.1~$v-X+N. $J"I_!))),' Q,&D(5,h# &&2*+,*\"b-e)B&z`(rh%@#M*.G?*V'.3'U'.!s% &# b}+#$!@,g ." #1x.q4).("^A *ln$_G.D*4e3&g S"5+% M*>A$(&= &.U$7(.'$[+") !'"+*X)+!)*G%"S)&7&Hi m m.D8L'W#& %&Z % -+u \S).g#?.)'.J$=` $l{hs ,1)E*'+-)["p+A*z(*{-N "{_>(-= > R.xr'!d:,` # &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) ~&:"#" &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%)e& 6 05 8'= @3?47-(/%!A"C*+,>;2#< $9:. )B &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%)&"[#y^X$!H(V,")!# b,J A),*K$ #-+! -%-"?* z'<.%&%*~%xR, x*#:( '(+Y*!&&0%9($"$aGT,}%.aZ pk'&M;)}%n+&!6)-+&I++|$~?c".!+B-$_G)ID' y(5,'*b)J-'4!\K%$ { O)<+/ b. G"b2 8,-V!A,*(M# *&Y#-6."$f$ )$'a.B$)#hdHw(=#\!#s%(!?|=a.# *&+ ),;$S"/kq(f!"-PeQ.N-?.% g&'# >, }*$# 5}&  .~' 0R,R""-$ ..,f-' B!'&+-.',~ (j+$&).K,N(<#c ,)-8 Ud R-9].-#'I&%&+ "x -Z)d$!P&` _%%$%#(,)+(N%"} ,,  *FCf%+P 0%P&-Z"#t %d(,oU- ,$p*G'&/+n4)-/Zy% !'*.1~$v-X+N. $J"I_!))),' Q,&D(5,h# &&2*+,*\"b-e)B&z`(rh%@#M*.G?*V'.3'U'.!s% &# b}+#$!@,g ." #1x.q4).("^A *ln$_G.D*4e3&g S"5+% M*>A$(&= &.U$7(.'$[+") !'"+*X)+!)*G%"S)&7&Hi m m.D8L'W#& %&Z % -+u \S).g#?.)'.J$=` $l{hs ,1)E*'+-)["p+A*z(*{-N "{_>(-= > R.xr'!d:,` # &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%) &'#- !*%)c{