InternalMemo1XEROXToFromImagingInterest^.paMichaelPlassPlass.paSubjectDatePeachPDprintersSeptember24,19849:12:15amPDTPeachPDprintersandhowtousethemWhatisaPeachprinter?APeachprinterisaprinterthatisrunningunderthecontrolofthePeachexperimentalprintersoftware.ThePeachsoftwareiswritteninMesa11andrunsunderthePilotoperatingsystemonaDicentra.TheDicentra(whichisbasicallyastripped-downDandylionrunningonaMultibus)mayormaynothaveadiskattached;ifitdoeshaveone,itisusedonlyasagiantbufferforthepageimage,andhasnofilesystem.PeachprintersprintPDfiles,andnothingelse.OK,thenwhatisaPDfile?APDfileisafileinPrinterDependentformat.See[Indigo]<PD>Docs>*.pressforinformationontheformatofPDfilesandhowtoprintthemonAlto/Slotmachines.However,youshouldactuallynotneedtoknowanythingaboutPDfiles,exceptperhapsthattheyareawayforanInterpressimplementationtogetthebitstoaprinter.Also,ifyouareinterestedinmakingVLSIplots,youneedtomakePDfilesdirectlyfromChipNDale,sincewedon'tunderstandyethowtoexpressoverlappingtransparentcolorsinadevice-independentway.WhatPeachprintersarethere?RightnowtherearetwoPeachprinters.OneisadisklessoneconnectedtoaRaventhathasbeenmodifiedtorunat384spotsperinchinsteadof300;itsnameisMelbaanditcanbefoundinroom2322ofbuilding35.TheotheroneisCSL's4-colorVersatecplotter.IfyouusedearlierversionofthePeachsoftwarethatusedRPCasaprotocol,youwereusedtocallingthismachinebythenameofBelle;however,theDicentra'srealnameisSleepy,andthisiswhatyoumustcallitnow.Maybewecangetthenameofthismachinechanged,sincePeachprintersaresupposedtobenamedaftervarietiesofpeaches.HowdoItalktoaPeachprinter?TotalktoaPeachprinter,youuseChat.ThismeansyoucanuseaPeachprinterfromanyenvironmentthatcanusethePup/telnetprotocol,includingCedar,���pÔf‘Ó]ÓıqÔf‘ÓCN�rÔf˛Ó{sÔbÓ]ÔbÓ2PqÔ`eÓ]Ô`eÓ2PÓ7”Ô^æÓ2PsÔT—Ó]ÔT—Ó2PqÔS*Ó]ÓÌÓVÔS*Ó2PÓ9ŒÓ<BÔQÇÓ]ÓáÓ˚tÔGñÓ]ÓSÓRÓ]Ó"ÑÓ%˙Ó(Ó*˝uÔ@˘Ó]Ó'Óû�Ó“ÓıvÔ=™Ó�Ó⁄ÓÓÃÓ g�Ó!¿Ó&ÅÓ)~Ó+Ó0~Ó4∞Ó7>Ó< Ó>Ó@ñÔ<Ó]Ó§ÓBÓ$ÆÓ'íÓ+†Ó1%Ó2ùÓ7[Ó9Ó< Ó>ªÓA~Ô:[Ó]ÓbÓ√ÓÓ!,Ó%™Ó'≤�Ó(fiÓ/dÓ2>Ó7ÁÓ<pÓ=fiÓCo�Ô8¥Ó]Ó¥Ó!¬Ó'7Ó)|�Ó*‰Ó1ÑÓ4∆Ó6»Ó: Ó<æÓ@C�ÓA´Ô7 Ó]ÓdÓ◊Ó@ÓÉÓ ‹Ó#ÛÓ%\Ó&⁄Ó*)Ó-UÓ/�Ó0RÓ3ÿÓ8Ó:iÓ<€Ó@4Ô5eÓ]ÓÓâÓêÓ˘Ó PÓ$SÓ)iÓ,—Ó/FÓ2åÓ5CÓ:YuÔ2Ó]ÓXÓqÓ¬Ó9�ÓnÓÌvÔ.»Ó�Ó¢ÓÓnÓ—�ÓÚÓRÓ ˜Ó%äÓ,üÓ1‰Ó4qÔ-!Ó]Ó— ÓëÓÕÓ cÓ%Ó'Ó)ØÓ,”Ó/¡Ó2˚Ó4‡Ó8~Ó<>Ó>zÔ+yÓ]Ó&ÓMÓ ˆÓ%dÓ*mÓ,‘Ó0#Ó1ƒÓ5uÓ;Ó>ÏÓASÔ)“Ó]Ó∞ÓflÓ∞Ó √Ó#�Ó$FÓ' Ó)`Ó+S Ó1∑ Ó;òÓ=JÓ?ïÓA˜Ô(+Ó]Ó�Ó]ÓÛÓéÓÓ!ŒÓ$6 Ó*ïÓ,XÓ1UÓ5Ó8ÊÓ;±Ó?"Ó@ÂÔ&ÉÓ]ÓÙÓÓÓ• Ó'ÉÓ+Ó-aÓ1 Ó8cÓ:ŒÓ=ıÓ?≈Ô$‹Ó] ÓÁ Ó Ó$Ó% �Ó&ÙÓ3uÔ!çÓ]Ó'ÓIÓSÓ ±vÔ>ÓÓ˛Ó ÓúÓ ˘Ó#≠Ó'πÓ-ºÓ0…Ó2=�Ó3pÓ8xÓ;,ÓA∏ÓCo�ÔóÓ]Ó´ÓwÓÎÓFÓ$ Ó%ÕÓ(bÓ)˘Ó,çÓ0 Ó2|Ó5äÓ:<Ó;ÛÓ?�Ó@ŸÔÓ]Ó≈ÓÓƒÓÓûÓãÓ#ïÓ%@Ó(ÂÓ,'Ó-‹Ó3RÓ6Ó8‡Ó<|Ó?$Ó@åÔHÓ]Ó˝Ó|Ó ªÓ"7Ó$ÁÓ(Ó,ZÓ1Ó2ŒÓ5'Ó9#Ó>ïÓA]Ô°Ó]Ó€Ó´�ÓˆÓflÓ ∑Ó$*Ó'àÓ)XÓ-flÓ0¢Ó6HÓ8eÓ:ÁÓ>»Ó@£Ô˙Ó]Ó?Ó§ Ó ,Ó"ÈÓ&ÆÓ(Ó,ÓÓ/´Ó2RÓ3ƒÓ7&Ó9„Ó=QÓ?‚ÓA=ÔRÓ]Ó4ÓóÓ]Ó·Ó |Ó$vÓ&jÓ)GÓ/Ó5 Ó8∑Ó<ÙÓBEÔ´Ó]ÓgÓÓÓåÓ"»Ó(*Ó)„uÔ\Ó]ÓÆÓû�Ó¶ÓsÓ,�ÓaÓ!ÉvÔÓÓiÓCÓ�ÓaÓ áÓ%îÓ(nÓ+Ó/ÖÓ2¬Ó7)Ó:Ó<±Ó?I�Ó@ñÔ fÓ]Ó‹Ó1Óø Ó#ªÓ&wÓ(Ó+RÓ-ü Ó4sÓ:'Ó@)ˇ�������•��������TVm$D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������InternalMemo2Tajo,Alto,Lisp,Smalltalk,Vaxc,andevenvisDLSoveraphoneline.YoucanalsotalktoaPeachprinterusingtheprinter'sterminal(usuallyaglassTTY),ifithasone.ThepeachprinterqueuestherequeststhatitreceivesviaitsChatconnections,andprocessesthemoneatatime.Therequestsspecifyafullpathname,i.e.,print[Indigo]<Peach>384>TestPattern.pdandwhentheprinterisreadytoprintthefile,itwillretrieveitusingthePup/FTPprotocol.IfyouarerunningCedar,youcanstartupSTPServerandhavethePeachprintergetyourPDfiledirectlyfromyourdisk.Forexample,ifyouhadcreatedthefile[]<>Users>BCDull.pa>Chip.pdonthemachineXyz,youwouldsayprint[Xyz]<Cedar>Users>BCDull.pa>Chip.pdtothechattool.WhatdoIsay?Thefirstthingyoudoislogin,justasifyouwerechattingtoanIFS(ifyouarechattingfromCedar,theChatprogramwillloginforyou).YourusercredentialswillbesavedsotheservercanusethemwhenitgoestofetchyourPDfile.NextsayHelp<CR>togetthelistofpossiblecommands.Youwillprobablybeabletoplayitbyearfromthere,butjustforcompleteness,herearethecommandsandwhattheydo:Login<user><password>[<account>]Tellstheserverwhoyouare.Cancel<requestnumber>Cancelstheindicatedrequest.Check<requestnumber>Tellsthestatusoftheindicatedrequest.Notethatiftherequesthasfinishedprinting,thestatuswillbe"notfound".HelpGivesalistofcommands.ListQueueDisplaysthecurrentqueueofrequests,andtellsifprintingissuspended.Messages<string>ThePeachprinterkeepsalogofmessagesthatmaybeofinterest;theyaredisplayedontheprinter'sterminalastheyaregenerated.Thiscommandmaybeusedtoexamineallorpartofthemessagelog.Onlymessagescontainingthestringwillbeshown(sorry,nopatternmatching).Anemptystringwillgetyoueverything.Twointerestingstringstouseareyourusername(toseewhathappenedtoallyourrequests),andarequestnumber(e.g.,R033),tofindoutwhathappenedtoaparticularrequest.Print<fileName><copies><title>Makesaprintrequest.OnmachinesliketheVersatec,thetitlestringwillappearinthetitleblocksthatseparatepages.ReprintReprintsthecurrentpageimage.ResetQueueClearsouttheprintqueueandthemessagelog.Excessiveuseofthis��pÔf‘Ó]ÓıqÔf‘ÓCN�vÔb2Ó]ÓˇÓãÓ Ó"úÓ&ÅÓ)RÓ,≤Ó.ËÓ2TÓ5à�Ó6ÀÓ;Ó>ÂÓBÔ`ãÓ]Ó8Ó˛Óª�ÓÛÓÓ"•Ó&]Ó(ÃÓ.HÓ3–Ó9�Ó:CÓ=òÓA”ÓCCÔ^‰Ó]Ó(Ó\ÓãÓŸÓ$¡Ó)¿Ó,uÓ2%Ó5IÓ6ˆÓ<wÓ?ÓA<Ô]<Ó]Ó[Ó8Ó"[Ó& Ó(€Ó*ô�Ó+ËÓ04Ó32Ó8∞Ó=s�Ó>¬ÓArÔ[ïÓ]ÓuÔYÓÓá!ÔVûÓ]ÓÓ≈Ó"Ó±Ó Ó#„Ó%èÓ(ıÓ+RÓ.Ó/fÓ2Ó7Ó8`Ó<Ó>dÔT˜Ó]ÓãÓ˛ÓßÓÏÓ#Ó'wÓ* Ó,ùÓ/üÓ1£Ó8dÓ; Ó>EÓ@ñÔSPÓ]Ó˝ÓTÓùÓ Ó óÓ%öÓ)Ó,XÓ0>Ó2˜Ó8÷Ó:EÓ= Ó?œÔQ®Ó]ÓºÓ&Ó(≠Ó*≥Ó-Ó2óÓ5«Ó8~Ó<¨ÔO-ÓÓá#ÔL≤Ó]ÓÓkÓeuÔIcÓ]Ó'Ó�Ó vÔFÓÓÓÊÓÜÓ HÓ"[Ó#“Ó'≥Ó*`Ó,Ó-ÜÓ0HÓ3•Ó8ÙÓ:ÆÓ<™Ó?¸ÓA‚ÔDlÓ]ÓòÓ√ÓÓ iÓ"∞Ó%ıÓ+kÓ-˛Ó1cÓ3áÓ7cÓ:›Ó=æ ÔB≈Ó]ÓÓÓ◊Ó°ÓÓ"Ó$¨Ó''Ó*∑Ó.rÓ/œÓ2ÔÓ4§Ó8Ó;`Ó=€ÓA-ÔAÓ]Ó≈Ó©ÓaÓ¥Ó!Ó#dÓ%&Ó*qÓ2EÓ5^Ó8Ó=ÓÓ?ËÓBÍÔ?vÓ]ÓÇÓ˘ÓÓäÓÓ"Ó$∂Ó'xÓ)÷Ó2¨Ó5ÁÓ8[Ó:€ÓA‚Ô=œÓ]Ó∫Ó Ô;SÓ]Ó^Ó∏ Ó! wÔ9¨ÓnÓ Ó)Ó6Ó :Ó"ÒvÔ70Ó]ÓÓÓswÔ5âÓnÓÑÓ„Ó ◊vÔ3 Ó]Ó¢Ó&wÔ1fÓnÓ Ó)Ó�ÓπÓ!Ó'Ó,ΩÓ03Ó3Ó4bÓ6¬Ó;ñÓ>Ô/æÓAÓ€Ó;Ó Ó"ΩÓ$ÆÓ'”vÔ-CÓ]wÔ+õÓnÓY�ÓÉÓ¡ÓzvÔ) Ó]wÔ'xÓnÓ˝Ó]Ó &Ó$JÓ&Ó+¥Ó.lÓ1OÓ2∞Ó7ÚÓ9] vÔ$˝Ó]ÓewÔ#UÓnÓFÓIÓ€Ó"∞�Ó#⁄Ó&-Ó'ÊÓ-¬Ó0êÓ3îÓ5ÖÓ7>Ó<ñÓ?¶Ô!ÆÓAÓ`ÓfÓ∆Ó$4Ó)≠Ó+[Ó.kÓ0æ Ó7ÂÓ:ˇÓA`Ô ÓAÓ2ÓnÓÓ ïÓ"ÖÓ$IÓ',Ó(ÂÓ+EÓ0úÓ3ÀÓ7=Ó= Ô_ÓAÓ°ÓvÓ"ÓÓ#aÓ'∞Ó)∂Ó.u Ó5»Ó8Ó<UÓ@+Ô∏ÓAÓäÓA Ó ·Ó$ Ó*øÓ/Ó0«Ó3<Ó5êÓ8ÀÓ;ƒÓ?ÑÓA¨ÔÓAÓûÓıÓ§Ó!îÓ$œ Ó*˘Ó-±�Ó.⁄Ó3ØÓ8€Ó<6Ó@¶ÔiÓAÓ/Ó•ÓÓ#YÓ%�Ó&1 Ó,gvÔÓÓ]Ó– Ó1Ó!¿wÔFÓnÓ”�Ó˝ÓeÓ"Ó$sÓ*|Ó-'Ó/áÓ5dÓ7√Ó:ëÓ>fÔüÓAÓ»ÓvÓ’Ó£Ó#ÁÓ&µÓ,vÔ$Ó]wÔ|ÓnÓ ÓhÓ 2Ó#yvÔ �Ó] wÔYÓnÓßÓÓ|Ó‰Ó$Ó&øÓ)Ó.vÓ1•Ó7√Ó:8Ó;Òˇ�������¿��������TVm$ó��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������InternalMemo3commandmaygeneratepeerpressure.SetLoginMessage<message>Setsthemessagepeoplegetwhentheylogin;saywhatyouwill,butrememberthemessagewillhaveyournameonit.StartUn-suspendstheprinter.StopSuspendstheprinterassoonasitfinishesthecurrentrequest.Wait<requestnumber>Doesnotreturnuntiltheindicatedrequestiscompleted,eithernormallyorabnormally.UsefulforsynchronizingthedeletionofaPDfile.QuitCausestheservertoclosethechatconnection.Ifyouloginattheprinter'sterminal,besuretoquitsothattheterminalcanbeusedtodisplaymessagesagain.DoIhavetouseChattoprintmyPDfiles?Yes,rightnowyoudo.MaybesomeonewillstepforwardtowriteaCedarinterfacethatgoesthroughttheChatprotocol,ortoaddanRPCinterfaceforqueueingprintrequests.Inanycase,whentheInterpressserverbecomesreal,itwilldothetalkingtothePDprinter,soyouwon'thaveto.AccordingtotheChatdocumentation,itoughttobepossibletowriteacommandfileforissuingaprintingrequest.���pÔf‘Ó]ÓıqÔf‘ÓCN�wÔb0ÓAÓ¢Ó¶Ó#*Ó&EvÔ_µÓ]Ó9wÔ^ ÓnÓRÓ±Ó Ó"ÑÓ$ÕÓ(ÇÓ+íÓ/àÓ1ÁÓ5DÓ7˚Ó:˛Ó=Ô\fÓAÓ°Ó¯Ó£Ó!ÍÓ%%Ó(ÂÓ*ÎvÔYÎÓ]wÔXDÓn ÓüÓˇvÔU…Ó]wÔT!ÓnÓÉÓ‚Ó tÓ""Ó%hÓ'Ó(lÓ-lÓ/ÀÓ4ïvÔQ¶Ó]ÓπÓ>wÔOˇÓnÓ˜ÓlÓöÓ ·Ó#AÓ)4Ó. Ó/u Ó6|Ó:hÓ@9ÔNXÓA ÓZÓ Ó#Ó+∆Ó.&Ó3sÓ5,�Ó6VÓ8ÀvÔK›Ó]wÔJ5ÓnÓÓjÓwÓ %Ó#åÓ%ÏÓ(Ê Ó0æÓ2@Ó4˜Ó8tÓ:Ó<lÔHéÓAÓÓÓ¸Ó ´Ó#èÓ%SÓ(!Ó*ÄÓ/˘Ó2ÑÓ4uÓ7±Ó9_Ó>ÔFÁÓAuÔCòÓ]Ó∞�ÓπÓÈÓ¢ÓÓrÓ!+Ó$|Ó&πÓ)8vÔ@IÓÓQÓ»ÓÓ ÀÓ#ˆÓ(∑Ó.ñÓ1fÓ4nÓ9æÓ;ëÓ?3�Ó@ÅÔ>¢Ó]ÓAÓNÓ¶Ó#ãÓ&)Ó)ƒÓ/…Ó1ÀÓ3∏Ó6ÆÓ8›Ó<xÓB\Ô<˚Ó]ÓwÓ˚Ó!gÓ#RÓ&Ó)qÓ-BÓ/Ω Ó6:Ó:bÓ@ÓCCÔ;SÓ]Ó ÓÓpÓÓ∞Ó!Ó#ÜÓ(pÓ*5Ó,ÏÓ0∑Ó3˛Ó6âÓ=-Ó>‹ÓA<Ô9¨Ó] Ó ÓMÓ 'Ó!√Ó#¢Ó(—Ó*mÓ-Ÿ�Ó.Ó5?Ó7ñÓ9¿Ó>?�Ó?WÔ8Ó]ˇ�������}��������TVm$≤��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������--PDBitBltTiming.mesa--MichaelPlass,4-Mar-8411:17:27PDBitBltTiming:DEFINITIONS={ResetBitBltMicroseconds:PUBLICPROC;GetBitBltMicroseconds:PUBLICPROCRETURNS[LONGCARDINAL];}.���wÔ_,Ó‚ÓYÔ]ÖÓµÓ,ÓyÓΩÓ ƒÔZ6ÓµÓd Ó$k�Ó&P�ÔVÁÓµÓëÓ%WÔSôÓµÓàÓ$NÓ(æÓ0+Ó5Z ÔPJÓµˇ��������´��������TVm$�@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDChatServerStub.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September11,19843:54:15pmPDTDIRECTORYPupTypes,PupDefs,PupStream,IO,Rope,Stream,PDUser;PDChatServerStub:CEDARPROGRAMIMPORTSPupDefs,PupStream,Stream,PDUser=BEGINNewConnection:PROCEDURE[stream:IO.STREAM,pupAddress:PupDefs.PupAddress]=TRUSTED{otherGuy:Rope.ROPE_PupDefs.GetHostName[pupAddress];s:Stream.Handle_Stream.FromIOStreams[stream,stream];PDUser.TalkWithUser[s!PupStream.StreamClosing=>CONTINUE];Stream.Delete[s];};pupListener:PupStream.PupListener_PupStream.CreatePupByteStreamListener[local:PupTypes.telnetSoc,proc:NewConnection,ticks:PupStream.SecondsToTocks[300]];END.���xÔ_,Ó‚Ô]ÖÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXèÓ‚wÔXèÓKÓÓ# yÓ*xÔXè�ÔXèÓ*‚�wÓ+æÔXè�ÔXèÓ,õÓ0®Ó5≥ÔU@Ó‚yÓ8ÔU@�ÔU@ÓÓ≥ÔSôÓÛwÔSôÓ£Ó° Ó$Ó)ÔQÒÓÛ�yÓÿÔQÒ�ÔQÒÓëuÔN£ÓÛwÓVÔN£�ÔN£yÓSÔN£�ÔN£Ó˚wÔN£Ó#yÓ(YÔN£�ÔN£Ó(¬�wÓ)üÔN£�yÔN£Ó)ˆwÓ.¡ÔN£�ÔN£Ó/ù ÔL˚Ó∆ÓO�yÓ!4ÔL˚�ÔL˚Ó!ÌwÔL˚Ó'"�ÔKTÓÓæyÓFÔKT�ÔKTÓwÔKTÓ €�Ó"hÔI≠ÓÓÜÓÏ�ÓyÓ2∆ÔHÓÓ!˜�Ó"ıÓ3yÓ5ùÔH�ÔHÓ6hwÓ;◊ÔH�ÔHÓ<:�ÔF^ÓÔD∑ÓÔAhÓÛÓÓ'∂�Ô?¡Ó∆&Ô>ÓÓƒÔ<rÓÓ£ Ô:ÀÓÓÆÔ9#ÓyÔ5’ÓÛwÓ{Ô5’�Ô5’ˇ�������ï��������TVm$����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDFileFormat.mesaCreatedMarch14,1983MichaelPlass,April29,198311:01amPDFileFormat:DEFINITIONS=BEGINpasswordValue:CARDINAL=125252B;versionValue:CARDINAL=1B;DeviceCode:TYPE=MACHINEDEPENDENT{invalid(0),raven(1),hornet(2),gnat(3),mig(4),reticleMaker(5),puffin(6),last(LAST[CARDINAL])};Herald:TYPE=MACHINEDEPENDENTRECORD[password(0):CARDINAL_passwordValue,version(1):CARDINAL_versionValue,deviceCode(2):DeviceCode_invalid,sResolution(3):CARDINAL,fResolution(4):CARDINAL,imageSSize(5):CARDINAL,imageFSize(6):CARDINAL,bandSSize(7):CARDINAL,maxLoadWord(8):LONGCARDINAL,copies(10):CARDINAL];Typ:TYPE=MACHINEDEPENDENT{control(0),imaging(2)};ImagingCom:TYPE=MACHINEDEPENDENT{maskSamplesRef(0),maskRunGroupRef(1),maskRectangle(2),maskTrapezoid(3),maskRunGroup(4),maskSamples(5),colorSamples(6)};ControlCom:TYPE=MACHINEDEPENDENT{startImage(0),setPriority(1),setColorInk(2),setColorClear(3),setColorTile(4),endBand(5),endDocument(6),storeLoad(7),deviceCommand(8)};���xÔ_,Ó‚Ô]ÑÓ‚ÓÔÓTÓëÔ[›Ó‚Ó$ÓÓÅÓæÓ!Ó$√wÔYbÓ‚yÓâÔYb�ÔYbÓn wÔYbÓ ®�yÓ"çÔYb�ÔYbÓ#FwÔVÁÓÛ yÓ›ÔVÁ�ÔVÁÓ®wÔVÁÓ!ò�Ó#}ÔU?ÓÛyÓßÔU?�ÔU?ÓrwÔU?Ó b�Ó"GÔSòÓÛ yÓ/ÔSò�ÔSòÓËwÔSòÓ†�yÓÖÔSò�ÔSòÓóÔSòÓ$´wÔSòÓ,X�ÔQÓ ÔPHÓÔN°Ó ÔL˘ÓÔKRÓÔI™ÓÔHÓ ÔF[ÓyÓyÔF[�ÔF[Ó2wÓ^ÔF[�yÔF[Ó¡wÓ¯ÔF[�ÔF[Ó[�ÔD¥ÓÔB9ÓÛyÓ ÔB9�ÔB9Ó√wÔB9Ó|�yÓaÔB9�ÔB9ÓrÔB9Ó!áÔB9Ó)4wÔB9Ó.¶�Ô@ëÓyÓÔ@ë�Ô@ëÓÈwÔ@ëÓ!Ÿ�Ó#f Ô>ÍÓ yÓÈÔ>Í�Ô>ÍÓ≥wÔ>ÍÓ §�Ó"1Ô=BÓ Óã Ó$M�Ó%⁄Ô;öÓyÓïÔ;ö�Ô;öÓ`wÓ"ÃÔ;ö�Ô;öÔ9ÛÓyÓäÔ9Û�Ô9ÛÓUwÓ"¡Ô9Û�Ô9ÛÔ8KÓ yÓ^Ô8K�Ô8KÓ)wÓ"ïÔ8K�Ô8KÔ6§Ó yÓ~Ô6§�Ô6§ÓIwÓ"µÔ6§�Ô6§Ô4¸ÓyÓ–Ô4¸�Ô4¸ÓõwÓ"Ô4¸�Ô4¸Ô3UÓyÓõÔ3U�Ô3UÓTÔ3UÓ"åwÓ(√Ô3U�Ô3UÔ1≠Ó yÓ�Ô1≠�Ô1≠Ó wÔ0ÓÔ-ãÓÛyÓPÔ-ã�Ô-ãÓ wÔ-ãÓ¡�yÓ¶Ô-ã�Ô-ãÓ∏Ô-ãÓÃwÔ-ãÓ'yÓ.◊Ô+ÓÛ yÓ≤Ô+�Ô+ÓkwÔ+Ó#�yÓÔ+�Ô+Ó Ô+Ó%.wÔ+Ó,€�Ô)hÓÔ'¿ÓÔ&ÓÔ$qÓÔ" ÓÔ!"ÓÔ{ÓÔ”ÓÔXÓÛ yÓeÔX�ÔXÓwÔXÓ÷�yÓªÔX�ÔXÓÕÔXÓ$·wÔXÓ,é�Ô±Ó Ô ÓÔaÓÔ∫ÓÔÓÔkÓ Ô√ÓÔÓÔtÓÔ ÕÓˇ�������µ��������TVm$������������������������������2transparentFlag:[0..1]=1;opaqueFlag:[0..1]=0;Command:TYPE=MACHINEDEPENDENTRECORD[command(0):SELECTtyp(0:0..1):TypFROMimaging=>[com(0:2..7):ImagingCom,addrHighBits(0:8..15):[0..256)_0],addrHighBitsisusedbythemaskSamplesRefandmaskRunGroupRefcommands.control=>[com(0:2..7):ControlCom,rest(0:8..15):[0..256)_0]restisusedbythesetPriorityandsetColorTilecommands.ENDCASE];SampleArray:TYPE=MACHINEDEPENDENTRECORD[sSize(0):CARDINAL,fSize(1):CARDINALFollowedbytheactualscanlines,eachpaddedouttoaword.];Tile:TYPE=MACHINEDEPENDENTRECORD[phase(0):CARDINAL,sMin(1):CARDINAL,fMin(2):CARDINAL,sSize(3):CARDINAL,fSize(4):CARDINALFollowedbytheactualscanlines,eachpaddedouttoaword.];RunGroup:TYPE=MACHINEDEPENDENTRECORD[sSize(0):CARDINALFollowedbytheRuns.];Run:TYPE=MACHINEDEPENDENTRECORD[fMin(0):CARDINAL,lastRun(1:0..0):BOOLEAN,fSize(1:1..15):NAT];MaskRectangle:TYPE=MACHINEDEPENDENTRECORD[sMin(0):CARDINAL,sSize(1):CARDINAL,fMin(2):CARDINAL,fSize(3):CARDINAL];MaskTrapezoid:TYPE=MACHINEDEPENDENTRECORD[sMin(0):CARDINAL,sSize(1):CARDINAL,fMin(2):CARDINAL,fSize(3):CARDINAL,fMinLast(4):CARDINAL,fSizeLast(5):CARDINAL];���qÔg/ÓE…�wÔ_,ÓÛÓ@Óö�Ó ÄÔ]ÑÓÛ ÓÏÓG�Ó,Ô[ ÓÛyÓ0Ô[ �Ô[ ÓÈwÔ[ Ó¢�yÓáÔ[ �Ô[ ÓòÔ[ Ó#≠Ô[ Ó+ZwÔ[ Ó0Ã�ÔYaÓ yÓÇÔYa�ÔYaÓ!wÔYaÓ UÓ'eyÓ*HÔYa�ÔYaÓ+wÔWπÓÓWÓÏÓ$˘ Ó-ñÓ;`Ó@1�ÔVÓËxÔTjÓ'ÓÖÓ ÒÓ$Ó%‹Ó(( Ó2öÓ5>ÔR√Ó˙wÔQÓÓ»Ó^Ó$k Ó,ª Ó4≤Ó9É�Ó;xÔOsÓ'ÓøÓ*Ó;Ó Ó"a Ó(ÒÓ+ïÓ37yÔMÃÓwÔL$ÓÔI®ÓÛyÓΩÔI®�ÔI®ÓvwÔI®Ó/�yÓÔI®�ÔI®Ó %ÔI®Ó%:ÔI®Ó,ÁwÔI®Ó2Y�ÔHÓyÓìÔH�ÔHÓ^wÓ ÔH�ÔHÔFYÓyÓàÔFY�ÔFYÓSxÔD±ÓÓøÓôÓÂÓ ıÓ$Ó'àÓ*ØÓ/@Ó1¢Ó3G�Ó4{wÔC ÓÔ@éÓÛyÓDÔ@é�Ô@éÓ˝wÔ@éÓ∂�yÓõÔ@é�Ô@éÓ¨Ô@éÓ¿Ô@éÓ'nwÔ@éÓ,‡�Ô>ÊÓyÓÔ>Ê�Ô>ÊÓÕwÓ9Ô>Ê�Ô>ÊÔ=>ÓyÓ©Ô=>�Ô=>ÓtwÓ‡Ô=>�Ô=>Ô;óÓyÓûÔ;ó�Ô;óÓiwÓ’Ô;ó�Ô;óÔ9ÔÓyÓìÔ9Ô�Ô9ÔÓ^wÓ Ô9Ô�Ô9ÔÔ8GÓyÓàÔ8G�Ô8GÓSxÔ6üÓÓøÓôÓÂÓ ıÓ$Ó'àÓ*ØÓ/@Ó1¢Ó3G�Ó4{wÔ4¯ÓÔ2|ÓÛyÓÔ2|�Ô2|Ó8wÔ2|Ó�yÓ’Ô2|�Ô2|ÓÁÔ2|Ó#˚Ô2|Ó+®wÔ2|Ó1�Ô0‘ÓyÓìÔ0‘�Ô0‘Ó^xÔ/-ÓÓøÓôÓÂwÔ-ÖÓÔ+ ÓÛyÓáÔ+ �Ô+ Ó@wÔ+ Ó˘�yÓfiÔ+ �Ô+ ÓÔÔ+ Ó Ô+ Ó'±wÔ+ Ó-#�Ô)bÓyÓûÔ)b�Ô)bÓiwÓ’Ô)b�Ô)bÔ'∫ÓyÓ¿Ô'∫�Ô'∫ÓywÓ"aÔ'∫�Ô'∫Ô&ÓyÓ¬Ô&�Ô&Ó™wÔ$jÓÔ!ÔÓÛ yÓ Ô!Ô�Ô!ÔÓ¬wÔ!ÔÓz�yÓ _Ô!Ô�Ô!ÔÓ!qÔ!ÔÓ&ÖÔ!ÔÓ.2wÔ!ÔÓ3•�Ô GÓyÓ©Ô G�Ô GÓtwÓ‡Ô G�Ô GÔ†ÓyÓìÔ†�Ô†Ó^wÓ Ô†�Ô†Ô¯ÓyÓûÔ¯�Ô¯ÓiwÓ’Ô¯�Ô¯ÔPÓyÓàÔP�ÔPÓSwÔ®ÓÔ-ÓÛ yÓ)Ô-�Ô-Ó‚wÔ-Óö�yÓ ÄÔ-�Ô-Ó!ëÔ-Ó&•Ô-Ó.RwÔ-Ó3≈�ÔÖÓyÓ©ÔÖ�ÔÖÓtwÓ‡ÔÖ�ÔÖÔ›ÓyÓìÔ›�Ô›Ó^wÓ Ô›�Ô›Ô6ÓyÓûÔ6�Ô6ÓiwÓ’Ô6�Ô6ÔéÓyÓàÔé�ÔéÓSwÓøÔé�ÔéÔÊÓyÓÔÊ�ÔÊÓÈwÓ!UÔÊ�ÔÊÔ >ÓyÓÔ >�Ô >Ó”wÔóÓ�������M��������TVm$ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3MaskRunGroup:TYPE=MACHINEDEPENDENTRECORD[sMin:CARDINALFollowedbytheRunGroup];MaskSamples:TYPE=MACHINEDEPENDENTRECORD[sMin:CARDINAL,fMin:CARDINALFollowedbytheSampleArray];MaskRunGroupRef:TYPE=MACHINEDEPENDENTRECORD[addrLowBits:CARDINAL,HighbitsareinthecommandwordsMin:CARDINAL,fMin:CARDINAL];MaskSamplesRef:TYPE=MACHINEDEPENDENTRECORD[addrLowBits:CARDINAL,HighbitsareinthecommandwordsMin:CARDINAL,fMin:CARDINAL];ColorSamples:TYPE=MACHINEDEPENDENTRECORD[sMin:CARDINAL,fMin:CARDINALFollowedbytheSampleArray];Priority:TYPE=MACHINEDEPENDENTRECORD[restfieldofControlComcontainshighorderbitsofpriority.priorityLowBits:CARDINAL];SetColorTile:TYPE=MACHINEDEPENDENTRECORD[restfieldofControlComcontainstransparentFlagoropaqueFlag.addr:LONGCARDINAL];Toner:TYPE=MACHINEDEPENDENT{black(0),cyan(1),magenta(2),yellow(3)};StartImage:TYPE=MACHINEDEPENDENTRECORD[filler(0:0..8):[0..512)_0,leftOverMode(0:9..9):BOOLEAN,feed(0:10..10):BOOLEAN,strip(0:11..11):BOOLEAN,toner(0:12..15):Toner,passBands(1):NAT,nBands(2):NAT,fMinPage(3):CARDINAL,fSizePage(4):CARDINAL];StoreLoad:TYPE=MACHINEDEPENDENTRECORD[��qÔg/ÓE…�wÔ_,ÓÛyÓ∫Ô_,�Ô_,ÓswÔ_,Ó+�yÓ!Ô_,�Ô_,Ó""Ô_,Ó'6Ô_,Ó.„wÔ_,Ó4V�Ô]ÖÓyÓÔ]Ö�Ô]ÖÓ—xÔ[›ÓÓøÓôÓÂwÔZ5ÓÔW∫ÓÛyÓÔW∫�ÔW∫ÓœwÔW∫Óá�yÓlÔW∫�ÔW∫Ó ~ÔW∫Ó%íÔW∫Ó-?wÔW∫Ó2≤�ÔVÓyÓÔV�ÔVÓ—wÓ=ÔV�ÔVÔTkÓyÓ˚ÔTk�ÔTkÓ∆xÔRƒÓÓøÓôÓ wÔQÓÔN°ÓÛyÓ·ÔN°�ÔN°ÓöwÔN°Ó!S�yÓ#8ÔN°�ÔN°Ó$IÔN°Ó)^ÔN°Ó1wÔN°Ó6}�ÔL˙ÓyÓòÔL˙�ÔL˙ÓcwÓ!œÔL˙�ÔL˙xÔKRÓÓîÓ ÓtÓÓ!fÓ'ÅwÔI™ÓyÓÔI™�ÔI™Ó—wÓ=ÔI™�ÔI™ÔHÓyÓ˚ÔH�ÔHÓ∆wÔF[ÓÔC‡ÓÛyÓ=ÔC‡�ÔC‡Ó˜wÔC‡ÓØ�yÓ!îÔC‡�ÔC‡Ó"¶ÔC‡Ó'∫ÔC‡Ó/gwÔC‡Ó4Ÿ�ÔB9ÓyÓòÔB9�ÔB9ÓcwÓ!œÔB9�ÔB9xÔ@ëÓÓîÓ ÓtÓÓ!fÓ'ÅwÔ>ÍÓyÓÔ>Í�Ô>ÍÓ—wÓ=Ô>Í�Ô>ÍÔ=BÓyÓ˚Ô=B�Ô=BÓ∆wÔ;õÓÔ9ÓÛyÓ7Ô9�Ô9ÓwÔ9Ó®�yÓçÔ9�Ô9Ó üÔ9Ó%≥Ô9Ó-`wÔ9Ó2”�Ô7xÓyÓÔ7x�Ô7xÓ—wÓ=Ô7x�Ô7xÔ5–ÓyÓ˚Ô5–�Ô5–Ó∆xÔ4)ÓÓøÓôÓ wÔ2ÅÓÔ0ÓÛyÓlÔ0�Ô0Ó%wÔ0Ó›�yÓ¬Ô0�Ô0Ó‘Ô0Ó!ËÔ0Ó)ïwÔ0Ó/�xÔ._ÓÓúÓ°ÓD Ó"Ó'VÓ*gÓ-ÔÓ0|Ó2wÔ,∑ÓyÓPÔ,∑�Ô,∑ÓwÔ+ÓÔ(ïÓÛyÓ{Ô(ï�Ô(ïÓ4wÔ(ïÓÏ�yÓ“Ô(ï�Ô(ïÓ„Ô(ïÓ$˜Ô(ïÓ,§wÔ(ïÓ2�xÔ&ÌÓÓúÓ°ÓD Ó"Ó'VÓ1Ó2 wÔ%EÓyÓ∫Ô%E�Ô%EÓsÔ%EÓ™wÔ#ûÓÔ!#ÓÛyÓÑÔ!#�Ô!#Ó=wÔ!#Óˆ�yÓ€Ô!#�Ô!#ÓÏÔ!#Ó!�wÔ!#Ó(Æ Ó/Ó4: Ô{Ó' Ô‘ÓÛ yÓhÔ‘�Ô‘Ó"wÔ‘Ó⁄�yÓøÔ‘�Ô‘Ó—Ô‘Ó#ÂÔ‘Ó+íwÔ‘Ó1�Ô,ÓÓ˚ÓÃ�Ó!YÔÖÓyÓ äÔÖ�ÔÖÓ!CwÓ&*ÔÖ�ÔÖÔ›ÓyÓÔ›�Ô›Ó”wÓ!∫Ô›�Ô›Ô6ÓyÓ0Ô6�Ô6ÓÍwÓ!—Ô6�Ô6ÔéÓÓ©ÔÁÓyÓπÔÁ�ÔÁÓ°wÓ.ÔÁ�ÔÁÔ?Ó yÓ Ô?�Ô?ÓÛwÓÄÔ?�Ô?ÔòÓyÓkÔò�ÔòÓ6wÓ!¢Ôò�ÔòÔÓyÓUÔ�ÔÓ wÔ IÓÔ ŒÓÛ yÓÔ Œ�Ô ŒÓ‘wÔ ŒÓå�yÓqÔ Œ�Ô ŒÓÉÔ ŒÓ#óÔ ŒÓ+DwÔ ŒÓ0∑��������:��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4firstAddress(0):LONGCARDINAL,wordCount(2):CARDINALFollowedbythedatawords];END.���qÔg/ÓE…�wÔ_,ÓyÓ¡Ô_,�Ô_,Ó{Ô_,Ó ≤wÓ&ÈÔ_,�Ô_,Ô]ÖÓyÓ_Ô]Ö�Ô]ÖÓ*xÔ[›ÓÓøÓôÓÂÓÎwÔZ6ÓyÔWªÓÛwÓ{ÔWª�ÔWª��������O��������TVm$�I��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpBasic.mesaCopyright(C)1983,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,198410:16:51amPDTPDInterpBasic:DEFINITIONS=BEGINStatus:TYPE={Nilstatus:nil,Normalstatus:betweenPages,constructingImage,transmissionComplete,Printererrors:paperJam,outOfPaper,serverAbort,PDFileErrors:invalidPassword,objectOutOfBounds,missingStartImage,badLoadReference,unrecognisedImagingCommand,loadOutOfBounds,unrecognisedControlCommand,unrecognisedCommandType,unexpectedEOF,runGroupTooLong,bitmapTooBig,deviceCommandTooBig,PDFileWarnings:wrongFormatVersion,unreasonableResolution,unreasonableBandSSize,unreasonableImageSize,unreasonableLoadSize,unreasonableNumberOfCopies,objectOutOfBand,emptyRunGroup,nonZeroFill,imageBoundsExceedPageBounds,tooFewBands,unknownColorTileFlag};PDErrorCode:TYPE=Status[invalidPassword..deviceCommandTooBig];PDWarningCode:TYPE=Status[wrongFormatVersion..unknownColorTileFlag];END.��xÔ_:Ó‚Ô]ìÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó -Ó#sÓ) Ó+WuÔZDÓ‚wÓ´ÔZD�ÔZDyÓ©ÔZD�ÔZDÓé wÔZDÓ »�yÓ"≠ÔZD�ÔZDÓ#fwÔXùÓ‚yÓuÔXù�ÔXùÓ.wÔXùÓÊ�ÓÃ�xÔVıÓÛÓQwÔUNÓxÔSßÓÛÓÈwÔQˇÓÔPXÓÔN±ÓxÔM ÓÛÓîwÔKbÓÔIªÓ ÔHÓxÔFlÓÛÓrÓ4wÔD≈ÓÔCÓÔAvÓÔ?œÓÔ>'ÓÔ<ÄÓÔ:ŸÓÔ91ÓÔ7äÓ Ô5„ÓÔ4;ÓÔ2îÓxÔ0ÌÓÛÓrÓ4wÔ/EÓÔ-ûÓÔ+˜ÓÔ*OÓÔ(®ÓÔ'ÓÔ%YÓÔ#≤Ó Ô"ÓÔ cÓÔºÓÔÓÔmÓÛÔÓ‚yÓ%Ô�ÔÓflwÔÓó�Ó|-ÔwÓ‚ yÓ!Ôw�ÔwÓ⁄wÔwÓì�Óx1yÔ)Ó‚wÓiÔ)�Ô)�������ä��������TVm$"������������������������������������������������PDInterpBitmap.mesaMichaelPlass,November9,198310:39amBasicoperationsontwo-dimensionalarraysofpixels.DIRECTORYBitBlt,Inline;PDInterpBitmap:DEFINITIONSIMPORTSInline=BEGINThisinterfaceprovidesmostofthefunctionalityofBitBlt.Toavoidconfusionnomatterhowthemapisphysicallylaidout,termslikeheightandwidthareavoided,andthecoordinatesareexpressedintermsofsandf,forslowandfast.Onadisplay,thesaxisisnormallyvertical,andpointsdown,butonaprinterthatscansinthelongdirection,thefaxiswillpointup.Thediagrambelowtakesthelatterpointofview.--^--f|--|--|+----------------------------+--|||--||rast*bitsPerWord/bitsPerPixel|--|||--||+------------+|--|||||--|||||--|||fSize||--|||||--||sMin|sSize||--||<---->+------------+|--||^|--|||fMin|--|sOrigin|vlines|--|<-------->+----------------------------+--|^originofbuffer--||--||fOrigin--||--||--|v--+-------------------------------------------->--DevicespaceoriginsABitmapDescdescribesawindowintoabuffer,andthebufferitselfmaybepositionedanywhereinaglobaldevicespace.ThewindowinginformationisstoredintheBitmapDescrecord,sothatitmaybeeasilychangedtoaccomplishtranslationandclippingbyrectangles.Thetranslationfeaturemaybeusedfordestinationmapstoconvenientlyimplementbandbuffers.BitmapDesc:TYPE=RECORD[Theseparametersdefineawindowwithinthebuffer,aswellaswherethebufferispositionedindevicespace.sOrigin,fOrigin:INTEGER_0,���xÔ_:Ó‚Ô]íÓ‚Ó$ÓÓgÓÙÓ#:Ó&˘Ô[ÎÓ‚Óå ÓÓ˙Ó$ÌÓ)Ó*®yÔXúÓ‚wÔXúÓKÓöÔUMÓ‚yÓ ÔUM�ÔUMÓ∞ ÔUMÓ!ÍwÔUMÓ'öÓ+õ�yÓ-ÄÔUM�ÔUMÓ.:xÔQ˛ÓÛÓÓçÓƒÓ"Ó#ßÓ%ÛÓ- Ó/nÓ4[Ó6xÓ:Ó@ÔPWÓ∆ÓÓÈÓ5Ó0Óú Ó%—Ó(}Ó+6Ó.‰Ó1ëÓ5≠Ó8QÓ;˝ÔNØÓ∆Ó˝Ó°ÓÌ Ó#Ó%VÓ+`Ó-Ó0¥Ó2W�Ó3`Ó6Ó7OÓ9vÓ<zÓ?ÔMÓ∆Ó�ÓQÓ/Ó{�ÓÉÓ fÓ!“Ó'|Ó,îÓ/7Ó33Ó7Ó9wÓ;k�Ó<üÔKaÓ∆ÓòÓ.Ó‘Ó Ó' Ó%zÓ'_ÔKa�xÔKaÓ(SÓ+6Ó-ÀÓ1BÓ4Ó6”Ó<ÔIπÓ∆ÓQÓùÓ4Ó´Ó OwÔFjÓÛ{ÔFjÔFjÓË�wÔD√ÓÛ{ÔD√wÓáÔD√�{ÔD√Ó˙�wÔCÓÛ{ÔCÔCÓË�wÔAtÓÛ{ÔAtÔAtÓË�ÔAtÓÙwÔ?ÃÓÛ{Ô?ÃÔ?ÃÓË�Ô?ÃÓÙ�Ô?ÃÓ.U�wÔ>%ÓÛ{Ô>%Ô>%ÓË�Ô>%ÓÙ�|ÓÃÔ>%�Ô>%Ó6ÓÊ�Ó › Ó'G�Ó(>{Ô>%Ó0f�wÔ<}ÓÛ{Ô<}Ô<}ÓË�Ô<}ÓÙ�Ô<}Ó.U�wÔ:÷ÓÛ{Ô:÷Ô:÷ÓË�Ô:÷ÓÙ�Ô:÷Ó#ˇ Ô:÷Ó2w�wÔ9.ÓÛ{Ô9.Ô9.ÓË�Ô9.ÓÙ�Ô9.Ó#ˇ�Ô9.Ó-�Ô9.Ó2w�wÔ7áÓÛ{Ô7áÔ7áÓË�Ô7áÓÙ�Ô7áÓ#ˇ�Ô7áÓ-�Ô7áÓ2w�wÔ5flÓÛ{Ô5flÔ5flÓË�Ô5flÓÙ�Ô5flÓ#ˇ�|Ó$◊Ô5fl�Ô5flÓ%8{Ô5flÓ-�Ô5flÓ2w�wÔ48ÓÛ{Ô48Ô48ÓË�Ô48ÓÙ�Ô48Ó#ˇ�Ô48Ó-�Ô48Ó2w�wÔ2êÓÛ{Ô2êÔ2êÓË�Ô2êÓÙ�|Ô2JÓ {Ô2êÓ#ˇ�|Ô2JÓ({Ô2êÓ/-�Ô2êÓ4â�wÔ0ÈÓÛ{Ô0ÈÔ0ÈÓË�Ô0ÈÓÙÓ"Ô0ÈÓ4â�wÔ/AÓÛ{Ô/AÔ/AÓË�Ô/AÓÙ�Ô/AÓ#ˇ�Ô/AÓ0f�wÔ-öÓÛ{Ô-öÔ-öÓË�Ô-öÓÙ�Ô-öÓ#ˇ�|Ó$◊Ô-ö�Ô-öÓ%8{Ô-öÓ0f�wÔ+ÚÓÛÔ+Ú{Ô+ÚÓË�|Ô+¨Ó˙{Ô+ÚÓ�Ô+ÚÓ&�|Ô+¨Ó,•{Ô+ÚÓ2w�wÔ*KÓÛ{Ô*KÔ*KÓËÓ®#wÔ(åÓÛ{Ô(åÔ(åÓË�Ô(åÓ�|Ô)Ó›Ó#Ó$rwÔ&ÂÓÛ{Ô&ÂÔ&ÂÓË�Ô&ÂÓÙ�wÔ%=ÓÛ{Ô%=Ô%=ÓË�Ô%=ÓÙ�|ÓÃÔ%=�Ô%=Ó-wÔ#ñÓÛ{Ô#ñÔ#ñÓË�Ô#ñÓÙ�wÔ!ÓÓÛ{Ô!ÓÔ!ÓÓË�Ô!ÓÓÙ�wÔ GÓÛ{Ô GÔ GÓË�Ô GÓÙ�wÔüÓÛ{ÔüÔüÓË.wÔ¯ÓÛ{Ô¯|ÔÖÓËÓôÓêwÔ¯Ó,•�xÔ©ÓÛ�Óu ÓÓ™�Ó fiÓ%¥Ó(z�Ó)ØÓ-ıÓ0ôÓ2ÂÓ6”Ó:Ó=ÔÓ∆ Ó ÓÓΩ�Ó ÒÓ$˛Ó)Ó-|Ó0@Ó6Á Ó>9ÔZÓ∆ÓøÓeÓ± Ó!@Ó%ªÓ'tÓ*FÓ+ûÓ.éÓ0]Ó4Ó9cÓ; Ô≥Ó∆ ÓàÓ+Ó DÓ" Ó)JÓ, Ó2œÓ7ZÓ:JÓ<Ó?*ÔÓ∆ ÓûÓÓ√Ó%zÓ,Ó/YwÔºÓ‚ yÓÔº�ÔºÓÃwÔºÓÖ�yÓjÔº�ÔºÓ>wÔºÓ!‹�xÔÓÛÓ÷ Ó¥ÓØ�Ó „Ó%πÓ)÷Ó,"Ó0iÓ2"Ó4ÔÓ6®Ó:äÓ<÷ÔmÓ∆Ó2 ÓåÓ2Ó5wÔ ∆ÓÛÓ)yÓuÔ ∆�Ô ∆ÓflwÔ ∆Ó!9�Ó"∆ˇ�������=��������TVm$∆��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2sMin,fMin:INTEGER_0,sSize,fSize:NAT_0,pointer:LONGPOINTER_NIL,rast,lines:CARDINAL_0Storedcontiguously,witheachlinepaddedtoawordboundary,rastwordsperline.Thelongpointerpointstotheactualbits.];Rectangle:TYPE=RECORD[sMin,fMin:INTEGER,sSize,fSize:NAT];RasterWords:PROC[bitmapDesc:BitmapDesc]RETURNS[INT]=INLINE{RETURN[Inline.LongMult[bitmapDesc.rast,bitmapDesc.lines]];};Reshape:PROC[pointer:LONGPOINTER,words:INT,bounds:Rectangle]RETURNS[BitmapDesc];MakesaPixelMapfromthestorageprovided.InsufficientSpace:ERROR;Intersect:PROC[a,b:Rectangle]RETURNS[Rectangle];Computestheintersectionofdevicerectangles.Clear:PROC[bitmapDesc:BitmapDesc];Afastwaytoclearabuffer.ShiftMap:PROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc];TranslatesthebitmapDescindevicespace.ShiftWindow:PROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc];Translatesthewindowindevicespace.Clip:PROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc];FurtherrestrictsthewindowSetWindow:PROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc];ChangesthewindowWindow:PROC[p:BitmapDesc]RETURNS[Rectangle];BufferBounds:PROC[p:BitmapDesc]RETURNS[Rectangle];ReturnsarectangledescribingtheactualboundsofthebufferBoundedWindow:PROC[p:BitmapDesc]RETURNS[Rectangle];p.Window.Intersect[p.BufferBounds]Fill:PROC[dest:BitmapDesc,area:Rectangle,value:CARDINAL,function:Function_[null,null]];Function:TYPE=RECORD[dstFunc:BitBlt.DstFunc,srcFunc:BitBlt.SrcFunc];[null,null]makeszerobitswhite,onebitsblack[or,null]makeszerobitstransparent,onebitsblack[and,null]makeszerobitswhite,onebitsblack���qÔg/ÓE…�wÔ_,ÓÛÓ‘yÓ Ô_,�Ô_,Ó4wÔ_,Óé�Ó Ô]ÖÓÛÓæyÓûÔ]Ö�Ô]ÖÓáwÔ]ÖÓò�Ó%Ô[›ÓÛyÓ5Ô[›�Ô[›ÓÔÔ[›Ó&wÔ[›Ó«�yÓ!TÔ[›�Ô[›Ó"<wÓ#_Ô[›�Ô[›ÔZ5ÓÛÓÏyÓ°ÔZ5�ÔZ5ÓlwÔZ5Ó\�ÓÈ�xÔXéÓÛÓDÓeÓ aÓ#àÓ&,Ó*ΩÓ,b�Ó-ñÓ0ÁÓ7*Ó9◊Ó=≠ÔVÁÓ∆ÓFÓ ÓÓßÓ#¢Ó%GÓ'ìÓ+£wÔU?ÓÛÔQÓ‚ yÓΩÔQ�ÔQÓvwÔQÓ.�yÓÔQ�ÔQÓÁwÔQÓ ÜÓ$…yÓ(¿ÔQ�ÔQÓ)*wÓ.�ÔQ�ÔQÓ.‹Ó2ßyÓ6áÔQ�ÔQÓ7pwÓ8˝ÔQ�ÔQÓ9`�uÔN°Ó‚ wÓ¢ÔN°�ÔN°yÓ†ÔN°�ÔN°ÓHwÔN°ÓGÓ#ª yÓ+÷ÔN°�ÔN°Ó,©wÔN°Ó1·�yÓ2DÔN°�ÔN°Ó2ÆwÓ4PÔN°�ÔN°Ó57�yÓ7ÔN°�ÔN°Ó7ÜwÔN°Ó;∏�yÔL˙ÓÛwÔL˙Ó`!Ó+gÔKRÓÛuÔHÓ‚wÓ÷ÔH�ÔHyÓ‘ÔH�ÔHÓ{wÔHÓ{yÓ ÔH�ÔHÓŸÔHÓ"wÓ'-ÔH�ÔHÓ( yÓ,êÔH�ÔHÓ,˙wÓ.úÔH�ÔHÓ/xÓ4— yÓ;ïÔH�ÔHÓ<iwÔF\ÓµxÔD¥ÓÛÓb�ÓóÓ‡Ó Ó"jÓ'wÔC ÓÛyÓ)ÔC �ÔC Ó„wÓ ;ÔC �ÔC uÔ?æÓ‚wÓÔ?æ�Ô?æyÓÔ?æ�Ô?æÓΩwÔ?æÓΩÓ¢Óf yÓ#+Ô?æ�Ô?æÓ#ˇwÔ?æÓ)7xÔ>ÓÛÓ8ÓÑÓ ∂Ó"YÓ&\ uÔ:«Ó‚wÓÔ:«�Ô:«yÓÔ:«�Ô:«Ó∏wÔ:«Ó∑Ó+xÔ9ÓÛ�ÓuÓ ÓœÓsÓ≈�Ó˙uÔ5–Ó‚wÓÜÔ5–�Ô5–yÓÑÔ5–�Ô5–Ó+wÔ5–Ó+ÓS Ó#bÓ$√yÓ&:Ô5–�Ô5–Ó&§wÓ+zÔ5–�Ô5–yÓ,aÔ5–�Ô5–Ó-5wÔ5–Ó2mxÔ4)ÓÛ ÓyÓ≈ Ó!Ó"∏Ó&ªuÔ0⁄Ó‚ wÓñÔ0⁄�Ô0⁄yÓîÔ0⁄�Ô0⁄Ó<wÔ0⁄Ó;Óc Ó%sÓ&‘yÓ(KÔ0⁄�Ô0⁄Ó(¥wÓ-äÔ0⁄�Ô0⁄yÓ.rÔ0⁄�Ô0⁄Ó/FwÔ0⁄Ó4~xÔ/2ÓÛ ÓyÓ≈ÓõÓ AÓ$DuÔ+„Ó‚wÓLÔ+„�Ô+„yÓIÔ+„�Ô+„ÓÒwÔ+„ÓÒÓ Ó (Ó%Å yÓ,EÔ+„�Ô+„Ó-wÔ+„Ó2QxÔ*<ÓÛÓ·ÓÓ<uÔ&ÌÓ‚wÓØÔ&Ì�Ô&ÌyÓ≠Ô&Ì�Ô&ÌÓUwÔ&ÌÓTÓ| Ó$åÓ)‰ yÓ0©Ô&Ì�Ô&ÌÓ1}wÔ&ÌÓ6µxÔ%EÓÛÓpÓºuÔ!ˆÓ‚wÓ¥Ô!ˆ�Ô!ˆyÓ≤Ô!ˆ�Ô!ˆÓYwÔ!ˆÓYÓÅ yÓ"õÔ!ˆ�Ô!ˆÓ#owÔ!ˆÓ(ßuÔßÓ‚wÓ˚Ôß�ÔßyÓ¯Ôß�ÔßÓ†wÔßÓüÓ« yÓ%‚Ôß�ÔßÓ&∂wÔßÓ+ÌxÔ�ÓÛÓ�Ó9Ó Ó#]Ó%©Ó)πÓ.NÓ/ÒÓ2>uÔ±Ó‚wÓflÔ±�Ô±yÓ›Ô±�Ô±ÓÑwÔ±ÓÑÓ¨ yÓ'∆Ô±�Ô±Ó(öwÔ±Ó-“xÔ ÓÛ"uÔ∫Ó‚wÓËÔ∫�Ô∫yÓÊÔ∫�Ô∫ÓçwÔ∫ÓçÓM Ó!]Ó$œ Ó+âyÓ/¨Ô∫�Ô∫Ó0wwÓ5„Ô∫�Ô∫Ó6øÔÓµÓù�Ó*ÓΩÔƒÓ‚yÓCÔƒ�ÔƒÓ¸wÔƒÓµ�yÓöÔƒ�ÔƒÓnwÔƒÓ Ó&7Ó0�Ó5±xÔÓÛÓÓ≥Ó‰Ó”Ó!_Ó%NÓ'‹Ó*hÔuÓÛÓrÓ¶Ó◊Ó∆Ó RÓ'≈Ó*SÓ,flÔ ÕÓÛÓ]ÓëÓ¬Ó∞Ó!=Ó%+Ó'∫Ó*Fˇ�������˘��������TVm$ÿ������������������������������������������������������������������������������������3[and,complement]makeszerobitstransparent,onebitswhite[xor,null]makeszerobitstransparent,onebitsinvertedetcetera.Transfer:PROC[dest,source:BitmapDesc,function:Function_[null,null]];DoesaBITBLTfromthesourcetothedest,throughtheintersectionofthetwowindows.Doestherightthingifthesourceanddestoverlapinthesamebuffer.Tile:TYPE=RECORD[sOrigin,fOrigin:INTEGER,sSize,fSize:NAT,phase:INTEGER,pointer:LONGPOINTER,rast,lines:CARDINAL];AtileissimilartoaBitmapDesc,butthewindowspecificationsaremoreprimitive,andthereisanadditionalphasespecification.Atileisreplicatedtofilltheplane,withtileshiftedbyphasepixelsinthefdirectioneverysource.sSizelines.CreateTile:PROC[rectangle:Rectangle,phase:INTEGER_0,rasterPointer:LONGPOINTER,scratchPointer:LONGPOINTER_NIL,scratchWords:INT_0]RETURNS[tile:Tile];ThescratchPointerandscratchWordsparametersdescribethespacefortheresults.Therasteristurnedintoatile.Thismayinvolvereplicatingthepatterntomakealargertilethatwillspeedthecoloringoperation,sothesizeoftheresultwillnotingeneralbethesameasthesource.However,therastermaynotalwaysbecopied.TransferTile:PROC[dest:BitmapDesc,tile:Tile,function:Function_[null,null]];Transfersfromthetiledplanetodest.END.��qÔg/ÓE…�xÔ_,ÓÛÓ] Ó?Ó oÓ#^Ó%ÍÓ-]Ó/ÎÓ2wÔ]ÖÓÛÓ9ÓmÓûÓçÓ!Ó(åÓ+Ó-¶Ô[›ÓÛuÔXèÓ‚wÓÏÔXè�ÔXèyÓÍÔXè�ÔXèÓíwÔXèÓëÓ0Ó ˘ Ó) Ó.¸Ó4‰�Ó6qÓ:xÔVÁÓÛÓ[�}ÓèÔVÁ�ÔVÁÓRxÔVÁÓIÓáÓ”Ó$Ó%ßÓ'ÙÓ+Ó0Ó2lÓ9ùÓ;AÓ=çÔU@Ó∆Ó¸ÓdÓ∞Ó ˘Ó$|Ó%“Ó(Ó,NÓ.ÚÓ1∂Ó6hÓ8Ó:ZÓ=ƒwÔQÒÓ‚yÓ3ÔQÒ�ÔQÒÓÏwÔQÒÓ§�yÓâÔQÒ�ÔQÒÓ]wÔQÒÓ¸�ÔPJÓÛÓ)yÓuÔPJ�ÔPJÓflwÓ µÔPJ�ÔPJÔN£ÓÛÓæyÓûÔN£�ÔN£ÓáwÓÔN£�ÔN£ÔL˚ÓÛyÓNÔL˚�ÔL˚Ó∏wÓéÔL˚�ÔL˚ÔKTÓÛyÓ5ÔKT�ÔKTÓÔÔKTÓ&wÓCÔKT�ÔKTÔI≠ÓÛÓÏyÓ°ÔI≠�ÔI≠ÓlwÔHÓÛxÔF^ÓÛ�ÓuÓÀÓ6Ó≥ÓX�Óç Ó%tÓ'’Ó*!Ó.˜ Ó7-Ó9ÄÔD∑Ó∆ ÓΩÓ`ÓÀÓ7Ó!* Ó'yÓ+9 Ó3«�Ó5IÓ7üÓ9 Ó?+ÔCÓ∆Ó‚Ó/Ó(Ó$ÓzÓ#ÃÓ%ßÓ)gÓ-IÓ.ÓÓ1;�Ó2.Ó7¬ÔAhÓ∆ÓHuÔ>Ó‚ wÓ-Ô>�Ô>yÓ+Ô>�Ô>Ó”wÔ>Ó“ Ó å Ó'EyÓ+†Ô>�Ô>Ó, wÔ>Ó1d�Ó2ÒÓ4~ yÓ=Ô>�Ô>Ó= Ô<rÓµwÓ“Ô<r�Ô<rÓÆyÓÔ<r�Ô<rÓÕÔ<rÓ#wÔ<rÓ(¶�yÓ*3Ô<r�Ô<rÓ+wÓ,>Ô<r�Ô<rÓ-yÓ6Ô<r�Ô<rÓ6áwÔ<rÓ8≠�Ó::yÓ;“Ô<r�Ô<rÓ<¶wÔ:ÀÓµÓxÔ9#ÓÛÓ∂ ÓüÓCÓ'≠ Ó.ãÓ3¨Ó5˘Ó9òÓ;øÔ7|Ó∆ÓflÓ¢ÓoÓ⁄Ó#Ó%‡�Ó'Ó*GÓ-WÓ0GÓ4— Ó;xÔ5’Ó∆ÓiÓÓª�ÓÔÓ €Ó#0Ó&Ó(óÓ,6Ó.ÉÓ3º Ó:Ó;ƒÓ>Ô4-Ó∆ÓiÓ∂ÓmÓÓfÓ Ó$ÃÓ&úÓ(ËÓ,RÓ.Ó0WÓ5cÓ;VÓ=¢Ô2ÜÓ∆Ó∂ÓÓsÓBuÔ/7Ó‚wÓLÔ/7�Ô/7yÓJÔ/7�Ô/7ÓÒwÔ/7ÓÒÓ± Ó&¡Ó)ôÓ,…Ó2ºÓ8§�Ó:1Ó=ƒxÔ-êÓÛÓÈÓ&ÓrÓxÓ#Ó$øyÔ*AÓ‚wÓiÔ*A�Ô*Aˇ�������î��������TVm$¶������������������������������PDInterpBitmapImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,198411:28:57amPDTDIRECTORYBitBlt,Environment,Inline,PDInterpBitmap,PDBitBltTiming,System;PDInterpBitmapImpl:PROGRAMIMPORTSBitBlt,Inline,SystemEXPORTSPDInterpBitmap,PDBitBltTiming=BEGINBitmapDesc:TYPE=PDInterpBitmap.BitmapDesc;Tile:TYPE=PDInterpBitmap.Tile;Rectangle:TYPE=PDInterpBitmap.Rectangle;Function:TYPE=PDInterpBitmap.Function;bitsPerWord:NAT=Environment.bitsPerWord;lgBitsPerWord:NAT=Environment.logBitsPerWord;wordsPerPage:NAT=Environment.wordsPerPage;lgBitsPerPixel:NAT=0;pixelsPerWord:NAT=bitsPerWord;Someinlinesforbasicbit-hackingoperations.BITAND:PROC[a,b:CARDINAL]RETURNS[CARDINAL]=INLINE{RETURN[Inline.BITAND[a,b]]};Shift:PROC[a:CARDINAL,b:INTEGER]RETURNS[CARDINAL]=INLINE{RETURN[Inline.BITSHIFT[a,b]]};timingBitBlts:BOOLEAN_FALSE;bitBltPulses:System.Pulses_[pulses:0];ResetBitBltMicroseconds:PUBLICPROC={bitBltPulses_[pulses:0];timingBitBlts_TRUE};GetBitBltMicroseconds:PUBLICPROCRETURNS[LONGCARDINAL]={RETURN[System.PulsesToMicroseconds[bitBltPulses]]};BITBLT:PROC[ptr:BitBlt.BBptr]=INLINE{IFtimingBitBltsTHEN{bitBltPulses.pulses_bitBltPulses.pulses-System.GetClockPulses[];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];BitBlt.BITBLT[ptr];bitBltPulses.pulses_bitBltPulses.pulses+System.GetClockPulses[];}���xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓàÓ%Ó ≤Ó#¯Ó)ëÓ+‹yÔXéÓ‚wÔXéÓKÓöÓ#CÓ'úÓ2dÔVÁÓµÔSòÓ‚yÓ¢ÔSò�ÔSòÓJÔQÓÛwÔQÓ£ÓÚÓLyÔPHÓÛwÔPHÓµÓ!| ÔN°ÓÛ�yÓÿÔN°�ÔN°ÓëwÔL˘Ó‚ yÓÔL˘�ÔL˘ÓÃwÔL˘ÓÖ�ÓjÔKRÓ‚yÓ3ÔKR�ÔKRÓÏwÔKRÓ§�ÓâÔI™Ó‚ yÓΩÔI™�ÔI™ÓvwÔI™Ó.�ÓÔHÓ‚yÓCÔH�ÔHÓ¸wÔHÓµ�ÓöÔF[Ó‚yÓ_ÔF[�ÔF[ÓHwÔF[ÓY�Ó>ÔD¥Ó‚ yÓìÔD¥�ÔD¥Ó|wÔD¥Óç�ÓrÔCÓ‚yÓ0ÔC�ÔCÓwÔCÓ*�ÓÔAeÓ‚yÓÔAe�ÔAeÓwÔAeÓ�Ó¯Ô?ΩÓ‚ yÓ™Ô?Ω�Ô?ΩÓíwÔ?ΩÓ£�ÓàxÔ>Ó‚Ó§ÓÓÓÓ} Ó#ü yÔ<nÓÛwÓqÔ<n�Ô<nyÓoÔ<n�Ô<nÓwÔ<nÓÓ˚yÓøÔ<n�Ô<nÓäwÓ#ˆÔ<n�Ô<nyÓ$fiÔ<n�Ô<nÓ%≤wÓ*eÔ<n�yÔ<nÓ*»wÓ0ˇÔ<n�Ô<nÔ:«Ó�yÓÈÔ:«�Ô:«ÓSwÔ:«ÓÖ�yÓ5Ô:«�Ô:«Ó wÓÔ:«�Ô:«ÓÄyÓ#UÔ:«�Ô:«Ó$wÓ'”Ô:«�Ô:«Ó(6Ó)∏uÔ9ÓÛwÓ÷Ô9�Ô9yÓ”Ô9�Ô9Ó{wÔ9ÓzyÓÅÔ9�Ô9ÓLwÓ ∏Ô9�Ô9Ó!îyÓ#YÔ9�Ô9Ó#¬wÓ(ôÔ9�Ô9yÓ)ÄÔ9�Ô9Ó*TwÔ9Ó/å�yÓ/ÔÔ9�Ô9Ó0∫wÓ6&Ô9�Ô9Ô7xÓ�yÓÈÔ7x�Ô7xÓSwÔ7xÓÖ�yÓ5Ô7x�Ô7xÓ wÓÔ7x�Ô7xÓÄyÓ#UÔ7x�Ô7xÓ$wÓ(ìÔ7x�Ô7xÓ(ˆÓ*xÔ2ÅÓ‚ yÓ¨Ô2Å�Ô2ÅÓfwÔ2ÅÓ—�yÓ^Ô2Å�Ô2ÅÓ wÓ"¸Ô2Å�Ô2ÅÔ/2Ó‚Ó‹Óõ�Ó!'Ó&'uÔ+„Ó‚wÓÔ+„�Ô+„yÓ Ô+„�Ô+„Ó±Ô+„Ó#¡wÔ+„Ó'i�Ó)NÓ1~�Ó3Ó8Ô*<ÓµÓ�yÓìÔ*<�Ô*<ÓLwÓæÔ*<�Ô*<Óo�uÔ&ÌÓ‚wÓÏÔ&Ì�Ô&ÌyÓÍÔ&Ì�Ô&ÌÓíÔ&ÌÓ"£Ô&ÌÓ&JwÔ&ÌÓ,U�yÓ,∏Ô&Ì�Ô&ÌÓ-rÔ&ÌÓ0©wÓ6‡Ô&Ì�Ô&ÌÓ7«�Ô%EÓµ�yÓeÔ%E�Ô%EÓ9wÓMÔ%E�Ô%EÓ±,yÔ!ˆÓ‚wÓÍÔ!ˆ�Ô!ˆyÓÁÔ!ˆ�Ô!ˆÓèwÔ!ˆÓéÓ©Ó"‰�yÓ$…Ô!ˆ�Ô!ˆÓ%3wÔ!ˆÓ)d�yÔ OÓÛwÔ OÓöyÓÎÔ O�Ô OÓ•wÔ OÓ±�ÔßÓÓ{�Ó Ó+�Ó,|Ô�ÓyÓŒÔ��Ô�ÓàwÓ÷Ô��Ô�Ó9ÔXÓyÓŒÔX�ÔXÓàwÓ÷ÔX�ÔXÓ9Ô±ÓyӌԱ�Ô±ÓàwÓ÷Ô±�Ô±Ó9Ô ÓyÓŒÔ �Ô ÓàwÓ÷Ô �Ô Ó9ÔaÓyÓŒÔa�ÔaÓàwÓ÷Ôa�ÔaÓ9Ô∫ÓyÓŒÔ∫�Ô∫ÓàwÓ÷Ô∫�Ô∫Ó9ÔÓyÓŒÔ�ÔÓàwÓ÷Ô�ÔÓ9ÔkÓyÓŒÔk�ÔkÓàwÓ÷Ôk�ÔkÓ9Ô√ÓyÓŒÔ√�Ô√ÓàwÓ÷Ô√�Ô√Ó9ÔÓyÓŒÔ�ÔÓàwÓ÷Ô�ÔÓ9ÔtÓÓ{�Ó Ó+�Ó-dÔ ÕÓ�ˇ�������•��������TVm$§��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2ELSEBitBlt.BITBLT[ptr];};Intersect:PUBLICPROC[a,b:Rectangle]RETURNS[Rectangle]={sMin:INTEGER_MAX[a.sMin,b.sMin];fMin:INTEGER_MAX[a.fMin,b.fMin];sMax:INTEGER_MIN[INT[a.sMin]+a.sSize,INT[b.sMin]+b.sSize];fMax:INTEGER_MIN[INT[a.fMin]+a.fSize,INT[b.fMin]+b.fSize];IFsMax<=sMinORfMax<=fMinTHENRETURN[[0,0,0,0]]ELSERETURN[[sMin,fMin,sMax-sMin,fMax-fMin]]};LongZero:PROC[address:LONGPOINTERTOCARDINAL,count:CARDINAL]={IFcount>0THEN{address^_0;Inline.LongCOPY[from:address,nwords:count-1,to:address+1];};};Clear:PUBLICPROC[bitmapDesc:BitmapDesc]={pointer:LONGPOINTER_bitmapDesc.pointer;words:LONGCARDINAL_Inline.LongMult[bitmapDesc.rast,bitmapDesc.lines];WHILEwords>32768DOLongZero[pointer,32768];pointer_pointer+32768;words_words-32768;ENDLOOP;LongZero[pointer,words];};InsufficientSpace:PUBLICERROR=CODE;Reshape:PUBLICPROC[pointer:LONGPOINTER,words:INT,bounds:Rectangle]RETURNS[bitmapDesc:BitmapDesc]={bitsPerPixel:CARDINAL=Shift[1,lgBitsPerPixel];bitsPerLine:NAT=Inline.LongMult[bounds.fSize,bitsPerPixel];Willraiseaboundsfaultiftoomanybitsperline.wordsPerLine:CARDINAL=(bitsPerLine+(bitsPerWord-1))/bitsPerWord;wordsNeeded:INT=Inline.LongMult[wordsPerLine,bounds.sSize];IFwordsNeeded>wordsTHENERRORInsufficientSpace;RETURN[[bounds.sMin,bounds.fMin,0,0,bounds.sSize,bounds.fSize,pointer,wordsPerLine,bounds.sSize]];};ShiftMap:PUBLICPROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc]={p.sOrigin_p.sOrigin+s;p.fOrigin_p.fOrigin+f;RETURN[p]};ShiftWindow:PUBLICPROC[p:BitmapDesc,s,f:INTEGER]RETURNS[BitmapDesc]={���qÔg/ÓE…�yÔ_,ÓÛwÔ_,ÓByÓÔ_,�Ô_,Ó≈wÓÔ_,�Ô_,ÓwÔ]ÖÓÛuÔZ5Ó‚wÓÔZ5�ÔZ5yÓÔZ5�ÔZ5ÓΩÔZ5ÓŒwÔZ5ÓuÓZÓ! yÓ'„ÔZ5�ÔZ5Ó(∑wÔZ5Ó-Ô Ó5�Ó6¸�ÔXéÓÛyÓıÔXé�ÔXéÓ_wÔXéÓπ�yÓFÔXé�ÔXéÓWwÓˇÔXé�ÔXéÓbÓ$?ÔVÊÓÛyÓÍÔVÊ�ÔVÊÓTwÔVÊÓÆ�yÓ;ÔVÊ�ÔVÊÓLwÓÙÔVÊ�ÔVÊÓWÓ$)ÔU?ÓÛyÓ!ÔU?�ÔU?ÓãwÔU?ÓÂ�yÓrÔU?�ÔU?ÓÉwÓ÷ÔU?�yÔU?Ó9wÓ!DÔU?�ÔU?Ó!®yÓ,4ÔU?�ÔU?Ó,ûwÓ.?ÔU?�ÔU?Ó.¢ÔSóÓÛyÓÔSó�ÔSóÓÄwÔSóÓ⁄�yÓgÔSó�ÔSóÓxwÓÀÔSó�yÔSóÓ.wÓ!9ÔSó�ÔSóÓ!ùyÓ,ÔSó�ÔSóÓ,}wÓ.ÔSó�ÔSóÓ.ÇyÔQÓÛwÔQÓöÓOÓ‰yÓlÔQ�ÔQÓI�wÔQÓ°Ó"JÓ$‡yÓ(]ÔQ�ÔQÓ)ÔQÓ,"wÔQÓ1èÓ3‚Ó5oÓ6¸yÔPHÓÛÔPHÓBwÔPHÓØÓUÓ"+ Ó)¥ ÔN°ÓÛuÔKRÓ‚wÓ…ÔKR�ÔKRyÓ∆ÔKR�ÔKRÓnwÔKRÓmyÓ4ÔKR�ÔKRÓÌÔKRÓ#%ÔKRÓ(≈ÔKRÓ*flwÓ1ÔKR�ÔKRÓ1ÛyÓ6CÔKR�ÔKRÓ7wÓ<zÔKR�ÔKRÓ=a�Ó?F�yÔI™ÓÛwÔI™ÓöÓq�Ó¶�yÓ€ÔI™�ÔI™ÓîwÔI™Ó†�ÔHÓÓü�Ó,ÔF[ÓÓ"!Ó'cÓ,∞Ó2 Ó41 ÔD¥ÓÔCÓÛuÔ?ΩÓ‚wÓÔ?Ω�Ô?ΩyÓÔ?Ω�Ô?ΩÓ∏Ô?ΩÓ»wÔ?ΩÓpÓ#„ Ó+˛�Ó-„�Ô>ÓÛyÓ5Ô>�Ô>ÓÔÔ>Ó&wÔ>Ó«�Ó!TÔ<nÓÛyÓyÔ<n�Ô<nÓ2Ô<nÓjwÔ<nÓ %�Ó!≤Ó6VyÔ:∆ÓÛwÔ:∆ÓTÓa�ÓñyÓåÔ:∆�Ô:∆Ór�wÔ9ÓÓoÔ7wÓÓÕ�ÓZÓ#�Ó Ô5–ÓÓ�ÓûÓ´�Ó®yÔ4(ÓwÓ•Ô4(�Ô4(Ô2ÅÓÛÓ^Ô0ŸÓÛÔ-äÓ‚yÓÔ-ä�Ô-äÓ¿Ô-äÓ—wÔ-äÓ#f�yÓ%KÔ-ä�Ô-äÓ&wÓ(íÔ-ä�Ô-äuÔ+„Ó‚wÓ÷Ô+„�Ô+„yÓ‘Ô+„�Ô+„Ó{Ô+„ÓåwÔ+„Ó3yÓ"ÿÔ+„�Ô+„Ó#íÔ+„Ó&…wÓ+ÊÔ+„�Ô+„Ó,¬yÓ1HÔ+„�Ô+„Ó1≤wÓ3TÔ+„�Ô+„Ó40Ó9â yÔ*;ÓµwÔ*;Ó¡Ó4 Ó&O�Ó(4�Ô(îÓÛyÓ˜Ô(î�Ô(îÓ¬wÔ(îÓ≤�Ó!óÓ&`Ô&ÏÓÛyÓ¿Ô&Ï�Ô&ÏÓ®wÔ&ÏÓπ�ÓûÓ0Q xÔ%EÓÓÓN�ÓÉÓÓ"KÓ#°Ó%˜Ó)•Ó,2Ó.ÖwÔ#ùÓÛyÓ+Ô#ù�Ô#ùÓˆwÔ#ùÓ Ê�Ó"ÀÓ6�Ó7CÔ!ˆÓÛyÓÔ!ˆ�Ô!ˆÓÑwÔ!ˆÓ™�ÓèÓ1Ê yÔ NÓÛwÔ NÓö ÓH�Ó}yÓ äÔ N�Ô NÓ!CÔ NÓ$OwÔ NÓ(ÂyÔßÓÛwÔßÓ` ÓπÓ(AÓ)ŒÓ+[Ó3ÿÓ<JÔˇÓ∆Ó›ÔXÓÛuÔ Ó‚wÓÜÔ �Ô yÓÑÔ �Ô Ó+Ô Ó<wÔ Ó„Ó Ó(Ó){yÓ*ÚÔ �Ô Ó+\wÓ02Ô �Ô yÓ1Ô �Ô Ó1ÓwÔ Ó7%Ó?£�ÔbÓµ�Ô∫ÓÛÓÔ�Ó|Óx�Ó ]ÔÓÛÓ‰�ÓqÓb�Ó GyÔkÓÛwÔkÓ`Ô√ÓÛuÔtÓ‚ wÓñÔt�ÔtyÓîÔt�ÔtÓ<ÔtÓLwÔtÓÙÓ" Ó*+Ó+åyÓ-Ôt�ÔtÓ-mwÓ2CÔt�ÔtyÓ3*Ôt�ÔtÓ3˛wÔtÓ96Ô ÕÓµ�Óö��������fl��������TVm$È����������������������������������������������������������������������������3p.sMin_p.sMin+s;p.fMin_p.fMin+f;RETURN[p]};Clip:PUBLICPROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc]={bounds_Intersect[Window[p],bounds];p.sMin_bounds.sMin-p.sOrigin;p.fMin_bounds.fMin-p.fOrigin;p.sSize_bounds.sSize;p.fSize_bounds.fSize;RETURN[p]};SetWindow:PUBLICPROC[p:BitmapDesc,bounds:Rectangle]RETURNS[BitmapDesc]={RETURN[p]};Window:PUBLICPROC[p:BitmapDesc]RETURNS[Rectangle]={RETURN[[p.sOrigin+p.sMin,p.fOrigin+p.fMin,p.sSize,p.fSize]]};BufferBounds:PUBLICPROC[p:BitmapDesc]RETURNS[Rectangle]={RETURN[[p.sOrigin,p.fOrigin,p.lines,Shift[p.rast,lgBitsPerWord-lgBitsPerPixel]]]};BoundedWindow:PUBLICPROC[p:BitmapDesc]RETURNS[Rectangle]={sMin:INTEGER_MAX[p.sOrigin+p.sMin,p.sOrigin];fMin:INTEGER_MAX[p.fOrigin+p.fMin,p.fOrigin];sMax:INTEGER_MIN[p.sOrigin+p.sMin+p.sSize,p.sOrigin+p.lines];fMax:INTEGER_MIN[p.fOrigin+p.fMin+p.fSize,p.fOrigin+Shift[p.rast,lgBitsPerWord-lgBitsPerPixel]];RETURN[[sMin,fMin,MAX[sMax-sMin,0],MAX[fMax-fMin,0]]]};replicator:ARRAY[0..4]OFCARDINAL=[0FFFFH,05555H,01111H,00101H,00001H];Fill:PUBLICPROC[dest:BitmapDesc,area:Rectangle,value:CARDINAL,function:Function]={lgPixelsPerWord:INTEGER=lgBitsPerWord-lgBitsPerPixel;Thefollowingboundingboxiscalculatedintermsofthedestinationbuffer.sMin:INTEGER=MAX[dest.sMin,0,area.sMin-dest.sOrigin];sMax:INTEGER=MIN[dest.sMin+dest.sSize,dest.lines,area.sMin+area.sSize-dest.sOrigin];fMin:INTEGER=MAX[dest.fMin,0,area.fMin-dest.fOrigin];fMax:INTEGER=MIN[dest.fMin+dest.fSize,Shift[dest.rast,lgBitsPerWord-lgBitsPerPixel],area.fMin+area.fSize-dest.fOrigin];replicatedPixel:CARDINAL_Inline.BITAND[value,Shift[1,Shift[1,lgBitsPerPixel]]-1]*replicator[lgBitsPerPixel];��qÔg/ÓE…�wÔ_7ÓÛÓö�Ó'ÓÕ�Ó≤Ô]êÓÛÓè�ÓÓ∑�ÓúyÔ[ËÓÛwÔ[ËÓ`ÔZ@ÓÛuÔVÒÓ‚wÓLÔVÒ�ÔVÒyÓIÔVÒ�ÔVÒÓÒÔVÒÓwÔVÒÓ©Ó— Ó$‡Ó*9 yÓ0˛ÔVÒ�ÔVÒÓ1“wÔVÒÓ7 Ó?á�ÔUJÓµ�ÔS£ÓÛÓ”�Ó_Ó$NÔQ˚ÓÛÓö�Ó'ÔPSÓÛÓè�ÓÔN¨ÓÛÓÑ�ÓÔMÓÛÓy�ÓyÔK]ÓÛwÔK]Ó`ÔIµÓÛuÔFfÓ‚wÓØÔFf�ÔFfyÓ≠ÔFf�ÔFfÓUÔFfÓewÔFfÓ Ó!4 Ó)DÓ.ù yÓ5aÔFf�ÔFfÓ65wÔDøÓµÓ3�Ó�yÔCÓÛwÔCÓ`ÔApÓÛuÔ>!Ó‚wÓ¥Ô>!�Ô>!yÓ≤Ô>!�Ô>!ÓYÔ>!ÓjwÔ>!ÓÓ9 yÓ'TÔ>!�Ô>!Ó((wÔ>!Ó-_ Ó4á�Ó6l�yÔ<yÓÛwÔ<yÓ` Ó"�ÓÓ$Ó)˜�Ó+‹Ó0–Ó5πÔ:“ÓÛuÔ7ÉÓ‚wÓ˚Ô7É�Ô7ÉyÓ¯Ô7É�Ô7ÉÓ†Ô7ÉÓ±wÔ7ÉÓ XÓ"Ä yÓ*öÔ7É�Ô7ÉÓ+nwÔ7ÉÓ0¶ Ó7Œ�Ó9≥�yÔ5€ÓÛwÔ5€Ó`Óz Ó#ƒÓ(uÔ44Ó∆Ô2åÓÛuÔ/=Ó‚wÓflÔ/=�Ô/=yÓ›Ô/=�Ô/=ÓÑÔ/=ÓïwÔ/=Ó"<Ó$d yÓ,Ô/=�Ô/=Ó-SwÔ/=Ó2ä Ó9≤�Ó;ó�Ô-ñÓÛyÓıÔ-ñ�Ô-ñÓ_wÔ-ñÓπ�yÓFÔ-ñ�Ô-ñÓWwÓˇÔ-ñ�Ô-ñÓbÓ%^�Ó'CÓ,B Ô+ÓÓÛyÓÍÔ+Ó�Ô+ÓÓTwÔ+ÓÓÆ�yÓ;Ô+Ó�Ô+ÓÓLwÓÙÔ+Ó�Ô+ÓÓWÓ%H�Ó'-Ó,! Ô*GÓÛyÓ!Ô*G�Ô*GÓãwÔ*GÓÂ�yÓrÔ*G�Ô*GÓÉwÓ÷Ô*G�Ô*GÓ9Ó%5�Ó'Ó+¡�Ó-¶Ó2èÓ8ã�Ó:pÔ(üÓÛyÓÔ(ü�Ô(üÓÄwÔ(üÓ⁄�yÓgÔ(ü�Ô(üÓxwÓÀÔ(ü�Ô(üÓ.Ó%�Ó'Ó+†�Ó-ÖÓ2cÓ8T�Ó:9Ô&¯Ó∆yÔ%PÓÛwÔ%PÓ`ÓyÓ‹Ô%P�Ô%PÓÌwÓ!îÔ%P�Ô%PÓ!¯ Ó)ÅyÓ+qÔ%P�Ô%PÓ,ÉwÓ.*Ô%P�Ô%PÓ.ç Ó6Ô#©ÓÛÔ ZÓ‚ yÓÖÔ Z�Ô ZÓYwÔ ZÓ,yÓÜÔ Z�Ô ZÓb�Ô ZÓ†wÔ ZÓ&[�Ó(@Ó.ÓÓ4\Ó9 Ô≤ÓµuÔÓ‚wÓËÔ�ÔyÓÊÔ�ÔÓçÔÓûwÔÓEÓ Ó&Ó)á Ó0AyÓ4dÔ�ÔÓ5/wÓ:õÔ�ÔÓ;wÔcÓµÓ��ÓÂ�ÔºÓÛyÓŸÔº�ÔºÓCwÔºÓ!ù�Ó#ÇxÔÓÛÓ∂ÓäÓmÓ"Ó#Ñ Ó)fiÓ+ÑÓ/2Ó0’Ó3! Ó9˘wÔmÓyÓÔm�ÔmÓpwÔmÓ �yÓØÔm�ÔmÓ¡wÓ!hÔm�ÔmÓ!À Ó(bÓ)ÔÔ≈ÓyÓ2Ô≈�Ô≈ÓúwÔ≈Óˆ�yÓ€Ô≈�Ô≈ÓÌwÓ!?Ô≈�Ô≈Ó!¢Ó/? ÔÓ◊#ÔvÓyÓ˚Ôv�ÔvÓewÔvÓø�yÓ§Ôv�ÔvÓ∂wÓ!]Ôv�ÔvÓ!¿ Ó(MÓ)ŸÔœÓyÓ'Ôœ�ÔœÓëwÔœÓÎ�yÓ–Ôœ�ԜӂwÓ!4Ôœ�ÔœÓ!óÓ/Ô(Ó◊Ó&~#ÔÄÓÛyÓ±ÔÄ�ÔÄÓ|wÔÄÓ!l�Ó"˘yÓ&ŒÔÄ�ÔÄÓ'áwÓ+LÔÄ�ÔÄÓ+ØÓ/±Ó4zÔ ŸÓ∆Óÿ�Ó�������f��������TVm$î����������������������������������������������������������������������������������������������������������������4bbTableSpace:BitBlt.BBTableSpace;bb:BitBlt.BBptr_BitBlt.AlignedBBTable[@bbTableSpace];IFsMin<sMaxANDfMin<fMaxTHEN{bb^_[dst:[word:dest.pointer+Inline.LongMult[sMin,dest.rast]+Shift[fMin,-lgPixelsPerWord],bit:Inline.BITAND[fMin,Shift[1,lgPixelsPerWord]-1]],dstBpl:dest.rast*bitsPerWord,src:[word:@replicatedPixel,bit:0],srcDesc:[gray[[yOffset:0,widthMinusOne:0,heightMinusOne:0]]],height:sMax-sMin,width:Shift[fMax-fMin,lgBitsPerPixel],flags:[direction:forward,disjoint:TRUE,disjointItems:TRUE,gray:TRUE,srcFunc:function.srcFunc,dstFunc:function.dstFunc]];BITBLT[bb];};};Transfer:PUBLICPROC[dest,source:BitmapDesc,function:Function]={lgPixelsPerWord:INTEGER=lgBitsPerWord-lgBitsPerPixel;sMin:INTEGER=MAX[dest.sOrigin+MAX[dest.sMin,0],source.sOrigin+MAX[source.sMin,0]];sMax:INTEGER=MIN[dest.sOrigin+MIN[dest.sMin+dest.sSize,dest.lines],source.sOrigin+MIN[source.sMin+source.sSize,source.lines]];fMin:INTEGER=MAX[dest.fOrigin+MAX[dest.fMin,0],source.fOrigin+MAX[source.fMin,0]];fMax:INTEGER=MIN[dest.fOrigin+MIN[dest.fMin+dest.fSize,Shift[dest.rast,lgBitsPerWord-lgBitsPerPixel]],source.fOrigin+MIN[source.fMin+source.fSize,Shift[source.rast,lgBitsPerWord-lgBitsPerPixel]]];bbTableSpace:BitBlt.BBTableSpace;bb:BitBlt.BBptr=BitBlt.AlignedBBTable[@bbTableSpace];fMinDest:NAT=fMin-dest.fOrigin;fMinSource:NAT=fMin-source.fOrigin;sStartDest:NAT_sMin-dest.sOrigin;sStartSource:NAT_sMin-source.sOrigin;IFsMin<sMaxANDfMin<fMaxTHEN{bb^_[dstBpl:dest.rast*bitsPerWord,srcDesc:[srcBpl[source.rast*bitsPerWord]],height:sMax-sMin,width:Shift[fMax-fMin,lgBitsPerPixel],flags:[direction:forward,disjoint:TRUE,disjointItems:TRUE,gray:FALSE,srcFunc:function.srcFunc,dstFunc:function.dstFunc]];IFsource.pointer=dest.pointerTHEN{sSize:NAT=sMax-sMin;fSize:NAT=fMax-fMin;IF(fMinSource+fSize)>fMinDestAND(fMinDest+fSize)>fMinSourceAND(sStartSource+sSize)>sStartDestAND(sStartDest+sSize)>sStartSourceTHEN{bb.flags.disjoint_FALSE;--therectanglesoverlap��qÔg/ÓE…�wÔ_,ÓÛÓOÔ]ÖÓÛÓÓV�Ó„%yÔ[›ÓÛwÔ[›ÓöyÓÔ[›�Ô[›Ó÷wÔ[›Ó)yÓ$|Ô[›�Ô[›Ó%5wÔ[›Ó(A�ÔZ5ÓÓ«�ÓT�ÔXéÓÓÕÓ2Ó#≤�Ó%óÓ3∏ Ó9s�ÔVÁÓË Ó˙Ó(õÓ+2yÓ/ÔVÁ�ÔVÁÓ/¿wÓ3ÑÔVÁ�ÔVÁÓ3ÁÓ7ΩÔU?ÓËÔSòÓÓflÔQÓÓ∑ÓÓ'Ó)∞ÔPIÓÓöÓ#õÓ%( Ó/ŒÓ1ZÓ<XÔN°ÓÓ… ÔL˙ÓÓqÓ$!ÔKRÓÓ ÓmÓ$ÒyÓ*TÔKR�ÔKRÓ+ wÓ-ÄÔKR�ÔKRÓ.\ yÓ7ÔKR�ÔKRÓ7øwÓ:1ÔKR�ÔKRÓ;yÔI´ÓËwÓÔI´�ÔI´ÓÒÓ¢Ó*~Ó0FÔHÓyÔF\ÓwÓÔF\�ÔF\ÓoÔD¥ÓÔC ÓÛuÔ?æÓ‚wÓÏÔ?æ�Ô?æyÓÍÔ?æ�Ô?æÓíÔ?æÓ£wÔ?æÓJÓ ÈÓ%≤ Ó-¡Ó3µÓ:��Ó;Â�Ô>ÓÛyÓŸÔ>�Ô>ÓCwÔ>Ó!ù�Ó#ÇÔ<oÓÛyÓıÔ<o�Ô<oÓ_wÔ<oÓπ�yÓûÔ<o�Ô<oÓØwÓWÔ<o�Ô<oÓ∫yÓ(+Ô<o�Ô<oÓ)=wÓ*‰Ô<o�Ô<oÓ+G Ó1fiÔ:«Ó∆yÓ£Ô:«�Ô:«Ó¥wÓ\Ô:«�Ô:«ÓøÓ&¬Ô9 ÓÛyÓ!Ô9 �Ô9 ÓãwÔ9 ÓÂ�yÓ Ô9 �Ô9 Ó‹wÓ.Ô9 �Ô9 ÓëyÓ(Ô9 �Ô9 Ó)wÓ*fÔ9 �Ô9 Ó*…Ó8fÔ7yÓ∆yÓ£Ô7y�Ô7yÓ¥wÓÔ7y�Ô7yÓjÓ.fiÔ5—ÓÛyÓÍÔ5—�Ô5—ÓTwÔ5—ÓÆ�yÓìÔ5—�Ô5—Ó•wÓLÔ5—�Ô5—ÓØyÓ(Ô5—�Ô5—Ó)'wÓ*ŒÔ5—�Ô5—Ó+1 Ó1æÔ4*Ó∆yÓòÔ4*�Ô4*Ó©wÓQÔ4*�Ô4*Ó¥Ó&¨Ô2ÇÓÛyÓÔ2Ç�Ô2ÇÓÄwÔ2ÇÓ⁄�yÓøÔ2Ç�Ô2ÇÓ—wÓ#Ô2Ç�Ô2ÇÓÜyÓ'ÏÔ2Ç�Ô2ÇÓ(˛wÓ*PÔ2Ç�Ô2ÇÓ*≥Ó8;Ô0€Ó∆Ó$–yÓ.¢Ô0€�Ô0€Ó/≥wÓ1Ô0€�Ô0€Ó1iÔ/3Ó∆ÓÔ-åÓÛÓOÔ+‰ÓÛÓÓV�Ó;%Ô*=ÓÛyÓ°Ô*=�Ô*=ÓäwÔ*=Óõ�ÓÄÓ˝�Ó ˚Ô(ïÓÛ yÓ¯Ô(ï�Ô(ïÓ‡wÔ(ïÓÒ�Ó÷Ó!S�Ó"QÔ&ÓÓÛ yÓ˚Ô&Ó�Ô&ÓÓ‰wÔ&ÓÓÙ�ÓÅÔ%FÓÛyÓQÔ%F�Ô%FÓ:wÔ%FÓK�Ó◊yÔ#üÓÛwÔ#üÓöyÓÔ#ü�Ô#üÓ÷wÔ#üÓ)yÓ$|Ô#ü�Ô#üÓ%5wÔ#üÓ(A�Ô!˜ÓÓ«�ÓT�Ô PÓÓflÔ®ÓÓö"ÔÓÓ… ÔYÓÓqÓ$!Ô≤ÓÓ ÓmÓ$ÒyÓ*TÔ≤�Ô≤Ó+ wÓ-ÄÔ≤�Ô≤Ó.\ yÓ7Ô≤�Ô≤Ó7øwÓ:1Ô≤�Ô≤Ó;yÔ ÓËwÓÜÔ �Ô ÓcÓ Ó*ÒÓ0∏ÔcÓyÔªÓwÔªÓ¨ Óó�Ó|yÓ&¸Ôª�ÔªÓ'µwÔªÓ*¡�ÔÓyÓÔ�ÔÓÍwÔÓ˚�Ó‡ ÔlÓyÓˆÔl�ÔlÓflwÔlÓ�Ó’ yÔ≈ÓwÔ≈ÓΩyÓ)flÔ≈�Ô≈Ó*≥wÔ≈Ó-yÔÓËwÔÓyÓ,ÔÔ�ÔÓ-√wÔvÓËyÓ)…Ôv�ÔvÓ*ÇwÔvÓ-è�Ô œÓ'Ó!�yÓ"ëÔ œ�Ô œÓ#JwÓ&/Ô œ�Ô œxÓ',Ô œ�Ô œÓ'¶�Ó(£Ó*Ô Ó1@ˇ�������Ü��������TVm$ù������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5IFsStartDest=sStartSourceTHENbb.flags.disjointItems_FALSE;--sodotheitemsIFsStartDest>sStartSourceOR(sStartDest=sStartSourceANDfMinDest>fMinSource)THEN{--reversedirectionbb.flags.direction_backward;bb.srcDesc.srcBpl_bb.dstBpl_-bb.dstBpl;sStartSource_sStartSource+(sSize-1);sStartDest_sStartDest+(sSize-1);};};};bb.dst_[word:dest.pointer+Inline.LongMult[sStartDest,dest.rast]+Shift[fMinDest,-lgPixelsPerWord],bit:Inline.BITAND[fMinDest,Shift[1,lgPixelsPerWord]-1]];bb.src_[word:source.pointer+Inline.LongMult[sStartSource,source.rast]+Shift[fMinSource,-lgPixelsPerWord],bit:Inline.BITAND[fMinSource,Shift[1,lgPixelsPerWord]-1]];BITBLT[bb];};};IsPowerOfTwo:PROC[c:CARDINAL]RETURNS[BOOLEAN]=INLINE{RETURN[BITAND[c,c-1]=0]};largeBitSize:INT_5000;fSizeHint:NAT_100;CreateTile:PUBLICPROC[rectangle:Rectangle,phase:INTEGER_0,rasterPointer:LONGPOINTER,scratchPointer:LONGPOINTER_NIL,scratchWords:INT_0]RETURNS[tile:Tile]={ENABLEInsufficientSpace=>GOTOInsufficientScratch;bitWidth:CARDINAL=Shift[rectangle.fSize,lgBitsPerPixel];bitmapDesc:BitmapDesc=[rectangle.sMin,rectangle.fMin,0,0,rectangle.sSize,rectangle.fSize,rasterPointer,(rectangle.fSize+(pixelsPerWord-1))/pixelsPerWord,rectangle.sSize];IFbitWidth<=16ANDIsPowerOfTwo[bitWidth]ANDbitmapDesc.sSize<16ANDphase=0THEN{small:BitmapDesc_Reshape[scratchPointer,scratchWords,[rectangle.sMin,rectangle.fMin,rectangle.sSize,Shift[16,-lgBitsPerPixel]]];FORfShift:NAT_0,fShift+bitmapDesc.fSizeUNTILfShift>=small.fSizeDOTransfer[small,ShiftMap[bitmapDesc,0,fShift],[null,null]];ENDLOOP;tile_[small.sOrigin,small.fOrigin,small.sSize,small.fSize,0,small.pointer,small.rast,small.lines];}ELSE{fSize:NAT_(fSizeHint+bitmapDesc.fSize-1)/bitmapDesc.fSize*bitmapDesc.fSize;bitsPerLine:NAT_Shift[fSize,lgBitsPerPixel];sSize:NAT_MAX[(((largeBitSize+bitsPerLine-1)/bitsPerLine)/bitmapDesc.sSize)*bitmapDesc.sSize,��qÔg/ÓE…�yÔ_,Ó'wÔ_,ÓŒyÓ(Ô_,�Ô_,Ó(◊wÔ_,Ó+„Ó9�yÓ:îÔ_,�Ô_,Ó;MwÓ>2Ô_,�Ô_,xÓ?/Ô_,�Ô_,Ó?©�Ô]ÖÓ˙Ó≥ÓòÓ‰yÔ[›Ó'wÔ[›ÓŒyÓ'mÔ[›�Ô[›Ó(J�wÔ[›Ó)¢yÓ9kÔ[›�Ô[›Ó:>wÔZ6Ó˙yÓ&_ÔZ6�ÔZ6Ó'wÔZ6Ó*$�xÓ+YÔZ6�ÔZ6Ó+“�Ó,–Ó1MwÔXéÓ8Ó#Ú�Ó%Ó,.Ó7+�Ó8∏Ó>Ì�ÔVÁÓ ÔU?Ó8Ó!�Ó"©Ó*é�Ó,s Ó2{ Ó9 �Ó:ó ÔSòÓ�Ó ÔQÒÓ8ÔPIÓ'ÔN¢ÓÔL˙ÓÓ(�ÓµÓÓ$ö�Ó&Ó7¶ Ó=a�ÔKSÓ◊Ó°Ó)BÓ+ÿyÓ/≠ÔKS�ÔKSÓ0fwÓ4+ÔKS�ÔKSÓ4éÓ;ÔI´Ó◊ÔHÓÓ�ÓûÓ Ó%Ô�Ó'‘Ó:QÔF]Ó◊�ÓºÓ ‹Ó,}Ó/yÓ2ËÔF]�ÔF]Ó3°wÓ7fÔF]�ÔF]Ó7… ÔDµÓ◊Ó†yÔCÓwÓÔC�ÔCÓoÔAfÓÔ?øÓÛuÔ<pÓ‚wÓŒÔ<p�Ô<pyÓÃÔ<p�Ô<pÓswÔ<pÓsyÓnÔ<p�Ô<pÓ9wÓ$•Ô<p�Ô<pyÓ%çÔ<p�Ô<pÓ&awÔ<pÓ+ò�yÓ+˚Ô<p�Ô<pÓ,µwÓ1úÔ<p�Ô<pÓ2É�yÓ4hÔ<p�Ô<pÓ4“wÔ<pÓ9�yÔ:»ÓÛwÔ:»Ó`�yÓ√Ô:»�Ô:»Ó|wÓAÔ:»�Ô:»Ó§ÓÓ«�Ó!¨Ô9!ÓÛÔ5“Ó‚yÓÂÔ5“�Ô5“ÓOwÔ5“Óu�ÓÔ4*Ó‚ yÓ{Ô4*�Ô4*ÓdwÔ4*Ót�ÓuÔ2ÇÓ‚ wÓ-Ô2Ç�Ô2ÇyÓ+Ô2Ç�Ô2ÇÓ”Ô2ÇÓ‰wÔ2ÇÓã Ó%D Ó+˛yÓ0XÔ2Ç�Ô2ÇÓ0¬wÔ2ÇÓ6�Ó7©Ó96 yÔ0€ÓµÔ0€Ó•wÓ¬Ô0€�Ô0€ÓüyÓ#Ô0€�Ô0€Ó#æÔ0€Ó&ˆwÔ0€Ó,ñ�yÓ.#Ô0€�Ô0€Ó/wÓ0/Ô0€�Ô0€Ó1yÓ:Ô0€�Ô0€Ó:xwÔ0€Ó<û�Ó>+yÔ/4ÓµwÔ/4Ó¡Ó¸Ó6�Ó�yÔ-åÓÛwÔ-åÓÓ ’yÓ#jÔ-å�Ô-åÓ$X�Ô-åÓ%πwÔ-åÓ'”Ô+ÂÓÛyÓJÔ+Â�Ô+ÂÓwÔ+ÂÓ�ÓÎÓ,ñÔ*=ÓÛ Ó Ó ª�Ó"†Ó,îÓ6Ó7¶Ô(ñÓ∆Ó@Ó$∞ Ô&ÔÓ∆2Ó1ÍyÔ%GÓÛwÔ%GÓöÓxÓyÓÛÔ%G�Ô%GÓ∆wÔ%GÓ yÓ/ßÔ%G�Ô%GÓ0zwÔ%GÓ2ÕÓ=©�Ó>fiyÔ#†Ó∆wÔ#†ÓÏÓÕ�Ó≤�yÓÁÔ#†�Ô#†Ó†wÔ#†Ó≠�Ô!¯ÓÓ Ó”�Ó `Ó/Ó7ˆÔ QÓ◊Ó]Ó&◊Ó,QyÔ©ÓwÔ©ÓÚyÓBÔ©�Ô©Ó+wÔ©Ó<�Ó…Ó UyÓ/⁄Ô©�Ô©Ó0¿wÔ©Ó4 yÔÓ◊wÔ[ÓÓnÓ,\Ó-ÈÓ2{Ó6yÔ≥ÓwÓ∑Ô≥�Ô≥ÔÓÓc�ÓÓ˙ Ó(ñÓ/“Ó7Ó8ê ÔdÓ◊ ÓBÔΩÓ�yÔÓÛwÔÓB�ÔnÓyÓÂÔn�ÔnÓŒwÔnÓfi�Ô∆Ó◊AÔÓyÓ—Ô�ÔÓ∫wÔÓ �ÓWÓ&SÔwÓyÓÔw�ÔwÓŸwÔwÓÈ�yÔ –Ó◊wÓêÔ –�Ô –ÓÛOˇ�������0��������TVm$`��������������6bitmapDesc.sSize];large:BitmapDesc_Reshape[scratchPointer,scratchWords,[bitmapDesc.sOrigin+bitmapDesc.sMin,bitmapDesc.fOrigin+bitmapDesc.fMin,sSize,fSize]];finalPhase:CARDINAL;WHILEphase<0DOphase_phase+bitmapDesc.fSizeENDLOOP;phase_phaseMODbitmapDesc.fSize;finalPhase_(phase*(sSize/bitmapDesc.sSize))MODbitmapDesc.fSize;large.sSize_bitmapDesc.sSize;large.fSize_bitmapDesc.fSize;Transfer[large,bitmapDesc,[null,null]];WHILElarge.fSize<fSizeDOfSizePrev:NAT=large.fSize;large.fSize_MIN[fSize,2*fSizePrev];Transfer[large,ShiftMap[large,0,fSizePrev],[null,null]];ENDLOOP;WHILElarge.sSize<sSizeDOsSizePrev:NAT=large.sSize;large.sSize_MIN[sSize,2*sSizePrev];Transfer[large,ShiftMap[large,sSizePrev,phase],[null,null]];{firstPart:BitmapDesc_ShiftMap[large,sSizePrev,phase-bitmapDesc.fSize];firstPart.fSize_bitmapDesc.fSize;Transfer[large,firstPart,[null,null]];};phase_2*phase;WHILEphase>bitmapDesc.fSizeDOphase_phase-bitmapDesc.fSizeENDLOOP;ENDLOOP;tile_[large.sOrigin,large.fOrigin,sSize,fSize,finalPhase,large.pointer,large.rast,large.lines];};EXITSInsufficientScratch=>{tile_[rectangle.sMin,rectangle.fMin,rectangle.sSize,rectangle.fSize,phase,rasterPointer,(rectangle.fSize+(pixelsPerWord-1))/pixelsPerWord,rectangle.sSize];};};TransferTile:PUBLICPROC[dest:BitmapDesc,tile:Tile,function:Function_[null,null]]={bitWidth:CARDINAL=Shift[tile.fSize,lgBitsPerPixel];IFbitWidth=bitsPerWordANDtile.rast=1ANDtile.sSize<=16ANDtile.phase=0THEN{startLine:NAT_MAX[dest.sMin,0];endLine:INTEGER_MIN[dest.sMin+dest.sSize,dest.lines];startPixel:NAT_MAX[dest.fMin,0];endPixel:INTEGER_MIN[dest.fMin+dest.fSize,Shift[dest.rast,lgBitsPerWord-lgBitsPerPixel]];IFendLine>startLineANDendPixel>startPixelTHEN{startBit:NAT_Shift[startPixel,lgBitsPerPixel];bbTableSpace:BitBlt.BBTableSpace;��qÔg/ÓE…�wÔ_,Ó◊Ô]ÖÓÓ Óú�Ó )Ó.›Ô[›Ó◊$ÔZ6Ó◊#Ó,0Ó/˚ÔXéÓ yÓÔXé�ÔXéÓ‡wÓ LÔXé�ÔXéyÔVÁÓwÔVÁÓeyÓßÔVÁ�ÔVÁÓç�wÔVÁÓÓÓ"œ�Ó$\Ó(>�Ó*#yÓ4ÙÔVÁ�ÔVÁÓ5≠wÓ:ïÔVÁ�ÔVÁÔU?ÓÓÊ�ÓsyÓTÔU?�ÔU?ÓfwÔU?Ó¨ÔSòÓ Óú�Ó)ÓÑ�Ó ∏yÓ0üÔSò�ÔSòÓ1±wÔSòÓ3˜ÔQÓ Ó±�Ó>ÔPIÓ Ó¶�Ó3ÔN°ÓÓ& Ó$Ó'©yÔL˙ÓwÔL˙ÓeyÓ!öÔL˙�ÔL˙Ó"Ä�wÔKRÓ yÓ¢ÔKR�ÔKRÓäwÔKRÓõ�Ó ÄÔI´Ó Ó∑�yÓDÔI´�ÔI´ÓUwÓ®ÔI´�ÔI´Ó Ó# ÔHÓÓ7Ó'ıÓ)Ç Ó0PÓ3„yÔF\ÓwÓ∑ÔF\�ÔF\yÔD¥ÓwÔD¥ÓeyÓ!∞ÔD¥�ÔD¥Ó"ñ�wÔC Ó yÓ≠ÔC �ÔC ÓïwÔC Ó¶�Ó ãÔAeÓ Ó¬�yÓOÔAe�ÔAeÓ`wÓ≥ÔAe�ÔAeÓ Ó#‡Ô?æÓÓ7Ó'ı Ó.kÓ3Ó6õÔ>Ó ÓÅ Ó#9�Ó$∆Ó.Ñ Ô<oÓËÔ:«Ó'Ó£�Ó!0Ô9 Ó'Ó H Ó%„Ó)vÔ7xÓ'Ô5—ÓÓ˜�ÓÑyÔ4)ÓwÔ4)ÓvÓX�ÓçyÓ)^Ô4)�Ô4)Ó*D�wÔ4)Ó+•Ó/Ü�Ó1Ó4Ù�Ó5ÚyÔ2ÇÓËwÓâÔ2Ç�Ô2ÇyÔ0⁄ÓwÓ∑Ô0⁄�Ô0⁄Ô/3ÓÓc�ÓÓ√ Ó((Ó+ÛÓ/≤ Ó6¢ Ô-ãÓ◊ ÓÔ+‰ÓyÔ*<ÓÛwÔ*<Ó«Ó lÓ#�Ô(ïÓÓc�ÓÓ „Ó*iÓ3„Ó=SÔ&ÓÓ◊ ÓI2Ô%FÓ◊Ô#üÓÔ!˜ÓÛuÔ®Ó‚wÓLÔ®�Ô®yÓJÔ®�Ô®ÓÒÔ®ÓwÔ®Ó©Ó#i Ó+yÓ.QÓ1ÅÓ7tÓ=\�ÔÓµÓHÓÁ�ÓÃ�ÔYÓÛyÓJÔY�ÔYÓwÔYÓ�ÓÎÓ)yÔ≤ÓÛwÔ≤ÓöÓx�Ó] yÓ"aÔ≤�Ô≤Ó#5wÔ≤Ó%áÓ*Z�Ó,?�yÓ-tÔ≤�Ô≤Ó.HwÔ≤Ó0ö Ó6>Ó8‘yÓ:πÔ≤�Ô≤Ó;åwÔ Ó∆ ÓŸ�Óø�yÓÛÔ �Ô Ó¨wÔ Óπ�ÔcÓ yÓDÔc�ÔcÓ-wÔcÓ>�yÓ Ôc�ÔcÓ‹wÓ ÉÔc�ÔcÓ Ê Ó'~ÔªÓyÓÏÔª�ÔªÓUwÔªÓ∞�yÓ =Ôª�ÔªÓ!NwÓ"°Ôª�ÔªÓ#Ó0°ÔÓ yÓ{Ô�ÔÓdwÔÓu�yÓÔ�ÔÓwÓ ∫Ô�ÔÓ! Ó'™ÔlÓyÓ#Ôl�ÔlÓåwÔlÓÁ�yÓ tÔl�ÔlÓ!ÖwÓ"ÿÔl�ÔlÓ#;Ó0¬Ô≈Ó◊yÔÓwÔÓ¨yÓ Ô�ÔÓ ‡wÔÓ#2yÓ/Ô�ÔÓ/∫wÔÓ2∆�ÔvÓyÓXÔv�ÔvÓAwÔvÓQ�ÓfiÓ(pÔ ŒÓÓqˇ�������‚��������TVm$!��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7bb:BitBlt.BBptr=BitBlt.AlignedBBTable[@bbTableSpace];sOffset:INTEGER_(dest.sOrigin+dest.sMin-tile.sOrigin)MODtile.sSize;fOffset:INTEGER_(dest.fOrigin+dest.fMin-tile.fOrigin)MODtile.fSize;WHILEsOffset<0DOsOffset_sOffset+tile.sSizeENDLOOP;WHILEfOffset<0DOfOffset_fOffset+tile.fSizeENDLOOP;bb^_[dst:[word:dest.pointer+Inline.LongMult[startLine,dest.rast]+startBit/bitsPerWord,bit:startBitMODbitsPerWord],dstBpl:dest.rast*bitsPerWord,src:[word:tile.pointer+sOffset,bit:Shift[fOffset,lgBitsPerPixel]],srcDesc:[gray[[yOffset:sOffset,widthMinusOne:0,heightMinusOne:tile.sSize-1]]],height:endLine-startLine,width:Shift[endPixel-startPixel,lgBitsPerPixel],flags:[direction:forward,disjoint:TRUE,disjointItems:TRUE,gray:TRUE,srcFunc:function.srcFunc,dstFunc:function.dstFunc]];BITBLT[bb];};}ELSE{sMin:INT_dest.sOrigin+dest.sMin;fMin:INT_dest.fOrigin+dest.fMin;source:BitmapDesc;sOrigin:INT_tile.sOrigin;fOrigin:INT_tile.fOrigin;WHILEsOrigin<sMinDOsOrigin_sOrigin+tile.sSize;fOrigin_fOrigin+tile.phase;ENDLOOP;WHILEsOrigin>sMinDOsOrigin_sOrigin-tile.sSize;fOrigin_fOrigin-tile.phase;ENDLOOP;WHILEfOrigin<fMinDOfOrigin_fOrigin+tile.fSizeENDLOOP;WHILEfOrigin>fMinDOfOrigin_fOrigin-tile.fSizeENDLOOP;source_[sOrigin,fOrigin,0,0,tile.sSize,tile.fSize,tile.pointer,tile.rast,tile.lines];WHILEsource.sOrigin<sMin+dest.sSizeDOsource.fOrigin_fOrigin;WHILEsource.fOrigin<fMin+dest.fSizeDOTransfer[dest,source,function];source.fOrigin_source.fOrigin+source.fSize;ENDLOOP;source.sOrigin_source.sOrigin+source.sSize;fOrigin_fOrigin+tile.phase;WHILEfOrigin>fMinDOfOrigin_fOrigin-source.fSizeENDLOOP;ENDLOOP;};};END.��qÔg/ÓE…�wÔ_,ÓÓ°Óx�Ó!]%Ô]ÑÓyÓ6Ô]Ñ�Ô]ÑÓ†wÔ]ÑÓ˙�Ó!á%yÓ8/Ô]Ñ�Ô]ÑÓ9@wÔ]ÑÓ;á Ô[›ÓyÓ+Ô[›�Ô[›ÓïwÔ[›ÓÔ�Ó!|%yÓ8Ô[›�Ô[›Ó9wÔ[›Ó;[ yÔZ5ÓwÔZ5ÓvÓ�ÓR�yÓ áÔZ5�ÔZ5Ó!m�wÔZ5Ó"ŒÓ'u�Ó)Ó-©�Ó/é yÓ52ÔZ5�ÔZ5Ó5ÏwÓ:”ÔZ5�ÔZ5yÔXéÓwÔXéÓvÓ�ÓG�yÓ |ÔXé�ÔXéÓ!b�wÔXéÓ"√Ó'_�Ó(ÏÓ-à�Ó/m yÓ5ÔXé�ÔXéÓ5¿wÓ:®ÔXé�ÔXéÔVÊÓÓÿ�Óe�ÔU>Ó'ÓfiÓCÓ%√�Ó'®Ó8 Ó=¬�ÔSóÓ˙Ó%KÓ'‚yÓ,´ÔSó�ÔSóÓ-ºwÔSóÓ0ÔQÓ'ÓÔPHÓ'Ó»Ó-Ó+Ó-ö Ó5ÀÔN†Ó'Ó¨Ó%¨Ó*¨ Ó5QÓ6fiÔL˘Ó˙ÔKQÓ'Ó⁄ÔI™Ó'ÓÇÓ*ÆÔHÓ'Ó€ Ó!~Ó'yÓ,eÔH�ÔHÓ-wÓ/ëÔH�ÔHÓ0m yÓ9ÔH�ÔHÓ9–wÓ<BÔH�ÔHÓ=yÔF[Ó˙wÓ%ÔF[�ÔF[ÓÓ!≥Ó,êÓ2WÔD≥Ó'yÔCÓwÓÔC�ÔCÓÄÔAdÓÔ?ΩÓ�yÔ>ÓÛwÔ>ÓB�Ô<mÓyÓÔ<m�Ô<mÓpwÔ<mÓñ�Ó#Ô:∆ÓyÓ˚Ô:∆�Ô:∆ÓewÔ:∆Óã�ÓÔ9ÓÓÕ Ô7wÓyÓ[Ô7w�Ô7wÓ≈wÔ7wÓÎ�ÓxÔ5œÓyÓPÔ5œ�Ô5œÓ∫wÔ5œÓ‡�ÓmyÔ4'ÓwÔ4'ÓeÓC�ÓxyÓ!�Ô4'�Ô4'Ó!Â�wÔ2ÄÓÓÛ�ÓÄÓ ^�Ó"C Ô0ÿÓÓË�ÓuÓ H�Ó"- yÔ/1ÓwÓ∑Ô/1�Ô/1yÔ-âÓwÔ-âÓeÓC�ÓxyÓ!�Ô-â�Ô-âÓ!Â�wÔ+·ÓÓÛ�ÓÄÓ ^�Ó![ Ô*:ÓÓË�ÓuÓ H�Ó!E yÔ(íÓwÓ∑Ô(í�Ô(íyÔ&ÎÓwÔ&ÎÓeÓ8�ÓmyÓ ÍÔ&Î�Ô&ÎÓ!–�wÔ&ÎÓ#0Ó(�Ó)êÓ.c�Ó0H yÓ5·Ô&Î�Ô&ÎÓ6öwÓ;ÇÔ&Î�Ô&ÎyÔ%CÓwÔ%CÓeÓ8�ÓmyÓ ÍÔ%C�Ô%CÓ!–�wÔ%CÓ#0Ó(�Ó)êÓ.c�Ó/` yÓ4˙Ô%C�Ô%CÓ5≥wÓ:õÔ%C�Ô%CÔ#õÓÓT�Ó·ÓzÓ#•Ó%1Ó&æ Ó,ª Ó2¨Ó9ˇ Ô!ÙÓ◊yÔ MÓwÔ MÓe Ó f�Ó!öyÓ,(Ô M�Ô MÓ-�wÔ•Ó Ó�ÓòyÔ˝ÓwÔ˝Óv Ó"l�Ó#°yÓ.Ô˝�Ô˝Ó.˛�wÔVÓ' Ó≈Ó$m ÔÆÓ' Ó �Ó!© Ó*û�Ó,ÉyÔÓ'wÓ»Ô�ÔÔ_Ó Ó�Ó£ Ó(£�Ó*àÔ∑ÓÓË�ÓuÓ H�Ó"- yÔÓwÔÓvÓI�Ó~yÓ"˚Ô�ÔÓ#·�wÔÓ%AÓ*�Ó+°Ó0t�Ó1qyÓ8¸Ô�ÔÓ9µwÓ>ùÔ�ÔyÔhÓwÓ∑Ôh�ÔhÔ¡ÓÔÓÛyÔ Ó‚wÓiÔ �Ô ˇ�������8��������TVm$.��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpMainImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September20,19849:14:01amPDTDIRECTORYPDInterpReader,PDInterpPage,PDRemoteStream,PDQueue,Process,Stream,String,PDInterpOutput;PDInterpMainImpl:PROGRAMIMPORTSPDInterpReader,PDInterpPage,PDRemoteStream,PDQueue,Process,String,PDInterpOutput=BEGINDoFile:PROC[request:PDQueue.Request,requestNumber:CARDINAL,abort:LONGPOINTERTOBOOLEAN]={Action:PROC[stream:Stream.Handle]={reader:PDInterpReader.Handle_PDInterpReader.Open[stream];separator:LONGSTRING_[160];String.Copy[separator,request.requestTime];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.fileName];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.requestor];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;reader.herald.copies_request.copies;WHILEPDInterpPage.InterpretPage[reader,request,abort].okDOIFabort^THENABORTEDENDLOOP;[]_PDInterpReader.Close[reader];};IFrequest.fileName=NILTHENPDInterpOutput.ReprintLastPage[request.copies]ELSE{PDRemoteStream.Read[request.fileName,request.requestor,request.requestorPassword,Action!PDRemoteStream.Error=>{message:LONGSTRING_[160];String.AppendString[message,request.fileName];String.AppendString[message,""];String.AppendString[message,expl];PDQueue.LogMessage[message,requestNumber];CONTINUE;};PDInterpReader.Error=>{message:LONGSTRING_[160];String.AppendString[message,"PDfileerror:"];String.AppendString[message,SELECTcodeFROMinvalidPassword=>"NotaPDfile",objectOutOfBounds=>"Objectoutofbounds",missingStartImage=>"Missingstartimage",badLoadReference=>"Badloadreference",unrecognisedImagingCommand=>"Unrecognisedimagingcommand",loadOutOfBounds=>"Loadoutofbounds",unrecognisedControlCommand=>"Unrecognisedcontrolcommand",unrecognisedCommandType=>"Unrecognisedcommandtype",��xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXéÓ‚wÔXéÓKÓ!Ó*KÓ5ÔÓ<®ÔVÁÓµÓ¿Ó1ÔU?Ó‚yÓxÔU?�ÔU?Ó ÔU?Ó!˚wÔU?Ó'´Ó2gÔSòÓµÓXÓ"Ó'IÓ+π Ó6�yÓ8ÔSò�ÔSòÓ8ΩuÔPIÓ‚wÓ˘ÔPI�ÔPIyÓ˜ÔPI�ÔPIÓûwÔPIÓûÓOÓ)5 yÓ3áÔPI�ÔPIÓ4RwÓ9æÔPI�ÔPIÓ:öyÔN°ÓµÔN°Ó•ÔN°ÓFÔN°Ó`wÓ!�ÔN°�ÔN°Ó!Ë�Ó#Õ�uÔL˙ÓÛwÓfiÔL˙�ÔL˙yÓ‹ÔL˙�ÔL˙ÓÑwÓˇÔL˙�ÔL˙ÓbÓL Ó(�Ó)˙�ÔKRÓÓ¬Ó&Ÿ�Ó(fÔI´Ó yÓpÔI´�ÔI´Ó)ÔI´ÓawÔI´Ó"R�Ó#flÔHÓÓ ŒyÔF\ÓwÔF\ÓíyÓÔF\�ÔF\ÓÈ�wÔF\ÓIÓ1ö�Ó2w�yÓ3^ÔF\�ÔF\Ó4wÓ8ˇÔF\�ÔF\ÔD¥ÓÓ%˚yÔC ÓwÔC ÓíyÓÔC �ÔC ÓÈ�wÔC ÓIÓ1ö�Ó2w�yÓ3^ÔC �ÔC Ó4wÓ8ˇÔC �ÔC ÔAeÓÓ%˚yÔ?æÓwÔ?æÓíyÓÔ?æ�Ô?æÓÈ�wÔ?æÓIÓ1ö�Ó2w�yÓ3^Ô?æ�Ô?æÓ4wÓ8ˇÔ?æ�Ô?æÔ>ÓÓb�Ó ÔyÔ<oÓwÔ<oÓe"Ó-4Ó2ayÓ81Ô<o�Ô<oÓ9�Ô<oÓ:wwÔ<oÓ<yÔ:«Ó◊Ô:«ÓùÔ:«Ó∂wÓ#WÔ:«�Ô:«Ô9 ÓÓO�Ó‹Ô7xÓyÔ5—ÓÛwÔ5—ÓöÓC�yÓ(Ô5—�Ô5—Ó Ô5—Ó!∏wÔ4)Ó∆.yÔ2ÇÓÛwÔ2ÇÓB�Ô0⁄Ó%Ó,°Ô/3Ó◊Ó$oÓ(Í�Ô-åÓÓ#ËÓ&}�Ô+‰Ó'yÓ˜Ô+‰�Ô+‰Ó±Ô+‰Ó ËwÔ+‰Ó%Ÿ�Ó'fÔ*=Ó'Ó)ÇÔ(ïÓ'Ó)Ç�Ó*∑Ô&ÓÓ'Ó)ÇÔ%FÓ'Ó*¿yÔ#ûÓ'wÓaÔ#û�Ô#ûÔ!˜Ó'Ô OÓÓ#Ó%ñ�Ô®Ó'yÓ˜Ô®�Ô®Ó±Ô®Ó ËwÔ®Ó%Ÿ�Ó'fÔ�Ó'Ó)ÇÓ,®Ó/Ó2¸ÔYÓ'yÓ)ÇÔY�ÔYÓ*"wÔYÓ.UyÓ1úÔY�ÔYÓ2UwÔ±Ó8Ó#MÓ%‚Ó)d�Ó*çÓ-Ô Ó8Ó%¢Ó(8Ó-YÓ/œÓ1àÔbÓ8Ó$£Ó'9Ó- Ó0ÔªÓ8Ó$˝Ó'íÓ+Ó.* ÔÓ8Ó,≤Ó/GÓ8¨ÔlÓÔƒÓ8Ó$ôÓ'.Ó+rÓ-ÁÓ/†ÔÓ8Ó,eÓ.˚Ó8_ÔvÓÔ ŒÓ8Ó*ÿÓ-nÓ6”Ó=4ˇ�������6��������TVm$¡��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2unexpectedEOF=>"UnexpectedEOF",runGroupTooLong=>"Rungrouptoolong",bitmapTooBig=>"Bitmaptoobig",deviceCommandTooBig=>"Devicecommandtoobig",ENDCASE=>"??"];String.AppendString[message,"wordIndex:"];String.AppendDecimal[message,wordIndex];String.AppendString[message,"wordCount:"];String.AppendDecimal[message,wordCount];PDQueue.LogMessage[message,requestNumber];CONTINUE;};PDInterpReader.Warning=>{message:LONGSTRING_[160];String.AppendString[message,"PDfilewarning:"];String.AppendString[message,SELECTcodeFROMwrongFormatVersion=>"WrongversionofPDfileformat",unreasonableResolution=>"Unreasonableresolution",unreasonableBandSSize=>"UnreasonablebandSSize",unreasonableImageSize=>"UnreasonableimageSize",unreasonableLoadSize=>"UnreasonableloadSize",unreasonableNumberOfCopies=>"Unreasonablenumberofcopies",objectOutOfBand=>"Objectoutofband",emptyRunGroup=>"Emptyrungroup",nonZeroFill=>"Non-zerofill",imageBoundsExceedPageBounds=>"Imageboundsexceedpagebounds",tooFewBands=>"Toofewbands",unknownColorTileFlag=>"Unknowncolortileflag",ENDCASE=>"??"];String.AppendString[message,"wordIndex:"];String.AppendDecimal[message,wordIndex];String.AppendString[message,"wordCount:"];String.AppendDecimal[message,wordCount];PDQueue.LogMessage[message,requestNumber];RESUME;};];};};Main:PROC={DOPDQueue.DoRequest[DoFile!ABORTED=>CONTINUE;]ENDLOOP};��qÔg/ÓE…�wÔ_,Ó8Ó#dÓ%˙ Ó.LÔ]ÑÓ8Ó%=Ó'”Ó+ûÓ/†Ó2 Ô[›Ó8Ó"DÓ$⁄Ó*^Ó,»ÔZ5Ó8Ó(Ó*™Ó/˜Ó6XÓ8¬yÔXéÓ8wÔXéÓ:Ó!–ÔVÊÓ8ÔU>Ó'Ó)Ç�Ó*∑ Ó2!ÔSóÓ'Ó*„ ÔQÔÓ'Ó)Ç�Ó*∑ Ó2nÔPHÓ'Ó*„ ÔN†Ó'Ó*¿yÔL¯Ó'wÓaÔL¯�ÔL¯ÔKQÓ'ÔI©ÓÓ$¸Ó'í�ÔHÓ'yÓ˜ÔH�ÔHÓ±ÔHÓ ËwÔHÓ%Ÿ�Ó'fÔFZÓ'Ó)ÇÓ,®Ó/Ó4◊ÔD≤Ó'yÓ)ÇÔD≤�ÔD≤Ó*"wÔD≤Ó.UyÓ1úÔD≤�ÔD≤Ó2UwÔCÓ8Ó&fÓ(¸Ó.HÓ3Ó4»Ó7=Ó9ßÔAcÓ8Ó(�Ó*ñÓ3˙Ô?ºÓ8Ó'flÓ*uÓ3Ÿ Ô>Ó8Ó'ßÓ*=Ó3° Ô<lÓ8Ó' Ó)¢Ó3 Ô:≈Ó8Ó,2Ó.«Ó8,Ó=XÔ9ÓÔ7vÓ8Ó$AÓ&◊Ó+¯Ó.mÓ0&Ô5ŒÓ8Ó#ˇÓ&ïÓ+¡Ó.WÔ4'Ó8 Ó ‚Ó#wÓ*IÔ2Ó8Ó-MÓ/‚Ó4¿Ó9†Ó>'Ô0ÿÓÔ/0Ó8 Ó!ÀÓ$`Ó'ÛÓ*îÔ-âÓ8Ó'öÓ*0Ó1LÓ4…Ó7(yÔ+·Ó8wÔ+·Ó:Ó!–Ô*9Ó8Ô(íÓ'Ó)Ç�Ó*∑ Ó2!Ô&ÍÓ'Ó*„ Ô%CÓ'Ó)Ç�Ó*∑ Ó2nÔ#õÓ'Ó*„ Ô!ÛÓ'Ó*¿yÔ LÓ'wÓÔ L�Ô LÔ§Ó'Ô˝ÓÔUÓÔ≠ÓÛuÔ^Ó‚wÓÔ^�Ô^yÓÔ^�Ô^Ó∑wÔ^Ó∂�Óõ�yÔ∑ÓÛwÔÓÓ$˝�yÔgÓwÔgÓ/yÓƒÔg�ÔgÓèwÓ#˛Ôg�ÔgÔ¿Ó�yÔÓwÔqÓÛ�������2��������TVm$⁄����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3PDQueue.LogMessage["Booted."];Process.Detach[FORKMain[]];END.��qÔg/ÓE…�wÔ_,Ó‚Ô[›Ó‚yÓ1Ô[›�Ô[›ÓÎwÔ[›ÓyÔXèÓ‚wÓiÔXè�ÔXèˇ��������>��������TVm$�-����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpOutput.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September19,19849:12:44amPDTDIRECTORYPDFileFormat,PDInterpBitmap,PDQueue;PDInterpOutput:DEFINITIONS=BEGINStartImage:PROC[herald:PDFileFormat.Herald,startImage:PDFileFormat.StartImage,request:PDQueue.Request]RETURNS[PDInterpBitmap.BitmapDesc];Calledatthestartofeachpass.Returnsaclearedbufferforthefirstbandonthepage.Onsomedevices(continuousformdevicessuchasaVersatec),theoutputroutinemaywanttoprintaseparatorbarcontainingtheseparatorstring.TheImplshouldcopythestringifitneedstosaveitpasttheStartImagecall.EndBand:PROCRETURNS[PDInterpBitmap.BitmapDesc];Calledattheendofeachband.Returnsaclearedbufferforthenextband.Thebufferreturnedbythecallforthelastbandshouldnotbeused.EndImage:PROC[request:PDQueue.Request];Actuallystartstheprinting.ReprintLastPage:PROC[copies:CARDINAL];Attemptstoreprintthemostrecentpageagain.Thereneedstobesomestuffhereforerrormessagesandrecovery.END.��xÔ_:Ó‚Ô]ìÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXùÓ‚wÔXùÓKÓ–Ó*óÔUNÓ‚yÓ¡ÔUN�ÔUNÓ¶ wÔUNÓ!‡�yÓ#≈ÔUN�ÔUNÓ$uÔQˇÓ‚ wÓÑÔQˇ�ÔQˇyÓÇÔQˇ�ÔQˇÓ)wÔQˇÓ)ÓJÓ-@ ÔPXÓµÓ Ó%WyÔN±ÓÛwÔN±ÓˇxÔM ÓÛÓ7Ó‹Ó(ÓFÓÈÓ!ÔKbÓÛÓ�Ó9Ó÷ÓƒÓ!ÏÓ$8Ó'Ó*[Ó,NÓ.öÔIªÓÛÓIÓ≥Ó; Ó"ÇÓ%¿Ó*HÓ-eÓ/�Ó0R Ó6üÓ8ÎÓ=*ÔHÓ∆Ó∂ÓÓ¶ÓÒ�Ó%Ó$Ó&l Ó-Ó/[Ó59Ó9‰Ó<ßÔFlÓ∆ÓÓ1Ó}ÓMÓ £Ó!˙Ó%®Ó'LÓ*;Ó+ìÓ.lÓ0∏ Ó7€uÔCÓ‚wÓDÔC�ÔCyÓAÔC�ÔCÓÈÔCÓËwÔCÓÙxÔAvÓÛÓ7Ó‹Ó(Ó∂ÓYÓ ÅÔ?œÓÛÓ�Ó9Ó÷ÓƒÓ!ÏÓ$8Ó'MÔ>'ÓÛÓ∂Ó•ÓÓ›Ó!)Ó#øÓ%ÁÓ(3Ó*øÓ.Ó2YÓ4ºÓ6åuÔ:ŸÓ‚wÓ”Ô:Ÿ�Ô:ŸyÓ–Ô:Ÿ�Ô:ŸÓxwÓ]Ô:Ÿ�Ô:ŸÓ¿ÓxÔ91ÓÛÓYÓ˚ÓGuÔ5„Ó‚wÓflÔ5„�Ô5„yÓ›Ô5„�Ô5„ÓÖwÔ5„ÓÑyÓ"èÔ5„�Ô5„Ó#ZwÓ(∆Ô5„�Ô5„Ó))�xÔ4;ÓÛÓ´ÓPÓ∫ÓÓ"EÓ&MÓ)}Ô0ÌÓ‚ÓƒÓrÓÓÊÓPÓ cÓ#^Ó%ÜÓ(‚Ó.†Ó1CyÔ-ûÓ‚wÓiÔ-û�Ô-û�������∫��������TVm$œ����������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpOutputViewerImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September26,19845:22:14pmPDTImplementsaCedarPDoutputdevicethatshowsthebitmapinaviewer.DIRECTORYPDFileFormat,PDInterpBitmap,Menus,ImagerPixelMaps,PDInterpOutput,ViewerClasses,ViewerOps,CGContext,Graphics,GraphicsOps,Real,ImagerFrameBuffer,Process,PDTextBitmap,String,PDQueue;PDInterpOutputViewerImpl:PROGRAMIMPORTSMenus,ImagerPixelMaps,ViewerOps,Graphics,GraphicsOps,Real,ImagerFrameBuffer,Process,PDTextBitmap,PDInterpBitmap,StringEXPORTSPDInterpOutput=BEGINviewer:ViewerClasses.Viewer_NIL;pageMap:ImagerPixelMaps.PixelMap_ImagerPixelMaps.Create[0,[0,0,0,0]];currentStartImage:PDFileFormat.StartImage;currentHerald:PDFileFormat.Herald;bandNumber:NAT_0;StartImage:PUBLICPROC[herald:PDFileFormat.Herald,startImage:PDFileFormat.StartImage,request:PDQueue.Request]RETURNS[PDInterpBitmap.BitmapDesc]={bandMap:ImagerPixelMaps.PixelMap;pageMap_ImagerPixelMaps.Create[0,[startImage.passBands*herald.bandSSize,startImage.fMinPage,startImage.nBands*herald.bandSSize,startImage.fSizePage]];currentStartImage_startImage;currentHerald_herald;bandNumber_0;pageMap.Clear;bandMap_pageMap.Clip[[startImage.passBands*herald.bandSSize,startImage.fMinPage,herald.bandSSize,startImage.fSizePage]];RETURN[[sOrigin:bandMap.sOrigin,fOrigin:bandMap.fOrigin,sMin:bandMap.sMin,fMin:bandMap.fMin,sSize:bandMap.sSize,fSize:bandMap.fSize,pointer:bandMap.refRep.pointer,rast:bandMap.refRep.rast,lines:bandMap.refRep.lines]]};EndBand:PUBLICPROCRETURNS[PDInterpBitmap.BitmapDesc]={bandMap:ImagerPixelMaps.PixelMap;bandNumber_bandNumber+1;bandMap_���xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WÔZ5Ó‚ Ó)�Ó^Ó`ÓflÓ"Ó&!Ó(ÛÓ,’Ó/!Ó3üÓ5E�Ó6zyÔVÊÓ‚wÔVÊÓKÓ–Ó*óÓ/ÅÔU?ÓµÓr Ó#µ Ó+ Ó2’Ó9ÔSòÓµÓHÓ˛Ó%4Ó.˝Ó3nÔPIÓ‚yÓ ∆ÔPI�ÔPIÓ!nÔN°ÓÛwÔN°Ó£ÓçÓ&À Ó.4Ó4tÓ=ÔL˙Ó∆Ó{Ó#≤Ó-{Ó8ByÔKRÓÛwÔKRÓµ ÔI´ÓÛ�yÓÿÔI´�ÔI´ÓëwÔF\ÓÛÓ—Ó#A�yÓ$ŒÔF\�ÔF\Ó%∂wÓ&ŸÔF\�ÔF\ÔC ÓÛÓuÓ(c�Ó)Ó:z ÔAeÓÛÓÆÔ?æÓÛ ÓOÔ>ÓÛ yÓÔÔ>�Ô>Ó◊wÔ>ÓË�ÓuuÔ:«ÓÛ wÓïÔ:«�Ô:«yÓìÔ:«�Ô:«Ó:Ô:«ÓKwÔ:«Ó ÚÓ&Ó4 Ô9 Ó∆Ó"Ó'hyÔ7xÓwÔ7xÓÓ+–�Ó-µ�Ô5—ÓÓæÔ4)ÓÓ �ÓöÔ2ÇÓ◊'Ó,™Ô0€Ó◊#Ó*òÔ/3ÓÓE�Ó“ Ô-åÓÓÁ�ÓtÔ+‰Ó Óá�ÓÔ*=Ó Ô(ïÓÓE�Ó“4Ô&ÓÓ◊Ó!Ó,%yÔ%FÓwÔ%FÓqÔ#üÓÓmÔ!˜ÓÓbÔ PÓÓÔ®ÓÓÔÓÓ ÔYÓÓˆ Ô≤ÓÓXÔ ÓÓ0ÔcÓÓ ÔªÓÔÓuÔƒÓÛwÓUÔƒ�ÔƒyÓRÔƒ�ÔƒÓ˙ÔƒÓÔƒÓ≤wÔƒÓ%æÓ8~�Ó:c�ÔÓÓæÔuÓ Óá�Ó Ó%ñ�Ó'{Ô ŒÓÓE�ˇ�������G��������TVm$Ÿ����2pageMap.Clip[[(currentStartImage.passBands+bandNumber)*currentHerald.bandSSize,currentStartImage.fMinPage,currentHerald.bandSSize,currentStartImage.fSizePage]];RETURN[[sOrigin:bandMap.sOrigin,fOrigin:bandMap.fOrigin,sMin:bandMap.sMin,fMin:bandMap.fMin,sSize:bandMap.sSize,fSize:bandMap.fSize,pointer:bandMap.refRep.pointer,rast:bandMap.refRep.rast,lines:bandMap.refRep.lines]]};ShowPage:PROC={data:ViewerData;IFviewer=NILORviewer.destroyedTHENviewer_ViewerOps.CreateViewer[$PDInterpOutputViewerClass,[name:"PDpage",column:left,iconic:TRUE]]ELSEViewerOps.PaintViewer[viewer,client];data_NARROW[viewer.data];data.nextPage_FALSE;data.sShift_-pageMap.sOrigin;data.fShift_-pageMap.fOrigin;DOIFviewer.destroyedORdata.nextPageTHENEXIT;Process.Pause[Process.MsecToTicks[200]];ENDLOOP;};EndImage:PUBLICPROC[request:PDQueue.Request]={separator:LONGSTRING_[160];String.Copy[separator,request.requestTime];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.fileName];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;String.AppendString[separator,request.requestor];THROUGH[0..2)DOString.AppendChar[separator,']ENDLOOP;ShowPage[];IFPDTextBitmap.fontName.length=0THENIFNOTPDTextBitmap.SetFont["[Indigo]<Peach>Fonts>TimesRoman36B.ks",request.requestor,request.requestorPassword]THENERROR;pageMap_pageMap.refRep.Reshape[0,[-1-PDTextBitmap.FontAscent[],-PDTextBitmap.FontAscent[],PDTextBitmap.FontAscent[]+PDTextBitmap.FontDescent[]+2,PDTextBitmap.TextWidth[separator]+2*PDTextBitmap.FontAscent[]]];{bits:PDInterpBitmap.BitmapDesc_[sOrigin:pageMap.sOrigin,fOrigin:pageMap.fOrigin,��qÔg/ÓE…�wÔ_,Ó◊OÔ]ÖÓ◊Ó%éÔ[›Ó◊yÔZ6ÓwÔZ6ÓqÔXéÓÓmÔVÁÓÓbÔU?ÓÓÔSòÓÓÔQÓÓ ÔPIÓÓˆ ÔN°ÓÓXÔL˙ÓÓ0ÔKRÓÓ ÔI´ÓÔHÓuÔD¥ÓÛwÓÔD¥�ÔD¥yÓÔD¥�ÔD¥Ó¡wÔD¥Ó¿�Ó•�ÔC ÓÓÉ yÔAeÓwÔAeÓ¨Ó�yÓıÔAe�ÔAeÓfiÔAeÓÖwÔAeÓ∫yÓ*2ÔAe�ÔAeÓ*ÎwÔAeÓ-˜Ó2\�Ô?æÓ◊2Ó5◊Ó:sÓ=ôÔ>Ó◊ÓFÓyÓ éÔ>�Ô>Ó!GwÓ#∫Ô>�Ô>Ó$�yÔ<oÓwÔ<oÓSÓ)îÔ:«ÓÓ �yÓñÔ:«�Ô:«ÓwÔ:«Óu Ô9 ÓÓπ�yÓFÔ9 �Ô9 ÓˇwÓ ‰Ô9 �Ô9 Ô7xÓ Óæ�ÓKÔ5—Ó Ó≥�Ó@yÔ4)ÓÔ2ÇÓwÔ2ÇÓΩyÓ!5Ô2Ç�Ô2ÇÓ"�wÔ2ÇÓ#iyÓ,Ô2Ç�Ô2ÇÓ,◊Ô2ÇÓ/„wÓ2ìÔ2Ç�Ô2ÇÔ0⁄Ó(yÔ/3ÓwÓ∑Ô/3�Ô/3Ô-ãÓuÔ*<ÓÛwÓ‰Ô*<�Ô*<yÓ‚Ô*<�Ô*<ÓâÔ*<ÓöwÔ*<Ó AÓ%ÚÓ1„�Ó3»�Ô(ïÓ yÓpÔ(ï�Ô(ïÓ)Ô(ïÓawÔ(ïÓ"R�Ó#flÔ&ÌÓÓ ŒyÔ%FÓwÔ%FÓíyÓÔ%F�Ô%FÓÈ�wÔ%FÓIÓ1ö�Ó2w�yÓ3^Ô%F�Ô%FÓ4wÓ8ˇÔ%F�Ô%FÔ#ûÓÓ%˚yÔ!˜ÓwÔ!˜ÓíyÓÔ!˜�Ô!˜ÓÈ�wÔ!˜ÓIÓ1ö�Ó2w�yÓ3^Ô!˜�Ô!˜Ó4wÓ8ˇÔ!˜�Ô!˜Ô OÓÓ%˚yÔ®ÓwÔ®ÓíyÓÔ®�Ô®ÓÈ�wÔ®ÓIÓ1ö�Ó2w�yÓ3^Ô®�Ô®Ó4wÓ8ˇÔ®�Ô®Ô�Ó yÔYÓwÔYÓ¨Ó(Ç�Ó*g�yÓ+úÔY�ÔYÓ,UÔYÓ/aÔYÓ1wÔ±Ó◊=Ô Ó◊ÓÎyÓ/éÔ �Ô Ó0GÔ Ó3SwÓ7eÔ �Ô ÔbÓÓ �ÓöÓ+‚ÔªÓ◊ÔÓ◊7ÔlÓ◊@Ô≈Ó�ÔÓÓ0Ó**�Ó+∑�ÔvÓ'Ó~Ô ŒÓ'Ós�������H��������TVm$M��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3sMin:pageMap.sMin,fMin:pageMap.fMin,sSize:pageMap.sSize,fSize:pageMap.fSize,pointer:pageMap.refRep.pointer,rast:pageMap.refRep.rast,lines:pageMap.refRep.lines];PDInterpBitmap.Fill[bits,[-10000,-10000,20000,20000],1];PDTextBitmap.TextToBitmap[dest:bits,string:separator,function:[and,complement]];};ShowPage[];};ReprintLastPage:PUBLICPROC[copies:CARDINAL]={IFcurrentHerald.password#PDFileFormat.passwordValueTHENRETURN;currentHerald.copies_copies;ShowPage[];};viewerClass:ViewerClasses.ViewerClass_NEW[ViewerClasses.ViewerClassRec_[init:ViewerInit,paint:ViewerPaint,scroll:ViewerScroll,coordSys:bottom,icon:tool]];ViewerData:TYPE=REFViewerDataRep;ViewerDataRep:TYPE=RECORD[sShift:INTEGER_0,fShift:INTEGER_0,nextPage:BOOLEAN_FALSE];HScrollHit:Menus.ClickProc=TRUSTED{viewer:ViewerClasses.Viewer_NARROW[parent];data:ViewerData_NARROW[viewer.data];IFdata=NILTHENRETURN;data.fShift_data.fShift+(IFmouseButton=redTHEN-128ELSE128);IFmouseButton=yellowTHENdata.fShift_-pageMap.fMin;ViewerOps.PaintViewer[viewer,client];};PageHit:Menus.ClickProc=TRUSTED{viewer:ViewerClasses.Viewer_NARROW[parent];data:ViewerData_NARROW[viewer.data];IFdata=NILTHENRETURN;data.nextPage_TRUE;���qÔg/ÓE…�wÔ_7Ó'Ó(Ô]êÓ'ÓÔ[ËÓ'Ó ÔZ@Ó'Ó ÔXôÓ'ÓiÔVÒÓ'ÓAÔUJÓ'Ó€ÔS¢Ó'ÔQ˚ÓÓ$≈Ó)Ó.∏Ó3Ó7∏ÔPSÓÓ*∏Ó-±Ó2 Ó8KÓ>?ÔN¨ÓËÔMÓÔK]Ó ÔIµÓuÔFfÓÛwÓÔFf�ÔFfyÓÓÔFf�ÔFfÓñÔFfÓ ßwÔFfÓ$NyÓ)YÔFf�ÔFfÓ*#wÓ/èÔFf�ÔFfÓ0w�Ó2\�yÔDøÓwÔDøÓ¨Ó#_�Ó%DyÓ7µÔDø�ÔDøÓ8nÔDøÓ;zwÓ@bÔDø�ÔDøÔCÓÓÈ�Ó!uÔApÓ Ô?»ÓÔ<yÓÛÓ‡Ó)^�yÓ*ÎÔ<y�Ô<yÓ+‘wÔ<yÓ.+Ô:“Ó∆�ÓS�Ô9*ÓÓ˛ Ô7ÉÓÓÔ5€ÓÓ'Ô44ÓÓZÔ2åÓÓÇÔ0ÂÓÔ-ñÓÛ yÓ˜Ô-ñ�Ô-ñÓ∞wÔ-ñÓi�yÓNÔ-ñ�Ô-ñÓ"wÔ-ñÓ! Ô*FÓÛ yÓmÔ*F�Ô*FÓ&wÔ*FÓfi�yÓ √Ô*F�Ô*FÓ!ówÔ*FÓ&6�Ô(üÓyÓ_Ô(ü�Ô(üÓ…wÔ(üÓ$�Ó±Ô&˜ÓyÓUÔ&˜�Ô&˜ÓæwÔ&˜Ó�Ó¶Ô%PÓyÓZÔ%P�Ô%PÓwÔ%PÓ�yÓ!Ô%P�Ô%PÓ!≈wÔ#®ÓuÔ YÓÛ wÓ´Ô Y�Ô YÓ©Ó#X�yÓ%=Ô Y�Ô YÓ%ˆwÔ YÓ++�Ô≤ÓÓ‚Ó%R�yÓ&flÔ≤�Ô≤Ó'«wÓ,9Ô≤�Ô≤Ó,úÔ ÓÓÉ Ó �yÓöÔ �Ô Ó ÉwÓ$ıÔ �Ô Ó%XyÔcÓwÔcÓ¨Ó±�yÓñÔc�ÔcÓ~ÔcÓ%ÔcÓÎwÓ$”Ôc�ÔcÔªÓ Ó≥�Ó@ Ó!Ô�Ó#‘�yÓ$NÔª�ÔªÓ$∑�wÔªÓ%ı Ó.]�Ó0ByÓ2∑Ôª�ÔªÓ3pwÔªÓ6|yÓ9ãÔª�ÔªÓ:DwÔªÓ<⁄yÔÓwÔÓ¨ Ó�Ó˘yÓ#RÔ�ÔÓ$wÔÓ' Ó-∆�Ó/S ÔlÓÓ&EÔ≈ÓuÔvÓÛwÓÁÔv�ÔvÓÂÓ!î�yÓ#yÔv�ÔvÓ$2wÔvÓ)g�ÔŒÓÓ‚Ó%R�yÓ&flÔŒ�ÔŒÓ'«wÓ,9ÔŒ�ÔŒÓ,úÔ&ÓÓÉ Ó �yÓöÔ&�Ô&Ó ÉwÓ$ıÔ&�Ô&Ó%XyÔÓwÔÓ¨Ó±�yÓñÔ�ÔÓ~ÔÓ%ÔÓÎwÓ$”Ô�ÔÔ ◊ÓÓπ�yÓFÔ ◊�Ô ◊ÓˇwÓ qÔ ◊�Ô ◊�������ç��������TVm$í����������������������������������������������������������������������������4};lfGraphicsData:CGContext.Ref=NARROW[Graphics.NewContext[].data];ViewerInit:ViewerClasses.InitProc=TRUSTED{viewerData:ViewerData_NEW[ViewerDataRep];menu:Menus.Menu_Menus.CreateMenu[1];Menus.InsertMenuEntry[menu,Menus.CreateEntry[name:"<<<-->>>",proc:HScrollHit]];Menus.InsertMenuEntry[menu,Menus.CreateEntry[name:"Page",proc:PageHit]];viewerData.sShift_0;viewerData.fShift_0;self.data_viewerData;self.menu_menu;};ViewerScroll:ViewerClasses.ScrollProc=TRUSTED{data:ViewerData_NARROW[self.data];IFdata=NILORop=queryTHENRETURN[0,100];IFop=thumbTHEN{data.sShift_-pageMap.sOrigin;RETURN[0,100]};IFamount=0THENRETURN[0,100];IFop=downTHENamount_-amount;data.sShift_data.sShift-amount;ViewerOps.PaintViewer[self,client];RETURN[0,100];};OnLFDisplay:PROC[graphics:Graphics.Context]RETURNS[BOOLEAN]={data:CGContext.Ref=NARROW[graphics.data];RETURN[data.device.Show=lfGraphicsData.device.Show]};GetViewerPixelMap:PROC[graphics:Graphics.Context]RETURNS[pixelMap:ImagerPixelMaps.PixelMap]={x,y,w,h:REAL;[x,y]_GraphicsOps.UserToDevice[graphics,0,0];IFGraphicsOps.UserToDevice[graphics,0,1].ty>yTHENERROR;[[xmax:w,ymax:h]]_Graphics.GetBounds[graphics];IFOnLFDisplay[graphics]THEN{sMin:INTEGER_Real.RoundLI[y]-Real.RoundLI[h];pixelMap_ImagerFrameBuffer.LFDisplay[];pixelMap_pixelMap.ShiftMap[-sMin,-Real.RoundLI[x]];pixelMap_pixelMap.Clip[[0,0,Real.RoundLI[h],Real.RoundLI[w]]];}ELSEpixelMap_ImagerPixelMaps.Create[0,[0,0,0,0]];};ViewerPaint:ViewerClasses.PaintProc=TRUSTED{data:ViewerData_NARROW[self.data];pixelMap:ImagerPixelMaps.PixelMap_GetViewerPixelMap[context];pixelMap.Transfer[pageMap.ShiftMap[data.sShift,data.fShift]];���qÔg/ÓE…�wÔ_,ÓÔ[›ÓÛÓ Ó$Ë�yÓ&ÕÔ[›�Ô[›Ó'µwÓ,'Ô[›�Ô[›Ó,äuÔXéÓÛ wÓÔXé�ÔXéÓÓ&$�yÓ( ÔXé�ÔXéÓ(¬wÔXéÓ-˜�ÔVÊÓ Óª Ó"F�yÓ#”ÔVÊ�ÔVÊÓ$ªwÓ&èÔVÊ�ÔVÊÓ&ÚÔU?ÓÓ_ Ó—�Ó!]ÔSóÓÓ&GÓ6{ Ó=ÕÔQÓ◊ÔPIÓÓ&GÓ6{Ó;ÖÔN°Ó◊ ÔL˙ÓÓ˜�ÓÑÔKRÓÓÏ�ÓyÔI´ÓÓg�ÓÙ ÔHÓÓC�Ó–ÔF\ÓuÔC ÓÛwÓàÔC �ÔC ÓÖÓ(€�yÓ*¿ÔC �ÔC Ó+ywÔC Ó0Æ�ÔAeÓÓÉ Ó �yÓöÔAe�ÔAeÓ ÉwÔAeÓ%yyÔ?æÓwÔ?æÓ¨Ó±�yÓñÔ?æ�Ô?æÓ~Ô?æÓ%wÔ?æÓZÓ a�Ó"FyÓ&2Ô?æ�Ô?æÓ&ÎÔ?æÓ)˜wÔ?æÓ/dÓ1TyÔ>ÓwÔ>Ó¨Ó≤�ÓóyÓ Ô>�Ô>Ó¬wÔ>Ó ŒÓ(9�Ó)∆yÓ5rÔ>�Ô>Ó6FwÔ>Ó:fiÓ<ŒyÔ<oÓwÔ<oÓ¨Ó∑�Óú�yÓ—Ô<o�Ô<oÓäÔ<oÓ ñwÔ<oÓ&Ó'ÚyÔ:«ÓwÔ:«Ó¨Ó≤�ÓóyÓbÔ:«�Ô:«ÓwÔ:«Ó (Ó%3�Ó&¿Ô9Ó Óæ�ÓK Ó"�Ó#Ô7xÓÓ$kyÔ5–ÓwÔ5–ÓqÓaÔ4)ÓuÔ0⁄ÓÛ wÓÔ0⁄�Ô0⁄yÓˇÔ0⁄�Ô0⁄Ó¶wÔ0⁄Ó¶ Ó#ÒyÓ/GÔ0⁄�Ô0⁄Ó0wÔ0⁄Ó5R�yÓ5∂Ô0⁄�Ô0⁄Ó6owÓ;VÔ0⁄�Ô0⁄Ó<=�Ó>"�Ô/2ÓÓÉÓ a�yÓ"FÔ/2�Ô/2Ó#.wÓ'†Ô/2�Ô/2Ó(yÔ-ãÓwÔ-ãÓqÓ#è�Ó%tÔ+„ÓuÔ(îÓÛwÓÔ(î�Ô(îyÓ�Ô(î�Ô(îÓßwÔ(îÓ!ß Ó'ÚyÓ3HÔ(î�Ô(îÓ4wÔ(îÓ9S Ô&ÌÓ∆Ó#�Ó$¸�Ô%EÓÓëÓÓ¯yÓΩÔ%E�Ô%EÓëwÓ÷Ô%E�Ô%EÔ#ûÓÓÙÓå�Ó'yÔ!ˆÓwÔ!ˆÓ¨)Ó/ �Ó0?�yÓ1tÔ!ˆ�Ô!ˆÓ2-Ô!ˆÓ59wÓ9KÔ!ˆ�Ô!ˆÔ OÓÓ¯Ó“Ó�Ó �Ó!ûyÔßÓwÔßÓ¨yÓ#Ôß�ÔßÓ#…wÔßÓ&’�Ô�ÓyÓÔ��Ô�ÓÅwÔ�Ó€�Ó hÔXÓÓ?�ÓÃÔ±ÓÓ?�ÓÃÓ-!Ô ÓÓ?�ÓÃÓ'ßÓ)4Ó40ÔbÓ�yÔ∫ÓwÔ∫ÓSÓ}�Ó Ó.î ÔÓuÔƒÓÛ wÓ/Ôƒ�ÔƒÓ-Ó(*�yÓ*Ôƒ�ÔƒÓ*…wÔƒÓ/˝�ÔÓÓÉ Ó �yÓöÔ�ÔÓ ÉwÔÓ%yÔuÓÓßÓ*ï�Ó,"Ô ÕÓ/Ó1P �������O��������TVm$€������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5};ViewerOps.RegisterViewerClass[$PDInterpOutputViewerClass,viewerClass];currentHerald.password_0;END.��qÔg/ÓE…�wÔ_,ÓÔ[›ÓÛ9Ó7�ÔXèÓÛÓß�Ó!3yÔU@ÓÛwÓ{ÔU@�ÔU@��������f��������TVm$�+����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpPage.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September20,19848:57:18amPDTDIRECTORYPDInterpReader,PDQueue;PDInterpPage:DEFINITIONS=BEGINInterpretPage:PROC[handle:PDInterpReader.Handle,request:PDQueue.Request,abort:LONGPOINTERTOBOOLEAN]RETURNS[ok:BOOLEAN];Interpretsonepage(maybemultiplepasses),andshipsitout.MayraisePDInterpReader.WarningorPDInterpReader.ErrororPDInterpOutput.ErrororPDInterpInput.AbortDoesnotcallPDInterpInput.ReportStatus.ReturnsFALSEupondocumentend.END.���xÔ_:Ó‚Ô]ìÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXùÓ‚wÔXùÓKÓ!uÔUNÓ‚wÓ]ÔUN�ÔUNyÓ[ÔUN�ÔUNÓA wÔUNÓ {�yÓ"`ÔUN�ÔUNÓ#uÔQˇÓ‚wÓÔQˇ�ÔQˇyÓÔQˇ�ÔQˇÓ´wÔQˇÓ™Ó!Ó0}Ó5ÀÔPXÓµyÓÕÔPX�ÔPXÓÜÔPXÓæÔPXÓ_ÔPXÓywÓ%ÔPX�ÔPXyÓ&�ÔPX�ÔPXÓ&‘wÔPXÓ,yÓ.„ÔPX�ÔPXÓ/ùwÓ4ÑÔPX�ÔPXÓ4Á�xÔN±ÓÛ Ó$Ó≤Ó„Ó LÓ"Ó'WÓ,6Ó.ŸÓ27Ó3éÔM ÓÛÓ"Ó]Ó'Ó(≈Ó6~ÔKbÓ∆ÓÖÓ!>ÔIªÓÛÓ[ÓæÓTÔHÓÛÓÓ%ÓÖÓ$¢yÔD≈Ó‚wÓiÔD≈�ÔD≈ˇ�������˝��������TVm$�ˆ��������������������PDInterpPageImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September20,19849:16:18amPDTLastEditedby:Pier,November30,19836:37pmDIRECTORYEnvironment,Inline,PDFileFormat,PDInterpReader,PDInterpOutput,PDInterpPage,PDInterpBitmap,PDInterpSysCalls,Heap,PDQueue;PDInterpPageImpl:PROGRAMIMPORTSInline,PDInterpReader,PDInterpOutput,PDInterpBitmap,PDInterpSysCalls,HeapEXPORTSPDInterpPage=BEGINCommandBuffer:TYPE=PDInterpReader.CommandBuffer;bitsPerWord:NAT=Environment.bitsPerWord;heapZone:UNCOUNTEDZONE=Heap.systemZone;totalAllocates,totalFrees:INT_0;availCount:NAT;--countofthenumberofleftoverrecordsonthefreelistLeftoverlisttypesLeftoverRef:TYPE=LONGPOINTERTOLeftover;Leftover:TYPE=RECORD[link:LeftoverRef_NIL,commandBuffer:CommandBuffer,colorType:PDInterpReader.ColorType,colorTileLoadAddress:INT_-1,priority:INT];InterpretPage:PUBLICPROC[handle:PDInterpReader.Handle,request:PDQueue.Request,abort:LONGPOINTERTOBOOLEAN]RETURNS[ok:BOOLEAN]={readHead,writeHead,availHead,writeTail:LeftoverRef_NIL;--headsandtailofleftoverlistscurrentColorType:PDInterpReader.ColorType;currentColorTileLoadAddress:INT_-1;currentPriority:INT_-1;leftovers:BOOLEAN;--can'tbefilledinuntilStartImagehashappenedcommandBuffer:CommandBuffer;band:PDInterpBitmap.BitmapDesc;bandMaxS:INT;cachedColorTile:PDInterpBitmap.Tile;cachedColorReference:INT_-1;GetColorTile:PROC={IFcurrentColorTileLoadAddress#cachedColorReferenceTHEN{cachedColorTile_PDInterpReader.ColorTileFromLoad[handle,cachedColorReference_currentColorTileLoadAddress,scratchPointer,scratchWords];};};���xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WÔZ5Ó‚Ó˛ÓEÓòÓfiÓ"BÓ$Ó'≈Ó*‘yÔVÊÓ‚wÔVÊÓKÓÙÓ#MÓ,”ÔU?ÓµÓrÓ#∑Ó.~Ó9flÔSòÓµÔPIÓ‚yÓ ÔPI�ÔPIÓ«ÔN°ÓÛwÔN°Ó£Ó˝Ó%πÓ0vÔL˙Ó∆Ó'yÔKRÓÛwÔKRÓµÔI´Ó‚�yÓ«ÔI´�ÔI´ÓÄwÔF\Ó‚ yÓÍÔF\�ÔF\Ó£wÔF\Ó\�ÓAÔD¥Ó‚yÓ_ÔD¥�ÔD¥ÓHwÔD¥ÓY�Ó>ÔC Ó‚yÓ«ÔC �ÔC Ó≠ÔC ÓÁwÓ!ÔC �ÔC Ó"ÔAeÓ‚Ó√ yÓùÔAe�ÔAeÓwÔAeÓ!,�Ó"πÔ?æÓ‚ yÓWÔ?æ�Ô?æÓ?wÓÃÔ?æ�Ô?æxÓ…Ô?æ�Ô?æÓCÓwÓ Ó"fÓ'LÓ(ÔÓ-ªÓ2bÓ4VÓ6¢Ó9OÔ<oÓ‚Ó>Ó}wÔ:«Ó‚yÓÔ:«�Ô:«ÓÀwÔ:«ÓÉ�yÓiÔ:«�Ô:«Ó"Ô:«Ó YÔ:«Ó%˙wÔ:«Ó(Ô9Ó‚yÓÍÔ9�Ô9Ó£wÔ9Ó\�yÓAÔ9�Ô9ÓwÔ9Ó≥�Ô7xÓÛÓ9 Ó�yÓ|Ô7x�Ô7xÓewÓàÔ7x�Ô7xÔ5–ÓÛ Óò Ô4)ÓÛ ÓÓÔ2ÅÓÛyÓôÔ2Å�Ô2ÅÓ wÔ2ÅÓ")�Ó#∂Ô0⁄ÓÛyÓaÔ0⁄�Ô0⁄ÓÀwÔ/2ÓÛuÔ+„Ó‚wÓÔ+„�Ô+„yÓÔ+„�Ô+„Ó´Ô+„ÓºwÔ+„Ó cÓ%∆Ó55Ô*<ÓµÓõyÓ≥Ô*<�Ô*<Ó lÔ*<Ó#§Ô*<Ó)EÔ*<Ó+_wÓ0ˇÔ*<�Ô*<yÓ1ÊÔ*<�Ô*<Ó2∫wÔ*<Ó7ÚyÓ:…Ô*<�Ô*<Ó;ÇwÓ@iÔ*<�Ô*<Ô(ïÓµ�Óö�Ô&ÌÓÛÓò Óü Ó%o Ó+π Ó3o�yÓ4¸Ô&Ì�Ô&ÌÓ5ÂwÓ7Ô&Ì�Ô&ÌxÓ8Ô&Ì�Ô&ÌÓ8Ó<πÓ?]Ô%FÓ∆ÓiÓ5wÔ#ûÓÛÓñÔ!˜ÓÛyÓ#ΩÔ!˜�Ô!˜Ó$&wÔ!˜Ó&L�Ó'ŸÔ OÓÛyÓ±Ô O�Ô OÓwÔ OÓA�ӌԮÓÛ yÓ˚Ô®�Ô®Ó¥wÓõÔ®�Ô®xÓôÔ®�Ô®ÓÓ!‚Ó#≤Ó'Ó(øÓ+ı Ó3Ó5çwÔ�ÓÛ Óò ÔYÓÛÓÎÔ±ÓÛyÓ]Ô±�Ô±Ó«wÓiÔ±�Ô±Ô ÓÛÓÆÔbÓÛyÓYÔb�ÔbÓ√wÔbÓ!È�Ó#vuÔ∫ÓÛwÓ÷Ô∫�Ô∫yÓ‘Ô∫�Ô∫Ó{wÔ∫Ó{�Ó`�yÔÓwÔÓ¨Ó&¸�Ó(·yÓ6ÕÔ�ÔÓ7ÜwÔÓ:ì�ÔkÓÓW�Ó ‰(ÔƒÓËÓ#’�Ó%bÓ8 ÔÓË ÔuÓÔ ŒÓˇ���������������TVm$‡������������������������������������������2TransferRectangle:PROC[rectangle:PDInterpBitmap.Rectangle]={SELECTcurrentColorTypeFROMnone=>ERROR;clear=>PDInterpBitmap.Fill[band,rectangle,0];ink=>PDInterpBitmap.Fill[band,rectangle,1];opaqueTile=>{GetColorTile[];PDInterpBitmap.TransferTile[band.Clip[rectangle],cachedColorTile];};transparentTile=>{GetColorTile[];PDInterpBitmap.TransferTile[band.Clip[rectangle],cachedColorTile,[or,null]];};ENDCASE=>ERROR;};DoLine:PROCEDURE[sMin,fMin,fSize:CARDINAL]={SELECTcurrentColorTypeFROMnone=>ERROR;clear=>PDInterpBitmap.Fill[band,[sMin:sMin,fMin:fMin,sSize:1,fSize:fSize],0];opaqueTile,ink=>PDInterpBitmap.Fill[band,[sMin:sMin,fMin:fMin,sSize:1,fSize:fSize],1];transparentTile=>PDInterpBitmap.TransferTile[band.Clip[[sMin:sMin,fMin:fMin,sSize:1,fSize:fSize]],cachedColorTile,[or,null]];ENDCASE=>ERROR;};TempColor:PROC[rectangle:PDInterpBitmap.Rectangle]={SELECTcurrentColorTypeFROMnone=>ERROR;clear=>NULL;ink=>NULL;opaqueTile=>{GetColorTile[];PDInterpBitmap.TransferTile[band.Clip[rectangle],cachedColorTile,[xor,complement]];};transparentTile=>GetColorTile[];ENDCASE=>ERROR;};AddLeftover:PROC={IFavailCount=0THEN{totalAllocates_totalAllocates+1;IFwriteHead=NILTHENwriteHead_writeTail_heapZone.NEW[Leftover_[link:NIL,commandBuffer:commandBuffer,colorType:currentColorType,colorTileLoadAddress:currentColorTileLoadAddress,priority:currentPriority]]ELSE{writeTail.link_heapZone.NEW[Leftover_[link:NIL,commandBuffer:commandBuffer,colorType:currentColorType,colorTileLoadAddress:currentColorTileLoadAddress,priority:���qÔg/ÓE…�uÔ_,ÓÛwÓ‰Ô_,�Ô_,yÓ‚Ô_,�Ô_,ÓâwÔ_,Ó â Ó'BÓ8I�Ó:.�yÔ]ÖÓwÔ]ÖÓ◊yÓ#Ô]Ö�Ô]ÖÓ#∫wÔ[›ÓÓàyÓÔ[›�Ô[›Ó÷wÓ/Ô[›�Ô[›ÔZ5ÓÓgÓ¸Ó+â Ó1æÔXéÓÓÓÓ*° Ó0÷ÔVÊÓ ÓHÓfi�ÔU?Ó'ÔSóÓ'1Ó5ˆÔQÓ'ÔPHÓÓúÓ!1�ÔN°Ó'ÔL˘Ó'1Ó5ˆÔKRÓ˙ÓyÔI™Ó'yÔHÓwÔHÓyÓ≠ÔH�ÔHÓfwÓ!øÔH�ÔHÔF[ÓuÔD¥ÓÛwÓmÔD¥�ÔD¥yÓkÔD¥�ÔD¥ÓwÔD¥Ó#yÓ)ÔD¥�ÔD¥Ó)flwÓ/KÔD¥�ÔD¥Ó03�Ó2�yÔCÓwÔCÓ◊yÓ#ÔC�ÔCÓ#∫wÔAeÓÓàyÓÔAe�ÔAeÓ÷wÓ/ÔAe�ÔAeÔ?ΩÓÓgÓ¸Ó+âÓ/ÓÓ3ŒÓ7≈Ó;öÓ?ÜÔ>ÓËÓ…ÓÏÔ<oÓ Ó†Ó Ó!üÓ2,Ó6êÓ:qÔ:«ÓËÓæÓ©Ó6Ó#Ó':Ô9 ÓÓúÔ7xÓ',Ó3¬Ó7£Ó;ôÔ5—Ó˙ÓÂÓrÓ!SÓ%ŸÓ0sÓ2ÚyÔ4)ÓwÔ4)ÓyÓ≠Ô4)�Ô4)ÓfwÓ!øÔ4)�Ô4)Ô2ÇÓuÔ0⁄ÓÛwÓ°Ô0⁄�Ô0⁄yÓüÔ0⁄�Ô0⁄ÓGwÔ0⁄ÓF Ó"ˇÓ4�Ó5Î�yÔ/3ÓwÔ/3Ó◊yÓ#Ô/3�Ô/3Ó#∫wÔ-ãÓÓàyÓÔ-ã�Ô-ãÓ÷wÓ/Ô-ã�Ô-ãÔ+‰ÓÓgyÓ¸Ô+‰�Ô+‰ÓÂwÓ=Ô+‰�Ô+‰Ô*<ÓÓyÓÔ*<�Ô*<Ó˝wÓUÔ*<�Ô*<Ô(ïÓ ÓHÓfi�Ô&ÌÓ'Ô%FÓ'1Ó5ˆÔ#ûÓ˙Ó)Ô!˜Ó'Ô OÓÓúÓ!1yÔ®ÓwÔ®ÓyÓ≠Ô®�Ô®ÓfwÓ!øÔ®�Ô®Ô�ÓuÔYÓÛ wÓ;ÔY�ÔYyÓ9ÔY�ÔYÓ‡wÔYÓ‡�Ó≈�yÔ±ÓwÔ±Ó¨yÓ∏Ô±�Ô±ÓqwÔ±Ó!}�Ô ÓyÔbÓwÔbÓΩ yÓIÔb�ÔbÓ1ÔbÓ ÿwÔbÓ$ûyÓ8fÔb�ÔbÓ9NwÓ;!Ôb�ÔbÓ;ÖÔªÓËyÓöÔª�ÔªÓÇwÓ•Ôª�ÔªÓÇ Ó(' Ó2´ ÔÓËÓ!jÔlÓËÓ(ëÓ-ˇyÔ≈ÓwÔ≈Ód�ÔÓ'yÓ&[Ô�ÔÓ'CwÓ)Ô�ÔÓ)zÓ/yÓ3∫Ô�ÔÓ4¢wÓ5≈Ô�ÔÓ6¢ ÔvÓ˙ Ó"~ Ó)xÔ ŒÓ˙Ó&Ó8√�������„��������TVm$≤��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3currentPriority]];writeTail_writeTail.link;};}ELSE{availCount_availCount-1;--moveanodefromavailListtowriteListIFwriteHead=NILTHEN{writeHead_writeTail_availHead;availHead_availHead.link;}ELSE{writeTail.link_availHead;writeTail_availHead;availHead_availHead.link;};writeTail^_[link:NIL,commandBuffer:commandBuffer,colorType:currentColorType,colorTileLoadAddress:currentColorTileLoadAddress,priority:currentPriority];};};FreeList:PROC[head:LeftoverRef]={--thisprocoutheresotheUNWINDcancallittempHead:LeftoverRef;UNTILhead=NILDOtempHead_head^.link;heapZone.FREE[@head];totalFrees_totalFrees+1;head_tempHead;ENDLOOP;};CheckAbort:PROC={IFabort^THENERRORABORTED};availCount_0;DOENABLEUNWIND=>{FreeList[readHead];FreeList[writeHead];FreeList[availHead];availCount_0;};IFreadHead#NILANDreadHead.priority<handle.priorityTHEN{tempHead:LeftoverRef_readHead;commandBuffer_readHead.commandBuffer;currentColorTileLoadAddress_readHead.colorTileLoadAddress;currentColorType_readHead.colorType;currentPriority_readHead.priority;nowmovethisrecordfromreadListtoavailListreadHead_readHead.link;tempHead.link_availHead;availHead_tempHead;availCount_availCount+1;}ELSE{commandBuffer_PDInterpReader.Get[handle];currentColorTileLoadAddress_handle.colorTileLoadAddress;currentColorType_handle.colorType;currentPriority_handle.priority;};WITHcommandBufferSELECTFROM���qÔg/ÓE…�wÔ_,Ó˙Ô]ÑÓ'Ô[›Ó'ÔZ5Ó�yÔXéÓwÔXéÓS�ÔVÊÓxÓ%3ÔVÊ�ÔVÊÓ%≠Ó)¶�Ó*€Ó.Ó1WÓ6ËÓ8çyÔU>ÓwÔU>ÓΩ yÓIÔU>�ÔU>Ó1ÔU>Ó ÿwÔU>Ó$ûÔSóÓËyÔQÓwÔQÓd�ÔPHÓ'Ó'ÔN°Ó˙ÔL˘Ó'ÔKQÓyÓƒÔKQ�ÔKQÓ ¨wÓ!œÔKQ�ÔKQÓ"¨ Ó-Q Ó7’ ÔI™ÓËÓ!jÔHÓËÓ(ëÓ-ˇÔF[ÓÔD¥ÓuÔCÓÛwÓÚÔC�ÔCyÓÔC�ÔCÓówÓÔC�ÔCÓvÓLÓ&f�Ó(K�xÓ)ÄÔC�ÔCÓ)˘Ó-Ó0Ó2qÓ5lÓ7%Ó9qÔAeÓ∆ÓTÓÍwÔ?ΩÓÓ9yÔ>ÓwÔ>Ó3yÓlÔ>�Ô>ÓUÔ>Ó¸wÔ<nÓÔ:∆ÓyÓUÔ:∆�Ô:∆ÓwÓTÔ:∆�Ô:∆Ó∑Ô9ÓÔ7wÓ yÔ5œÓwÓ∑Ô5œ�Ô5œÔ4(ÓuÔ2ÄÓÛ wÓÔ2Ä�Ô2ÄyÓÔ2Ä�Ô2ÄÓ©wÔ2ÄÓ©�Óé�yÓ?Ô2Ä�Ô2ÄÓ®�wÔ2ÄÓ ÊyÓ%5Ô2Ä�Ô2ÄÓ%ÓÔ2ÄÓ(˚Ô2ÄÓ-êwÓ3%Ô2Ä�Ô2ÄÓ3÷�Ô0ŸÓÛyÔ/1ÓÛÔ-äÓÔ-äÓ)wÔ-äÓŒÓ cÓ-îÔ+‚Ó◊Ô*;ÓyÔ(ìÓwÔ(ìÓ¨yÓ‘Ô(ì�Ô(ìÓΩÔ(ìÓdwÔ(ìÓ!ä!yÓ6Ô(ì�Ô(ìÓ6“wÔ(ìÓ9fi�Ô&ÎÓÓJ Ó$��Ó%çÔ%DÓÓA�Ó!SÔ#úÓ:Ô!ıÓ$Ô MÓ"xÔ•ÓÓÓqÓ Ó"-Ó%jÓ*πÓ,^wÔ˛ÓÔVÓÔØÓÔÓÔ_Ó�yÔ∏ÓwÔ∏ÓS�ÔÓÓA�Ó!SÔiÓ8Ô¡Ó"ÔÓÔrÓyÔ ÓwÔ Ó¨yÓ ÿÔ �Ô Ó!wÔ Ó%´ˇ�������;��������TVm$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4stateChange:CommandBuffer.stateChange=>{SELECTstateChange.whatChangedFROMimageStart=>{band_PDInterpOutput.StartImage[handle.herald,handle.image,request];bandMaxS_band.sOrigin+band.sMin+band.sSize;leftovers_handle.image.leftOverMode;IFhandle.image.nBands=0THEN{PDInterpOutput.EndImage[request]};};imageEnd=>{[]_PDInterpOutput.EndBand[];IFreadHead#NILTHENERROR;--DEBUGGINGCHECK!!readHead_writeHead;writeHead_NIL;PDInterpOutput.EndImage[request];FreeList[readHead];--fromthisimageFreeList[writeHead];--fromthisimageFreeList[availHead];availCount_0;RETURN[TRUE];};priorityChange=>NULL;colorChange=>NULL;bandChange=>{CheckAbort[];band_PDInterpOutput.EndBand[];bandMaxS_band.sOrigin+band.sMin+band.sSize;IFreadHead#NILTHENERROR;--DEBUGGINGCHECK!!readHead_writeHead;writeHead_NIL;};loadChange=>NULL;documentEnd=>RETURN[FALSE];ENDCASE=>ERROR;};maskRectangle:CommandBuffer.maskRectangle=>{TransferRectangle[[maskRectangle.sMin,maskRectangle.fMin,maskRectangle.sSize,maskRectangle.fSize]];IFleftoversANDmaskRectangle.sMin+maskRectangle.sSize>bandMaxSTHENAddLeftover[];};maskTrapezoid:CommandBuffer.maskTrapezoid=>{EdgeBlock:TYPE=RECORD[fPos,fIncr:Environment.LongNumber];MakeEdge:PROC[fMinLast,fMin,sSize:CARDINAL]RETURNS[edge:EdgeBlock]={edge.fPos.highbits_fMin;edge.fPos.lowbits_0;edge.fIncr.highbits_fMinLast-fMin;edge.fIncr.lowbits_0;���qÔg/ÓE…�wÔ_,ÓÓFÓ/`Ó1ı�yÔ]ÖÓ'wÔ]ÖÓ˙yÓ,/Ô]Ö�Ô]ÖÓ,ËwÔ[›Ó8 Ó Ó"®�ÔZ5ÓIÓ«�Ó T(ÔXéÓÓ$€ÔVÁÓIÓ":�Ó#«"ÔU?ÓIÓ ÿ�Ó"eyÔSòÓIwÔSòÓÓ*�Ó+˘�yÓ--ÔSò�ÔSòÓ-ÁwÔQÓ"yÓ2ÍÔQ�ÔQwÔPIÓIÔN°Ó8ÓπÓ"O�ÔL˙ÓIÓî�Ó yÔKRÓIwÔKRÓyÓ$ÔKR�ÔKRÓ%ÔKRÓ&©ÔKRÓ*nwÓ.ÄÔKR�ÔKRxÓ/}ÔKR�ÔKRÓ/˜ Ó9©Ó?NwÔI´ÓIÔHÓI yÓ"}ÔH�ÔHÓ#ewÓ$àÔH�ÔHÔF\ÓI!ÔD¥ÓIxÓ'…ÔD¥�ÔD¥Ó(BÓ+˘Ó.íwÔC ÓIxÓ(,ÔC �ÔC Ó(¶Ó,]Ó.ıwÔAeÓIÔ?æÓIyÔ>ÓIwÔ>Ó µ�yÓ!Ô>�Ô>Ó!“wÓ$DÔ>�Ô>Ó$ß�Ô<oÓIÔ:«Ó8 Ó"≥yÓ%HÔ:«�Ô:«Ó&1wÓ(âÔ:«�Ô:«Ô9 Ó8 Ó!<yÓ#—Ô9 �Ô9 Ó$∫wÓ'Ô9 �Ô9 Ô7xÓ8 Ó!=Ó#“�Ô5–ÓIÔ4)ÓIÓ«�Ó TÔ2ÅÓI+yÔ0⁄ÓIwÔ0⁄ÓyÓ$Ô0⁄�Ô0⁄Ó%Ô0⁄Ó&©Ô0⁄Ó*nwÓ.ÄÔ0⁄�Ô0⁄xÓ/}Ô0⁄�Ô0⁄Ó/˜ Ó9©Ó?NwÔ/2ÓIÔ-ãÓI yÓ"}Ô-ã�Ô-ãÓ#ewÓ$àÔ-ã�Ô-ãÔ+„ÓIÔ*<Ó8 Ó ŒyÓ#cÔ*<�Ô*<Ó$LwÓ&£Ô*<�Ô*<Ô(îÓ8 Ó"yÓ$ØÔ(î�Ô(îÓ%ÉwÔ(îÓ*�yÓ*Ô(î�Ô(îÓ+8wÓ.Ô(î�Ô(îÓ.Ä�yÔ&ÌÓ8wÔ&ÌÓ:yÓ!–Ô&Ì�Ô&ÌÓ"âwÓ%·Ô&Ì�Ô&ÌÔ%EÓ'Ô#ûÓ ÓˇÓ2—Ó5f�Ô!ˆÓ'&Ó/ÌÔ OÓ˙Ó%yÔßÓ'wÔßÓŒyÓ]Ôß�ÔßÓ0wÔ�Ó˙/yÓ9tÔ��Ô�Ó:-wÔYÓ˙ Ô±Ó'Ô Ó ÓÓ3Ó5ß�ÔbÓ' yÓÖÔb�ÔbÓ>wÔbÓ!ˆ�yÓ#€Ôb�ÔbÓ$ØwÔbÓ)NÓ-ÔªÓ˙uÔÓ'wÓÜÔ�ÔyÓÑÔ�ÔÓ,wÓ!ßÔ�ÔÓ" Ó(_Ó,5yÓ0 Ô�ÔÓ0ÎwÓ6WÔ�ÔyÓ7?Ô�ÔÓ8wÔÓ=JÔlÓ˙ ÓA�Ó!&�ÔƒÓ8Ó$v�Ó&ÔÓ8Ó#Ò�Ó%~ÔuÓ8Ó$œ�Ó&\Ó,Y�Ó-WÔ ŒÓ8Ó$Œ�Ó&[ˇ�������1��������TVm$Ü����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5IFsSize>1THENedge.fIncr.li_edge.fIncr.li/sSize;};fMinBox:CARDINAL_MIN[maskTrapezoid.fMin,maskTrapezoid.fMinLast];fMaxBox:CARDINAL_MAX[maskTrapezoid.fMin+maskTrapezoid.fSize,maskTrapezoid.fMinLast+maskTrapezoid.fSizeLast];fSizeBox:CARDINAL_fMaxBox-fMinBox;trapMaxS:CARDINAL_maskTrapezoid.sMin+maskTrapezoid.sSize;s:CARDINAL_maskTrapezoid.sMin;sMinBand:CARDINAL_MIN[band.sOrigin+band.sMin,maskTrapezoid.sMin+maskTrapezoid.sSize];sMaxBand:CARDINAL_MIN[bandMaxS,trapMaxS];calculateinitialedges:minEdge:EdgeBlock_MakeEdge[fMinLast:maskTrapezoid.fMinLast,fMin:maskTrapezoid.fMin,sSize:maskTrapezoid.sSize];maxEdge:EdgeBlock_MakeEdge[fMinLast:maskTrapezoid.fMinLast+maskTrapezoid.fSizeLast,fMin:maskTrapezoid.fMin+maskTrapezoid.fSize,sSize:maskTrapezoid.sSize];TempColor[[sMin:maskTrapezoid.sMin,fMin:fMinBox,sSize:maskTrapezoid.sSize,fSize:fSizeBox]];WHILEs<sMinBandDOminEdge.fPos.lc_minEdge.fPos.lc+minEdge.fIncr.li;maxEdge.fPos.lc_maxEdge.fPos.lc+maxEdge.fIncr.li;s_s+1;ENDLOOP;WHILEs<sMaxBandDODoLine[sMin:s,fMin:minEdge.fPos.highbits,fSize:maxEdge.fPos.highbits-minEdge.fPos.highbits];minEdge.fPos.lc_minEdge.fPos.lc+minEdge.fIncr.li;maxEdge.fPos.lc_maxEdge.fPos.lc+maxEdge.fIncr.li;s_s+1;ENDLOOP;TempColor[[sMin:maskTrapezoid.sMin,fMin:fMinBox,sSize:maskTrapezoid.sSize,fSize:fSizeBox]];IFleftoversANDtrapMaxS>bandMaxSTHENAddLeftover[];};maskRunGroup:CommandBuffer.maskRunGroup=>{s:CARDINAL_maskRunGroup.sMin;sMinBand:CARDINAL_MIN[band.sOrigin+band.sMin,maskRunGroup.sMin+maskRunGroup.sSize];sMaxBand:CARDINAL_MIN[band.sOrigin+band.sMin+band.sSize,maskRunGroup.sMin+maskRunGroup.sSize];run:LONGPOINTERTOPDFileFormat.Run_maskRunGroup.pointer;TempColor[[maskRunGroup.sMin,maskRunGroup.fMin,maskRunGroup.sSize,maskRunGroup.fSize]];WHILEs<sMinBandDOIFrun.lastRunTHENs_s+1;run_run+SIZE[PDFileFormat.Run];���qÔg/ÓE…�yÔ_,Ó8wÔ_,ÓflÓQ�ÓÜ�yÓ ªÔ_,�Ô_,Ó!twÔ_,Ó$ÄÓ,�Ó-¨Ô]ÖÓ8Ô[›Ó'yÓpÔ[›�Ô[›Ó;wÓ#ßÔ[›�yÔ[›Ó$∞wÓ'Ô[›�Ô[›Ó'wÔZ6Ó˙ÔXéÓ'yÔVÁÓ˙wÓ0ÔVÁ�yÔVÁÓ9wÓ!ÚÔVÁ�ÔVÁÓ"U'ÔU?Ó˙0ÔSòÓ'yÓ[ÔSò�ÔSòÓ%wÓ#ëÔSò�ÔSòÓ$öÔQÓ'yÓˆÔQ�ÔQÓ¡wÔQÓ$≤�Ó&>'ÔPIÓ'yÓ©ÔPI�ÔPIÓtwÔPIÓd�Ó ÒÔN°Ó'yÓCÔN°�ÔN°ÓwÔN°Ó$˛�yÓ&ãÔN°�ÔN°Ó'úwÓ(ÔÔN°�ÔN°Ó)RÔL˙Ó˙(ÔKSÓ'yÓoÔKS�ÔKSÓ:wÔKSÓ%*�yÓ&∑ÔKS�ÔKSÓ'»wÓ)ÔKS�ÔKSÓ)~Ó0« xÔI´Ó'Ó–Ó øwÔHÓ'Ó|Ó$a�Ó%ÓÔF\Ó˙Ó'≤Ó+©Ó8‚ÔDµÓ˙ÔC Ó'Ó®Ó$ç�Ó&ÔAfÓ˙/Ó7⁄Ô?øÓ˙'Ó2⁄Ô>Ó˙Ô<pÓ'Ó"»Ó0Ó4Ó:+Ô:»Ó˙Ó%(Ó) yÔ9!Ó'wÔ9!Óà�Óê�Ó≈yÓ$gÔ9!�Ô9!Ó%M�wÔ7yÓ8Ó#K�Ó$ÿÓ.Ï�Ó0—Ô5“Ó8Ó#w�Ó%Ó/D�Ó1)Ô4*Ó8�Ó@�ÓÕ�Ó÷�ÓªyÔ2ÉÓ8wÓŸÔ2É�Ô2ÉyÔ0€Ó'wÔ0€Óà�Óê�Ó≈yÓ$îÔ0€�Ô0€Ó%y�wÔ/4Ó8Ó".Ó#éÓ'ÖÓ5±Ô-çÓ-Ô+ÂÓ8Ó#K�Ó$ÿÓ.Ï�Ó0—Ô*=Ó8Ó#w�Ó%Ó/D�Ó1)Ô(ñÓ8�Ó@�ÓÕ�Ó÷�ÓªyÔ&ÓÓ8wÓŸÔ&Ó�Ô&ÓÔ%GÓ'Ó"»Ó0Ó4Ó:+Ô#†Ó˙Ó%(Ó) yÔ!¯Ó'wÔ!¯ÓŒyÓ]Ô!¯�Ô!¯Ó0wÔ!¯Ó!ÉyÓ.ˆÔ!¯�Ô!¯Ó/ØwÔ!¯Ó2º Ô QÓ'Ô©ÓÓ∞Ó43Ó6»�ÔÓ'yÓ©Ô�ÔÓtwÔÓd�Ó ÒÔZÓ'yÓCÔZ�ÔZÓwÔZÓ$˛�yÓ&ãÔZ�ÔZÓ'úwÓ(ÔÔZ�ÔZÓ)RÔ≥Ó˙&ÔÓ'yÓoÔ�ÔÓ:wÔÓ%*�yÓ&∑Ô�ÔÓ'»wÓ)Ô�ÔÓ)~"ÔdÓ˙&ÔºÓ'yÓ6Ôº�ÔºÓÔÔºÓ'ÔºÓ#»wÔºÓ%‚Ó1˝�ÔÓ˙ÔmÓ'Ó,õÔ∆Ó˙Ó%∏yÔÓ'wÔÓà�Óê�Ó≈yÓ$gÔ�ÔÓ%M�ÔwÓ8wÔwÓfl yÓ"_Ôw�ÔwÓ#wÔwÓ&$�Ó'-�Ó(∫�Ó)¬�Ó+ßÔ –Ó8ÓŒ�Ó[ÓÒ�yÓ!÷Ô –�Ô –Ó"uwÓ$QÔ –�Ô –Ó$µ���������������TVm$º����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������6ENDLOOP;WHILEs<sMaxBandDOIFrun.fMin+run.fSize>maskRunGroup.fSizeTHENERROR;DoLine[sMin:s,fMin:run.fMin+maskRunGroup.fOffset,fSize:run.fSize];IFrun.lastRunTHENs_s+1;run_run+SIZE[PDFileFormat.Run];ENDLOOP;TempColor[[maskRunGroup.sMin,maskRunGroup.fMin,maskRunGroup.sSize,maskRunGroup.fSize]];IFleftoversANDmaskRunGroup.loadAddress>=0ANDmaskRunGroup.sMin+maskRunGroup.sSize>bandMaxSTHEN{maskRunGroup.sSize_maskRunGroup.sSize-(s-maskRunGroup.sMin);maskRunGroup.sMin_s;maskRunGroup.runCount_-1;--unused,eventuallyeliminatefromDEFmaskRunGroup.pointer_run;AddLeftover[];};};maskSamples:CommandBuffer.maskSamples=>{rectangle:PDInterpBitmap.Rectangle_PDInterpBitmap.Window[maskSamples.samples];TempColor[rectangle];SELECTcurrentColorTypeFROMnone=>ERROR;clear=>PDInterpBitmap.Transfer[band,maskSamples.samples,[and,complement]];opaqueTile,ink=>PDInterpBitmap.Transfer[band,maskSamples.samples,[or,null]];transparentTile=>{bounds:PDInterpBitmap.Rectangle_PDInterpBitmap.Intersect[rectangle,PDInterpBitmap.Window[band]];scratchWords:INT_Inline.LongMult[bounds.sSize,(bounds.fSize+bitsPerWord-1)/bitsPerWord];buffer:LONGPOINTER_PDInterpSysCalls.AllocateSpace[scratchWords];destDesc:PDInterpBitmap.BitmapDesc_PDInterpBitmap.Reshape[pointer:buffer,words:scratchWords,bounds:bounds];GetColorTile[];PDInterpBitmap.TransferTile[dest:destDesc,tile:cachedColorTile];PDInterpBitmap.Transfer[destDesc,maskSamples.samples,[and,null]];PDInterpBitmap.Transfer[band,destDesc,[or,null]];PDInterpSysCalls.FreeSpace[buffer];};ENDCASE=>ERROR;TempColor[rectangle];IFleftoversANDmaskSamples.loadAddress>=0ANDmaskSamples.samples.sOrigin+maskSamples.samples.sMin+maskSamples.samples.sSize��qÔg/ÓE…�yÔ_eÓ8wÓŸÔ_e�Ô_eyÔ]æÓ'wÔ]æÓà�Óê�Ó≈yÓ$îÔ]æ�Ô]æÓ%y�Ô\Ó8wÔ\ÓflÓ's�Ó(®yÓ6Ô\�Ô\Ó6ºÔ\Ó9»wÓ=⁄Ô\�Ô\ÔZnÓ8Ó".Ó#éÓ'ÖÓ=1ÔX«Ó yÔW Ó8wÔW Ófl yÓ"_ÔW �ÔW Ó#wÔW Ó&$�Ó'-�Ó(∫�Ó)¬�Ó+ßÔUxÓ8ÓŒ�Ó[ÓÒ�yÓ!÷ÔUx�ÔUxÓ"uwÓ$QÔUx�ÔUxÓ$µyÔS–Ó8wÓŸÔS–�ÔS–ÔR)Ó'Ó,õÔPÅÓ˙Ó%∏yÔN⁄Ó'wÔN⁄ÓŒyÓ]ÔN⁄�ÔN⁄Ó0wÔN⁄Ó!ÉyÓ6ÔN⁄�ÔN⁄Ó6„wÔM2Ó˙-yÓ:÷ÔM2�ÔM2Ó;èwÔM2Ó>õ�ÔKãÓ8<ÔI„Ó8ÔH<Ó8Ó)w�Ó+xÓ-,ÔH<�ÔH<Ó-•Ó3 Ó9_ÔFîÓÓHwÔDÌÓ8ÔCEÓ8 ÔAûÓ8Ô?ˆÓ'Ô>NÓÓÓ0ÎÓ3Ä�Ô<ßÓ' Ó}Ó. �Ô;�Ó˙+Ô9XÓ'yÔ7∞Ó'wÔ7∞Ó˙yÓ'#Ô7∞�Ô7∞Ó'‹wÔ6 Ó8Ó™yÓ@Ô6 �Ô6 Ó˘wÓ#QÔ6 �Ô6 Ô4aÓ8ÓâÓÓ2öÔ2∫ÓÓ}Ô1Ó8 Ó √Ó#,Ó%¡Ô/kÓÓ'flÓ*^Ô-√Ó8Ó"æÓ%T�Ô,ÓIÓ ¢Ó1E�Ô*tÓ#Ô(ÕÓÔ'&ÓIyÓ$LÔ'&�Ô'&Ó$∂wÔ'&Ó&‹�Ó(iÔ%~Ó*Ô#◊ÓIyÓÒÔ#◊�Ô#◊Ó ™Ô#◊Ó#‚wÔ"/Ó.Ô àÓIBÔ‡ÓÓ £Ó%)Ó.Ó3cÔ9ÓIÔëÓI!Ó0ûÓ6ΩÔÍÓÔBÓI!Ó1 ÔõÓÓèÔÛÓIÓ.ƒÓ4‰Ó7cÔLÓI#Ô§ÓIyÔ˝Ó8wÔ˝Ó:yÓ!–Ô˝�Ô˝Ó"âwÓ%·Ô˝�Ô˝ÔUÓ'yÔ≠Ó'wÔ≠ÓŒyÓ]Ô≠�Ô≠Ó0wÔ≠Ó!ÉyÓ4lÔ≠�Ô≠Ó5@wÔÓ˙Nˇ�������v��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7>bandMaxSTHENAddLeftover[];};colorSamples:CommandBuffer.colorSamples=>{PDInterpBitmap.Transfer[band,colorSamples.samples];};deviceCommand:CommandBuffer.deviceCommand=>{};ENDCASE=>NULL;ENDLOOP;};scratchPages:INT=4;scratchWords:INT_scratchPages*Environment.wordsPerPage;scratchPointer:LONGPOINTER_PDInterpSysCalls.AllocateSpace[scratchWords];END.���qÔg/ÓE…�wÔ_,Ó˙�Ó.yÓ Ô_,�Ô_,Ó ÿwÔ_,Ó# Ô]ÖÓ'Ô[›ÓÓˆÓ0øÓ3U�ÔZ6Ó'Ó*¢ÔXèÓ'ÔVÁÓ Ó Ó4˘Ó7é�ÔU@Ó'yÔSôÓwÔSôÓyÓ≠ÔSô�ÔSôÓñwÓ ÓÔSô�ÔSôyÔQÒÓwÓ•ÔQÒ�ÔQÒÔPJÓÛÔL˚Ó‚yÓJÔL˚�ÔL˚Ó¥wÔL˚Ó⁄�ÓøÔKTÓ‚yÓÂÔKT�ÔKTÓOwÔKTÓu�Ó&ÔI≠Ó‚yÓHÔI≠�ÔI≠ÓÔI≠Ó9wÔI≠Ó!⁄�Ó#g-yÔF^Ó‚wÓiÔF^�ÔF^ˇ�������Y��������TVm$�®����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpReader.mesaCopyright(C)1983,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19849:51:32amPDTLastEditedby:Pier,November22,19832:44pmDIRECTORYPDInterpBasic,PDFileFormat,PDInterpBitmap,Stream;PDInterpReader:DEFINITIONS=BEGINHandledefinitionHandle:TYPE=LONGPOINTERTORep;Rep:TYPE=RECORD[stream:Stream.Handle,herald:PDFileFormat.Herald,image:PDFileFormat.StartImage,bandNumber:CARDINAL,sMinBand:CARDINAL,sSizeBand:CARDINAL,colorType:ColorType,colorTileLoadAddress:INT,priority:INT,loadWords:INT,private:LONGPOINTERTOPrivateRep,index:INT,page:INT,pass:INT,status:PDInterpBasic.Status,warningCount:INT];ColorType:TYPE={none,clear,ink,opaqueTile,transparentTile};PrivateRep:TYPE;ColorTileaccess:ColorTileFromLoad:PROC[handle:Handle,colorTileLoadAddress:INT,scratchPointer:LONGPOINTER_NIL,scratchWords:INT_0]RETURNS[PDInterpBitmap.Tile];ErrorsandSignalsError:ERROR[handle:Handle,code:PDInterpBasic.PDErrorCode,wordIndex,wordCount:INT];Warning:SIGNAL[handle:Handle,code:PDInterpBasic.PDWarningCode,wordIndex,wordCount:INT];FilecontrolOpen:PROC[stream:Stream.Handle]RETURNS[Handle];MayraisePDFileReader.ErrororPDFileReader.WarningAssumesthestreamispositionedatthestartofaPDfile.Close:PROC[handle:Handle]RETURNS[stream:Stream.Handle];DoesaNOTclosethestream.ReadingoperationsGet:PROC[handle:Handle]RETURNS[CommandBuffer];MayraisePDFileReader.ErrororPDFileReader.Warning��xÔ_:Ó‚Ô]íÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó -Ó#sÓ(\Ó*ßÔZCÓÛÓÓVÓ©ÓÔÓ$SÓ&êÓ)÷Ó,ÂyÔXúÓ‚wÔXúÓK Ó—Ó)WÓ4uÔUMÓ‚ wÓùÔUM�ÔUMyÓõÔUM�ÔUMÓÅ wÔUMÓ!ª�yÓ#†ÔUM�ÔUMÓ$YxÔS•Ó‚Ó≠ wÔQ˛ÓÛyÓLÔQ˛�ÔQ˛ÓwÔQ˛Óæ�yÓ£ÔQ˛�ÔQ˛Ó\ÔQ˛ÓîÔQ˛Ó%5wÔQ˛Ó'NÔPVÓÛyÓfÔPV�ÔPVÓwÔPVÓÿ�yÓΩÔPV�ÔPVÓëwÔPVÓ/�ÔNØÓÓÓ ÔMÓÓ¬ÔK`ÓÓäÔI∏Ó yÓ�ÔI∏�ÔI∏ÓÀwÓ"7ÔI∏�ÔI∏ÔHÓyÓ ÔH�ÔHÓÎwÓ WÔH�ÔHÔFiÓ yÓ ÔFi�ÔFiÓ’wÓ AÔFi�ÔFiÔD¡Ó Óˇ ÔCÓyÓ!&ÔC�ÔCÓ!êwÓ#1ÔC�ÔCÔArÓyÓrÔAr�ÔArÓ‹wÓ~ÔAr�ÔArÔ?ÀÓ yÓyÔ?À�Ô?ÀÓ‚wÓÑÔ?À�Ô?ÀÔ>#ÓyÓÔ>#�Ô>#Ó‘Ô>#ÓÔ>#Ó!¨wÔ>#Ó#∆ Ô<|ÓyÓIÔ<|�Ô<|Ó≤wÓTÔ<|�Ô<|Ô:‘ÓyÓƒÔ:‘�Ô:‘Ó.wÓ–Ô:‘�Ô:‘Ô9-ÓyÓwÔ9-�Ô9-Ó·wÓÉÔ9-�Ô9-Ô7ÖÓÓUÔ5fiÓyÓÔ5fi�Ô5fiÓÈwÔ46ÓÔ0ÁÓ yÓbÔ0Á�Ô0ÁÓwÔ0ÁÓ‘�ÓπÓ$3Ó'›Ó*ü Ó2)Ô/?Ó yÓöÔ/?�Ô/?ÓTwÓàÔ/?�Ô/?xÔ+Ó‚Ó¨ÓyuÔ*IÓÛwÓ◊Ô*I�Ô*IyÓ’Ô*I�Ô*IÓ|wÔ*IÓ!|Ó&flÓ,yÓ:9Ô*I�Ô*IÓ:¢wÓ<DÔ*I�Ô*IÔ(¢Ó∆yÓ,Ô(¢�Ô(¢ÓÂÔ(¢ÓwÔ(¢Ó$æ�yÓ&KÔ(¢�Ô(¢Ó'3wÓ(VÔ(¢�Ô(¢Ó)3yÓ26Ô(¢�Ô(¢Ó2üwÔ(¢Ó4≈�Ó6RyÓ7ÍÔ(¢�Ô(¢Ó8æwÔ&˙Ó∆xÔ#´Ó‚ÓÓæuÔ"ÓÛwÓ#Ô"�Ô"yÓ Ô"�Ô"Ó⁄wÔ"Ó∂ÓÓ$QÓ(Ó:6 Ô \Ó∆ yÓ}Ô \�Ô \ÓÁwÓâÔ \�Ô \ÓÏ�uÔµÓÛwÓÔµ�ÔµyÓÔµ�ÔµÓØwÔµÓ�Ó!dÓ&úÓ*\Ô Ó∆ Ó yÓ ∆Ô �Ô Ó!0wÓ"—Ô �Ô Ó#4�xÔæÓ‚Ó§uÔÓÛwÓ$Ô�ÔyÓ!Ô�ÔÓ…wÔÓ…Ó yÓ'flÔ�ÔÓ(≥wÔÓ-ÍxÔoÓÓ3ÓnÓ%ÃÓ'ÖÔ»ÓÓÅÓÕÓ+Ó ó Ó&ÒÓ(ñÓ*‚Ó-ˇÓ/£�Ó0ÿÓ3WuÔ ÓÛwÓ9Ô �Ô yÓ7Ô �Ô ÓflwÔ ÓfiÓByÓ#ÑÔ �Ô Ó$XwÔ Ó)êÓ.›xÔyÓÓÓØÓÓ MÔ*Ó‚Ó2 uÔÇÓÛwÓ%ÔÇ�ÔÇyÓ#ÔÇ�ÔÇÓÀwÔÇÓ Ó.yÓ"qÔÇ�ÔÇÓ#EwÔÇÓ(|xÔ €ÓÓ3ÓnÓ%ÃÓ'Ö�������^��������TVm$4��������������������������������������������������������2CommandBuffer:TYPE=RECORD[SELECTcmd:*FROMmaskRectangle=>[sMin,fMin,sSize,fSize:CARDINAL],maskTrapezoid=>[sMin,fMin,fMinLast,sSize,fSize,fSizeLast:CARDINAL],maskRunGroup=>[sMin,fMin,sSize,fSize:CARDINAL,fOffset:CARDINAL,--addthistofMinofeachrunrunCount:INT,--numberofrunspointer:LONGPOINTERTOPDFileFormat.Run,loadAddress:INT---1ifnotintheload],maskSamples=>[loadAddress:INT,---1ifnotintheloadsamples:PDInterpBitmap.BitmapDesc],colorSamples=>[samples:PDInterpBitmap.BitmapDesc],deviceCommand=>[deviceCommandPointer:LONGPOINTER,deviceCommandWords:CARDINAL],stateChange=>[whatChanged:WhatChanged,loadChangeStart,loadChangeLength:INT],ENDCASE];WhatChanged:TYPE={imageStart,imageEnd,priorityChange,colorChange,bandChange,loadChange,documentEnd};END.��qÔg/ÓE…�wÔ^óÓ‚ yÓÍÔ^ó�Ô^óÓ£wÔ^óÓ\�yÓAÔ^ó�Ô^óÓ wÔ^óÓ$≥�yÔ\ÔÓÛwÔ\ÔÓ∆ÓO�yÓÑÔ\Ô�Ô\ÔÓ=wÔ[HÓÓuÓ �ÔY°ÓÓˆÓÀÓ ñyÓ$vÔY°�ÔY°Ó%AwÔW˘ÓÔVRÓÓïÓ*�ÔT´ÓÓˆÓÀÓ#!Ó&ÎÓ*´ yÓ1ÔT´�ÔT´Ó1÷wÔSÓÔQ\ÓÓ%Óª�ÔOµÓÓˆÓÀÓ ñyÓ$vÔOµ�ÔOµÓ%AwÓ*≠ÔOµ�ÔOµÔN ÓyÓ+ÔN �ÔN ÓˆwÓ bÔN �ÔN xÓ!?ÔN �ÔN Ó!∏�Ó"∂Ó%KÓ'‰Ó)âÓ,ÚÓ.ïÓ1ºwÔLfÓyÓ⁄ÔLf�ÔLfÓDwÓÊÔLf�ÔLfxÓ¬ÔLf�ÔLfÓ<�Ó 9Ó%Ó&¬wÔJøÓyÓXÔJø�ÔJøÓÔJøÓHÔJøÓ#ÈwÔJøÓ&ÔIÓyÓgÔI�ÔIÓ–xÔIÓˆÓ!mÓ#Ó$rÓ&’Ó({Ó*«wÔGpÓÔE…Ó ÓÅÓ�ÔD!ÓyÓgÔD!�ÔD!Ó–wÓrÔD!�ÔD!xÓ OÔD!�ÔD!Ó »�Ó!∆Ó#tÓ$ Ó'-Ó(”Ó+wÔBzÓÓ∫Ô@”ÓÔ?+ÓÓlÓ�Ô=ÑÓÓ∫Ô;›ÓÔ:5ÓÓàÓ �Ô8éÓyÓ$bÔ8é�Ô8éÓ%Ô8éÓ(SwÓ-oÔ8é�Ô8éÔ6ÁÓyÓ#ˇÔ6Á�Ô6ÁÓ$…wÔ5?ÓÔ3òÓ ÓºÓQ�Ô1ÒÓÓ9Ô0IÓÓ“yÓ,Ô0I�Ô0IÓ,ÑwÔ.¢ÓyÔ,˚ÓwÔ+SÓÛÔ)¨ÓÛyÓzÔ)¨�Ô)¨Ó3wÔ)¨ÓÏ�Ó—�Ô(Ó Ó7Ó!Ó*‰Ó3@ Ô&]Ó◊ Ó≈ Ô$∂ÓyÔ!gÓ‚wÓiÔ!g�Ô!g�������Ë��������TVm$◊������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDInterpReaderImpl.mesaMichaelPlass,December2,19835:11pmLastEditedby:Pier,November22,19832:45pmLastEditedby:Lamming,December9,19831:27pmDIRECTORYEnvironment,Inline,PDInterpBasic,PDFileFormat,PDInterpBitmap,PDInterpReader,PDInterpSysCalls,Heap,Stream;PDInterpReaderImpl:PROGRAMIMPORTSInline,PDInterpBitmap,PDInterpSysCalls,Heap,StreamEXPORTSPDInterpReader=BEGINOPENPDInterpReader;bitsPerWord:NAT=Environment.bitsPerWord;zone:UNCOUNTEDZONE=Heap.systemZone;CheckHerald:PROC[herald:PDFileFormat.Herald]={status:PDInterpBasic.Status_nil;IFherald.maxLoadWord>200000THENstatus_unreasonableLoadSize;IFNOT(herald.copiesIN[1..1000])THENstatus_unreasonableNumberOfCopies;IFNOT(herald.imageSSizeIN[80..32767])ORNOT(herald.imageFSizeIN[80..32767])THENstatus_unreasonableImageSize;IFNOT(herald.bandSSizeIN[8..32767])THENstatus_unreasonableBandSSize;IFNOT(herald.sResolutionIN[10..10000])ORNOT(herald.fResolutionIN[10..10000])THENstatus_unreasonableResolution;IFherald.version#PDFileFormat.versionValueTHENstatus_wrongFormatVersion;IFherald.password#PDFileFormat.passwordValueTHENstatus_invalidPassword;IFstatus#nilTHENError[NIL,status,0,SIZE[PDFileFormat.Herald]];};AllocateSpace:PROC[handle:Handle]={private:Private_handle.private;bufferWords:INT_(Inline.LongMult[handle.herald.bandSSize,(handle.herald.imageFSize+bitsPerWord-1)/bitsPerWord]+100)*2;private.loadPointer_PDInterpSysCalls.AllocateSpace[handle.herald.maxLoadWord+bufferWords];private.loadWordsAllocated_handle.herald.maxLoadWord;private.bufferOriginPointer_private.loadPointer+private.loadWordsAllocated;private.bufferWordsAllocated_bufferWords;private.bufferWordCount_0;};Open:PUBLICPROC[stream:Stream.Handle]RETURNS[handle:Handle]={bytesTransferred:CARDINAL;why:Stream.CompletionCode;sst:Stream.SubSequenceType;���xÔ_,Ó‚Ô]ÑÓ‚Ó$ÓÓRÓflÓ#%Ó&3Ô[›Ó‚Ó˛ÓEÓòÓfiÓ"BÓ$Ó'≈Ó*‘ÔZ5Ó‚Ó˛ÓEÓòÓÓ%dÓ&ÒÓ*7Ó-EyÔW∫Ó‚wÔVÓÛÓúÓˆ Ó'|Ó1ÔTkÓ∆ÓÇÓ'„Ó+ÒuÔQÓ‚wÓIÔQ�ÔQyÓFÔQ�ÔQÓÓÔPIÓÛwÔPIÓ£Ó˝Ó%ƒÓ1%Ó53yÔN°ÓÛwÔN°Óµ ÔL˙ÓÛ�yÓÿÔL˙�ÔL˙ÓëÔL˙ÓwÔL˙ÓπÔI´ÓÛyÓqÔI´�ÔI´ÓYwÔI´Ój�ÓOÔHÓÛyÓ≤ÔH�ÔHÓòÔHÓ“wÔHÓ é�Ó"suÔD¥Ó‚ wÓÆÔD¥�ÔD¥yÓ¨ÔD¥�ÔD¥ÓSwÔD¥ÓSÓ tÓ.u�Ó0Z�ÔC ÓÛÓCÓ"_�Ó#ÏyÔAeÓÛwÔAeÓöÓ -�Ó!ayÓ&ÔAe�ÔAeÓ&¡wÔAeÓ)ÕÓ-§�Ó/1yÔ?æÓÛÔ?æÓöwÔ?æÓù yÓ\Ô?æ�Ô?æÓ∆�wÔ?æÓ 3 yÓ&Ô?æ�Ô?æÓ&—wÔ>ÓÓ€�ÓhyÔ<oÓÛÔ<oÓöwÔ<oÓùyÓ!kÔ<o�Ô<oÓ!’�wÔ<oÓ#ByÔ:«ÓÛÔ:«Ó(wÔ:«Ó*yÓ"Ô:«�Ô:«Ó"É�wÔ:«Ó#yÓ+5Ô:«�Ô:«Ó+ÓwÔ:«Ó.˚Ó2—�Ô9 Ó∆yÔ7xÓÛÔ7xÓöwÔ7xÓùyÓ ›Ô7x�Ô7xÓ!G�wÔ7xÓ"¥ yÓ)IÔ7x�Ô7xÓ*wÔ7xÓ-Ó0Â�Ó2ryÔ5—ÓÛÔ5—ÓöwÔ5—ÓùyÓ!¢Ô5—�Ô5—Ó"�wÔ5—Ó#yyÔ4)ÓÛÔ4)Ó(wÔ4)Ó*yÓ"%Ô4)�Ô4)Ó"è�wÔ4)Ó#¸yÓ+AÔ4)�Ô4)Ó+˙wÔ4)Ó/Ó2›�Ô2ÇÓ∆yÔ0⁄ÓÛwÔ0⁄Óö Óz�Ó_yÓ.öÔ0⁄�Ô0⁄Ó/SwÔ0⁄Ó2_Ó66�Ô/3Ó∆yÔ-ãÓÛwÔ-ãÓöÓ∞�ÓïyÓ1Ô-ã�Ô-ãÓ1æwÔ-ãÓ4ÀÓ8¢�Ô+‰Ó∆yÔ*=ÓÛwÔ*=ÓöÓq�ÓVyÓhÔ*=�Ô*=Ó!wÔ*=Ó-yÓ!¿Ô*=�Ô*=Ó"®wÓ#ÀÔ*=�Ô*=Ó$®Ó(◊yÓ*dÔ*=�Ô*=Ó+wÓ,flÔ*=�Ô*=Ó-BÔ(ïÓÛuÔ%FÓ‚wÓSÔ%F�Ô%FyÓQÔ%F�Ô%FÓ˘wÔ%FÓ¯Ó!\Ó&ü�Ó(Ñ�Ô#ûÓÛÓ Ó±�Ó=Ô!˜ÓÛyÓáÔ!˜�Ô!˜ÓÒwÔ!˜Ó�Ó§)Ô PÓ∆=Ô®ÓÛÓ¡�ÔÓ∆FÔYÓÛÓ"�Ó#êÔ≤ÓÛÓ!∂�Ó#CÓ/�Ô Ó∆ÔcÓÛÓ##�Ó$∞ÔªÓÛÓ Æ�Ó";ÔÓÛuÔ≈Ó‚wÓÔ≈�Ô≈yÓÔ≈�Ô≈Ó∏Ô≈Ó…wÔ≈ÓpÓ Ω yÓ*ÜÔ≈�Ô≈Ó+ZwÔ≈Ó0ëÓ5ıÓ;8�Ó=�ÔÓÛyÓÒÔ�ÔÓªwÓ"'Ô�ÔÔvÓÛÓfÔ ŒÓÛÓhˇ�������„��������TVm$Û��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2herald:PDFileFormat.Herald;heraldPtr:LONGPOINTER=@herald;[bytesTransferred,why,sst]_Stream.GetBlock[stream,[blockPointer:heraldPtr,startIndex:0,stopIndexPlusOne:Environment.bytesPerWord*SIZE[PDFileFormat.Herald]]];IFbytesTransferred<Environment.bytesPerWord*SIZE[PDFileFormat.Herald]THENError[NIL,unexpectedEOF,0,SIZE[PDFileFormat.Herald]];CheckHerald[herald];BEGINprivate:Private_zone.NEW[PrivateRep];handle_zone.NEW[Rep_[stream:stream,herald:herald,image:[0,FALSE,FALSE,FALSE,black,0,0,0,0],bandNumber:0,sMinBand:0,sSizeBand:0,colorType:none,colorTileLoadAddress:-1,priority:0,loadWords:0,private:private,index:0,page:0,pass:0,status:nil,warningCount:0]];handle.index_SIZE[PDFileFormat.Herald];handle.sSizeBand_herald.bandSSize;{ENABLEUNWIND=>{zone.FREE[@private];zone.FREE[@handle];};AllocateSpace[handle];};END;PDInterpSysCalls.SetDisplayLights[107];};Close:PUBLICPROC[handle:Handle]RETURNS[stream:Stream.Handle]={private:Private_handle.private;stream_handle.stream;IFprivate.loadPointer#NILTHENPDInterpSysCalls.FreeSpace[private.loadPointer];zone.FREE[@private];zone.FREE[@handle];PDInterpSysCalls.SetDisplayLights[109];};ColorTileFromLoad:PUBLICPROC[handle:Handle,colorTileLoadAddress:INT,��qÔg/ÓE…�wÔ_,ÓÛÓ±Ô]ÖÓÛ yÓvÔ]Ö�Ô]ÖÓ/Ô]ÖÓfwÔ]ÖÓ!�Ó"ÏÔ[›ÓÛÓ3ÓÑÓ!„�Ó#pÓ2º Ó;ß ÔZ6Ó∆ Ó∑ÓDÔXéÓ∆yÓ# ÔXé�ÔXéÓ#¨wÓ%àÔXé�ÔXéÓ%ÎyÔVÁÓÛwÔVÁÓöÓ�ÓSyÓ/öÔVÁ�ÔVÁÓ09wÓ2ÔVÁ�ÔVÁÓ2xyÔU?Ó∆wÔU?ÓãyÓÔU?�ÔU?ÓwÓ*ÔU?�ÔU?Ó Ó&ãyÓ(ÔU?�ÔU?Ó(∑wÓ*ìÔU?�ÔU?Ó*ˆÔSòÓÛyÔQÓÛwÔPIÓÓÓ¬�ÓOyÓ!hÔPI�ÔPIÓ"PwÓ$$ÔPI�ÔPIÓ$áÔN°ÓÓã�ÓyÓ1ÔN°�ÔN°ÓwÓÌÔN°�ÔN°ÓPÓ"J�Ó#◊�ÔL˙ÓÓˇÔKRÓÓ”ÔI´ÓÓõyÓãÔI´�ÔI´ÓDwÓ)ÔI´�ÔI´yÓ ÔI´�ÔI´Ó øwÓ#§ÔI´�ÔI´yÓ$ÄÔI´�ÔI´Ó%9wÓ(ÔI´�ÔI´Ó(˚Ó,˝Ó.äÓ0Ó1§ÔHÓ ÓÔF\ÓÓ1ÔD¥Ó ÓÔC Ó ÓÔAeÓÓ#7Ô?æÓÓÉÔ>Ó ÓäÔ<oÓÓ,Ô:«ÓÓZÔ9 ÓÓ’Ô7xÓÓàÔ5—ÓÓfÔ4)ÓÓë�Ô2ÇÓÔ0⁄ÓÓ)�yÓ∂Ô0⁄�Ô0⁄ÓUwÓ1Ô0⁄�Ô0⁄ÓïÔ/3ÓÓÎ�ÓxÔ-ãÓ�yÓµÔ-ã�Ô-ãÓnÔ+‰ÓwÔ+‰Ó∫ÓP�Ô*<Ó'yÓ@Ô*<�Ô*<Ó˘wÓ?Ô*<�Ô*<Ó¢ Ô(ïÓ'yÓ@Ô(ï�Ô(ïÓ˘wÓ?Ô(ï�Ô(ïÓ¢Ô&ÌÓ'Ô%EÓÔ#ûÓyÔ!ˆÓwÓåÔ!ˆ�Ô!ˆÔ OÓÛ'ÔßÓÛuÔXÓ‚wÓ(ÔX�ÔXyÓ&ÔX�ÔXÓÕÔXÓfiwÔXÓÖÓ ÈyÓ&,ÔX�ÔXÓ'�wÔXÓ,7Ó1Ñ Ó;M�Ó=2�Ô±ÓÛÓ Ó±�Ó=Ô ÓÛÓc�Ó yÔbÓÛwÔbÓöÓi�yÓ NÔb�ÔbÓ!6ÔbÓ"fiwÔ∫Ó∆0ÔÓÛyÓÔ�ÔÓ≈wÓÔ�ÔÓo ÔkÓÛyÓÔk�ÔkÓ≈wÓÔk�ÔkÓoÔƒÓÛ'ÔÓÛuÔ ÕÓ‚wÓ∆Ô Õ�Ô ÕyÓ√Ô Õ�Ô ÕÓkÔ ÕÓ |wÔ ÕÓ$#Ó)ÜÓ.æyÓ<‡Ô Õ�Ô ÕÓ=JwÓ>ÎÔ Õ�Ô Õ�������¨��������TVm$|������������������������������������������������������������������������������������������3scratchPointer:LONGPOINTER,scratchWords:INT]RETURNS[PDInterpBitmap.Tile]={private:Private=handle.private;tile:LONGPOINTERTOPDFileFormat.Tile=private.loadPointer+colorTileLoadAddress;words:INT=Inline.LongMult[tile.sSize,(tile.fSize+(bitsPerWord-1))/bitsPerWord];bitmap:PDInterpBitmap.BitmapDesc_PDInterpBitmap.Reshape[tile+SIZE[PDFileFormat.Tile],words,[tile.sMin,tile.fMin,tile.sSize,tile.fSize]];RETURN[PDInterpBitmap.CreateTile[rectangle:[tile.sMin,tile.fMin,tile.sSize,tile.fSize],phase:tile.phase,rasterPointer:tile+SIZE[PDFileFormat.Tile],scratchPointer:scratchPointer,scratchWords:scratchWords]];};LongBlockTransfer:PROC[source:LONGPOINTER,count:INT,dest:LONGPOINTER]={WHILEcount>LAST[CARDINAL]DOInline.LongCOPY[source,LAST[CARDINAL],dest];source_source+LAST[CARDINAL];dest_dest+LAST[CARDINAL];count_count-LAST[CARDINAL];ENDLOOP;Inline.LongCOPY[source,count,dest];};Private:TYPE=LONGPOINTERTOPrivateRep;PrivateRep:PUBLICTYPE=RECORD[loadPointer:LONGPOINTER_NIL,loadWordsAllocated:INT_0,bufferOriginPointer:LONGPOINTER_NIL,bufferWordsAllocated:INT_0,bufferWordCount:INT_0];BlockDescription:TYPE=RECORD[pointer:LONGPOINTER,words:CARDINAL];ReadLocate:PROC[handle:Handle,words:INT]RETURNS[blockDescription:BlockDescription]={Thebufferstoragemaygetre-usedwiththenextReadLocateorReadBlock;private:Private_handle.private;bytesWanted:CARDINAL_Environment.bytesPerWord*MIN[words,private.bufferWordsAllocated];bytesTransferred:CARDINAL;why:Stream.CompletionCode;sst:Stream.SubSequenceType;[bytesTransferred,why,sst]_Stream.GetBlock[handle.stream,[blockPointer:��qÔg/ÓE…�wÔ_,ÓµyÓÔ_,�Ô_,Ó‘Ô_,ÓwÓ"(Ô_,�Ô_,Ó#yÓ,Ô_,�Ô_,Ó,rwÓ.Ô_,�Ô_,yÓ.˚Ô_,�Ô_,Ó/œwÔ]ÖÓµÓï�Óz�Ô[›ÓÛÓ Ó±�ÓñÔZ6ÓÛyÓÀÔZ6�ÔZ6ÓÑÔZ6ÓºÔZ6Ó]wÔZ6ÓwÓ+N�Ó-4Ó9�ÔXéÓ∆ÔVÁÓÛyÓyÔVÁ�ÔVÁÓ„wÔVÁÓ �ÓÓÔU?Ó∆*ÔSòÓÛÓ Ó)"ÔQÓÓc�yÓHÔQ�ÔQÓÁwÓ√ÔQ�ÔQÓ'ÔPIÓÔN°Ó Óz ÓÅ Ó%~ ÔL˙ÓyÔKRÓÛwÔKRÓ`ÔI´Ó ÓZ Ó– Ó%◊ Ó+‘ÔHÓÓ_ ÔF\Ó ÓòÓˆ�yÓ‹ÔF\�ÔF\Ó {wÓ"WÔF\�ÔF\Ó"∫ÔD¥ÓÓkÔC ÓÓÔAeÓÔ?æÓÛuÔ<oÓ‚wÓmÔ<o�Ô<oyÓkÔ<o�Ô<oÓwÔ<oÓyÓ$>Ô<o�Ô<oÓ$˜Ô<oÓ(.wÓ-KÔ<o�Ô<oÓ.'yÓ2xÔ<o�Ô<oÓ2·wÓ4ÉÔ<o�Ô<oÓ5`yÓ8ΩÔ<o�Ô<oÓ9vÔ:«ÓµwÓ“Ô:«�Ô:«Óπ�Óû�yÔ9 ÓÛwÔ9 ÓTÓ+�yÓ`Ô9 �Ô9 ÓwÓDÔ9 �yÔ9 Ó®wÓ#fiÔ9 �Ô9 yÓ$∆Ô9 �Ô9 Ó%¨�wÔ7xÓyÓ"ÈÔ7x�Ô7xÓ#¢wÓ%ÕÔ7x�yÔ7xÓ&1wÓ,gÔ7x�Ô7xÓ,À�Ó-ßÔ5—ÓÓT�Ó·Ó0�yÓÔ5—�Ô5—ÓŒwÓ!˙Ô5—�yÔ5—Ó"]wÓ(îÔ5—�Ô5—Ó(˜�Ô4)ÓÓË�ÓuÓY�yÓ>Ô4)�Ô4)Ó˜wÓ#Ô4)�yÔ4)ÓÜwÓ%ΩÔ4)�Ô4)Ó& �Ô2ÇÓÓ€�ÓhÓ?�yÓ=Ô2Ç�Ô2ÇÓˆwÓ !Ô2Ç�yÔ2ÇÓ ÑwÓ&ªÔ2Ç�Ô2ÇÓ'�yÔ0⁄ÓwÓ•Ô0⁄�Ô0⁄Ô/3ÓÛÓ ◊Ó%Ô-ãÓÛÔ*<Ó‚yÓÔ*<�Ô*<ÓºwÔ*<Ót�yÓYÔ*<�Ô*<ÓÔ*<ÓJÔ*<Ó"ÎwÔ*<Ó% Ô(ïÓ‚ yÓxÔ(ï�Ô(ïÓ Ô(ïÓ0wÔ(ïÓ¢�yÓ áÔ(ï�Ô(ïÓ![wÔ(ïÓ%˘�Ô&ÌÓÛyÓÀÔ&Ì�Ô&ÌÓÑÔ&ÌÓªÓ"B�Ó#wÓ%ãÔ&Ì�Ô&ÌÔ%FÓÛyÓ Ô%F�Ô%FÓwwÔ%FÓ ú�Ó")Ô#ûÓÛyÓøÔ#û�Ô#ûÓyÔ#ûÓ!∞Ó'7�Ó(twÓ*ÄÔ#û�Ô#ûÔ!˜ÓÛyÓ,Ô!˜�Ô!˜ÓñwÔ!˜Ó!º�Ó#IÔ OÓÛyÓ∏Ô O�Ô OÓ"wÔ OÓH�Ó ’�Ô®ÓÛÔYÓ‚yÓ"ÔY�ÔYÓ€wÔYÓì�yÓxÔY�ÔYÓ LwÔYÓ$ÎyÓ*êÔY�ÔYÓ+IÔYÓ.ÅwÓ3ùÔY�ÔYÓ4zyÓ9�ÔY�ÔYÓ9ÀwÓ?7ÔY�ÔYÓ?ö�uÔ±Ó‚ wÓ˝Ô±�Ô±yÓ˚Ô±�Ô±Ó£wÔ±Ó¢Ó Ó%=yÓ)ƒÔ±�Ô±Ó*-wÓ+œÔ±�Ô±yÔ ÓÛwÔ ÓˇÓ"ÅÓ-´�Ó/ê�xÔbÓÛÓ∂Ó•ÓNÓ>Ó!~Ó&'Ó)"Ó+nÓ.É Ó5˚Ó7¥ wÔ∫ÓÛÓ Ó±�Ó=ÔÓÛyÓ©Ô�ÔÓtwÔÓ d�Ó!ÒyÓ38Ô�ÔÓ4IwÓ5õÔ�ÔÓ5ˇÔlÓ∆ÔƒÓÛyÓÒÔƒ�ÔƒÓªwÓ"'Ôƒ�ÔƒÔÓÛÓfÔuÓÛÓhÔ ŒÓÛÓ3ÓÑÓ!„�Ó#pÓ7 ���������������TVm$z������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4private.bufferOriginPointer,startIndex:0,stopIndexPlusOne:bytesWanted]];IFbytesTransferred<bytesWantedTHEN{handle.status_unexpectedEOF;Error[handle,unexpectedEOF,handle.index,words]};blockDescription.pointer_private.bufferOriginPointer;blockDescription.words_private.bufferWordCount_bytesTransferred/Environment.bytesPerWord;handle.index_handle.index+blockDescription.words;};ReadBlock:PROC[handle:Handle,dest:LONGPOINTER,words:INT]={bytesWanted:CARDINAL_Environment.bytesPerWord*words;bytesTransferred:CARDINAL;why:Stream.CompletionCode;sst:Stream.SubSequenceType;[bytesTransferred,why,sst]_Stream.GetBlock[handle.stream,[blockPointer:dest,startIndex:0,stopIndexPlusOne:bytesWanted]];IFbytesTransferred<bytesWantedTHEN{handle.status_unexpectedEOF;Error[handle,unexpectedEOF,handle.index,words]};handle.index_handle.index+bytesTransferred/Environment.bytesPerWord;};CheckBB:PROC[handle:Handle,sMin,fMin,sSize,fSize:CARDINAL,errorWordCount:INT]={IFLONG[sMin]+sSize>handle.herald.imageSSizeORLONG[fMin]+fSize>handle.herald.imageFSizeORfMin<handle.image.fMinPageORfMin+fSize>handle.image.fMinPage+handle.image.fSizePageTHENRaisePDError[handle,objectOutOfBounds,errorWordCount];IFsMin+sSize<=handle.sMinBandORsMin>=handle.sMinBand+handle.sSizeBandTHEN{RaisePDWarning[handle,objectOutOfBand,errorWordCount];};};Get:PUBLICPROC[handle:Handle]RETURNS[CommandBuffer]={private:Private_handle.private;command:PDFileFormat.Command;BadLoadReference:PROC[dataWords:INT]={RaisePDError[handle,badLoadReference,SIZE[PDFileFormat.Command]+dataWords];};IFhandle.priority=LAST[INT]THEN{ans:CommandBuffer.stateChange;ans.loadChangeStart_ans.loadChangeLength_0;handle.sMinBand_handle.sMinBand+handle.sSizeBand;handle.bandNumber_handle.bandNumber+1;handle.priority_0;handle.colorType_ink;ans.whatChanged_bandChange;IFhandle.bandNumber=handle.image.nBandsTHEN{ans.whatChanged_imageEnd;handle.colorType_none;��qÔg/ÓE…�wÔ_,Ó∆Ó"· Ó)“Ó+_Ó79 yÔ]ÖÓÛwÔ]ÖÓöÓ�ÓS yÓ&èÔ]Ö�Ô]ÖÓ'HwÔ]ÖÓ*U Ó36�Ó4√ Ô[›Ó∆Ó8 Ó$ΩÓ-:ÔZ6ÓÛÓ 5�Ó!¬ÔXéÓÛÓy�Ó!Ó0¡�ÔVÁÓ∆*ÔU?ÓÛÓ�Ó•Ó" �Ó$ØÔSòÓÛuÔPIÓ‚wÓXÔPI�ÔPIyÓVÔPI�ÔPIÓ˝wÔPIÓ˝Ó`Ó$òyÓ'ıÔPI�ÔPIÓ(ØÓ+ÃwÓ0ËÔPI�ÔPIÓ1≈yÓ6KÔPI�ÔPIÓ6µwÓ8VÔPI�ÔPIÓ9>�Ó;#�ÔN°ÓÛyÓ©ÔN°�ÔN°ÓtwÔN°Ó d�Ó!ÒÔL˙ÓÛyÓÒÔL˙�ÔL˙ÓªwÓ"'ÔL˙�ÔL˙ÔKRÓÛÓfÔI´ÓÛÓhÔHÓÛÓ3ÓÑÓ!„�Ó#pÓ7 ÔF\Ó∆Ó ÓÛÓÄÓ)Z yÔD¥ÓÛwÔD¥ÓöÓ�ÓS yÓ&èÔD¥�ÔD¥Ó'HwÔD¥Ó*U Ó36�Ó4√ ÔC Ó∆Ó8 Ó$ΩÓ-:ÔAeÓÛÓ�Ó•Ó" �Ó$Ø*Ô?æÓÛuÔ<oÓ‚wÓ}Ô<o�Ô<oyÓzÔ<o�Ô<oÓ"wÔ<oÓ"ÓÖÓ#ΩÓ'ùÓ+sÓ/=yÓ3Ô<o�Ô<oÓ3ÈwÓ9UÔ<o�Ô<oÔ:»ÓµyÓΩÔ:»�Ô:»Ó'wÓ»Ô:»�Ô:»Ó∞�Óï�yÔ9 ÓÛÔ9 ÓöwÓÔ9 �Ô9 ÓjÓU�Ó:Ó≠�Ó ·yÔ7yÓÛÔ7yÓ(wÓîÔ7y�Ô7yÓ˜Óÿ�ÓΩÓ $�Ó!YyÔ5—ÓÛwÔ5—Ó(Ó•�Ó⁄yÔ4)ÓÛwÔ4)Ó(Ó•�ÓäÓÒ�Ó&Ó+™�Ó-èyÔ2ÇÓÛwÔ2ÇÓπÓ"VÓ/yÔ0⁄ÓÛwÔ0⁄ÓöÓ#�ÓÓzÓyÔ/3ÓÛwÔ/3Ó(Ó∞ÓEyÓ0Ô/3�Ô/3Ó0øwÔ/3Ó3À�Ô-ãÓÓ"ûÓ-ˇÔ+‰ÓÔ*<ÓÛuÔ&ÌÓ‚wÓÔ&Ì�Ô&ÌyÓÔ&Ì�Ô&ÌÓ∫Ô&ÌÓ wÔ&ÌÓrÓ’yÓ%Ô&Ì�Ô&ÌÓ%ÏwÔ&ÌÓ+#Ó6x�Ó8]�Ô%FÓÛÓ Ó±�Ó=Ô#ûÓÛÓŒuÔ!˜ÓÛwÓ1Ô!˜�Ô!˜yÓ.Ô!˜�Ô!˜Ó÷wÔ!˜Ó ÷ yÓ(£Ô!˜�Ô!˜Ó) wÓ*ÆÔ!˜�Ô!˜Ó+ñ�Ó-{�Ô OÓÓ ¢yÔ®Ó◊wÓRÔ®�Ô®Ó∂!Ô�ÓyÔYÓÛwÔYÓöÓÈ�yÓŒÔY�ÔYÓáwÓ ≥ÔY�yÔYÓ!wÓ#"ÔY�ÔYyÓ$ ÔY�ÔYÓ$¬wÔYÓ'Œ�Ô±ÓÓÚÔ ÓÓ∞�Ó!=Ó/T�Ó0·ÔbÓÓ�ÓéÓ*ã�Ó,pÔªÓÓ·�Ó!nÓ.J�Ó0/ÔÓÓS�Ó‡ÔlÓÓ‡�ÓmÔƒÓÓ˜�ÓÑ yÔÓwÔÓ¨Ó!à�Ó#myÓ0ëÔ�ÔÓ1JwÔÓ4V�ÔuÓÓ �Ó!ïÔ ŒÓÓÒ�Ó!~�������\��������TVm$Ó������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5handle.status_betweenPages;};RETURN[ans];};ReadBlock[handle,@command,SIZE[PDFileFormat.Command]];WITHcommandSELECTFROMimagingCommand:PDFileFormat.Command.imaging=>{IFhandle.colorType=noneTHEN{RaisePDError[handle,missingStartImage,SIZE[PDFileFormat.Command]];ERROR};SELECTimagingCommand.comFROMmaskSamplesRef=>{ans:CommandBuffer.maskSamples;maskSamplesRef:PDFileFormat.MaskSamplesRef;loadAddress:Environment.LongNumber;samples:LONGPOINTERTOPDFileFormat.SampleArray;words:INT;ReadBlock[handle,@maskSamplesRef,SIZE[PDFileFormat.MaskSamplesRef]];loadAddress.highbits_imagingCommand.addrHighBits;loadAddress.lowbits_maskSamplesRef.addrLowBits;ans.loadAddress_loadAddress.li;IFans.loadAddress<0ORans.loadAddress+SIZE[PDFileFormat.SampleArray]>handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskSamplesRef]];samples_private.loadPointer+loadAddress.li;words_Inline.LongMult[samples.sSize,(samples.fSize+(bitsPerWord-1))/bitsPerWord];IFans.loadAddress+SIZE[PDFileFormat.SampleArray]+words>handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskSamplesRef]];CheckBB[handle,maskSamplesRef.sMin,maskSamplesRef.fMin,samples.sSize,samples.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamplesRef]];ans.samples_[sOrigin:maskSamplesRef.sMin,fOrigin:maskSamplesRef.fMin,sMin:0,fMin:0,sSize:samples.sSize,fSize:samples.fSize,pointer:samples+SIZE[PDFileFormat.SampleArray],rast:(samples.fSize+(bitsPerWord-1))/bitsPerWord,lines:samples.sSize];RETURN[ans]};maskRunGroupRef=>{ans:CommandBuffer.maskRunGroup;maskRunGroupRef:PDFileFormat.MaskRunGroupRef;loadAddress:Environment.LongNumber;runGroup:LONGPOINTERTOPDFileFormat.RunGroup;run:LONGPOINTERTOPDFileFormat.Run;s:CARDINAL_0;runCount:CARDINAL_0;���qÔg/ÓE…�wÔ_,ÓÓF�Ó”Ô]ÑÓyÔ[›ÓwÔ[›ÓqÔZ5ÓÔXéÓÛÓ¨yÓ$∆ÔXé�ÔXéÓ%ewÓ'BÔXé�ÔXéÓ'•yÔVÊÓÛwÔVÊÓõyÓ¸ÔVÊ�ÔVÊÓõÔVÊÓœuÔU?Ó wÓõÔU?�ÔU?ÓôÓ3rÓ6�yÔSóÓwÔSóÓΩÓ!ò�Ó#}yÓ&ÔSó�ÔSóÓ'©wÔSóÓ*µ�ÔQÓ'Ó$ƒyÔPHÓ˙wÓuÔPH�ÔPHÓÿyÔN°Ó'wÔL˘Ó'yÔKRÓwÔKRÓËyÓ(@ÔKR�ÔKRÓ(˙uÔI™Ó' wÔI™Ó!≥Ó$I�ÔHÓ8Ó&ÔF[Ó8Ó$VÔD¥Ó8Ó!âÔCÓ8yÓ›ÔC�ÔCÓñÔCÓ"ÕÔCÓ(nwÔCÓ*àÔAdÓ8yÓæÔAd�ÔAdÓ(wÓ ÔAd�ÔAdÔ?ΩÓ8Ó$ÒyÔ>ÓwÓÜÔ>�Ô>ÓÈÔ<nÓ8Ó&&�Ó'≤Ô:«Ó8Ó%†�Ó'-Ô9Ó8Ó#W�Ó$‰yÔ7wÓ8wÔ7wÓflÓ$ˇ�Ó&3�yÓ'hÔ7w�Ô7wÓ(D�wÔ7wÓ)ùÓ3º�yÔ5–ÓwÓÜÔ5–�Ô5–ÓÈÓ.ù�Ó/“yÓ;'Ô5–�Ô5–Ó;‡wÔ4)ÓyÓ%œÔ4)�Ô4)Ó&nwÓ(JÔ4)�Ô4)Ó(≠Ô2ÅÓ8Óc�ÓÓ+ø�Ó-§Ô0⁄Ó8ÓE�Ó“Ô/2Ó-yÔ-ãÓ8wÔ-ãÓflÓ$ˇ�yÓ&‰Ô-ã�Ô-ãÓ'ÉwÓ)_Ô-ã�Ô-ãÓ)¬Ó;v�Ó=[Ô+„Ó�Ó?yÓ&îÔ+„�Ô+„Ó'MwÔ*<ÓyÓ%œÔ*<�Ô*<Ó&nwÓ(JÔ*<�Ô*<Ó(≠Ô(ïÓ8Ó$ Ó2bÔ&ÌÓ Ó"‘ yÔ%FÓwÓÜÔ%F�Ô%FÓÈyÓ-ÌÔ%F�Ô%FÓ.åwÓ0hÔ%F�Ô%FÓ0ÀÔ#ûÓ8 Ó ´�Ó"8Ó'ÚÓ6KÔ!˜ÓÓ(XÓ,ZÓ-ÁÓ1›Ó3jÓ7V Ô PÓÓÎ Ó&™Ô®ÓyÓ Ô®�Ô®Ó ≤wÓ"éÔ®�Ô®Ó"ÒÓ4˛ÔÓ,Ó6ÈÔZÓyÔ≤Ó8wÔ≤Ó§ÔÓ8uÔcÓ'wÔcÓ"˝Ó%ì�ÔºÓ8Ó&ÔÓ8Ó%˙ÔlÓ8Ó!âÔ≈Ó8yÓ ?Ô≈�Ô≈Ó ¯Ô≈Ó$/Ô≈Ó)–wÔ≈Ó+ÍÔÓ8yÓGÔ�ÔÓ�ÔÓ 8ÔÓ%ŸwÔÓ'ÛÔvÓ8yÓ∫Ôv�ÔvÓÖwÔvÓ!u�Ó#Ô ŒÓ8yÓ˝Ô Œ�Ô ŒÓ »wÔ ŒÓ&∏�Ó(E�������£��������TVm$z������������������������������������������������������������������������������������������������������6words:INT_0;fSize:CARDINAL_0;ReadBlock[handle,@maskRunGroupRef,SIZE[PDFileFormat.MaskRunGroupRef]];loadAddress.highbits_imagingCommand.addrHighBits;loadAddress.lowbits_maskRunGroupRef.addrLowBits;ans.loadAddress_loadAddress.li;IFans.loadAddress<0ORans.loadAddress+SIZE[PDFileFormat.RunGroup]>handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskRunGroupRef]];runGroup_private.loadPointer+loadAddress.li;ans.pointer_run_private.loadPointer+loadAddress.li+SIZE[PDFileFormat.RunGroup];WHILEs<runGroup.sSizeDOIFINT[run-private.loadPointer]>=handle.loadWordsTHENBadLoadReference[SIZE[PDFileFormat.MaskRunGroupRef]];IFLONG[run.fMin]+run.fSize>fSizeTHENfSize_LONG[run.fMin]+run.fSize;IFrun.lastRunTHENs_s+1;run_run+SIZE[PDFileFormat.Run];ENDLOOP;ans.runCount_runCount;CheckBB[handle,maskRunGroupRef.sMin,maskRunGroupRef.fMin,runGroup.sSize,fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskRunGroupRef]];ans.sMin_maskRunGroupRef.sMin;ans.fMin_ans.fOffset_maskRunGroupRef.fMin;ans.sSize_runGroup.sSize;ans.fSize_fSize;RETURN[ans]};maskRectangle=>{ans:CommandBuffer.maskRectangle;maskRectangle:PDFileFormat.MaskRectangle;ReadBlock[handle,@maskRectangle,SIZE[PDFileFormat.MaskRectangle]];CheckBB[handle,maskRectangle.sMin,maskRectangle.fMin,maskRectangle.sSize,maskRectangle.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskRectangle]];ans.sMin_maskRectangle.sMin;ans.fMin_maskRectangle.fMin;ans.sSize_maskRectangle.sSize;ans.fSize_maskRectangle.fSize;RETURN[ans]};maskTrapezoid=>{ans:CommandBuffer.maskTrapezoid;maskTrapezoid:PDFileFormat.MaskTrapezoid;fMin,fMax:INT;ReadBlock[handle,@maskTrapezoid,SIZE[PDFileFormat.MaskTrapezoid]];fMin_MIN[maskTrapezoid.fMin,maskTrapezoid.fMinLast];��qÔg/ÓE…�wÔ_,Ó8yÓæÔ_,�Ô_,Ó(wÔ_,Ó N�Ó!€Ô]ÖÓ8yÓÔ]Ö�Ô]ÖÓ„wÔ]ÖÓ#‘�Ó%aÔ[›Ó8Ó$ÒyÔZ6ÓwÓÜÔZ6�ÔZ6ÓÈÔXéÓ8Ó&&�Ó'≤ÔVÁÓ8Ó%†�Ó'-ÔU?Ó8Ó#W�Ó$‰yÔSòÓ8wÔSòÓflÓ$ˇ�Ó&3�yÓ'hÔSò�ÔSòÓ(D�wÔSòÓ)ùÓ3º�yÔQÓwÓÜÔQ�ÔQÓÈÓ-_�Ó.ìyÓ9ËÔQ�ÔQÓ:°wÔPIÓyÓ%œÔPI�ÔPIÓ&nwÓ(JÔPI�ÔPIÓ(≠ÔN°Ó8Ó≈�Ó!RÓ- �Ó/ÔL˙Ó8 Ó I�Ó!’Ó$l�Ó%¯Ó1«�Ó3¨ Ó<°�yÔKSÓwÓÜÔKS�ÔKSÓÈyÔI´Ó8wÔI´Óô�Ó°�Ó÷ yÓ)©ÔI´�ÔI´Ó*è�ÔHÓIÔHÓwÓ¸ÔH�ÔHÓ_Ó.Ó0±yÓ<ÔH�ÔHÓ<øwÔF\ÓyÓ'‡ÔF\�ÔF\Ó(wÓ*[ÔF\�ÔF\Ó*æyÔDµÓIÔDµÓwÓ ]ÔDµ�ÔDµÓ ¿Ó' �Ó(ÓÓ.ø�Ó/ÙyÓ3[ÔDµ�ÔDµÓ4wÔDµÓ7!Ó:à�yÔC ÓwÓàÔC �ÔC ÓÎÓ&5�Ó( yÔAfÓIwÔAfÓ yÓ$pÔAf�ÔAfÓ%)wÔAfÓ(5�Ó)>�Ó*À�Ó+‘�Ó-πÔ?æÓIÓfl�ÓlÓ"�yÓ#ÁÔ?æ�Ô?æÓ$ÜwÓ&cÔ?æ�Ô?æÓ&∆yÔ>ÓIwÓ ÍÔ>�Ô>Ô<oÓ8Ó!À�Ó#XÔ:»Ó8Ó$ Ô9 ÓÓ)¸Ó4'yÔ7yÓwÓÜÔ7y�Ô7yÓÈyÓ-ÌÔ7y�Ô7yÓ.åwÓ0hÔ7y�Ô7yÓ0ÀÔ5“Ó8Ó�Ó ïÔ4*Ó8Ó˝�Ó ä Ó'n�Ó(˚Ô2ÉÓ8ÓÚ�Ó Ô0€Ó8ÓÁ�Ó tyÔ/3Ó8wÔ/3Ó§Ô-åÓ8uÔ+‰Ó'wÔ+‰Ó †Ó#5�Ô*=Ó8Ó&Ô(ïÓ8 Ó#!Ô&ÓÓ8Ó$ÒyÔ%GÓwÓÜÔ%G�Ô%GÓÈÔ#üÓ8Ó$ Ó1-Ô!¯ÓÓ'yÔ PÓwÓÜÔ P�Ô PÓÈyÓ-ÌÔ P�Ô PÓ.åwÓ0hÔ P�Ô PÓ0ÀÔ©Ó8Ó�Ó ïÔÓ8Ó˝�Ó äÔZÓ8ÓÚ�Ó Ô≤Ó8ÓÁ�Ó tyÔÓ8wÔÓ§ÔcÓ8uÔºÓ'wÔºÓ °Ó#7�ÔÓ8Ó&ÔmÓ8 Ó#AÔ≈Ó8Ó yÓ!0Ô≈�Ô≈Ó!öwÓ#;Ô≈�Ô≈ÔÓ8Ó$ÒyÔvÓwÓÜÔv�ÔvÓÈÔ œÓ8Óµ�yÓBÔ œ�Ô œÓSwÓ ¶Ô œ�Ô œÓ! Ó.Bˇ�������û��������TVm$õ������������������������������������������7fMax_MAX[LONG[maskTrapezoid.fMin]+maskTrapezoid.fSize,LONG[maskTrapezoid.fMinLast]+maskTrapezoid.fSizeLast];CheckBB[handle,maskTrapezoid.sMin,fMin,maskTrapezoid.sSize,fMax-fMin,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskTrapezoid]];ans.sMin_maskTrapezoid.sMin;ans.fMin_maskTrapezoid.fMin;ans.fMinLast_maskTrapezoid.fMinLast;ans.sSize_maskTrapezoid.sSize;ans.fSize_maskTrapezoid.fSize;ans.fSizeLast_maskTrapezoid.fSizeLast;RETURN[ans]};maskRunGroup=>{ans:CommandBuffer.maskRunGroup;maskRunGroup:PDFileFormat.MaskRunGroup;runGroup:PDFileFormat.RunGroup;s:CARDINAL_0;runCount:INT_0;words:INT_0;fMin:CARDINAL_LAST[CARDINAL];fMax:CARDINAL_FIRST[CARDINAL];run:LONGPOINTERTOPDFileFormat.Run;ReadBlock[handle,@maskRunGroup,SIZE[PDFileFormat.MaskRunGroup]];ReadBlock[handle,@runGroup,SIZE[PDFileFormat.RunGroup]];run_private.bufferOriginPointer;private.bufferWordCount_0;WHILEs<runGroup.sSizeDOIFrunCount*SIZE[PDFileFormat.Run]>=private.bufferWordCountTHEN{Readachunk,assumingonerungroupperscanline.words:CARDINAL_(runGroup.sSize-s)*SIZE[PDFileFormat.Run];IFwords+private.bufferWordCount>private.bufferWordsAllocatedTHENRaisePDError[handle,runGroupTooLong,private.bufferWordCount];ReadBlock[handle,run,words];private.bufferWordCount_private.bufferWordCount+words;};IFrun.fMin<fMinTHENfMin_run.fMin;IFLONG[run.fMin]+run.fSize>fMaxTHENfMax_LONG[run.fMin]+run.fSize;IFrun.lastRunTHENs_s+1;runCount_runCount+1;run_run+SIZE[PDFileFormat.Run];ENDLOOP;IFrunCount*SIZE[PDFileFormat.Run]#private.bufferWordCountTHENERROR;ans.runCount_runCount;ans.loadAddress_-1;���qÔg/ÓE…�wÔ_,Ó8Ó·�yÓnÔ_,�Ô_,ÓÄwÓ!'Ô_,�yÔ_,Ó!äwÓ$ˆÔ_,�Ô_,Ó%YÓ2ù�Ó4ÇyÔ]ÖÓwÓwÔ]Ö�Ô]ÖÓ⁄Ó-û�Ó/ÉÔ[›Ó8Ó$ Ó1MÔZ6ÓÓ'9 yÔXéÓwÓÜÔXé�ÔXéÓÈyÓ-ÌÔXé�ÔXéÓ.åwÓ0hÔXé�ÔXéÓ0ÀÔVÁÓ8Ó�Ó ïÔU?Ó8Ó˝�Ó äÔSòÓ8Ó!}�Ó# ÔQÓ8ÓÚ�Ó ÔPIÓ8ÓÁ�Ó tÔN°Ó8Ó!g�Ó"ÙyÔL˙Ó8wÔL˙Ó§ÔKRÓ8uÔI´Ó'wÔI´Ó ÏÓ#Ç�ÔHÓ8Ó&yÓ&0ÔH�wÔHÓ&vÔF\Ó8Ó#“ÔD¥Ó8Ó ?ÔCÓ8yÓ∫ÔC�ÔCÓÖwÔCÓ!u�Ó#ÔAeÓ8yÓ˝ÔAe�ÔAeÓ gwÔAeÓ"å�Ó$Ô?ΩÓ8yÓæÔ?Ω�Ô?ΩÓ(wÔ?ΩÓ N�Ó!€Ô>Ó8yÓ.Ô>�Ô>Ó˘wÔ>Ó#Í�yÓ%vÔ>�Ô>Ó&0wÓ([Ô>�yÔ>Ó(æwÓ.ıÔ>�Ô>Ó/X�Ô<nÓ8yÓ[Ô<n�Ô<nÓ%wÔ<nÓ$�yÓ%£Ô<n�Ô<nÓ&\wÓ(ÚÔ<n�yÔ<nÓ)UwÓ/åÔ<n�Ô<nÓ/Ô�Ô:«Ó8yÓGÔ:«�Ô:«Ó�Ô:«Ó 8Ô:«Ó%ŸwÔ:«Ó'ÛÔ9Ó8Ó$Ò yÔ7xÓwÓÜÔ7x�Ô7xÓÈÔ5–Ó8Ó$Ò yÓ-7Ô5–�Ô5–Ó-◊wÓ/≥Ô5–�Ô5–Ó0Ô4)Ó8ÓŒ�Ó[Ô2ÅÓ8Ó(Û�Ó*ÄyÔ0⁄Ó8wÔ0⁄Óô�Ó°�Ó÷ yÓ)©Ô0⁄�Ô0⁄Ó*è�Ô/2ÓIwÔ/2ÓyÓ#hÔ/2�Ô/2Ó$wÓ%„Ô/2�Ô/2Ó&FÓ2≈Ô-ãÓyÓ+◊Ô-ã�Ô-ãÓ,êwÔ-ãÓ/ù�xÔ+„ÓZÓ ÿ�Ó"Ó&ÉÓ,eÓ.ÛÓ1wÓ5MÓ7°Ó:≥wÔ*<ÓZyÓ!‡Ô*<�Ô*<Ó"´wÔ*<Ó(ú�Ô(îÓ-yÓ*Ô(î�Ô(îÓ*ºwÓ,òÔ(î�Ô(îÓ,˚yÔ&ÌÓZwÔ&ÌÓÓ#�Ó$ÛÓ4Ø�Ô%FÓ-yÓ0]Ô%F�Ô%FÓ1wÔ%FÓ4"Ô#ûÓ-Ó*ãÔ!˜ÓZÓ)Ó,Ô OÓZÓ-�Ó.¢Ó>^�Ô®Ó-Ô�ÓZyÔYÓIwÔYÓÓ"◊�Ó$yÓ'âÔY�ÔYÓ(BwÔYÓ+NÓ.À�Ó0XyÔ±ÓIÔ±ÓwÓ ]Ô±�Ô±Ó ¿Ó' �Ó(ÓÓ.ø�Ó/ÙyÓ3ùÔ±�Ô±Ó4VwÔ±Ó7cÓ;�yÔ ÓwÓàÔ �Ô ÓÎÓ&5�Ó( yÔbÓIwÔbÓ yÓ$pÔb�ÔbÓ%)wÔbÓ(5�Ó)>�Ó*À�Ó+‘�Ó-πÔªÓIÓ!î�Ó#!Ó)m�Ó+RÔÓIÓfl�ÓlÓ"�yÓ#ÁÔ�ÔÓ$ÜwÓ&cÔ�ÔÓ&∆yÔlÓIwÓ ÍÔl�ÔlyÔƒÓ8wÔƒÓflyÓ!WÔƒ�ÔƒÓ!ˆwÓ#“Ôƒ�ÔƒÓ$5Ó0≥�ÔÓyÓ)∆Ô�ÔÓ*ÔÓ-ãwÓ1ùÔ�ÔÔuÓ8Ó!À�Ó#XÔ ŒÓ8Ó#W�Ó$‰ˇ���������������TVm$��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8IFrunCount=0THEN{ans.pointer_NIL;RaisePDWarning[handle,emptyRunGroup,SIZE[PDFileFormat.MaskRunGroup]+SIZE[PDFileFormat.RunGroup]];fMin_fMax;}ELSE{ans.pointer_private.bufferOriginPointer;CheckBB[handle,maskRunGroup.sMin,fMin,runGroup.sSize,fMax-fMin,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskRunGroup]+private.bufferWordCount]};ans.sMin_maskRunGroup.sMin;ans.fMin_fMin;ans.fOffset_0;ans.sSize_runGroup.sSize;ans.fSize_fMax;RETURN[ans];};maskSamples=>{ans:CommandBuffer.maskSamples;maskSamples:PDFileFormat.MaskSamples;samples:PDFileFormat.SampleArray;ReadBlock[handle,@maskSamples,SIZE[PDFileFormat.MaskSamples]];ReadBlock[handle,@samples,SIZE[PDFileFormat.SampleArray]];CheckBB[handle,maskSamples.sMin,maskSamples.fMin,samples.sSize,samples.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamples]+SIZE[PDFileFormat.SampleArray]];ans.loadAddress_-1;{raster:BlockDescription_ReadLocate[handle,Inline.LongMult[samples.sSize,(samples.fSize+(bitsPerWord-1))/bitsPerWord]];ans.samples_PDInterpBitmap.Reshape[raster.pointer,raster.words,[maskSamples.sMin,maskSamples.fMin,samples.sSize,samples.fSize]!PDInterpBitmap.InsufficientSpace=>{RaisePDError[handle,bitmapTooBig,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamples]+SIZE[PDFileFormat.SampleArray]];ERROR}];};RETURN[ans];};colorSamples=>{ans:CommandBuffer.colorSamples;��qÔg/ÓE…�yÔ_,Ó8wÔ_,ÓflÓ!+�Ó#�yÓ$DÔ_,�Ô_,Ó$˝wÔ_,Ó( �Ô]ÖÓI Ó"Z�yÓ#ÁÔ]Ö�Ô]ÖÓ$œwÓ%ÚÔ]Ö�Ô]ÖÔ[›ÓIÓ*‚ yÔZ6ÓwÓóÔZ6�ÔZ6Ó˙yÓ3áÔZ6�ÔZ6Ó4&wÓ6ÔZ6�ÔZ6Ó6fÔXéÓIÓ∆�Ó SÔVÁÓI�yÔU?Ó8wÔU?Óá�ÔSòÓI Ó"Z�Ó#ÁÔQÓIÓ&Ó3ÔÓ7ƒÔPIÓ yÔN°ÓwÓóÔN°�ÔN°Ó˙yÓ/˛ÔN°�ÔN°Ó0ùwÓ2yÔN°�ÔN°Ó2‹3ÔL˙ÓIÔKRÓ8Ó�Ó ïÔI´Ó8Ó˝�Ó äÔHÓ8 Ó �Ó!©ÔF\Ó8ÓÚ�Ó ÔD¥Ó8ÓÁ�Ó tyÔC Ó8wÔC Ó§ÔAeÓ8uÔ?æÓ' wÔ?æÓ¢Ó"7�Ô>Ó8Ó&Ô<oÓ8Ó".Ô:«Ó8Ó›Ô9 Ó8Ó$ÒyÔ7xÓwÓÜÔ7x�Ô7xÓÈÔ5—Ó8Ó$ÒyÓ+÷Ô5—�Ô5—Ó,uwÓ.QÔ5—�Ô5—Ó.¥Ô4)Ó8Ó$ Ó0:Ô2ÇÓ Ó"‘ yÔ0€ÓwÓÜÔ0€�Ô0€ÓÈyÓ-ÌÔ0€�Ô0€Ó.åwÓ0hÔ0€�Ô0€Ó0ÀyÓC¥Ô0€�Ô0€ÓDTwÓF0Ô0€�Ô0€ÓFìÔ/3Ó8Ó#W�Ó$‰Ô-åÓ8Ó,Ô+‰ÓI�Ó÷ Ô*=ÓZÔ(ïÓZÔ&ÓÓ-,Ô%FÓZÔ#üÓI Ó"º�Ó$IÔ!˜ÓZÔ PÓZÔ®ÓZÓ)ÓÓ6 ÔÓ- ÔYÓZ�ÓXÓ3WÓ5Ï�Ô≤ÓkÓ- yÔ Ó >wÓ"πÔ �Ô Ó#yÓ4 Ô �Ô Ó4¿wÓ6úÔ �Ô Ó6ˇyÓIËÔ �Ô ÓJáwÓLcÔ �Ô ÓL∆yÔcÓkwÔªÓk�ÔÓZÔlÓIyÔ≈Ó8wÔ≈Ó§ÔÓ8uÔvÓ'wÔvÓóÓ"-�Ô ŒÓ8Ó&ˇ�������:��������TVm$Â����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������9colorSamples:PDFileFormat.ColorSamples;samples:PDFileFormat.SampleArray;ReadBlock[handle,@colorSamples,SIZE[PDFileFormat.ColorSamples]];ReadBlock[handle,@samples,SIZE[PDFileFormat.SampleArray]];CheckBB[handle,colorSamples.sMin,colorSamples.fMin,samples.sSize,samples.fSize,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.ColorSamples]+SIZE[PDFileFormat.SampleArray]];{raster:BlockDescription_ReadLocate[handle,Inline.LongMult[samples.sSize,(samples.fSize+(bitsPerWord-1))/bitsPerWord]];ans.samples_PDInterpBitmap.Reshape[raster.pointer,raster.words,[colorSamples.sMin,colorSamples.fMin,samples.sSize,samples.fSize]!PDInterpBitmap.InsufficientSpace=>{RaisePDError[handle,bitmapTooBig,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.MaskSamples]+SIZE[PDFileFormat.SampleArray]];ERROR}];};RETURN[ans];};ENDCASE=>{RaisePDError[handle,unrecognisedImagingCommand,SIZE[PDFileFormat.Command]];ERROR};};controlCommand:PDFileFormat.Command.control=>{ans:CommandBuffer.stateChange;ans.loadChangeStart_ans.loadChangeLength_0;IFhandle.colorType=noneTHENSELECTcontrolCommand.comFROMstartImage,deviceCommand,storeLoad,endDocument=>NULL;ENDCASE=>{RaisePDError[handle,missingStartImage,SIZE[PDFileFormat.Command]];ERROR};SELECTcontrolCommand.comFROMstartImage=>{startImage:PDFileFormat.StartImage;ReadBlock[handle,@startImage,SIZE[PDFileFormat.StartImage]];IFstartImage.filler#0THEN{RaisePDWarning[handle,nonZeroFill,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StartImage]];};IF(LONG[startImage.passBands]+startImage.nBands)*handle.sSizeBand��qÔg/ÓE…�wÔ_,Ó8Ó"Ô]ÖÓ8Ó›Ô[›Ó8Ó$Ò yÔZ6ÓwÓÜÔZ6�ÔZ6ÓÈÔXéÓ8Ó$ÒyÓ+÷ÔXé�ÔXéÓ,uwÓ.QÔXé�ÔXéÓ.¥ÔVÁÓ8Ó$ Ó0$ÔU?Ó Ó"‘ yÔSòÓwÓÜÔSò�ÔSòÓÈyÓ-ÌÔSò�ÔSòÓ.åwÓ0hÔSò�ÔSòÓ0ÀyÓC’ÔSò�ÔSòÓDtwÓFQÔSò�ÔSòÓF¥ÔQÓ8Ó,ÔPIÓI�Ó÷ ÔN°ÓZÔL˙ÓZÔKSÓ-,ÔI´ÓZÔHÓI Ó"º�Ó$IÔF\ÓZÔD¥ÓZÔC ÓZÓ)ÿÓ5Ë ÔAfÓ- Ô?æÓZ�ÓXÓ3WÓ5Ï�Ô>ÓkÓ- yÔ<oÓ >wÓ"πÔ<o�Ô<oÓ#yÓ4 Ô<o�Ô<oÓ4¿wÓ6úÔ<o�Ô<oÓ6ˇyÓIËÔ<o�Ô<oÓJáwÓLcÔ<o�Ô<oÓL∆yÔ:»ÓkwÔ9 Ók�Ô7yÓZÔ5—ÓIyÔ4*Ó8wÔ4*Ó§Ô2ÇÓ8yÔ0€Ó'wÔ0€Ó)Óæ�Ô/3Ó8Ó&÷yÔ-åÓwÓÜÔ-å�Ô-åÓÈyÓ-ÌÔ-å�Ô-åÓ.¶wÓ1˛Ô-å�Ô-åÓ2Ø�Ô+‰ÓuÔ*=Ó wÓ-Ô*=�Ô*=Ó+Ó2uÓ5 �Ô(ïÓÓÔ&ÓÓÓ!¡�Ó#NÓ1e�Ó2ÚyÔ%FÓwÔ%FÓΩÓ!ò�Ó#}yÓ&Ô%F�Ô%FÓ'©Ó*õwÔ%FÓ/nyÓ=7Ô%F�Ô%FÓ=wÔ#üÓ' Ó8 Ó) Ó/ÿ Ó8–yÓ;fÔ#ü�Ô#üÓ<NwÓ>¶Ô#ü�Ô#üyÔ!˜Ó'wÔ!˜Ó)Óæ�Ô PÓ8Ó&÷yÔ®ÓwÓÜÔ®�Ô®ÓÈyÔÓ8wÔYÓ8yÔ≤ÓwÔ≤ÓËyÓ'≤Ô≤�Ô≤Ó(kuÔ Ó' wÔ Ó�Ó ï�ÔcÓ8 Ó jÔªÓ8Ó$ÒyÓ-cÔª�ÔªÓ.wÓ/fiÔª�ÔªÓ0AyÔÓ8wÔÓflÓ$º�Ó&°�yÓ'÷Ô�ÔÓ(èwÔÓ+õ�ÔlÓIÓ*‚yÔ≈ÓwÓóÔ≈�Ô≈Ó˙yÓ/˛Ô≈�Ô≈Ó0ùwÓ2yÔ≈�Ô≈Ó2‹ÔÓIyÔvÓ8wÔ ŒÓ�yÓÑÔ Œ�Ô ŒÓ=wÓÔ Œ�Ô ŒÓS9ˇ���������������TVm$/������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������10>=handle.herald.imageSSize+handle.sSizeBandORLONG[startImage.fMinPage]+startImage.fSizePage>handle.herald.imageFSizeTHEN{RaisePDWarning[handle,imageBoundsExceedPageBounds,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StartImage]];};IFhandle.colorType#noneANDhandle.bandNumber<handle.image.nBandsTHENRaisePDWarning[handle,tooFewBands,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StartImage]];handle.image_startImage;ans.whatChanged_imageStart;handle.priority_0;handle.colorType_ink;handle.bandNumber_0;handle.sMinBand_startImage.passBands*handle.sSizeBand;IFNOTstartImage.stripTHEN{handle.pass_handle.pass+1};IFstartImage.feedTHEN{handle.page_handle.page+1;handle.pass_1};handle.status_constructingImage;RETURN[ans]};setPriority=>{priorityLow:PDFileFormat.Priority;priority:Environment.LongNumber;ReadBlock[handle,@priorityLow,SIZE[PDFileFormat.Priority]];priority.highbits_controlCommand.rest;priority.lowbits_priorityLow;handle.priority_priority.li;ans.whatChanged_priorityChange;RETURN[ans]};setColorInk=>{handle.colorType_ink;ans.whatChanged_colorChange;RETURN[ans]};setColorClear=>{handle.colorType_clear;ans.whatChanged_colorChange;RETURN[ans]};setColorTile=>{setColorTile:PDFileFormat.SetColorTile;ReadBlock[handle,@setColorTile,SIZE[PDFileFormat.SetColorTile]];handle.colorTileLoadAddress_setColorTile.addr;SELECTcontrolCommand.restFROM0=>handle.colorType_opaqueTile;1=>handle.colorType_transparentTile;ENDCASE=>{handle.colorType_opaqueTile;���qÔg/ÓEwÔ_,ÓÓ†)yÔ]ÖÓ8Ô]ÖÓlwÓŸÔ]Ö�Ô]ÖÓ<)Ó:�Ô[›ÓyÓ)⁄Ô[›�Ô[›Ó*ìwÔ[›Ó-†�ÔZ6ÓIÓ*‚yÔXéÓwÓóÔXé�ÔXéÓ˙yÓ/˛ÔXé�ÔXéÓ0ùwÓ2yÔXé�ÔXéÓ2‹ÔVÁÓIyÔU?Ó8wÔU?ÓflÓ%ª�Ó'†yÓ+ÔU?�ÔU?Ó+ÂwÔU?Ó.8Ó;�ÔSòÓyÓ'.ÔSò�ÔSòÓ'ÁwÔQÓIÓ*‚yÔPIÓwÓóÔPI�ÔPIÓ˙yÓ/˛ÔPI�ÔPIÓ0ùwÓ2yÔPI�ÔPIÓ2‹ÔN¢Ó8Ó!û�Ó#+ ÔL˙Ó8Ó$*�Ó%∑ ÔKSÓ8Ó"Ü�Ó$ÔI´Ó8Ó$�Ó%†ÔHÓ8Ó&�Ó'°ÔF\Ó8Ó$5�Ó%¡&yÔD¥Ó8ÔD¥ÓflwÔD¥Ó·yÓ'îÔD¥�ÔD¥Ó(MwÔD¥Ó+YÓ3]�Ó4Í Ó<=�Ó>"yÔC Ó8wÔC ÓflyÓ${ÔC �ÔC Ó%4wÔC Ó(@Ó0ë�Ó2 Ó9ø�Ó;§ÔAfÓ Ó!^�Ó"ÎÔ?æÓ8Ó!i�Ó"ˆyÔ>Ó8wÔ>Ó§Ô<oÓ8uÔ:»Ó' wÔ:»ÓÈÓ �Ô9 Ó8Ó!FÔ7yÓ8Ó¶Ô5—Ó8Ó$ÒyÓ.?Ô5—�Ô5—Ó.fiwÓ0∫Ô5—�Ô5—Ó1Ô4)Ó8Ó#C�Ó$œÔ2ÇÓ8Ó"Ω�Ó$JÔ0⁄Ó8Ó"Ü�Ó$Ô/3Ó8Ó$*�Ó%∑yÔ-ãÓ8wÔ-ãÓ§Ô+‰Ó8uÔ*<Ó' wÔ*<Ó•Ó!:�Ô(ïÓ8Ó$�Ó%†Ô&ÌÓ8Ó$*�Ó%∑yÔ%FÓ8wÔ%FÓ§Ô#ûÓ8uÔ!˜Ó'wÔ!˜Ó⁄Ó"p�Ô OÓ8Ó$�Ó%†Ô®Ó8Ó$*�Ó%∑yÔ�Ó8wÔ�Ó§ÔYÓ8uÔ±Ó'wÔ±Ó Ó!ü�Ô Ó8Ó!}ÔbÓ8Ó$Ò yÔªÓwÓÜÔª�ÔªÓÈÔÓ8Ó+:�Ó,«yÔlÓ8wÔlÓyÓ+qÔl�ÔlÓ,*wÔƒÓI�Ó~ÓÓ)Ô�Ó+| ÔÓI�Ó~ÓÓ)Ô�Ó+|yÔuÓIwÔuÓ!KÓ#·�Ô ŒÓZÓ(6�Ó)√ ˇ�������©��������TVm$����������������������11RaisePDWarning[handle,unknownColorTileFlag,SIZE[PDFileFormat.Command]];};ans.whatChanged_colorChange;RETURN[ans];};endBand=>{handle.priority_LAST[INT];ans.whatChanged_priorityChange;RETURN[ans];};endDocument=>{ans.whatChanged_documentEnd;handle.status_transmissionComplete;RETURN[ans];};storeLoad=>{storeLoad:PDFileFormat.StoreLoad;loadWordsAllocated:LONGCARDINAL_private.loadWordsAllocated;ReadBlock[handle,@storeLoad,SIZE[PDFileFormat.StoreLoad]];IFstoreLoad.firstAddress>loadWordsAllocatedORstoreLoad.firstAddress+storeLoad.wordCount>loadWordsAllocatedORstoreLoad.firstAddress+storeLoad.wordCount>handle.herald.maxLoadWordTHEN{RaisePDError[handle,loadOutOfBounds,SIZE[PDFileFormat.Command]+SIZE[PDFileFormat.StoreLoad]];ERROR};ReadBlock[handle,private.loadPointer+storeLoad.firstAddress,storeLoad.wordCount];ans.whatChanged_loadChange;ans.loadChangeStart_storeLoad.firstAddress;ans.loadChangeLength_storeLoad.wordCount;handle.loadWords_MAX[handle.loadWords,ans.loadChangeStart+ans.loadChangeLength];handle.colorTileLoadAddress_-1;RETURN[ans];};deviceCommand=>{deviceCommand:CommandBuffer.deviceCommand;wordCount:CARDINAL;block:BlockDescription;ReadBlock[handle,@wordCount,SIZE[CARDINAL]];block_ReadLocate[handle,wordCount];IFblock.words<wordCountTHENRaisePDError[handle,unexpectedEOF,block.words+SIZE[CARDINAL]];deviceCommand.deviceCommandPointer_block.pointer;deviceCommand.deviceCommandWords_block.words;RETURN[deviceCommand];};ENDCASE=>{RaisePDError[handle,unrecognisedControlCommand,��qÔg/ÓEwÔ_,ÓZÓ,ÙyÔ]ÖÓ-wÓ ®Ô]Ö�Ô]ÖÓ!Ô[›ÓZÔZ6Ó8Ó$*�Ó%∑yÔXéÓ8wÔXéÓ§ÔVÁÓ8uÔU?Ó'wÔU?ÓÀÓ`�ÔSòÓ8Ó"Ü�yÓ$ÔSò�ÔSòÓ$ÕwÓ&¯ÔSò�yÔSòÓ'[wÓ)gÔSò�ÔSòÓ) �ÔQÓ8Ó$*�Ó%∑yÔPIÓ8wÔPIÓ§ÔN°Ó8uÔL˙Ó' wÔL˙ÓŸÓ"n�ÔKRÓ8Ó$*�Ó%∑ÔI™Ó8Ó!i�Ó"ˆyÔHÓ8wÔHÓ§ÔF[Ó8uÔD¥Ó'wÔD¥ÓúÓ 2�ÔCÓ8 Ó ÔAeÓ8yÓ&QÔAe�ÔAeÓ' ÔAeÓ*BwÔAeÓ0˝�Ô?æÓÔ>Ó8Ó$Ò yÓ-Ô>�Ô>Ó-µwÓ/ëÔ>�Ô>Ó/ÙyÔ<oÓ8wÔ<oÓflÓ(ø�Ó)ÛyÔ:«Ó8wÔ:«ÓlÓ)L�Ó+1Ó8Æ�Ô9 ÓyÔ7xÓ8wÔ7xÓlÓ)L�Ó+1Ó8Æ�Ô5—ÓyÓ+˜Ô5—�Ô5—Ó,∞wÔ4)ÓIÓ)óyÔ2ÇÓwÓóÔ2Ç�Ô2ÇÓ˙yÓ/˛Ô2Ç�Ô2ÇÓ0ùwÓ2yÔ2Ç�Ô2ÇÓ2‹yÔ0€ÓwÓ -Ô0€�Ô0€Ó fi�Ô/3Ó8Ó$Ò+Ô-åÓÔ+‰Ó8Ó$*�Ó%∑ Ô*=Ó8Ó%‰�Ó'pÔ(ïÓ8Ó'O�Ó(‹Ô&ÓÓ8Ó$ç�yÓ&Ô&Ó�Ô&ÓÓ'+wÓ(“Ô&Ó�Ô&ÓÓ)6Ó4„Ô%FÓ�ÓÔ#üÓ8Ó+:�Ó,«yÔ!˜Ó8wÔ!˜Ó§Ô PÓ8uÔ®Ó'wÔ®Ó!;Ó#–�ÔÓ8 Ó$5ÔYÓ8 yÓ ÔÔY�ÔYÓ!∫wÓ'&ÔY�ÔYÔ≤Ó8ÓqÔ Ó8Ó$Ò yÓ-ËÔ �Ô Ó.áwÓ0cÔ �yÔ Ó0∆wÓ6˝Ô �Ô Ó7`ÔcÓ8Ó¯�ÓÖÓ*Ÿ yÔªÓ8wÔªÓfl Ó"�Ó#¥yÓ*ÚÔª�ÔªÓ+´wÔªÓ.∑ÔÓ Ó$èyÓ-Ô�ÔÓ-´wÓ/áÔ�yÔÓ/ÍwÓ6!Ô�ÔÓ6ÑÔlÓ8"Ó2b�Ó3Ô Ô≈Ó8Ó1ˇ�Ó3åyÔÓ8wÔÓ§ÔvÓ8yÔ ŒÓ'wÔ ŒÓ)ÓæÓ. �������‘��������TVm$(������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12SIZE[PDFileFormat.Command]];ERROR};};ENDCASE=>{RaisePDError[handle,unrecognisedCommandType,SIZE[PDFileFormat.Command]];ERROR};};Error:PUBLICERROR[handle:Handle,code:PDInterpBasic.PDErrorCode,wordIndex,wordCount:INT]=CODE;Warning:PUBLICSIGNAL[handle:Handle,code:PDInterpBasic.PDWarningCode,wordIndex,wordCount:INT]=CODE;RaisePDError:PROC[handle:Handle,code:PDInterpBasic.PDErrorCode,words:INT]={handle.status_code;ERRORError[handle,code,handle.index-words,words];};RaisePDWarning:PROC[handle:Handle,code:PDInterpBasic.PDWarningCode,words:INT]={handle.warningCount_handle.warningCount+1;handle.status_code;SIGNALWarning[handle,code,handle.index-words,words];};END.��qÔg/ÓEyÔ_,Ó˙wÓuÔ_,�Ô_,ÓÿyÓ+‹Ô_,�Ô_,Ó,ïwÓ/ÌÔ_,�Ô_,Ó0ù�Ô]ÖÓyÔ[›ÓwÔ[›ÓÓúÓ)ÍyÔZ6Ó◊wÓRÔZ6�ÔZ6Ó∂yÓ'πÔZ6�ÔZ6Ó(swÓ+ÀÔZ6�ÔZ6Ó,{�ÔXèÓÛuÔU@Ó‚wÓÔU@�ÔU@yÓÔU@�ÔU@Ó∑ÔU@Ó»wÔU@Ó]Ó!¡Ó&˘Ó*πÔSôÓµ Ó˝ yÓµÔSô�ÔSôÓwÓ ¿ÔSô�ÔSôÓ!ß�yÓ#çÔSô�ÔSôÓ$WwÓ&”ÔSô�ÔSôuÔPJÓ‚wÓÔPJ�ÔPJyÓˇÔPJ�ÔPJÓ¶ÔPJÓ∑wÔPJÓ®Ó$Ó)CÓ-ÔN£Óµ Ó˝ yÓµÔN£�ÔN£ÓwÓ ¿ÔN£�ÔN£Ó!ß�yÓ#çÔN£�ÔN£Ó$WwÓ&”ÔN£�ÔN£uÔKTÓ‚wÓRÔKT�ÔKTyÓPÔKT�ÔKTÓ¯wÔKTÓ˜Ó![Ó&ìÓ*SÓ<wyÔI≠ÓµwÓ¿ÔI≠�ÔI≠Ó®�Óç�ÔHÓÛÓ$�Ó±yÔF^ÓÛwÔF^ÓâÓ˚Ó!öÓ.ÔD∑ÓÛuÔAhÓ‚ wÓBÔAh�ÔAhyÓ?ÔAh�ÔAhÓÁwÔAhÓÁÓ#JÓ(ÇÓ,BÔ?¡ÓµyÓ;Ô?¡�Ô?¡Ó•wÓGÔ?¡�Ô?¡Ó.�Ó�Ô>ÓÛÓO�Ó‹Ó-8�Ó/Ô<rÓÛÓ$�Ó±yÔ:ÀÓÛwÔ:ÀÓ‰Ó QÓ#Ó0oÔ9#ÓÛyÔ5’Ó‚wÓiÔ5’�Ô5’�������ò��������TVm$y��������������������������������������������������������������������������������������������������������������������PDInterpSysCalls.mesaCopyright(C)1983,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19849:54:25amPDTPDInterpSysCalls:DEFINITIONS=BEGINSetDisplayLights:PROC[value:[0..9999]];WriteLine:PROC[string:LONGSTRING];AllocateSpace:PROC[words:INT]RETURNS[LONGPOINTER];FreeSpace:PROC[pointer:LONGPOINTER];BadFreeSpaceRequest:ERROR;END.��xÔ_,Ó‚Ô]ÖÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó -Ó#sÓ(\Ó*ßwÔXèÓ‚yÓdÔXè�ÔXèÓJ wÔXèÓ"Ñ�yÓ$iÔXè�ÔXèÓ%"uÔU@Ó‚wÓÔU@�ÔU@yÓ ÔU@�ÔU@Ó±wÔU@Ó∞Ó"6 uÔQÒÓ‚wÓÙÔQÒ�ÔQÒyÓÚÔQÒ�ÔQÒÓôwÔQÒÓôyÓKÔQÒ�ÔQÒÓÔQÒÓ"<wÓ&©ÔQÒ�ÔQÒÓ'�uÔN£Ó‚wÓSÔN£�ÔN£yÓQÔN£�ÔN£Ó˘wÔN£Ó¯yÓ ‚ÔN£�ÔN£Ó!KwÓ"ÌÔN£�ÔN£yÓ#’ÔN£�ÔN£Ó$©wÔN£Ó)‡�yÓ*CÔN£�ÔN£Ó*¸ÔN£Ó.4wÓ3QÔN£�ÔN£Ó3¥�uÔKTÓ‚wÓÔKT�ÔKTyÓÔKT�ÔKTÓªwÔKTÓªyÓ`ÔKT�ÔKTÓ ÔKTÓ#QwÓ(mÔKT�ÔKTÓ(–�uÔHÓ‚wÓ'ÔH�ÔHyÓ$ÔH�ÔHÓ›wÓ!6ÔH�ÔHyÔD∑Ó‚wÓiÔD∑�ÔD∑�������P��������TVm$����������������������������������������������������������������������������������������������������������������������������������������������PDInterpSysCallsDevelImpl.mesaMichaelPlass,November30,198310:21amDIRECTORYEnvironment,Space,PDInterpSysCalls,ProcessorFace;PDInterpSysCallsDevelImpl:MONITORIMPORTSSpace,ProcessorFaceEXPORTSPDInterpSysCalls=BEGINSetDisplayLights:PUBLICPROC[value:[0..9999]]={ProcessorFace.SetMP[value]};AllocateSpace:PUBLICENTRYPROC[words:INT]RETURNS[LONGPOINTER]={ENABLEUNWIND=>NULL;pages:CARDINAL_(words+Environment.wordsPerPage)/Environment.wordsPerPage;RETURN[Space.ScratchMap[pages]]};FreeSpace:PUBLICENTRYPROC[pointer:LONGPOINTER]={ENABLEUNWIND=>NULL;[]_Space.Unmap[pointer];};BadFreeSpaceRequest:PUBLICERROR=CODE;END.��xÔ_,Ó‚Ô]ÖÓ‚Ó$ÓÓgÓ •Ó#ÍÓ'™yÔ[›Ó‚wÔ[›ÓKÓÙÓ#DÓ.• ÔZ6Ó‚yÓ ∫ÔZ6�ÔZ6Ó!ÀÔXèÓÛwÔXèÓ£ÓÛyÔVÁÓÛwÔVÁÓµÔU@Ó‚�yÓ«ÔU@�ÔU@ÓÄuÔQÒÓ‚wÓÔQÒ�ÔQÒyÓ ÔQÒ�ÔQÒÓ±ÔQÒÓ¡wÔQÒÓ"iÓ&Ô Ó,Ω�Ó.¢uÔN£Ó‚wÓSÔN£�ÔN£yÓQÔN£�ÔN£Ó˘ÔN£Ó ÔN£Ó!êwÔN£Ó%7yÓ* ÔN£�ÔN£Ó*äwÓ,,ÔN£�ÔN£yÓ-ÔN£�ÔN£Ó-ÁwÔN£Ó3�yÓ3ÇÔN£�ÔN£Ó4;ÔN£Ó7swÓ<èÔN£�ÔN£Ó=w�Ó?\�yÔL˚ÓÛÔL˚ÓwÔL˚ÓΩyÓRÔL˚�ÔL˚Ó;wÓ!íÔL˚�ÔL˚ÔKTÓÛyÓ7ÔKT�ÔKTÓwÔKTÓÛ�ÔI≠Ó∆:yÔHÓÛwÔHÓ`ÔF^ÓÛuÔCÓ‚wÓÔC�ÔCyÓÔC�ÔCÓªÔCÓÃÔCÓRwÔCÓ"˙yÓ(üÔC�ÔCÓ)XÔCÓ,èwÓ1¨ÔC�ÔCÓ2î�Ó4y�yÔAhÓÛÔAhÓwÔAhÓΩyÓRÔAh�ÔAhÓ;wÓ!íÔAh�ÔAhÔ?¡ÓÛÓ>�ÓÀÔ>ÓÛÔ:ÀÓ‚yÓ3Ô:À�Ô:ÀÓ⁄Ô:ÀÓ!ÎwÔ:ÀÓ&Å�yÓ(fÔ:À�Ô:ÀÓ)1wÓ+¨Ô:À�Ô:ÀyÔ7|Ó‚wÓiÔ7|�Ô7|ˇ�������^��������TVm$q����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDQueue.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September13,19849:07:25amPDTPDQueue:DEFINITIONS=BEGINThismodulemanagesthequeueforthepeachprinter.Ifadiskisavailable,asimplemechanismisprovidedhereforperiodicallysavingthestateofthequeueonthedisk,sobootingtheserverwillnotloseitall.Inanycase,thequeuelivesinmainmemory,andconsistsmostlyoffullpathnamesofthefiles,togetherwithalittlebitofinformationaboutwhorequestedtheprint,etc.Thereisalsosomestuffhereforloggingwhathasbeengoingon,andforaccessingthelog.Request:TYPE=RECORD[fileName:LONGSTRING,i.e.,"[Indigo]<platemaker>foo.pd!33".requestTime:LONGSTRING,requestor:LONGSTRING,requestorPassword:LONGSTRING,separator:LONGSTRING,Tobeprintedbetweenjobs,ifpossible.copies:CARDINAL];Reset:PROC;Resetsthequeue.QueueRequest:PROC[request:Request]RETURNS[requestNumber:INT];Returns-1ifthequeueisfull.Reprint:PROC[copies:CARDINAL];DoRequest:PROC[action:PROC[request:Request,requestNumber:CARDINAL,abort:LONGPOINTERTOBOOLEAN]];Waitsifqueueisempty;actionshouldreturnorraiseABORTEDifabort^becomestrue.IfthestringsintheRequestareNIL,therequestistoreprintasmuchasthepreviousrequestasispossiblewithoutalotofrecomputation.CheckRequest:PROC[requestNumber:CARDINAL,action:PROC[request:Request,status:RequestStatus]];RequestStatus:TYPE={notFound,canceled,waiting,printing};CancelRequest:PROC[requestNumber:CARDINAL]RETURNS[ok:BOOLEAN];Looksforamatchingrequest(fileNameandrequestor),andremovesitfromthequeue.CountRequests:PROCRETURNS[requestCount:NAT];Numberofoutstandingrequests.EnumerateRequests:PROC[action:PROC[requestNumber:CARDINAL,request:Request,status:RequestStatus]RETURNS[continue:BOOLEAN]];���xÔ_:Ó‚Ô]íÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WwÔXúÓ‚yÓΩÔXú�ÔXúÓ¢ wÔXúÓ‹�yÓ¡ÔXú�ÔXúÓ {xÔVÙÓÛÓÓπÓBÓ éÓ$rÓ&öÓ(ÊÓ,ΩÓ2Ó3í�Ó4∆Ó7©Ó9 Ó?�ÔUMÓ∆ÓˆÓÔÓ[Ó#æÓ&πÓ(·Ó0Ó48Ó6ÖÓ9πÓ;\Ó=®ÔS¶Ó∆ÓπÓÓAÓ˙Ó—Ó"Ó%ˇÓ(îÓ*¯Ó-ÆÓ/Ó1fiÓ3ªÓ6TÓ9õÓ;ÁÔQ˛Ó∆ÓÀÓqÓ›ÓZÓ!˛Ó&ÏÓ+4Ó,◊Ó/MÓ2_Ó6àÓ8+Ó:wÔPWÓ∆ÓÓ˛�Ó3Ó\Ó dÓ" Ó)YÓ-Ó/ÙÓ5flÓ8+Ó;ŒÔN∞Ó∆Ó©ÓÓ·ÓKÓ ^Ó#YÓ%ÄÓ*KÓ-îÓ0 Ó33Ó6ÍÓ95Ó;ŸÔMÓ∆Ó¶ÓÚwÔIπÓÛyÓ∆ÔIπ�ÔIπÓwÔIπÓ7�yÓÔIπ�ÔIπÓwÔIπÓ!è�ÔHÓyÓ~ÔH�ÔHÓ8ÔHÓowÓ!‹ÔH�ÔHxÔFjÓÓ†wÔD√ÓyÓlÔD√�ÔD√Ó%ÔD√Ó]wÓ#…ÔD√�ÔD√ÔCÓ yÓíÔC�ÔCÓKÔCÓÇwÓ!ÔÔC�ÔCÔAtÓyÓÔAt�ÔAtÓœÔAtÓ#wÓ'sÔAt�ÔAtÔ?ÃÓ yÓpÔ?Ã�Ô?ÃÓ)Ô?ÃÓawÓ!ŒÔ?Ã�Ô?ÃxÔ>$ÓÓ2ÓÓóÓ"≥Ó%◊Ó'-wÔ<}ÓyÓ¨Ô<}�Ô<}ÓwwÔ:’ÓuÔ7ÜÓÛwÓDÔ7Ü�Ô7ÜyÓBÔ7Ü�Ô7ÜÓÍwÓeÔ7Ü�Ô7ÜxÔ5flÓÓ5ÓÅuÔ2êÓÛwÓëÔ2ê�Ô2êyÓéÔ2ê�Ô2êÓ6wÔ2êÓ6Ó#ÁyÓ)£Ô2ê�Ô2êÓ*wwÔ2êÓ/ÆyÓ:dÔ2ê�Ô2êÓ:ÕwÓ<oÔ2ê�Ô2êÓ<“�xÔ0ËÓÓÓ√ÓÓeÓ!IÓ"µuÔ-ôÓÛwÓbÔ-ô�Ô-ôyÓ`Ô-ô�Ô-ôÓwÔ-ôÓyÓÔ-ô�Ô-ôÓ›wÓ%IÔ-ô�Ô-ôÓ%¨�uÔ*JÓÛwÓÔ*J�Ô*JyÓ}Ô*J�Ô*JÓ$wÔ*JÓ$yÓ!Ô*J�Ô*JÓ!¿wÔ*JÓ$¿Ó*qÓ0" yÓ:tÔ*J�Ô*JÓ;?wÓ@´Ô*J�Ô*JÔ(£Ó∆yÓfiÔ(£�Ô(£ÓòÔ(£ÓœÔ(£ÓpÔ(£Ó!äwÓ'*Ô(£�Ô(£Ó'çxÔ&˚ÓÓÒÓHÓ+ÓóÓ"Ó&Ó*cÓ.wÓ00}Ó3kÔ&˚�Ô&˚Ó46xÔ&˚Ó9|Ó:“Ô%TÓ◊Ó'Ô#¨ÓÓíÓfiÓ2ÓÿÓ$Ó$=}Ó&ëÔ#¨�Ô#¨Ó'mxÓ(¨Ô#¨�Ô#¨Ó)àÓ+‘Ó0tÓ1‡Ó3ÖÓ7ÔÓ9®Ó=VÓ?Ô"Ó◊ÓÓ∫ÓsÓ flÓ%fiÓ*∑�Ó+ÏÓ-ÙÓ/ó uÔ∂ÓÛwÓeÔ∂�Ô∂yÓbÔ∂�Ô∂Ó wÔ∂Ó yÓ(øÔ∂�Ô∂Ó)âwÓ.ıÔ∂�Ô∂Ó/“yÓ4dÔ∂�Ô∂Ó5wÔ∂Ó8ÔÓ∆ÓwÓ»ÔgÓ yÓlÔg�ÔgÓ%wÔgÓfi�Ó!√ Ó)8Ó/+Ó4V uÔÓÛwÓºÔ�ÔyÓ∫Ô�ÔÓbwÔÓayÓ)Ô�ÔÓ)·wÓ/MÔ�ÔyÓ05Ô�ÔÓ1 wÔÓ6@yÓ9Ô�ÔÓ9—wÓ>∏Ô�ÔÓ?�xÔpÓÓ(ÓO�ÓÑÓ iÓ% Ó+KÓ-Ó Ó4ïÓ78Ó<\Ó=¥Ô…Ó◊Ó#uÔzÓÛwÓ›Ôz�ÔzyÓ€Ôz�ÔzÓÉÔzÓÇwÔzÓ$é yÓ-ÙÔz�ÔzÓ.›wÓ0iÔz�ÔzÓ0Ã�xÔ”ÓÓ>Ó‚ Ó!)uÔÉÓÛwÓ©ÔÉ�ÔÉyÓßÔÉ�ÔÉÓOwÔÉÓ!NyÓ&CÔÉ�ÔÉÓ&ÎwÔÉÓ)ÍyÓ4†ÔÉ�ÔÉÓ5jwÓ:÷ÔÉ�ÔÉÓ;≥Ô ‹Ó∆ÓwÓ» yÓ%Ô ‹�Ô ‹Ó%ÌwÔ ‹Ó+% yÓ1ßÔ ‹�Ô ‹Ó2`wÓ7GÔ ‹�Ô ‹Ó7´ˇ�������s��������TVm$����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2RegisterDisk:PROC[read,write:PROC[address:LONGPOINTER,nwords:CARDINAL],maxWords:CARDINAL];Periodicallycallsthewriteproc;callsthereadprocatstartuptime.Ifthisisnevercalled,thequeuelivesonlyinmainmemoryandislostatboottime.RegisterTTY:PROC[writeLine:PROC[LONGSTRING]];Registersaprocfordisplayingmessages.GetSuspended:PROCRETURNS[BOOLEAN];SetSuspended:PROC[suspended:BOOLEAN]RETURNS[old:BOOLEAN];SettingsuspendedtoTRUEwillstopprintingafterthecurrentjobfinishes.LogMessage:PROC[message:LONGSTRING,requestNumber:INT_-1,userName:LONGSTRING_NIL];Addstimestamp.Messageisalsooutputtotheprinter'sTTY,ifpresentandenabled.SetLogState:PROC[logging:BOOLEAN]RETURNS[old:BOOLEAN];SettingloggingtoFALSEpreventsmessagesfrombeingloggedontheTTY,topreventinterferencewithtypein.Unprintedmessageswillbeprintedwhenloggingisre-enabled.EnumerateMessages:PROC[PROC[message:LONGSTRING]RETURNS[continue:BOOLEAN]];Replayshistoryforasfarbackaswecanremember.END.��qÔg/ÓE…�uÔ^óÓÛwÓùÔ^ó�Ô^óyÓõÔ^ó�Ô^óÓCwÔ^óÓBÓ!yÓ%Ô^ó�Ô^óÓ%∑wÔ^óÓ(∂yÓ.}Ô^ó�Ô^óÓ/6Ô^óÓ2mwÓ7äÔ^ó�Ô^óÓ8fyÔ\ÔÓ∆wÓ˝Ô\Ô�Ô\ÔÓ`�Ó=yÓ •Ô\Ô�Ô\ÔÓ!pwÓ&‹Ô\Ô�Ô\ÔÓ'?�xÔ[HÓÓmÓáÓ”Ó#2Ó&ØÓ)…Ó,Ó/Ó2Ó3√Ó8MÓ<2Ó=¿Ó@YÔY°Ó◊ÓoÓ®ÓÙÓ!ÿÓ$›Ó'ÿÓ)~Ó,ÎÓ2Ó4¥Ó6Ó8¨Ó:PÓ=VuÔVRÓÛ wÓ∑ÔVR�ÔVRyÓ¥ÔVR�ÔVRÓ\wÔVRÓ\ yÓ$lÔVR�ÔVRÓ%wÔVRÓ(�yÓ(wÔVR�ÔVRÓ)0ÔVRÓ,gwÓ0‘ÔVR�ÔVRÓ17xÔT´ÓÓÕ�ÓÓÓ- Ó%ÖuÔQ\ÓÛwÓdÔQ\�ÔQ\yÓaÔQ\�ÔQ\Ó ÔQ\ÓwÔQ\Ó$�yÓ$wÔQ\�ÔQ\Ó%0wÓ*ÔQ\�ÔQ\Ó*{�uÔOµÓÛwÓ-ÔOµ�ÔOµyÓ*ÔOµ�ÔOµÓ“wÔOµÓ— yÓ%hÔOµ�ÔOµÓ&!wÓ+ÔOµ�ÔOµyÓ+ÔOµ�ÔOµÓ,ƒwÔOµÓ1˚yÓ5BÔOµ�ÔOµÓ5˚wÓ:‚ÔOµ�ÔOµÓ;E�xÔN ÓÓ≤Ó}Ó¶ÔN �ÔN Ó _xÔN Ó#MÓ%„Ó(ºÓ-ŸÓ1Ó3XÓ8Ó:NuÔJøÓÛ wÓqÔJø�ÔJøyÓoÔJø�ÔJøÓwÔJøÓyÓ#JÔJø�ÔJøÓ$ÔJøÓ';wÓ+ßÔJø�ÔJøÓ,Ñ yÓ6÷ÔJø�ÔJøÓ7@wÔJøÓ9f�Ó:ÚÔIÓ∆yÓ–ÔI�ÔIÓâÔIÓ¡wÔIÓ!≤�yÓ#?ÔI�ÔIÓ$'wÓ%JÔI�ÔIÓ%≠�xÔGpÓÓkÓtÓ@Ó#∏Ó%#Ó'Ó,/Ó-‘Ó0 }Ó5fÔGp�ÔGpÓ6xÓ7£ÔGp�ÔGpÓ8ÄÓ9÷Ó>xÔE…Ó◊uÔBzÓÛ wÓgÔBz�ÔBzyÓdÔBz�ÔBzÓwÔBzÓyÓ"∆ÔBz�ÔBzÓ#wÓ(fÔBz�ÔBzyÓ)MÔBz�ÔBzÓ*!wÔBzÓ/YyÓ2üÔBz�ÔBzÓ3XwÓ8?ÔBz�ÔBzÓ8¢�xÔ@”ÓÓ≤Ó}}Ó"Ô@”�Ô@”Ó“xÔ@”Ó"WÓ'ìÓ-QÓ0èÓ40Ó8tÓ:g}Ó<≥Ô@”�Ô@”Ó=mxÓ>ÒÔ@”�Ô@”Ó?ÕÔ?+Ó◊ÓèÓ‚Ó"fiÓ'¡Ó.)Ó3ÁÓ6|Ó8KÓ<·Ô=ÑÓ◊Ó¢Ó uÔ:5ÓÛwÓÔ:5�Ô:5yÓÔ:5�Ô:5ÓΩwÔ:5Ó!º�yÓ"Ô:5�Ô:5Ó"«wÓ%BÔ:5�Ô:5Ó%¶yÓ+vÔ:5�Ô:5Ó,/Ô:5Ó/gwÓ3‘Ô:5�Ô:5yÓ4ªÔ:5�Ô:5Ó5èwÔ:5Ó:« yÔ8éÓ∆wÓfÔ8é�Ô8éÓ…xÔ6ÁÓÓÓÇÓ©Ó bÓ"äÓ%—Ó'äÓ)êÓ,yÔ3òÓÛwÓ{Ô3ò�Ô3òˇ�������¢��������TVm$fi����������������������������������������������������������������������������������������������������������������������������������������������������������������PDQueueImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September27,19847:29:39amPDTDIRECTORYTime,Checksum,Environment,Inline,PDInterpSysCalls,PDQueue,String;PDQueueImpl:MONITORIMPORTSTime,Checksum,Inline,PDInterpSysCalls,StringEXPORTSPDQueue=BEGINRequest:TYPE=PDQueue.Request;readProc:PROC[address:LONGPOINTER,nwords:CARDINAL]_NIL;writeProc:PROC[address:LONGPOINTER,nwords:CARDINAL]_NIL;maxStateWords:CARDINAL_16*1024;deferSaving:BOOLEAN_FALSE;state:LONGPOINTERTOStringSeqRep_NIL;messages:LONGPOINTERTOStringSeqRep_NIL;StringSeqRep:TYPE=MACHINEDEPENDENTRECORD[nStrings:CARDINAL,end:CARDINAL,mark:CARDINAL,nMarked:CARDINAL,nDiscarded:CARDINAL_0,check:CARDINAL,nWords:CARDINAL,stringSpace:SEQUENCECOMPUTEDCARDINALOFWORD];StringRep:TYPE=RECORD[nChars:CARDINAL,char:PACKEDARRAY[0..0)OFCHAR];Validate:INTERNALPROC[s:LONGPOINTERTOStringSeqRep]RETURNS[ok:BOOLEAN]={nStrings:CARDINAL_0;nMarked:CARDINAL_0;offset:CARDINAL_0;IFs.check#CalculateCheck[s]THENRETURN[FALSE];IFs.mark>s.endTHENRETURN[FALSE];WHILEoffset<s.endDOwords:CARDINAL;nStrings_nStrings+1;IFoffset>s.markANDnMarked=0THENRETURN[FALSE];IFoffset>=s.markTHENnMarked_nMarked+1;���xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXéÓ‚wÔXéÓKÓAÓ!SÓ)¸Ó.UÓ9∂ÔVÁÓµÔSóÓ‚yÓïÔSó�ÔSóÓ¶ÔQÓÛwÔQÓ£ÓôÓ!´Ó&Ó1fyÔPHÓÛwÔPHÓµÔN°ÓÛ�yÓÿÔN°�ÔN°ÓëwÔKRÓÛyÓ∆ÔKR�ÔKRÓÓ�wÓ°ÔKR�ÔKRÓryÓ!~ÔKR�wÔKRÓ!ƒÔHÓÛyÓ3ÔH�ÔHÓ€wÔHÓ⁄yÓ °ÔH�ÔHÓ!ZÔHÓ$ëwÓ)ÆÔH�ÔHÓ*äyÓ/◊ÔH�ÔHÓ0¢wÓ6ÔH�ÔHÓ6ˆ�yÓ8ÇÔH�ÔHÓ9kwÓ:éÔH�ÔHÔD¥ÓÛ yÓñÔD¥�ÔD¥Ó>wÔD¥Ó=yÓ!ÔD¥�ÔD¥Ó!ΩÔD¥Ó$ÙwÓ*ÔD¥�ÔD¥Ó*ÓyÓ0:ÔD¥�ÔD¥Ó1wÓ6qÔD¥�ÔD¥Ó7Y�yÓ8ÊÔD¥�ÔD¥Ó9ŒwÓ:ÒÔD¥�ÔD¥ÔAeÓÛ yÓKÔAe�ÔAeÓwÔAeÓ"�Ó#îÔ>ÓÛyÓ˜Ô>�Ô>Ó∞wÔ>Ó�yÓ ©Ô>�Ô>Ó!bwÓ$GÔ>�Ô>Ô<nÓÛyÓûÔ<n�Ô<nÓWÔ<nÓéÔ<nÓ/wÔ<nÓ IÓ) �yÓ*óÔ<n�Ô<nÓ+ÄwÓ,£Ô<n�Ô<nÔ:∆ÓÛyÓHÔ:∆�Ô:∆ÓÔ:∆Ó9Ô:∆Ó ⁄wÔ:∆Ó"ÙÓ+µ�yÓ-BÔ:∆�Ô:∆Ó.*wÓ/MÔ:∆�Ô:∆Ô7wÓÛyÓ.Ô7w�Ô7wÓÁwÔ7wÓü�yÓÑÔ7w�Ô7wÓ ñÔ7wÓ%™Ô7wÓ-WwÔ7wÓ2 �Ô5–ÓyÓ·Ô5–�Ô5–Ó¨wÓÔ5–�Ô5–Ô4(ÓyÓ5Ô4(�Ô4(Ó�wÓlÔ4(�Ô4(Ô2ÅÓyÓÔ2Å�Ô2ÅÓ‹wÓHÔ2Å�Ô2ÅÔ0ŸÓyÓpÔ0Ÿ�Ô0ŸÓ;wÓßÔ0Ÿ�Ô0ŸÔ/2Ó yÓ«Ô/2�Ô/2ÓíwÔ/2Ó!Ç�Ó#Ô-äÓyÓ_Ô-ä�Ô-äÓ*wÓñÔ-ä�Ô-äÔ+‚ÓyÓ¥Ô+‚�Ô+‚ÓwÓÎÔ+‚�Ô+‚Ô*;ÓyÓ«Ô*;�Ô*;ÓfÔ*;Ó!ãÓ(ìÔ*;Ó/NÔ*;Ó1hwÔ(ìÓÔ%DÓÛ yÓ˙Ô%D�Ô%DÓ≥wÔ%DÓl�yÓQÔ%D�Ô%DÓ%wÔ%DÓ"√�Ô#ùÓyÓ;Ô#ù�Ô#ùÓwÓrÔ#ù�Ô#ùÔ!ıÓyÓéÔ!ı�Ô!ıÓ5Ô!ıÓfiwÔ!ıÓ ÑyÓ#ÙÔ!ı�Ô!ıÓ$—�Ô!ıÓ&wÔ NÓuÔˇÓÛwÓ‹Ôˇ�ÔˇyÓ⁄Ôˇ�ÔˇÓDÔˇÓlwÔˇÓ!yÓ"¯Ôˇ�ÔˇÓ#≤ÔˇÓ&ÈÔˇÓ,äwÔˇÓ.§yÓ7»Ôˇ�ÔˇÓ8úwÔˇÓ=‘yÔWÓ∆wÓfÔW�ÔWÓN�Ó3�Ô∞ÓyÓ·Ô∞�Ô∞Ó¨wÔ∞Óú�Ó!)ÔÓyÓpÔ�ÔÓ;wÔÓ +�Ó!∏ÔaÓyÓIÔa�ÔaÓwÔaÓ�ÓëyÔπÓwÔπÓ¨Ói�ÓNyÓ&bÔπ�ÔπÓ'ÔπÓ*(wÔπÓ/î�yÓ/˜Ôπ�ÔπÓ0∞wÓ3ïÔπ�ÔπÓ3¯�yÔÓwÔÓ¨Ó�ÓOyÓ‚Ô�ÔÓõÔÓ!®wÔÓ'�yÓ'wÔ�ÔÓ(0wÓ+Ô�ÔÓ+x�yÔjÓwÔjÓeÓ0�ÓeyÓ¯Ôj�ÔjÓ fi�wÔ√ÓyÓúÔ√�Ô√ÓgwÓ”Ô√�Ô√ÔÓÓy�ÓÓ!i�Ó#NyÔsÓwÔsÓΩÓà�ÓºyÓ +Ôs�ÔsÓ ˇwÔsÓ#QÓ)C�Ó+(�yÓ,]Ôs�ÔsÓ-ÔsÓ0#wÔsÓ5è�yÓ5ÚÔs�ÔsÓ6´wÓ9êÔs�ÔsÓ9Û�yÔ ÃÓwÔ ÃÓΩÓàÓyÓ!åÔ Ã�Ô ÃÓ"EwÔ ÃÓ%QÓ+D�Ó,–Ó2√�Ó4®ˇ�������É��������TVm$◊����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2words_(s[offset]+Environment.bytesPerWord-1)/Environment.bytesPerWord+1;offset_offset+words;ENDLOOP;IFoffset#s.endTHENRETURN[FALSE];IFnStrings#s.nStringsTHENRETURN[FALSE];IFnMarked#s.nMarkedTHENRETURN[FALSE];RETURN[TRUE]};DiscardMessages:INTERNALPROC[maxWords:CARDINAL]={WHILEmessages.end>maxWordsDODiscard[messages,1]ENDLOOP;};Discard:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,n:CARDINAL]={newStart:CARDINAL_StringOffset[s,n];Inline.LongCOPY[from:@(s[newStart]),nwords:s.end-newStart,to:@(s[0])];s.nStrings_s.nStrings-n;s.end_s.mark_s.end-newStart;s.nDiscarded_s.nDiscarded+n;};StringOffset:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,n:CARDINAL]RETURNS[offset:CARDINAL]={offset_0;IFn=0THENRETURN;IFn>s.nStringsTHENERROR;FORi:NATIN[0..n)DOoffset_NextStringOffset[s,offset];ENDLOOP;};NextStringOffset:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,offset:CARDINAL]RETURNS[CARDINAL]=INLINE{IFoffset>=s.endTHENERRORELSE{words:CARDINAL_(s[offset]+Environment.bytesPerWord-1)/Environment.bytesPerWord+1;IFwords>s.end-offsetTHENERROR;offset_offset+words;RETURN[offset];};};Append:INTERNALPROC[s:LONGPOINTERTOStringSeqRep,string:LONGSTRING]={body:LONGPOINTERTOStringRep;chars:CARDINAL_IFstring=NILTHEN0ELSEstring.length;words:CARDINAL_(string.length+Environment.bytesPerWord-1)/Environment.bytesPerWord+1;��qÔg/ÓE…�wÔ_,ÓÓ"�Ô]ÖÓËBÔ[›ÓÓ‡�ÓmÓ8�Ó yÔZ6ÓwÓ∑ÔZ6�ÔZ6yÔXéÓwÔXéÓ¨Óv�Ó\yÓÔÔXé�ÔXéÓ®ÔXéÓ!¥wÔXéÓ' �yÓ'ÑÔXé�ÔXéÓ(=wÓ+"ÔXé�ÔXéÓ+Ö�yÔVÁÓwÔVÁÓ¨Ó�ÓÙ yÓ"3ÔVÁ�ÔVÁÓ"ÏÔVÁÓ%˘wÔVÁÓ+e�yÓ+»ÔVÁ�ÔVÁÓ,ÅwÓ/fÔVÁ�ÔVÁÓ/…�yÔU?ÓwÔU?Ó¨Óû�ÓÉyÓ#QÔU?�ÔU?Ó$ ÔU?Ó'wÔU?Ó,É�yÓ,ÊÔU?�ÔU?Ó-üwÓ0ÑÔU?�ÔU?Ó0Á�yÔSòÓwÔSòÓq�yÓ‘ÔSò�ÔSòÓçwÓ�ÔSò�ÔSòÔQÓuÔN°ÓÛwÓ>ÔN°�ÔN°yÓ;ÔN°�ÔN°Ó•ÔN°Ó"ÕwÔN°Ó&u yÓ.AÔN°�ÔN°Ó/wÓ4wÔN°�ÔN°Ó5_�Ó7D�yÔL˙ÓwÔL˙ÓeÓÀ�Ó!�yÓ'ÔL˙�ÔL˙Ó(’�wÔL˙Ó*6Ó5_yÓ6˜ÔL˙�ÔL˙Ó7∞wÓ<òÔL˙�ÔL˙ÔKRÓuÔHÓÛwÓÑÔH�ÔHyÓÅÔH�ÔHÓÎÔHÓwÔHÓ ∫yÓ"üÔH�ÔHÓ#YÔHÓ&êÔHÓ,1wÔHÓ.KÓ7dyÓ9)ÔH�ÔHÓ9ÛwÓ?_ÔH�ÔHÔF\Ó∆�Ó´�ÔD¥ÓyÓ:ÔD¥�ÔD¥ÓwÔD¥Óı�Ó!ÇÓ*yÔC ÓÓ"!Ó+‘Ó1!Ó:ΩÔAeÓ◊Ô?æÓ ÓC�Ó– Ó!�Ó" Ô>ÓÓó�Ó$Óì�Ó Ô<oÓÓ*�Ó∂Ó$‹�Ó&¡Ô:«ÓuÔ7xÓÛwÓFÔ7x�Ô7xyÓCÔ7x�Ô7xÓ≠Ô7xÓ’wÔ7xÓ#}yÓ%bÔ7x�Ô7xÓ&Ô7xÓ)RÔ7xÓ.ÛwÔ7xÓ1 Ó:'yÔ5—Ó∆wÓ˝Ô5—�Ô5—yÓ‰Ô5—�Ô5—Ó∏wÔ5—ÓyÓ#óÔ5—�Ô5—Ó$bwÓ)ŒÔ5—�Ô5—Ó*∂�Ó,õ�Ô4)ÓÓœ�Ó\yÔ2ÇÓwÔ2ÇÓ¨�Ó˜�Ó‹�yÓÔ2Ç�Ô2ÇÓ…Ô2ÇÓ÷wÓ!æÔ2Ç�Ô2ÇyÔ0⁄ÓwÔ0⁄Ó¨�Ó˜�Ó+ yÓjÔ0⁄�Ô0⁄Ó#Ô0⁄Ó!0wÓ%AÔ0⁄�Ô0⁄yÔ/3ÓwÔ/3ÓÚyÓSÔ/3�Ô/3Ó;Ô/3ÓLwÔ/3Ó#yÓ™Ô/3�Ô/3Ó è�wÔ-ãÓÓ‡�ÓmÓ&KyÔ+‰ÓwÓ∑Ô+‰�Ô+‰Ô*<ÓuÔ&ÌÓÛwÓ3Ô&Ì�Ô&ÌyÓ1Ô&Ì�Ô&ÌÓõÔ&ÌÓ"√wÔ&ÌÓ&jyÓ(OÔ&Ì�Ô&ÌÓ)Ô&ÌÓ,@Ô&ÌÓ1·wÔ&ÌÓ3˙Ó=yÔ%FÓ∆wÓ˝Ô%F�Ô%FyÓ‰Ô%F�Ô%FÓ∏wÔ%FÓ�yÓSÔ%F�Ô%FÓ wÓ%äÔ%F�Ô%FÓ&q�yÓ(VÔ%F�Ô%FÓ(¿wÔ%FÓ,Ú�yÔ#ûÓwÔ#ûÓ¨ÓvÓyÓüÔ#û�Ô#ûÓXÔ#ûÓ"dÔ!˜ÓwÔ!˜ÓS�Ô OÓyÓúÔ O�Ô OÓgwÔ OÓ W�Ô®ÓËByÔ�ÓwÔ�ÓΩÓ �Ó˛yÓ#QÔ��Ô�Ó$ Ô�Ó'wÓ+(Ô��Ô�ÔYÓÓ‡�ÓmÓ8�Ó yÔ±ÓwÔ±ÓÇÔ ÓÔbÓuÔÓÛwÓXÔ�ÔyÓUÔ�ÔÓøÔÓÁwÔÓ èyÓ"tÔ�ÔÓ#-ÔÓ&dÔÓ,wÔÓ.Ó79yÓ;àÔ�ÔÓ<AÔlÓ∆wÓ3Ôl�ÔlÓ�Óˇ�ÔƒÓyÓ¸Ôƒ�ÔƒÓµÔƒÓÏÔƒÓ çwÔƒÓ"ß ÔÓyÓÔ�ÔÓ›wÔÓÕ�yÓZÔ�ÔÓƒ�wÔÓ!Ó$◊�yÓ&ºÔ�ÔÓ'•ÔÓ)LwÔÓ-�yÓ.FÔ�ÔÓ.ˇwÔÓ1ï ÔuÓyÓãÔu�ÔuÓUwÔuÓF�Ô ŒÓ◊F������� ��������TVm$–����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3IFs.mark#s.endTHENERROR;IFs.end+words>s.nWordsTHENERROR;body_LOOPHOLE[@(s[s.end])];body.nChars_chars;FORi:NATIN[0..chars)DObody.char[i]_string[i];ENDLOOP;IFcharsMOD2=1THENbody.char[chars]_'\000;s.mark_s.end_s.end+words;s.nStrings_s.nStrings+1;};AppendToString:INTERNALPROC[string:LONGSTRING,s:LONGPOINTERTOStringSeqRep,offset:CARDINAL]={body:LONGPOINTERTOStringRep;IFoffset>=s.endTHENERROR;IFoffset+(s[offset]+Environment.bytesPerWord-1)/Environment.bytesPerWord+1>s.endTHENERROR;body_LOOPHOLE[@(s[offset])];FORi:NATIN[0..body.nChars)DOstring[string.length]_body.char[i];string.length_string.length+1;ENDLOOP;};MoveToString:INTERNALPROC[string:LONGSTRING,s:LONGPOINTERTOStringSeqRep,offset:CARDINAL]={string.length_0;AppendToString[string,s,offset];};GetNumberDiscardedMessages:ENTRYPROCRETURNS[CARDINAL]={IFmessages=NILTHENRestore[];RETURN[messages.nDiscarded];};GetString:ENTRYPROC[string:LONGSTRING,s:LONGPOINTERTOStringSeqRep,n:CARDINAL]RETURNS[ok:BOOLEAN]={string.length_0;IFn<s.nDiscardedTHENRETURN[TRUE];IFn-s.nDiscarded>=s.nStringsTHENRETURN[FALSE];AppendToString[string,s,StringOffset[s,n-s.nDiscarded]];RETURN[TRUE];};MoveMarkedStrings:INTERNALPROC[from,to:LONGPOINTERTOStringSeqRep]={nwords:CARDINAL_from.end-from.mark;IFto.nWords<to.mark+nwordsTHENERROR;to.nStrings_to.nStrings-to.nMarked;to.nMarked_0;���qÔg/ÓE…�yÔ_,ÓwÔ_,Ó¨Ó�Ó�yÓìÔ_,�Ô_,ÓLÔ_,Ó"XwÓ&iÔ_,�Ô_,yÔ]ÑÓwÔ]ÑÓ¨ Ó(�Ó]yÓ$oÔ]Ñ�Ô]ÑÓ%(Ô]ÑÓ(4wÓ,FÔ]Ñ�Ô]ÑÔ[›ÓÓÇ�yÓÔ[›�Ô[›Ó»wÓ^Ô[›�Ô[›Ó¡ÔZ5Ó Ó�Ó†yÔXéÓwÔXéÓÚyÓSÔXé�ÔXéÓ;ÔXéÓLwÔXéÓ# yÓ!ÛÔXé�ÔXéÓ"Ÿ�wÔVÊÓÓ†�Ó- yÔU?ÓwÓ∑ÔU?�ÔU?yÔSóÓwÔSóÓ¨yÓ@ÔSó�ÔSóÓQwÔSóÓò�ÓÃ�Ó±�yÓÊÔSó�ÔSóÓ üwÔSóÓ#¨Ó-„�Ó/pÔQÓÓs�Ó�Óì�Ó ÔPHÓ ÓC�Ó– Ó!�Ó"ıÔN°ÓuÔKRÓÛ wÓ∞ÔKR�ÔKRyÓ≠ÔKR�ÔKRÓÔKRÓ"?wÔKRÓ%ÊyÓ*ôÔKR�ÔKRÓ+RÔKRÓ.âwÓ2ˆÔKR�ÔKRÓ3”yÓ5TÔKR�ÔKRÓ6ÔKRÓ9EÔKRÓ>ÊwÔI™Ó∆ÓflyÓ$ÔI™�ÔI™ÓÔwÓ%[ÔI™�ÔI™Ó&B�Ó('�ÔHÓyÓ¸ÔH�ÔHÓµÔHÓÏÔHÓ çwÔHÓ"ß yÔF[ÓwÔF[Ó¨ÓvÓyÓüÔF[�ÔF[ÓXÔF[Ó"dwÓ&vÔF[�ÔF[yÔD¥ÓwÔCÓ◊HÔAeÓ◊�ÓyÓüÔAe�ÔAeÓXÔAeÓdwÓ vÔAe�ÔAeÔ?ΩÓÓÇ�yÓÔ?Ω�Ô?ΩÓ»wÓ^Ô?Ω�Ô?ΩÓ¡ yÔ>ÓwÔ>ÓÚyÓSÔ>�Ô>Ó;Ô>ÓLwÔ>Ó#yÓ&mÔ>�Ô>Ó'S�wÔ<nÓÓ!�Ó"ùÔ:«ÓÓ¯�ÓÖÓ&h�Ó(MyÔ9ÓwÓ∑Ô9�Ô9Ô7xÓuÔ4)ÓÛwÓßÔ4)�Ô4)yÓ•Ô4)�Ô4)ÓÔ4)Ó!7wÔ4)Ó$fiyÓ)êÔ4)�Ô4)Ó*IÔ4)Ó-ÅwÓ1ÌÔ4)�Ô4)Ó2 yÓ4LÔ4)�Ô4)Ó5Ô4)Ó8=Ô4)Ó=›wÔ2ÅÓ∆ÓflyÓ$Ô2Å�Ô2ÅÓÔwÓ%[Ô2Å�Ô2ÅÓ&B�Ó('�Ô0⁄ÓÓÁ�ÓtÔ/2ÓÓ!ñÓ"ˆÔ-ãÓuÔ*<ÓÛwÓ#ÇÔ*<�Ô*<yÓ$ÄÔ*<�Ô*<Ó%9Ô*<Ó)Ô*<Ó,ÆwÔ*<Ó2π�yÓ3Ô*<�Ô*<Ó3ÁwÓ9SÔ*<�Ô*<Ó:;�Ó< �yÔ(îÓwÔ(îÓ¨Óá�yÓlÔ(î�Ô(îÓUÔ(îÓ¸wÔ(îÓ"¬ yÔ&ÌÓwÔ&ÌÓqÔ%EÓuÔ!ˆÓÛwÓŒÔ!ˆ�Ô!ˆyÓÃÔ!ˆ�Ô!ˆÓÖÔ!ˆÓRwÔ!ˆÓ˘yÓ$¨Ô!ˆ�Ô!ˆÓ%eÔ!ˆÓ(úwÓ- Ô!ˆ�Ô!ˆÓ-ÊyÓ/hÔ!ˆ�Ô!ˆÓ0!Ô!ˆÓ3XÔ!ˆÓ8˘wÔ OÓ∆ÓflyÓ§Ô O�Ô OÓowÓ"€Ô O�Ô OyÓ#¬Ô O�Ô OÓ$ñwÔ OÓ)ŒyÓ,•Ô O�Ô OÓ-^wÓ2EÔ O�Ô OÓ3-�Ó5�ÔßÓÓÁ�ÓtyÔˇÓwÔˇÓ¨�Ó˜�Ó+yÓPÔˇ�ÔˇÓ ÔˇÓ#wÔˇÓ(Ç�yÓ(ÂÔˇ�ÔˇÓ)üwÓ,Ôˇ�ÔˇÓ,t�yÔXÓwÔXÓ¨ ÓÓ ¶ yÓ&ÂÔX�ÔXÓ'üÔXÓ*´wÔXÓ0�yÓ0zÔX�ÔXÓ14wÓ4ÔX�ÔXÓ4|�Ô∞ÓÓ!ñÓ"ˆÓ+ÌyÔ ÓwÔ Óq�yÓ‘Ô �Ô ÓçwÓ�Ô �Ô Óc�ÔaÓuÔÓÛwÓ.Ô�ÔyÓ+Ô�ÔÓïÔÓ$ΩwÔÓ(eÓ,áyÓ.ØÔ�ÔÓ/hÔÓ2üÔÓ8@wÔkÓ∆ÓÍ�Óœ�Ô√ÓyÓQÔ√�Ô√ÓwÔ√Ó�Ó ôyÔÓwÔÓ¨Ód�Óò yÓ']Ô�ÔÓ(ÔÓ+"wÓ/4Ô�ÔÔtÓ ÓÈ�Óv Ó"[�Ó#Y Ô ÕÓ Óx�Ó�������#��������TVm$⁄������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4to.end_to.mark;Inline.LongCOPY[from:@(from[from.mark]),nwords:nwords,to:@(to[to.mark])];to.nStrings_to.nStrings+from.nMarked;to.nMarked_from.nMarked;to.end_to.end+nwords;to.nStrings_to.nStrings+from.nMarked;from.nStrings_from.nStrings-from.nMarked;from.nMarked_0;from.end_from.mark;};CalculateCheck:INTERNALPROC[s:LONGPOINTERTOStringSeqRep]RETURNS[CARDINAL]={cs:CARDINAL_Checksum.ComputeChecksum[nWords:5,p:s];cs_Checksum.ComputeChecksum[cs:cs,nWords:1,p:s+6];RETURN[cs];};Save:INTERNALPROC={IFstate=NILTHENERROR;DiscardMessages[state.nWords-state.end];MoveMarkedStrings[from:messages,to:state];state.check_CalculateCheck[state];IFNOTValidate[state]THENERROR;IFwriteProc#NILTHENwriteProc[state,SIZE[StringSeqRep[state.end]]];MoveMarkedStrings[from:state,to:messages];};Restore:INTERNALPROC={IFstate#NILTHENERROR;IFreadProc#NILTHEN{temp:LONGPOINTERTOStringSeqRep_PDInterpSysCalls.AllocateSpace[256];readProc[temp,256];IFtemp.check=CalculateCheck[temp]THEN{words:CARDINAL_SIZE[StringSeqRep[temp.end]];wordsAllocated:CARDINAL_MAX[maxStateWords,words+255]/256*256;IFwordsAllocated<=maxStateWordsTHEN{state_PDInterpSysCalls.AllocateSpace[wordsAllocated];readProc[state,words];state.nWords_wordsAllocated-SIZE[StringSeqRep[0]];IFValidate[state]THEN{AllocMessages[];MoveMarkedStrings[from:state,to:messages];}ELSE{PDInterpSysCalls.FreeSpace[state];state_NIL};};���qÔg/ÓE…�wÔ_,ÓÓ=�Ó Ô]ÖÓÓ"!Ó/CÓ4êÓ9ºÔ[›Ó◊ÔZ6Ó ÓÈ�Óv Ó"[�Ó$@ÔXéÓ Óx�ÓÔVÁÓÓ=�Ó Ó�ÓËÔU?Ó ÓÈ�Óv Ó"[�Ó$@ÔSòÓÓ¢�Ó/ÔQÓÓ1�ÓæÔPHÓÓˆ�ÓÉ ÔN°ÓuÔKRÓÛ wÓAÔKR�ÔKRyÓ?ÔKR�ÔKRÓ©ÔKRÓ!—wÔKRÓ%xyÓ']ÔKR�ÔKRÓ(ÔKRÓ+NÔKRÓ0ÔwÔKRÓ3 yÔI´Ó∆wÔI´Ó“�yÓ5ÔI´�ÔI´Ó�wÓlÔI´�ÔI´ÓS�Ó!8�ÔHÓyÓ!ÔH�ÔHÓÏwÔHÓ‹�ÓiÓ5√Ó7PÓ9ÔF\ÓÓ®�Ó5Ó*˚Ó,˜Ó2ßÓ44Ó5˘yÔD¥ÓwÔD¥ÓqÔCÓuÔ?ΩÓÛwÓ¿Ô?Ω�Ô?ΩyÓæÔ?Ω�Ô?ΩÓ'Ô?ΩÓPwÔ?ΩÓ˜�Ó ‹�yÔ>ÓwÔ>Ó¨Ó›�yÓ¬Ô>�Ô>Ó™Ô>ÓRÔ>Ó wÓ$(Ô>�Ô>Ô<nÓ(Ô:«ÓÓ#oÓ)¢Ó+ Ô9Ó ÓÍ�ÓwyÔ7xÓÔ7xÓ¨wÔ7xÓÆyÓ èÔ7x�Ô7xÓ!HÔ7xÓ$UwÓ(fÔ7x�Ô7xyÔ5–ÓwÔ5–Ó¨Ó’�yÓ∫Ô5–�Ô5–Ó£Ô5–ÓJwÔ5–Ó#yÓ,°Ô5–�Ô5–Ó-@wÓ/Ô5–�Ô5–Ó/ÄÔ4)ÓÓ#oÓ&¯Ó) Ô2ÅÓuÔ/2ÓÛwÓÑÔ/2�Ô/2yÓÇÔ/2�Ô/2ÓÎÔ/2ÓwÔ/2Ó ª�Ó"†�yÔ-ãÓwÔ-ãÓ¨Ó›�yÓ¬Ô-ã�Ô-ãÓ™Ô-ãÓRÔ-ãÓ wÓ$(Ô-ã�Ô-ãyÔ+„ÓwÔ+„Ó¨Ór�yÓWÔ+„�Ô+„Ó@Ô+„ÓÁwÔ+„Ó"¨�Ô*<ÓyÓÔ*<�Ô*<Ó—Ô*<Ó Ô*<Ó"™wÔ*<Ó$√Ó-Ö�Ô(îÓË$Ô&ÌÓ ÓúyÔ%EÓwÔ%EÓΩ Ó˚�Ó‡yÓ-uÔ%E�Ô%EÓ..wÔ%EÓ1:�Ô#ûÓ'yÓ≠Ô#û�Ô#ûÓxwÔ#ûÓ"h�yÓ#ıÔ#û�Ô#ûÓ$îwÓ&pÔ#û�Ô#ûÓ&”Ô!ˆÓ'yÓ!RÔ!ˆ�Ô!ˆÓ"wÔ!ˆÓ( �yÓ)öÔ!ˆ�Ô!ˆÓ*¨wÓ,SÔ!ˆ�Ô!ˆÓ,∂ Ô OÓ˙yÔßÓ'wÔßÓŒ Ó"ÄÓ%yÓ.ÙÔß�ÔßÓ/ÆwÔßÓ2∫�Ô�Ó8Ói�Óˆ/ÔXÓ8Ó"fÔ±Ó8Ó!s�Ó"ˇyÓ,ßÔ±�Ô±Ó-FwÓ/"Ô±�Ô±Ó/ÖyÔ Ó8wÔ ÓflyÓ#¿Ô �Ô Ó$zwÔ Ó'Ü�ÔbÓIÔ∫ÓIÓ+≥Ó/=Ó1d ÔÓI�yÔkÓ8wÔkÓá�ÔƒÓI"ÔÓIÓz�yÓ Ô�ÔÓ ÔwÔuÓIÔ ÕÓ8ˇ�������K��������TVm$Ã������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5};PDInterpSysCalls.FreeSpace[temp];temp_NIL;};IFstate=NILTHENInternalReset[];};AllocMessages:INTERNALPROC={wordsAllocated:CARDINAL_SIZE[StringSeqRep[state.nWords]];IFmessages#NILTHEN{PDInterpSysCalls.FreeSpace[messages];messages_NIL};messages_PDInterpSysCalls.AllocateSpace[wordsAllocated];messages.nWords_wordsAllocated-SIZE[StringSeqRep[0]];messages.nStrings_messages.end_messages.mark_messages.nMarked_messages.nDiscarded_0;};InternalReset:INTERNALPROC={IFstate#NILTHEN{PDInterpSysCalls.FreeSpace[state];state_NIL};state_PDInterpSysCalls.AllocateSpace[maxStateWords];state.nWords_maxStateWords-SIZE[StringSeqRep[0]];state.nStrings_state.end_state.mark_state.nMarked_state.nDiscarded_0;AllocMessages[];};Reset:PUBLICENTRYPROC={InternalReset[]};newRequest:CONDITION;stringsPerRequest:CARDINAL=6;requestLimit:CARDINAL_1000;Requestsarenumberedmodulothisnumber.ReqNumberFromStringNumber:PROC[stringNumber:CARDINAL]RETURNS[requestNumber:CARDINAL]={requestNumber_(stringNumber/stringsPerRequest)MODrequestLimit;};DecodeCopies:PROC[tag:LONGSTRING]RETURNS[copies:CARDINAL]={copies_ORD[tag[2]]*256+ORD[tag[3]];};QueueRequest:PUBLICENTRYPROC[request:Request]RETURNS[requestNumber:INT]={ENABLEUNWIND=>NULL;tag:LONGSTRING_[4];IFstate=NILTHENRestore[];IFstate.nStrings>=stringsPerRequest*requestLimitTHENRETURN[-1];requestNumber_ReqNumberFromStringNumber[state.nStrings+state.nDiscarded];��qÔg/ÓE…�wÔ_,Ó'Ô]ÖÓ!Ô[›ÓÓü�yÓ,Ô[›�Ô[›ÓwÓ7Ô[›�Ô[›ÔZ5ÓyÔXéÓwÔXéÓ¨Ó›�yÓ¬ÔXé�ÔXéÓ™ÔXéÓRwÔXéÓ ÔVÊÓuÔSóÓÛwÓ«ÔSó�ÔSóyÓ≈ÔSó�ÔSóÓ/ÔSóÓ!WwÔSóÓ$˛�Ó&„�ÔQÓyÓ0ÔQ�ÔQÓ˚wÔQÓ#Î�yÓ%xÔQ�ÔQÓ&wÓ'ÛÔQ�ÔQÓ(VyÔPHÓwÔPHÓ¨Óá�yÓlÔPH�ÔPHÓUÔPHÓ¸wÔPHÓ"¬&Ó;ìÔN°Ó◊�yÓdÔN°�ÔN°ÓMwÓpÔN°�ÔN°Ó �ÔL˙ÓÓ‡�Óm/ÔKRÓÓÍ�ÓwyÓ)ÔKR�ÔKRÓ)ΩwÓ+ôÔKR�ÔKRÓ+¸ÔI™ÓÓ�Ó£Ó( �Ó)ñÓ2ÿ�Ó4eÓ@�ÔHÓ◊Ó –�Ó"\ÔF\ÓuÔC ÓÛwÓıÔC �ÔC yÓÛÔC �ÔC Ó]ÔC Ó ÖwÔC Ó$,�Ó&�yÔAeÓwÔAeÓ¨Ó›�yÓ¬ÔAe�ÔAeÓ™ÔAeÓRwÔAeÓ #Ó6>Ó9o�yÓ:¸ÔAe�ÔAeÓ;ÂwÓ=ÔAe�ÔAeÓ=∏�Ô?æÓÓ5�Ó¬.Ô>ÓÓ?�Óà yÓ&†Ô>�Ô>Ó'?wÓ)Ô>�Ô>Ó)~Ô<oÓ Ól�Ó˘Ó"¥�Ó$A Ó*Ÿ�Ó,eÓ5\�Ó6ÈÔ:«Ó◊�ÓdÔ9 ÓÔ7xÓuÔ4)ÓÛwÓDÔ4)�Ô4)yÓBÔ4)�Ô4)ÓÍÓ‡Ô4)ÓfwÔ4)Ó"�Ó#ÛÔ0⁄ÓÛ yÓ/Ô0⁄�Ô0⁄Ó˙wÓ˜Ô0⁄�Ô0⁄Ô-ãÓÛyÓóÔ-ã�Ô-ãÓbwÔ-ãÓ#R�Ó%7Ô*<ÓÛyÓáÔ*<�Ô*<ÓRwÔ*<Ó B�Ó!œxÔ(ïÓÓ¢ÓˆÓ!&Ó%ÒÓ(äuÔ%EÓÛwÓ#òÔ%E�Ô%EyÓ$ñÔ%E�Ô%EÓ%=wÔ%EÓ(= yÓ1ÛÔ%E�Ô%EÓ2æwÓ8*Ô%E�Ô%EyÓ9Ô%E�Ô%EÓ9ÂwÔ#ûÓ∆yÓ{Ô#û�Ô#ûÓFwÓ"≤Ô#û�Ô#ûÓ#ô�Ó%�Ô!˜ÓÓ›�ÓjyÓ3çÔ!˜�Ô!˜Ó4ûwÔ!˜Ó6ÂÔ OÓuÔ�ÓÛwÓYÔ��Ô�yÓWÔ��Ô�ÓˇwÔ�Ó˛yÓ!$Ô��Ô�Ó!›Ô�Ó%wÓ)ÅÔ��Ô�yÓ*hÔ��Ô�Ó+<wÔ�Ó0tyÓ5Ô��Ô�Ó6JwÓ;∂Ô��Ô�Ó<ù�Ó>Ç�ÔYÓÓ3�yÓ¿ÔY�ÔYÓúwÓVÔY�ÔYÓπyÓ#yÔY�ÔYÓ$VwÓ&ÔY�ÔYÓ&sÔ±ÓuÔbÓÛwÓëÔb�ÔbyÓéÔb�ÔbÓ6ÔbÓGÔbÓ#ÕwÔbÓ'tÓ-%yÓ2‚Ôb�ÔbÓ3∂wÔªÓ∆yÓ{Ôª�ÔªÓÂwÓáÔª�ÔªÓn�Ó!S�yÔÓÔÓ)wÔÓŒyÓ cÔ�ÔÓ!LwÓ#£Ô�ÔÔlÓyÓ«Ôl�ÔlÓÄÔlÓ∑wÔlÓ®�Ó 5yÔƒÓwÔƒÓ¨Ó›�yÓ¬Ôƒ�ÔƒÓ™ÔƒÓRwÔƒÓ yÔÓwÔÓ¨ ÓÓ©yÓ3Ô�ÔÓ3”ÔÓ6flwÔÓ<LÔuÓÓ›�Ô ŒÓ◊;ˇ�������b��������TVm$2��������������������������������������������������������6String.AppendString[tag,""];String.AppendChar[tag,VAL[Inline.HighByte[CARDINAL[request.copies]]]];String.AppendChar[tag,VAL[Inline.LowByte[CARDINAL[request.copies]]]];Append[state,tag];Append[state,request.fileName];Append[state,request.requestTime];Append[state,request.requestor];Append[state,request.requestorPassword];Append[state,request.separator];IFstringsPerRequest#6THENERROR;BEGINmsg:LONGSTRING_[250];String.AppendString[msg,request.fileName];IFrequest.copies#1THEN{String.AppendString[msg,"("];String.AppendDecimal[msg,request.copies];String.AppendString[msg,"copies)"];};InternalLogMessage[msg,requestNumber,request.requestor];END;IFNOTdeferSavingTHENSave[];--savewillbedonewhencurrentrequestfinishes.NOTIFYnewRequest;};reprintCopies:CARDINAL_0;Reprint:PUBLICENTRYPROC[copies:CARDINAL]={reprintCopies_reprintCopies+copies;NOTIFYnewRequest;};printingSuspended:BOOLEAN_FALSE;GetSuspended:PUBLICENTRYPROCRETURNS[BOOLEAN]={RETURN[printingSuspended]};SetSuspended:PUBLICENTRYPROC[suspended:BOOLEAN]RETURNS[old:BOOLEAN]={old_printingSuspended;printingSuspended_suspended;NOTIFYnewRequest;};abortCurrent:BOOLEAN;FirstRequest:ENTRYPROCRETURNS[requestNumber:CARDINAL]={ENABLEUNWIND=>NULL;IFstate=NILTHENRestore[];requestNumber_ReqNumberFromStringNumber[state.nDiscarded];};FindRequest:ENTRYPROC[requestNumber:CARDINAL,tag:LONGSTRING,���qÔg/ÓE…�wÔ_,ÓÓ"R�Ó$Ô]ÖÓyÓ!¨Ô]Ö�Ô]ÖÓ"wwÓ$Ô]Ö�Ô]ÖÓ$fyÓ.EÔ]Ö�Ô]ÖÓ/wÓ4{Ô]Ö�Ô]ÖÓ4flÔ[›ÓyÓ!¨Ô[›�Ô[›Ó"wwÓ$Ô[›�Ô[›Ó$fyÓ-ÎÔ[›�Ô[›Ó.∂wÓ4"Ô[›�Ô[›Ó4ÖÔZ5ÓÓ∫ÔXéÓÓ∫ÔVÊÓÓ∫ÔU?ÓÓ∫ÔSóÓÓ∫ÔQÓÓ∫yÔPHÓwÔPHÓ¨Ó÷�Ó!ª�yÓ"ÔPH�ÔPHÓ#©ÔPHÓ&µwÓ*∆ÔPH�ÔPHyÔN°ÓwÔL˘ÓyÓrÔL˘�ÔL˘Ó+ÔL˘ÓbwÔL˘Ó!S�Ó"‡ÔKRÓÓ$˝yÔI™ÓwÔI™ÓΩyÓ!§ÔI™�ÔI™Ó"]wÔI™Ó%i�ÔHÓ'Ó'�Ó(BÔF[Ó'Ó(nÔD¥Ó'Ó'�Ó(B ÔCÓ'ÔAeÓÓ$∏ Ó.ÈyÔ?ΩÓwÓùÔ?Ω�Ô?ΩyÔ>ÓÔ>ÓΩwÔ>Óø yÓ!JÔ>�Ô>Ó"wÔ>Ó%xÓ)ïÔ>�Ô>Ó*�Ó+Ó-˚Ó0êÓ2`Ó5ûÓ9 Ô<nÓËÓàyÔ:«ÓwÔ:«Ó˝ Ô9ÓÔ5–ÓÛ yÓÔ5–�Ô5–Ó÷wÔ5–Ó ∆�Ó"SuÔ2ÅÓÛwÓbÔ2Å�Ô2ÅyÓ`Ô2Å�Ô2ÅÓÔ2ÅÓÔ2ÅÓüwÔ2ÅÓ#FyÓ(QÔ2Å�Ô2ÅÓ)wÓ.àÔ2Å�Ô2ÅÓ/o�Ó1T�Ô0⁄ÓÓ£�Ó0Ó%Œ�Ó'¥yÔ/2ÓwÔ/2Ó˝ Ô-ãÓÔ*<ÓÛyÓ'Ô*<�Ô*<Ó·wÔ*<Ó#L�yÓ$ŸÔ*<�Ô*<Ó%íwÓ(wÔ*<�Ô*<uÔ&ÌÓÛwÓdÔ&Ì�Ô&ÌyÓaÔ&Ì�Ô&ÌÓ Ô&ÌÓÔ&ÌÓ#†Ô&ÌÓ'GwÔ&ÌÓ-S�yÓ-∂Ô&Ì�Ô&ÌÓ.owÓ3VÔ&Ì�Ô&ÌÓ4>�Ó6#�yÓ6”Ô&Ì�Ô&ÌÓ7ßwÔ%EÓ∆uÔ#ûÓÛwÓ-Ô#û�Ô#ûyÓ*Ô#û�Ô#ûÓ“Ô#ûÓ„Ô#ûÓ#iwÔ#ûÓ' yÓ.ßÔ#û�Ô#ûÓ/`wÓ4GÔ#û�Ô#ûyÓ5/Ô#û�Ô#ûÓ6wÔ#ûÓ;:yÔ!ˆÓ∆wÓfÔ!ˆ�Ô!ˆÓN�Ó3�Ô OÓÓn�Ó˚ÔßÓÓø�Ó L yÔ�ÓwÔ�Ó˝ ÔXÓÔ ÓÛyÓ¥Ô �Ô ÓmwÓTÔ �Ô uÔ∫ÓÛwÓ}Ô∫�Ô∫yÓzÔ∫�Ô∫Ó3Ô∫ÓÔ∫Ó!®wÔ∫Ó'≥yÓ2iÔ∫�Ô∫Ó33wÓ8üÔ∫�Ô∫Ó9á�Ó;l�yÔÓÔÓ)wÔÓŒyÓ cÔ�ÔÓ!LwÓ#£Ô�ÔyÔkÓwÔkÓ¨Ó›�yÓ¬Ôk�ÔkÓ™ÔkÓRwÔkÓ ÔƒÓÓ›�Ój,ÔÓuÔ ÕÓÛ wÓ[Ô Õ�Ô ÕyÓYÔ Õ�Ô ÕÓÔ ÕÓflwÔ ÕÓ!ÜyÓ,;Ô Õ�Ô ÕÓ-wÓ2rÔ Õ�Ô ÕÓ3OyÓ6Ô Õ�Ô ÕÓ6 Ô ÕÓ:wÓ>nÔ Õ�Ô Õ�������9��������TVm$Î����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7request:Request]={ENABLEUNWIND=>NULL;stringNumber:CARDINAL_requestNumber*stringsPerRequest;offset:CARDINAL_0;IFstate=NILTHENRestore[];WHILEstringNumber<state.nDiscardedDOstringNumber_stringNumber+requestLimit*stringsPerRequestENDLOOP;IFstringNumber-state.nDiscarded>=state.nStringsTHENRETURN;offset_StringOffset[state,stringNumber-state.nDiscarded];MoveToString[tag,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.fileName,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestTime,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestor,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestorPassword,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.separator,state,offset];IFstringsPerRequest#6THENERROR;};GetRequest:ENTRYPROC[request:Request]RETURNS[requestNumber:INT,copies:CARDINAL]={ENABLEUNWIND=>NULL;tag:LONGSTRING_[4];IFstate=NILTHENRestore[];DOoffset:CARDINAL_0;WHILEprintingSuspendedOR(state.nStrings=0ANDreprintCopies=0)DOWAITnewRequestENDLOOP;abortCurrent_FALSE;IFreprintCopies#0THEN{requestNumber_-1;copies_reprintCopies;reprintCopies_0;RETURN;};requestNumber_ReqNumberFromStringNumber[state.nDiscarded];MoveToString[tag,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.fileName,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestTime,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestor,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.requestorPassword,state,offset];offset_NextStringOffset[state,offset];MoveToString[request.separator,state,offset];copies_DecodeCopies[tag];IFstringsPerRequest#6THENERROR;IFtag[0]='THENEXIT;��qÔg/ÓE…�wÔ_,Ó∆ÓÓ–�Óµ�yÔ]ÖÓÔ]ÖÓ)wÔ]ÖÓŒyÓ cÔ]Ö�Ô]ÖÓ!LwÓ#£Ô]Ö�Ô]ÖÔ[›ÓyÓXÔ[›�Ô[›Ó"wÔ[›Ó#�Ó$†ÔZ5ÓyÓIÔZ5�ÔZ5ÓwÔZ5Ó�ÓëyÔXéÓwÔXéÓ¨Ó›�yÓ¬ÔXé�ÔXéÓ™ÔXéÓRwÔXéÓ yÔVÊÓwÔVÊÓeÓ ?�Ó!tyÓ+¬ÔVÊ�ÔVÊÓ,ß�wÔVÊÓ.Ó6‚�Ó8oÔU?Ó◊�ÓºyÓ)-ÔU?�ÔU?Ó)ÊwÓ.ŒÔU?�ÔU?yÔSòÓwÔSòÓ¨Ó'»Ó*^ yÓ2≈ÔSò�ÔSòÓ3~ÔSòÓ6ãwÓ;sÔSò�ÔSòÔQÓÓœ�Ó\Ó#{ÔPIÓÓ¶Ó"0Ó&◊Ó*¢�Ó,/Ó:5ÔN°ÓÓ'Ó*èÓ/7Ó3�ÔL˙Ó◊Ó!fiÔKRÓ!Ó(ÛÓ,}Ó1$Ó4Ô�ÔI´Ó◊Ó!fiÔHÓÓ'Ó*£Ó/JÓ3�ÔF\Ó◊Ó!fiÔD¥Ó'Ó,ùÓ0&Ó4ŒÓ8ô�ÔC Ó◊Ó!fiÔAfÓÓ&¯Ó*ÅyÔ?æÓwÔ?æÓ¨Ó÷�Ó!ª�yÓ"Ô?æ�Ô?æÓ#©Ô?æÓ&µwÓ*∆Ô?æ�Ô?æÔ>ÓuÔ:»ÓÛ wÓ‚Ô:»�Ô:»yÓ‡Ô:»�Ô:»ÓôÔ:»ÓfwÔ:»Ó!Ó&øyÓ,{Ô:»�Ô:»Ó-OwÔ:»Ó2áyÓ=<Ô:»�Ô:»Ó=•wÓ?GÔ:»�Ô:»Ô9 Ó∆yÓnÔ9 �Ô9 Ó9wÓ•Ô9 �Ô9 Óå�Óq�yÔ7yÓÔ7yÓ)wÔ7yÓŒyÓ cÔ7y�Ô7yÓ!LwÓ#£Ô7y�Ô7yÔ5—ÓyÓ«Ô5—�Ô5—ÓÄÔ5—Ó∑wÔ5—Ó®�Ó 5yÔ4*ÓwÔ4*Ó¨Ó›�yÓ¬Ô4*�Ô4*Ó™Ô4*ÓRwÔ4*Ó yÔ2ÇÓwÔ0€ÓyÓZÔ0€�Ô0€Ó%wÔ0€Ó �Ó!¢yÔ/3ÓwÔ/3ÓvyÓ%1Ô/3�Ô/3Ó&�wÔ/3Ó'fÓ0G�Ó2,�yÓ3aÔ/3�Ô/3Ó44wÔ/3Ó6áÓ?%�Ô-åÓËyÓñÔ-å�Ô-åÓ|�Ô-åÓ›wÔ-åÓr yÓ%5Ô-å�Ô-åÓ%ÓwÓ*÷Ô-å�Ô-åÔ+‰ÓÓ]�yÓÍÔ+‰�Ô+‰Ó£wÓ"áÔ+‰�Ô+‰yÔ*=ÓwÔ*=ÓΩÓ[�Ó!@�yÓ"uÔ*=�Ô*=Ó#.wÔ*=Ó&;�Ô(ïÓ'Ó ˇ�Ó"åÔ&ÓÓ'ÓU�Ó‚ Ô%FÓ'Ó≈�Ó!RyÔ#üÓ'wÓÔ#ü�Ô#üÔ!˜Ó'Ô PÓÓÓ�Ó {,Ô®ÓÓ ∏Ó$AÓ(ËÓ,≥�Ó.@Ó<GÔÓÓ)Ó,†Ó1HÓ5�ÔYÓËÓ#ÔÔ≤Ó!Ó+Ó.éÓ35Ó7��Ô ÓËÓ#ÔÔcÓÓ)+Ó,¥Ó1[Ó5&�ÔºÓËÓ#ÔÔÓ'Ó.ÆÓ28Ó6flÓ:™�ÔmÓËÓ#ÔÔ≈ÓÓ) Ó,íÔÓÓD�Ó—yÔvÓwÔvÓΩÓ!Á�Ó#Ã�yÓ%Ôv�ÔvÓ%∫ÔvÓ(∆wÓ,ÿÔv�ÔvyÔ œÓwÔ œÓΩÓ|�Óa�yÓ¬Ô œ�Ô œÓ{Ô œÓ!àwÓ$8Ô œ�Ô œ�������Ú��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8Discard[state,stringsPerRequest];WHILEstate.nDiscarded>=stringsPerRequest*requestLimitDOstate.nDiscarded_state.nDiscarded-stringsPerRequest*requestLimit;ENDLOOP;ENDLOOP;};RemoveRequest:ENTRYPROC[requestNumber:CARDINAL]={ENABLEUNWIND=>NULL;IFstate=NILTHENRestore[];IFrequestNumber#ReqNumberFromStringNumber[state.nDiscarded]THENERROR;Discard[state,stringsPerRequest];deferSaving_FALSE;Save[];};DeferSaving:ENTRYPROC={ENABLEUNWIND=>NULL;deferSaving_TRUE;};DoDeferredSave:ENTRYPROC={ENABLEUNWIND=>NULL;deferSaving_FALSE;Save[];};DoRequest:PUBLICPROC[action:PROC[request:Request,requestNumber:CARDINAL,abort:LONGPOINTERTOBOOLEAN]]={fileName:LONGSTRING_[80];requestTime:LONGSTRING_[20];requestor:LONGSTRING_[80];requestorPassword:LONGSTRING_[80];separator:LONGSTRING_[80];requestNumber:INT;body:LONGPOINTERTOStringRep;copies:CARDINAL;aborted:BOOLEAN_FALSE;[requestNumber,copies]_GetRequest[[fileName,requestTime,requestor,requestorPassword,separator,0]];deferSaving_TRUE;DeferSaving[];IFrequestNumber<0THEN{LogMessage["Reprint."];action[[NIL,NIL,NIL,NIL,NIL,copies],NAT.LAST,@abortCurrent!ABORTED=>{aborted_TRUE;CONTINUE}];LogMessage["Reprintcompleted."];DoDeferredSave[];}ELSE{��qÔg/ÓE…�wÔ_,Ó ÓîyÔ]ÖÓwÔ]ÖÓvÓ#ƒÓ&ZyÓ9ÀÔ]Ö�Ô]ÖÓ:∞�wÔ[›Ó'Ó!t�Ó#Ó-O�ÔZ6Ó˙yÔXéÓ'wÓ»ÔXé�ÔXéyÔVÁÓwÓ∑ÔVÁ�ÔVÁÔU?ÓuÔQÓÛwÓbÔQ�ÔQyÓ`ÔQ�ÔQÓÔQÓÊwÔQÓ#çyÓ.BÔQ�ÔQÓ/ wÓ4yÔQ�ÔQÓ5a�Ó7F�yÔPHÓÔPHÓ)wÔPHÓŒyÓ cÔPH�ÔPHÓ!LwÓ#£ÔPH�ÔPHyÔN°ÓwÔN°Ó¨Ó›�yÓ¬ÔN°�ÔN°Ó™ÔN°ÓRwÔN°Ó yÔL˘ÓwÔL˘Ó¨ÓÑ�Ó i+yÔKRÓ◊ÔKRÓùwÓÆÔKR�ÔKRÔI´Ó ÓÉÔHÓ Óè�yÓÔH�ÔHÓ’wÓ∫ÔH�ÔHÔF\ÓÔD¥ÓuÔAeÓÛ wÓ:ÔAe�ÔAeyÓ7ÔAe�ÔAeÓÒÔAeÓæwÔAeÓ!e�Ó#J�yÔ?ΩÓÔ?ΩÓ)wÔ?ΩÓŒyÓ cÔ?Ω�Ô?ΩÓ!LwÓ#£Ô?Ω�Ô?ΩÔ>Ó Óè�yÓÔ>�Ô>Ó’wÓHÔ>�Ô>Ô<nÓuÔ9ÓÛ wÓ∫Ô9�Ô9yÓ∑Ô9�Ô9ÓqÔ9Ó >wÔ9Ó#Â�Ó% �yÔ7xÓÔ7xÓ)wÔ7xÓŒyÓ cÔ7x�Ô7xÓ!LwÓ#£Ô7x�Ô7xÔ5–Ó Óè�yÓÔ5–�Ô5–Ó’wÓ∫Ô5–�Ô5–Ô4)ÓÔ2ÅÓuÔ/2ÓÛwÓÔ/2�Ô/2yÓ}Ô/2�Ô/2Ó$Ô/2Ó5wÔ/2Ó ‹yÓ%—Ô/2�Ô/2Ó&ywÔ/2Ó)xÓ/)Ó4€ yÔ-ãÓ∆wÓ˝Ô-ã�Ô-ãÓŸyÓÚÔ-ã�Ô-ãÓ´Ô-ãÓ ‚Ô-ãÓ&ÉÔ-ãÓ(ùwÓ.=Ô-ã�Ô-ãÓ.°�Ó/à�Ó1m�Ô+„ÓyÓ~Ô+„�Ô+„Ó8Ô+„ÓowÔ+„Ó"`�Ó#ÌÔ*<ÓyÓlÔ*<�Ô*<Ó%Ô*<Ó]wÔ*<Ó$N�Ó%€Ô(îÓ yÓíÔ(î�Ô(îÓKÔ(îÓÇwÔ(îÓ"t�Ó$�Ô&ÌÓyÓÔ&Ì�Ô&ÌÓœÔ&ÌÓ#wÔ&ÌÓ'˜�Ó)ÑÔ%EÓ yÓpÔ%E�Ô%EÓ)Ô%EÓawÔ%EÓ"R�Ó#flÔ#ûÓ yÓVÔ#û�Ô#ûÓ¿wÓbÔ#û�Ô#ûÔ!ˆÓyÓ¸Ô!ˆ�Ô!ˆÓµÔ!ˆÓÏÔ!ˆÓ çwÔ!ˆÓ"ß Ô OÓyÓ¨Ô O�Ô OÓwwÓ„Ô O�Ô OÔßÓyÓâÔß�ÔßÓBwÔßÓÆ�yÓ ;Ôß�ÔßÓ ÙwÓ#ŸÔß�ÔßÔ�ÓÓòÓ"*�Ó#∑Ó1ÈÓ:/ ÔXÓ◊Ó« Ó&Ô±Ó Óè�yÓÔ±�Ô±Ó’wÓHÔ±�Ô±Ô Ó yÔbÓwÔbÓ¨ÓÑ�Óπ�yÓ ÓÔb�ÔbÓ!ßwÔbÓ$≥�Ô∫ÓÔÓyÓpÔ�ÔÓXwÓ{Ô�ÔyÓXÔ�ÔÓ@wÓcÔ�ÔyÓ@Ô�ÔÓ (wÓ!KÔ�ÔyÓ"(Ô�ÔÓ#wÓ$3Ô�ÔyÓ%Ô�ÔÓ%˘wÓ'Ô�ÔÓ'¯yÓ,‚Ô�ÔÓ- wÓ/WÔ�yÔÓ/ÆwÓ2ìÔ�ÔÓ3oÓ=�yÔkÓËwÔkÓÓóÓ$S�yÓ%‡Ôk�ÔkÓ&ôwÓ)Ôk�ÔkyÓ* Ôk�ÔkÓ*‘wÓ0CÔk�ÔkÓ0ÛÔƒÓÓ"íÔÓÔuÓ�yÔ ÕÓwÔ ÕÓS��������ñ��������TVm$c������������������������������������������������������������������������������������������������������������������������������������������������������������������9body_LOOPHOLE[@(state[0])];IFbody.nChars#4THENERROR;body.char[1]_'P;LogMessage["Started.",requestNumber,requestor];action[[fileName,requestTime,requestor,requestorPassword,separator,copies],requestNumber,@abortCurrent!ABORTED=>{aborted_TRUE;CONTINUE}];IFabortedTHENLogMessage["Aborted.",requestNumber,requestor]ELSELogMessage["Completed.",requestNumber,requestor];RemoveRequest[requestNumber];};};CancelRequest:PUBLICENTRYPROC[requestNumber:CARDINAL]RETURNS[ok:BOOLEAN]={stringNumber:CARDINAL_requestNumber*stringsPerRequest;body:LONGPOINTERTOStringRep;IFstate=NILTHENRestore[];WHILEstringNumber<state.nDiscardedDOstringNumber_stringNumber+requestLimit*stringsPerRequestENDLOOP;IFstringNumber-state.nDiscarded>=state.nStringsTHENRETURN[FALSE];body_LOOPHOLE[@(state[StringOffset[state,stringNumber-state.nDiscarded]])];IFbody.nChars#4THENERROR;IFbody.char[0]#'THENRETURN[FALSE];body.char[0]_'X;IFstringNumber=state.nDiscardedTHENabortCurrent_TRUE;RETURN[TRUE];};RequestStatus:TYPE=PDQueue.RequestStatus;CheckRequest:PUBLICPROC[requestNumber:CARDINAL,action:PROC[request:Request,status:RequestStatus]]={tag:LONGSTRING_[4];status:RequestStatus;fileName:LONGSTRING_[80];requestTime:LONGSTRING_[20];requestor:LONGSTRING_[80];requestorPassword:LONGSTRING_[80];separator:LONGSTRING_[80];tag.length_0;FindRequest[requestNumber,tag,[fileName,requestTime,requestor,requestorPassword,separator,0]];IFtag.length=0THENstatus_notFoundELSEIFtag[0]='XTHENstatus_canceledELSEIFtag[1]='PTHENstatus_printingELSEstatus_waiting;action[[fileName,requestTime,requestor,requestorPassword,separator,DecodeCopies[tag]],status];};��qÔg/ÓE…�wÔ_,ÓÓì�yÓ Ô_,�Ô_,ÓŸwÓ oÔ_,�Ô_,Ó “yÔ]ÑÓwÔ]ÑÓΩ ÓÀ�Ó ±�yÓ!ÂÔ]Ñ�Ô]ÑÓ"ûÔ]ÑÓ%´wÓ)ºÔ]Ñ�Ô]ÑÔ[›ÓÓÌ�ÓzÔZ5ÓÓ#ö Ó-À ÔXéÓÓ…Ó( Ó.|Ó:l ÔVÊÓËÓ“ Ó%Ó.´�yÓ/®ÔVÊ�ÔVÊÓ0|wÔVÊÓ5¬Ó8WÓ>�yÔU?ÓËwÓÔU?�ÔU?yÓÔU?�ÔU?Ó›wÓ LÔU?�ÔU?Ó ¸yÔSóÓwÔSóÓΩyÓ»ÔSó�ÔSóÓÅwÔSóÓéÓ.¬ Ó8Û yÔQÓwÔQÓdÓ)< Ó3m ÔPHÓÔN°ÓÔL˘ÓuÔI™ÓÛwÓºÔI™�ÔI™yÓ∫ÔI™�ÔI™ÓbÔI™ÓsÔI™Ó#˘wÔI™Ó'†yÓ2UÔI™�ÔI™Ó3 wÓ8åÔI™�ÔI™yÓ9tÔI™�ÔI™Ó:HwÔHÓ∆yÓùÔH�ÔHÓWwÓ>ÔH�ÔHÓ%�Ó �ÔF[ÓyÓXÔF[�ÔF[Ó"wÔF[Ó#�Ó$†ÔD≥ÓyÓ¸ÔD≥�ÔD≥ÓµÔD≥ÓÏÔD≥Ó çwÔD≥Ó"ß yÔCÓwÔCÓ¨Ó›�yÓ¬ÔC�ÔCÓ™ÔCÓRwÔCÓ yÔAdÓwÔAdÓeÓ ?�Ó!tyÓ+¬ÔAd�ÔAdÓ,ß�wÔ?ºÓÓÔ�Ó|+yÔ>ÓwÓ∑Ô>�Ô>yÔ<mÓwÔ<mÓ¨Ó'»Ó*^ yÓ2≈Ô<m�Ô<mÓ3~Ô<mÓ6ãwÔ<mÓ;˜�yÓ<ZÔ<m�Ô<mÓ=wÓ?¯Ô<m�Ô<mÓ@[�Ô:∆ÓÓÇ�yÓÔ:∆�Ô:∆Ó»wÓ^Ô:∆�Ô:∆Ó¡Ô9Ó◊"yÔ7wÓwÔ7wÓ¨ Ó∫�Óü�yÓ‘Ô7w�Ô7wÓ çÔ7wÓ#ôwÓ'´Ô7w�Ô7wyÔ5œÓwÔ5œÓ¨ÓÉ�Óh�yÓ…Ô5œ�Ô5œÓ ÇÔ5œÓ#èwÔ5œÓ(˚�yÓ)^Ô5œ�Ô5œÓ*wÓ,¸Ô5œ�Ô5œÓ-_�Ô4'ÓÓ‹�ÓiyÔ2ÄÓwÔ2ÄÓ¨ÓÖ�ÓkyÓ)∏Ô2Ä�Ô2ÄÓ*qwÔ2ÄÓ-~Ó5≈�yÓ7RÔ2Ä�Ô2ÄÓ8wÓ:}Ô2Ä�Ô2ÄyÔ0ÿÓwÔ0ÿÓq�yÓ‘Ô0ÿ�Ô0ÿÓçwÓ�Ô0ÿ�Ô0ÿÓc�Ô/1ÓÔ+·ÓÛ yÓ[Ô+·�Ô+·ÓwÔ+·ÓÃ�Ó≤uÔ*:ÓÛwÓeÔ*:�Ô*:yÓbÔ*:�Ô*:Ó Ô*:ÓwÔ*:Ó"¬yÓ-wÔ*:�Ô*:Ó.BwÓ3ÆÔ*:�Ô*:Ó4äyÓ9Ô*:�Ô*:Ó9ƒwÔ(ìÓ∆ÓwÓ(Ó!yÓ+-�Ó-�Ô&ÎÓyÓ«Ô&Î�Ô&ÎÓÄÔ&ÎÓ∑wÔ&ÎÓ®�Ó 5Ô%CÓÓU Ô#úÓyÓ~Ô#ú�Ô#úÓ8Ô#úÓowÔ#úÓ"`�Ó#ÌÔ!ÙÓyÓlÔ!Ù�Ô!ÙÓ%Ô!ÙÓ]wÔ!ÙÓ$N�Ó%€Ô MÓ yÓíÔ M�Ô MÓKÔ MÓÇwÔ MÓ"t�Ó$�Ô•ÓyÓÔ•�ԕӜԕÓ#wÔ•Ó'˜�Ó)ÑÔ˝Ó yÓpÔ˝�Ô˝Ó)Ô˝ÓawÔ˝Ó"R�Ó#flÔVÓ ÓZ�ÓÁÔÆÓÓ%EÓ'Ê Ó.¢Ó6È ÔÓ◊Ó« Ó&yÔ_ÓwÔ_Ó¨ Ó�ÓÊ�yÓÔ_�Ô_Ó‘wÔ_Ó!‡Ó%∑�Ó'DyÔ∏ÓÔ∏ÓSwÔ∏Ó˙Ó∫�ÓüyÓÖÔ∏�Ô∏Ó >wÔ∏Ó#JÓ'!�Ó(ÆyÔÓÔÓSwÔÓ˙Ó∫�ÓüyÓMÔ�ÔÓ wÔÓ#Ó&È�Ó(vyÔhÓwÔhÓSÓ*�Ó∑Ô¡ÓÓ∏Ó%˛ Ó,jÓ8Z ÔÓ◊Ó 6ÔrÓ�������D��������TVm$õ������������������������������������������������������������������������������������������������������������������������������������10CountRequests:PUBLICENTRYPROCRETURNS[requestCount:NAT]={IFstate=NILTHENRestore[];requestCount_state.nStrings/stringsPerRequest;};EnumerateRequests:PUBLICPROC[action:PROC[requestNumber:CARDINAL,request:Request,status:RequestStatus]RETURNS[continue:BOOLEAN]]={firstRequest:NAT_FirstRequest[];nRequests:NAT_CountRequests[];requestNumber:NAT_firstRequestMODrequestLimit;THROUGH[0..nRequests)DOcontinue:BOOLEAN_TRUE;myAction:PROC[request:Request,status:RequestStatus]={IFstatus=printingORstatus=waitingTHENcontinue_action[requestNumber,request,status];};CheckRequest[requestNumberMODrequestLimit,myAction];IFNOTcontinueTHENEXIT;requestNumber_(requestNumber+1)MODrequestLimit;ENDLOOP;};RegisterDisk:PUBLICENTRYPROC[read,write:PROC[address:LONGPOINTER,nwords:CARDINAL],maxWords:CARDINAL]={IFstate#NILTHEN{PDInterpSysCalls.FreeSpace[state];state_NIL;};readProc_read;writeProc_write;maxStateWords_maxWords;};LogMessage:PUBLICENTRYPROC[message:LONGSTRING,requestNumber:INT_-1,userName:LONGSTRING_NIL]={InternalLogMessage[message,requestNumber,userName];};InternalLogMessage:INTERNALPROC[message:LONGSTRING,requestNumber:INT_-1,userName:LONGSTRING_NIL]={msg:LONGSTRING_[250];Time.AppendCurrent[msg];msg[msg.length]_';msg.length_msg.length+1;IFrequestNumber>=0THEN{String.AppendChar[msg,'R];FORi:CARDINAL_requestLimit/10,i/10WHILEi#0DOString.AppendDecimal[msg,(requestNumber/i)MOD10];ENDLOOP;String.AppendChar[msg,'];};String.AppendString[msg,message];��qÔg/ÓEuÔ_,ÓÛwÓ›Ô_,�Ô_,yÓ€Ô_,�Ô_,ÓÉÔ_,ÓìÔ_,Ó$Ô_,Ó'¡wÔ_,Ó-Õ yÓ73Ô_,�Ô_,Ó8wÓ9®Ô_,�Ô_,Ó:è�Ó<u�yÔ]ÖÓwÔ]ÖÓ¨Ó›�yÓ¬Ô]Ö�Ô]ÖÓ™Ô]ÖÓRwÔ]ÖÓ Ô[›ÓÓé�Ó!ÔZ5ÓuÔVÊÓÛwÓ©ÔVÊ�ÔVÊyÓßÔVÊ�ÔVÊÓOÔVÊÓ"_wÔVÊÓ&yÓ*¸ÔVÊ�ÔVÊÓ+£wÔVÊÓ.£yÓ9XÔVÊ�ÔVÊÓ:#wÓ?èÔVÊ�ÔVÊÔU?Ó∆ÓÓ≈Ó! yÓ*gÔU?�ÔU?Ó+;wÔU?Ó0s yÓ6ıÔU?�ÔU?Ó7ÆwÓ<ïÔU?�ÔU?Ó<¯�Ó=‡�Ó?≈�ÔSòÓyÓ+ÔSò�ÔSòÓwÔSòÓ$�Ó±ÔQÓ yÓ"ÔQ�ÔQÓ wÔQÓ�Ó®ÔPIÓ yÓVÔPI�ÔPIÓ?wÔPIÓ P�Ó!›yÓ)âÔPI�ÔPIÓ*õwÔPIÓ,·yÔN°ÓwÔN°Óí yÓ"rÔN°�ÔN°Ó#X�wÔL˙ÓyÓ5ÔL˙�ÔL˙ÓÓwÔL˙Ó!Y�yÓ"ÊÔL˙�ÔL˙Ó#üwÓ&ÔL˙�ÔL˙ÔKRÓyÓ‰ÔKR�ÔKRÓåwÔKRÓãÓ%<Ó*ÓÓ/> Ó8è�Ó:t�yÔI™Ó'wÔI™ÓŒÓ•�ÓäyÓ#ÃÔI™�ÔI™Ó$®�wÔI™Ó&Ó)ÿ�Ó+ΩyÓ0êÔI™�ÔI™Ó1IwÔI™Ó4UÓ9˚�ÔHÓ˙Ó&"Ó+NÔF\Ó'ÔC ÓyÓ'ÊÔC �ÔC Ó(¯wÔC Ó+>Ó3± yÔAeÓÔAeÓΩwÔAeÓøyÓeÔAe�ÔAeÓ ÔAeÓ#+wÓ%€ÔAe�ÔAeÔ?æÓÓÓ�Ó { Ó*Õ�Ó,≤yÓ.`Ô?æ�Ô?æÓ/rwÔ?æÓ1∏yÔ>ÓwÓ∑Ô>�Ô>Ô<oÓuÔ9ÓÛwÓùÔ9�Ô9yÓõÔ9�Ô9ÓCÔ9ÓSÔ9Ó"⁄wÔ9Ó&ÅÓ*WyÓ.NÔ9�Ô9Ó.ıwÔ9Ó1ıyÓ7ªÔ9�Ô9Ó8uÔ9Ó;¨wÓ@…Ô9�Ô9Ô7xÓ∆yÓÔ7x�Ô7xÓfiwÓJÔ7x�Ô7xÓ≠�ÓâyÓ%ÚÔ7x�Ô7xÓ&ΩwÓ,)Ô7x�Ô7xÓ-�Ó.ˆ�yÔ5—ÓwÔ5—Ó¨Ó›�yÓ¬Ô5—�Ô5—Ó™Ô5—ÓRwÔ5—Ó �Ô4)Ó"Ô2ÇÓÓG�yÓ”Ô2Ç�Ô2ÇÓºwÓflÔ2Ç�Ô2ÇÔ0⁄ÓÔ/3ÓÓÀ�ÓXÔ-ãÓÓ.�ÓªÔ+‰ÓÓ„�ÓpÔ*<ÓuÔ&ÌÓÛ wÓqÔ&Ì�Ô&ÌyÓoÔ&Ì�Ô&ÌÓÔ&ÌÓ'Ô&ÌÓ"ÆwÔ&ÌÓ&UyÓ,âÔ&Ì�Ô&ÌÓ-BÔ&ÌÓ0ywÓ4ÊÔ&Ì�Ô&ÌÓ5√ yÔ%FÓ∆wÔ%FÓV�Ó„ÓÈyÓÛÔ%F�Ô%FÓ¨Ô%FÓ"‰wÔ%FÓ'’�yÓ)bÔ%F�Ô%FÓ*JwÓ+mÔ%F�Ô%FÓ,T�Ó.:�Ô#ûÓÓ% Ó/M Ô!˜ÓuÔ®ÓÛwÓ"Ô®�Ô®yÓ Ô®�Ô®ÓäÔ®Ó$≤wÔ®Ó(YyÓ.çÔ®�Ô®Ó/FÔ®Ó2}wÓ6ÍÔ®�Ô®Ó7« yÔ�Ó∆wÔ�ÓV�Ó„ÓÈyÓÛÔ��Ô�Ó¨Ô�Ó"‰wÔ�Ó'’�yÓ)bÔ��Ô�Ó*JwÓ+mÔ��Ô�Ó,T�Ó.:�ÔYÓyÓ`ÔY�ÔYÓÔYÓQwÔYÓB�Ó œÔ±ÓÔ ÓÓ�Ó•�ÓÇ�Ó Ä Ó'o�Ó(¸ Ó/Î�Ó1—yÔbÓwÔbÓ¨ÓÑÓ!�yÓ"NÔb�ÔbÓ#wÔbÓ&�ÔªÓÓ$WyÔÓwÔÓyÓdÔ�ÔÓ/wÔÓ �Ó!¨Ó,0yÓ/)Ô�ÔÓ0CwÔÓ3äyÓ6ÇÔ�ÔÓ7h�wÔlÓ'Ó(nyÓ4MÔl�ÔlÓ5_wÔlÓ7•yÔƒÓ'wÓ»Ôƒ�ÔƒÔÓÓ$W�Ó%3ÔuÓÔ ŒÓÓ"Î�������¢��������TVm$Œ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������11IFuserName#NILTHEN{String.AppendString[msg,"("];String.AppendString[msg,userName];String.AppendChar[msg,')];};IFstate=NILTHENRestore[];DiscardMessages[messages.nWords-SIZE[StringBody[msg.length]]];Append[messages,msg];TryToPrintMessages[];};loggingMessages:BOOLEAN_FALSE;firstUnprintedMessage:CARDINAL_0;writeLineProc:PROC[LONGSTRING]_NIL;RegisterTTY:PUBLICENTRYPROC[writeLine:PROC[LONGSTRING]]={writeLineProc_writeLine;};TryToPrintMessages:INTERNALPROC={msg:LONGSTRING_[250];GetMsg:INTERNALPROC[n:CARDINAL]RETURNS[ok:BOOLEAN]={msg.length_0;IFn<messages.nDiscardedTHENRETURN[TRUE];IFn-messages.nDiscarded>=messages.nStringsTHENRETURN[FALSE];AppendToString[msg,messages,StringOffset[messages,n-messages.nDiscarded]];RETURN[TRUE];};IFNOTloggingMessagesORwriteLineProc=NILTHENRETURN;FORi:CARDINAL_firstUnprintedMessage,i+1UNTILNOTGetMsg[i]DOwriteLineProc[msg!ABORTED=>CONTINUE];firstUnprintedMessage_i+1;ENDLOOP;};SetLogState:PUBLICENTRYPROC[logging:BOOLEAN]RETURNS[old:BOOLEAN]={old_loggingMessages;loggingMessages_logging;IFmessages#NILTHENTryToPrintMessages[];};EnumerateMessages:PUBLICPROC[action:PROC[message:LONGSTRING]RETURNS[continue:BOOLEAN]]={msg:LONGSTRING_[250];FORi:CARDINAL_GetNumberDiscardedMessages[],i+1UNTILNOTGetString[msg,messages,i]DOIFNOTaction[msg].continueTHENEXIT;ENDLOOP;};��qÔg/ÓEyÔ_,ÓwÔ_,Ó¨yÓÔ_,�Ô_,ÓÔ_,Ó©wÔ_,Ó"n�Ô]ÑÓÓ$˝�Ó&1Ô[›ÓÓ$˝ ÔZ5ÓÓ$WÔXéÓyÔVÊÓwÔVÊÓ¨Ó›�yÓ¬ÔVÊ�ÔVÊÓ™ÔVÊÓRwÔVÊÓ ÔU>ÓyÓ(XÔU>�ÔU>Ó(˜wÓ*”ÔU>�ÔU>Ó+6ÔSóÓÓeÔQÔÓÔPHÓÔL¯ÓÛyÓŒÔL¯�ÔL¯ÓáwÔL¯Ó!Ú�yÓ#ÔL¯�ÔL¯Ó$8wÓ'ÔL¯�ÔL¯ÔKQÓÛyÓyÔKQ�ÔKQÓ DwÔKQÓ&5�Ó'¡ÔI©ÓÛ yÓMÔI©�ÔI©ÓÙwÓpÔI©�yÔI©Ó”ÔI©Ó!√wÓ&0ÔI©�ÔI©Ó'�yÓ(•ÔI©�ÔI©Ó)çwÓ*∞ÔI©�ÔI©uÔFZÓÛ wÓ∑ÔFZ�ÔFZyÓ¥ÔFZ�ÔFZÓ\ÔFZÓmÔFZÓ"ÛwÔFZÓ&ö yÓ-´ÔFZ�ÔFZÓ.SwÓ0ŒÔFZ�yÔFZÓ11ÔFZÓ5"wÓ9èÔFZ�ÔFZÓ9Ú�Ó:Ÿ�Ó<æ�ÔD≤ÓÓÂ�Óq ÔCÓuÔ?ºÓÛwÓ}Ô?º�Ô?ºyÓ{Ô?º�Ô?ºÓÂÔ?ºÓ% wÔ?ºÓ(¥�Ó*ô�Ô>ÓyÓ`Ô>�Ô>ÓÔ>ÓQwÔ>ÓB�Ó œuÔ<lÓwÓ◊Ô<l�Ô<lyÓ’Ô<l�Ô<lÓ?Ô<lÓgwÔ<lÓ#yÓ%5Ô<l�Ô<lÓ&�wÓ+lÔ<l�Ô<lyÓ,TÔ<l�Ô<lÓ-(wÔ<lÓ2_yÓ57Ô<l�Ô<lÓ5wÓ:◊Ô<l�Ô<lÓ;æ�Ó=£�Ô:≈Ó Ó�ÓíyÔ9ÓwÔ9ÓΩ�Ó�Ó<yÓ&5Ô9�Ô9Ó&ÓÔ9Ó)˙wÔ9Ó/g�yÓ/ Ô9�Ô9Ó0ÉwÓ2ıÔ9�Ô9Ó3X�yÔ7vÓwÔ7vÓΩÓ$ıÓ'ãyÓ2ùÔ7v�Ô7vÓ3VÔ7vÓ6bwÔ7vÓ;œ�yÓ<2Ô7v�Ô7vÓ<ÎwÓ?–Ô7v�Ô7vÓ@3�Ô5ŒÓÓ"¥Ó(ËÔ4'ÓËyÔ2ÓwÔ2ÓÇ�yÓÂÔ2�Ô2ÓûwÓÔ2�Ô2Ót�Ô0ÿÓyÔ/0ÓÔ/0Ó¨wÔ/0ÓÆyÓ"Ô/0�Ô/0Ó"Ï�wÔ/0Ó$DÓ-$�yÓ/ Ô/0�Ô/0Ó/ÚÔ/0Ó1ôÔ/0Ó5^wÓ:FÔ/0�Ô/0yÔ-àÓwÔ-àÓÚyÓSÔ-à�Ô-àÓwÔ-àÓ�ÓõÓ.�yÓ0˘Ô-à�Ô-àÓ1fiÔ-àÓ5'wÔ-àÓ8)yÓ>†Ô-à�Ô-àÓ?Ö�wÔ+·ÓÓ ∑�yÓ!µÔ+·�Ô+·Ó"àwÔ+·Ó'ŒyÓ*dÔ+·�Ô+·Ó+/wÓ0ûÔ+·�Ô+·Ó1�Ô*9ÓÓ#"�Ó$ØyÔ(íÓwÓ∑Ô(í�Ô(íÔ&ÍÓuÔ#õÓÛ wÓgÔ#õ�Ô#õyÓdÔ#õ�Ô#õÓÔ#õÓÔ#õÓ"£wÔ#õÓ&JyÓ,Ô#õ�Ô#õÓ,æwÓ1•Ô#õ�Ô#õyÓ2åÔ#õ�Ô#õÓ3`wÔ#õÓ8òyÔ!ÛÓ∆wÓfÔ!Û�Ô!ÛÓN�Ó3�Ô LÓÓn�Ó˚Ô§ÓÓe�ÓÚyÔ˝ÓwÔ˝Ó¨Óá�yÓlÔ˝�Ô˝ÓUÔ˝Ó¸wÔ˝Ó"¬ÔUÓuÔÓÛwÓÔ�ÔyÓÔ�ÔÓΩÔÓ"ŒwÔÓ&uyÓ+jÔ�ÔÓ,wÓ.çÔ�ÔÓ.yÓ4¿Ô�ÔÓ5zÔÓ8±wÓ=Ô�ÔyÔ^Ó∆wÔ^Ó“ yÓTÔ^�Ô^Ó wÓ#ÙÔ^�Ô^Ó$X�Ó%?�Ó'$�Ô∑ÓyÓ`Ô∑�Ô∑ÓÔ∑ÓQwÔ∑ÓB�Ó œyÔÓwÔÓÚyÓSÔ�ÔÓwÔÓ�ÓõÓ4yÓ6˙Ô�ÔÓ7‡ÔÓ;)wÔhÓ◊ ÓGÓ#{yÓ$∆Ôh�ÔhÓ%¨�Ô¿ÓÔ¿ÓΩwÔ¿ÓøyÓ&vÔ¿�Ô¿Ó'/Ô¿Ó*;wÓ,ÎÔ¿�Ô¿yÔÓwÓ∑Ô�ÔÔqÓ���������������TVm$ƒ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12END.��qÔg/ÓEyÔ_lÓÛwÓ{Ô_l�Ô_lˇ����������������TVm$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDRemoteStream.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19841:58:46pmPDTDIRECTORYStreamUSING[Handle];PDRemoteStream:DEFINITIONS=BEGINLookup:PROC[fileName:LONGSTRING,createDate:LONGSTRING,name,password:LONGSTRING]RETURNS[bytes:INT];Ifsuccessful,explandsfileNametoincludespecificversion.Ifunsuccessful,raisesError,below.Read:PROC[fileName:LONGSTRING,name,password:LONGSTRING,action:PROC[Stream.Handle]];MayraiseError,below.Error:ERROR[expl:LONGSTRING,retryable:BOOLEAN];retryableisahintthatitmaybeworthittotryagainlater.END.���xÔ_:Ó‚Ô]ìÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó -Ó#sÓ(\Ó*ßyÔXùÓ‚wÔXùÓKyÓ˛ÔXù�ÔXùÓ„wÔXùÓGÔUNÓ‚yÓßÔUN�ÔUNÓå wÔUNÓ"∆�yÓ$´ÔUN�ÔUNÓ%euÔQˇÓÛwÓxÔQˇ�ÔQˇyÓvÔQˇ�ÔQˇÓwÔQˇÓ yÓ ˙ÔQˇ�ÔQˇÓ!≥ÔQˇÓ$ÎwÓ)XÔQˇ�ÔQˇÓ*4 yÓ1âÔQˇ�ÔQˇÓ2BÔQˇÓ5zwÓ9ÊÔQˇ�ÔQˇÓ:√ÔPXÓ∆yÓ=ÔPX�ÔPXÓˆÔPXÓ.wÓ öÔPX�ÔPXyÓ!ÇÔPX�ÔPXÓ"VwÔPXÓ'çyÓ+˛ÔPX�ÔPXÓ,hwÓ. ÔPX�ÔPXÓ.m�xÔN±ÓÓí ÓÓ µÓ&~Ó(#Ó,œÓ1çÔM ÓÓíÓìÓ RÓ$_uÔIªÓÛwÓ˜ÔIª�ÔIªyÓıÔIª�ÔIªÓúwÔIªÓú yÓyÔIª�ÔIªÓ 2ÔIªÓ#jwÓ'◊ÔIª�ÔIªÓ(≥Ó,ÀyÓ3BÔIª�ÔIªÓ3˚ÔIªÓ72wÓ;üÔIª�ÔIªÓ<|yÔHÓ∆wÓÈÔH�ÔHÓLxÔFlÓÓ3ÓnÓ{uÔCÓÛwÓ#ÔC�ÔCyÓ ÔC�ÔCÓ⁄wÔCÓ∂yÓóÔC�ÔCÓPÔCÓ!áwÓ%ÙÔC�ÔCÓ&— yÓ-ÔC�ÔCÓ- wÓ2±ÔC�ÔCÓ3�xÔAvÓÓ†Ó�ÓAÓÓ ÊÓ"=Ó%-Ó&˝Ó* Ó,"Ó-«Ó/ÂÓ3úyÔ>'ÓÛwÓ{Ô>'�Ô>'ˇ�������1��������TVm$ì����������������������������������������������������������������������������������������������������������������������������������������������������������������������PDRemoteStreamStub.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September5,198410:18:39pmPDTDIRECTORYIO,Stream,STP,Rope,PDRemoteStream,String,Commander,PDQueue;PDRemoteStreamStub:PROGRAMIMPORTSRope,STP,String,Stream,Commander,PDQueue,IOEXPORTSPDRemoteStream=BEGINError:PUBLICERROR[expl:LONGSTRING,retryable:BOOL]=CODE;RopeFromString:PROC[string:LONGSTRING]RETURNS[Rope.ROPE]={i:INTEGER_-1;fet:SAFEPROCRETURNS[CHAR]=TRUSTED{RETURN[string[i_i+1]]};IFstring=NILTHENRETURN[NIL];RETURN[Rope.FromProc[string.length,fet]];};Rs:PROC[string:LONGSTRING]RETURNS[Rope.ROPE]=RopeFromString;AppendRope:PROC[string:LONGSTRING,rope:Rope.ROPE]={action:Rope.ActionType=TRUSTED{string[string.length]_c;string.length_string.length+1;};[]_rope.Map[action:action];};Retryable:PROC[code:STP.ErrorCode]RETURNS[BOOL]={RETURN[SELECTcodeFROMconnectionTimedOut,connectionRejected,connectionClosed,noConnection,noNameLookupResponse=>TRUE,ENDCASE=>FALSE]};Lookup:PUBLICPROC[fileName:LONGSTRING,createDate:LONGSTRING,name,password:LONGSTRING]RETURNS[bytes:INT]={bytes_MyLookup[fileName,createDate,name,password!STP.Error=>TRUSTED{expl:LONGSTRING_[80];AppendRope[expl,error];ERRORError[expl:expl,retryable:Retryable[code]]};];};ParseTest:PROC[fileName:Rope.ROPE]RETURNS[server,rest:Rope.ROPE]={f:LONGSTRING_[80];s:LONGSTRING_[80];��xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó -Ó#sÓ) Ó+WyÔXéÓ‚ÔXéÓKwÓëÔXé�ÔXéÓmyÓyÔXé�ÔXéÓwÓyÔXé�ÔXéÓ UÓ$bÓ0Ó4v ÔVÁÓµÔSòÓ‚yÓjÔSò�ÔSòÓÔQÓÛwÔQÓ£yÓ∞ÔQ�ÔQÓOwÓ∞ÔQ�ÔQÓçÓ!˝Ó' Ó/NÓ6yÔPIÓÛwÔPIÓµ ÔN°ÓÛ�yÓÿÔN°�ÔN°ÓëwÔKRÓÛyÓ ÔKR�ÔKRÓ»ÔKRÓŸwÔKRÓoyÓ"OÔKR�ÔKRÓ#ÔKRÓ&@wÓ*≠ÔKR�ÔKRÓ+â yÓ1…ÔKR�ÔKRÓ2ÇwÓ4ÙÔKR�ÔKRÓ5‹�yÓ7¡ÔKR�ÔKRÓ8åwÓ;ÔKR�ÔKRuÔHÓÛ wÓ⁄ÔH�ÔHyÓÿÔH�ÔHÓÄwÔHÓyÓ$1ÔH�ÔHÓ$ÍÔHÓ("wÓ,èÔH�ÔHyÓ-vÔH�ÔHÓ.JwÔHÓ3ÇyÓ7mÔH�ÔHÓ8AwÓ:~ÔH�ÔHÓ;f�Ó=K�ÔF[ÓyÓeÔF[�ÔF[ÓœwÔF[Ó)�Ó∂ÔD¥ÓyÓêÔD¥�ÔD¥Ó/ÔD¥Ó˘ÔD¥Ó†wÔD¥Ó"¨�yÓ#ÔD¥�ÔD¥Ó#⁄wÓ&gÔD¥�ÔD¥Ó'O�yÓ)4ÔD¥�ÔD¥Ó)ÌwÔD¥Ó/"�yÓ/“ÔD¥�ÔD¥Ó0¶wÔD¥Ó5?yÔCÓwÔCÓ¨ÓÅ�yÓfÔC�ÔCÓOÔCÓˆÔCÓ ºwÔCÓ&(�yÓ&ãÔC�ÔCÓ'twÓ(óÔC�ÔCÓ(˙�yÔAeÓwÔAeÓqÓ*˜Ô?ΩÓuÔ<nÓÛwÓÄÔ<n�Ô<nyÓ~Ô<n�Ô<nÓ%wÔ<nÓ%yÓ◊Ô<n�Ô<nÓêÔ<nÓ»wÓ$5Ô<n�Ô<nyÓ%Ô<n�Ô<nÓ%wÔ<nÓ+(yÓ/Ô<n�Ô<nÓ/ÁwÓ2$Ô<n�Ô<nÓ3�Ó4ÒuÔ9ÓÛ wÓgÔ9�Ô9yÓdÔ9�Ô9ÓwÔ9ÓyÓ!æÔ9�Ô9Ó"wÔ9Ó%ÆwÓ*Ô9�Ô9Ó*¯Ó.°yÓ2*Ô9�Ô9Ó2˝wÓ5;Ô9�Ô9Ó6"�Ó8�Ô7xÓÓñÓ"û�yÓ$ÉÔ7x�Ô7xÓ%<wÔ7xÓ*q�Ô5–ÓÓ!�Ó"ùÔ4)ÓÓ¯�ÓÖÓ&h�Ó(MÔ2ÅÓÔ0⁄ÓÓO�Ó‹Ó ñÔ/2ÓuÔ+„ÓÛwÓ£Ô+„�Ô+„yÓ†Ô+„�Ô+„ÓHwÔ+„ÓHyÓkÔ+„�Ô+„Ó wÓ!kÔ+„�Ô+„Ó!¬ yÓ(ˇÔ+„�Ô+„Ó)”wÔ+„Ó/ �yÓ/nÔ+„�Ô+„Ó0'wÓ2ôÔ+„�Ô+„Ó3Ä�Ó5e�yÔ*<ÓwÔ*<Óq�yÓ‘Ô*<�Ô*<ÓswÔ*<ÓßyÓ ÓÔ*<�Ô*<Ó!ßwÔ*<Ó$ÌÓ2kÔ(îÓ◊Ó8Ó(qÓ8[yÓ:ÒÔ(î�Ô(îÓ;™wÓ>Ô(î�Ô(îyÔ&ÌÓ◊wÔ&ÌÓ⁄yÓoÔ&Ì�Ô&ÌÓ(wÓ Ô&Ì�Ô&ÌÔ%EÓuÔ!ˆÓÛwÓxÔ!ˆ�Ô!ˆyÓvÔ!ˆ�Ô!ˆÓÔ!ˆÓ.wÔ!ˆÓ÷ yÓ%≥Ô!ˆ�Ô!ˆÓ&lÔ!ˆÓ)£wÓ.Ô!ˆ�Ô!ˆÓ.Ì yÓ6AÔ!ˆ�Ô!ˆÓ6˚Ô!ˆÓ:2wÓ>üÔ!ˆ�Ô!ˆÔ OÓ∆ÓfiyÓUÔ O�Ô OÓÔ OÓ EwÓ$≤Ô O�Ô OyÓ%öÔ O�Ô OÓ&mwÔ OÓ+•yÓ0Ô O�Ô OÓ0ÄwÓ2!Ô O�Ô OÓ3 �Ó4Ó�Ô®ÓÓò�Ó%Ó%è Ó,√Ó0⁄Ó6ÿ�yÔ�ÓwÓÔ��Ô�ÓmÓ!yÓ∂Ô��Ô�ÓowÔ�Ó#§�ÔYÓ'yÓ§ÔY�ÔYÓ]ÔYÓïwÔYÓ#Ü�Ó%Ô±Ó'Ó"‡yÔ Ó'wÔ Óº Ó"ÕÓ&) Ó,iÔbÓ'Ô∫ÓÔÓuÔƒÓÛwÓÊÔƒ�ÔƒyÓ„Ôƒ�ÔƒÓãwÔƒÓã Ó"hyÓ%Ôƒ�ÔƒÓ&ƒwÓ)Ôƒ�ÔƒyÓ)ÈÔƒ�ÔƒÓ*ºwÔƒÓ/ÙÓ4ºÓ7÷yÓ;_Ôƒ�ÔƒÓ<3wÓ>pÔƒ�ÔƒÓ?W�ÔÓ∆�ÔuÓyÓ{Ôu�ÔuÓ4ÔuÓlwÔuÓ]�ÓÍÔ ŒÓyÓÜÔ Œ�Ô ŒÓ?Ô ŒÓwwÔ ŒÓh�Óı�������*��������TVm$������������������������������������������������������������������������������������������������������������������������������������������������������������2r:LONGSTRING_[80];AppendRope[f,fileName];ParseName[f,s,r];server_Rs[s];rest_Rs[r];};ParseName:PUBLICPROC[fileName,server,rest:LONGSTRING]={state:NAT_0;server.length_0;rest.length_0;FORi:NATIN[0..fileName.length)DOc:CHAR_fileName[i];charType:NAT_SELECTcFROM'[=>0,'/=>1,']=>2,'<=>3,'>=>4,'!=>5,IN['0..'9],IN['a..'z],IN['A..'Z]=>6,'-,'+,'$,'.,''=>6ENDCASE=>Error[expl:"Illegalcharacterinfilename",retryable:FALSE];SELECTstate*7+charTypeFROM0*7+0=>state_1;0*7+1=>state_7;1*7+6=>{server[server.length]_c;server.length_server.length+1};1*7+2=>state_2;2*7+3=>{state_3;rest[rest.length]_'<;rest.length_rest.length+1};3*7+6,3*7+4=>{rest[rest.length]_c;rest.length_rest.length+1};3*7+5=>{state_4;rest[rest.length]_c;rest.length_rest.length+1};4*7+6=>{rest[rest.length]_c;rest.length_rest.length+1;IFcIN['0..'9]THENstate_5ELSEIFc='lORc='LORc='hORc='HTHENstate_6ELSEstate_9};5*7+6=>{rest[rest.length]_c;rest.length_rest.length+1;IFcNOTIN['0..'9]THENstate_9};7*7+6=>{server[server.length]_c;server.length_server.length+1};7*7+1=>{state_8;rest[rest.length]_'<;rest.length_rest.length+1};7*8+6=>{rest[rest.length]_c;rest.length_rest.length+1};7*8+1=>{rest[rest.length]_'>;rest.length_rest.length+1};���qÔg/ÓE…�wÔ_,ÓyÓÜÔ_,�Ô_,Ó?Ô_,ÓwwÔ_,Óh�ÓıÔ]ÖÓÓ∑ Ô[›ÓÓzÓ⁄ÔZ5ÓÓ�ÓûÔXéÓÓ•�Ó2ÔVÊÓuÔSóÓÛwÓ¡ÔSó�ÔSóyÓæÔSó�ÔSóÓfÔSóÓwwÔSóÓ! Ó'⁄Ó,?yÓ/YÔSó�ÔSóÓ0ÔSóÓ3JwÓ7∑ÔSó�ÔSóÓ8û�Ó:É�ÔQÓyÓØÔQ�ÔQÓówÔQÓ®�Ó5ÔPHÓÓ�Ó™ÔN°Ó Ó≤�Ó?yÔL˘ÓwÔL˘ÓÚyÓSÔL˘�ÔL˘Ó;ÔL˘ÓLwÔL˘Ó#yÓ(lÔL˘�ÔL˘Ó)R�wÔKRÓyÓÆÔKR�ÔKRÓywÔKRÓã�ÓÔI™ÓyÓ£ÔI™�ÔI™ÓåwÔI™Óú�yÓ )ÔI™�ÔI™Ó »wÔI™Ó$¸�yÓ&ÔI™�ÔI™Ó&‘wÔHÓ'ÓfÓ¸ÔF[Ó'Ó¥ÓIÔD¥Ó'ÓfÓ¸ÔCÓ'Ó¥ÓIÔAeÓ'Ó¥ÓIÔ?ΩÓ'Ó}ÓyÔ>Ó'wÔ>Ó˝yÓ`Ô>�Ô>Ó �wÔ>Ó7yÓ#yÔ>�Ô>Ó#‚�wÔ>Ó%OÓ)ÈÓ,~Ô<nÓ'Ó’ÓjÓOÓ€Ó Ó"¶�yÔ:«Ó'wÔ:«Ó)Óæ Ó&œÓ+¨Ó1ïÓ3C Ó9 yÔ9Ó˙wÓòÔ9�Ô9Ó˚�yÔ7xÓwÔ7xÓËyÓ%kÔ7x�Ô7xÓ&$wÔ5–Ó'ÓÕÓcÓ!î�Ó#!Ô4)Ó'ÓÕÓcÓ!î�Ó#!Ô2ÅÓ'ÓÕÓcÓ+{�Ó-Ó.†Ó6∫�Ó8FÔ0⁄Ó˙�ÓflÔ/2Ó'ÓÕÓcÓ!î�Ó#!Ô-ãÓ'ÓÕÓcÓ"D�Ó#—Ó%Ó/�Ó0ùÓ2£ Ó9Q�Ó:fi Ô+‰Ó˙�ÓflÔ*<Ó'Ô(îÓ'ÓÕÓcÓ(§�Ó*1Ó+ Ó2w�Ó4 Ó:≤�Ó<óÔ&ÌÓ'ÓÕÓcÓ"D�Ó#—Ó%Ó/�Ó0ùÓ25 Ó8„�Ó:p Ô%FÓ˙�ÓflÔ#ûÓ'ÓÕÓc�Ô!˜Ó8Ó"…�Ó$VÓ%Ó Ó,ú�Ó.) Ó4◊�Ó6ºyÔ OÓ8wÔ OÓfl�yÓ˛Ô O�Ô OÓh�wÔ OÓ’yÓ!‡Ô O�Ô OÓ"ôwÔ OÓ%•Ó(÷�Ó*c�yÔ®Ó8Ô®ÓáwÔ®Ó.�ÓM�Ó!2yÓ"rÔ®�Ô®Ó#N�wÔ®Ó$¶�Ó%∆�Ó'´yÓ)oÔ®�Ô®Ó*K�wÔ®Ó+£�Ó,¬�Ó.®yÓ0KÔ®�Ô®Ó1'�wÔ®Ó2ÄyÓ6xÔ®�Ô®Ó71wÔ®Ó:=Ó=n�Ó>˚�yÔ�Ó8wÔ�ÓáÓ∏�Ó!E�ÔYÓ8Ô±Ó'ÓÕÓc�Ô Ó8Ó"…�Ó$VÓ%Ó Ó,ú�Ó.) Ó4◊�Ó6ºyÔbÓ8wÔbÓfl�yÓ˛Ôb�ÔbÓÁÔbÓwÔbÓ ◊yÓ$‚Ôb�ÔbÓ%õwÔbÓ(ßÓ+ÿ�Ó-e�Ô∫Ó8ÔÓ'ÓÕÓcÓ+{�Ó-Ó.†Ó6∫�Ó8FÔlÓ˙�ÓflÔƒÓ'ÓÕÓcÓ"D�Ó#—Ó%Ó/�Ó0ùÓ2£ Ó9Q�Ó:fi ÔÓ˙�ÓflÔuÓ'ÓÕÓcÓ(§�Ó*1Ó+ Ó2w�Ó4 Ó:≤�Ó<óÔ ŒÓ'ÓÕÓcÓ(§�Ó*1Ó,7 Ó2Â�Ó4r Ó; �Ó=ˇ�������°��������TVm$;��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������37*8+5=>{state_4;rest[rest.length]_c;rest.length_rest.length+1};ENDCASE=>Error[expl:"Illegalfilename",retryable:FALSE];ENDLOOP;SELECTstateFROM3,8=>{rest[rest.length]_'!;rest[rest.length+1]_'H;rest.length_rest.length+2};5,6=>NULL;ENDCASE=>Error[expl:"Illegalfilename",retryable:FALSE];};MyLookup:PROC[fileName,createDate,name,password:LONGSTRING]RETURNS[bytes:INT_0]={server:LONGSTRING_[80];rest:LONGSTRING_[80];stp:STP.Handle_STP.Create[];open:BOOL_FALSE;BEGINENABLEUNWIND=>{IFopenTHENstp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.Destroy};expandedName:LONGSTRING_[80];success:BOOLEAN_FALSE;NoteFileProc:STP.NoteFileProcType=TRUSTED{fileInfo:STP.FileInfo_stp.GetFileInfo[];continue_no;success_TRUE;AppendRope[expandedName,file];bytes_fileInfo.size;createDate.length_0;AppendRope[createDate,fileInfo.create];};desiredProps:STP.DesiredProperties_ALL[FALSE];desiredProps[directory]_TRUE;desiredProps[nameBody]_TRUE;desiredProps[version]_TRUE;desiredProps[createDate]_TRUE;desiredProps[size]_TRUE;ParseName[fileName,server,rest];String.AppendChar[expandedName,'[];String.AppendString[expandedName,server];String.AppendChar[expandedName,']];[]_stp.Open[Rs[server]];open_TRUE;stp.Login[Rs[name],Rs[password]];stp.SetDesiredProperties[desiredProps];stp.Enumerate[Rs[rest],NoteFileProc];stp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.Destroy;IFsuccessTHEN{String.Copy[to:fileName,from:expandedName]}ELSEError[expl:"Filenotfound",retryable:FALSE];END;���qÔg/ÓE…�wÔ_,Ó'ÓÕÓcÓ"D�Ó#—Ó%Ó/�Ó0ùÓ25 Ó8„�Ó:p Ô]ÖÓ˙�ÓflyÔ[›Ó'wÔ[›Ó)Óæ Ó&œÓ+¨ Ó2Z yÓ8ôÔ[›�Ô[›Ó9SwÓ<7Ô[›�Ô[›Ó<õ�yÔZ6ÓwÓ∑ÔZ6�ÔZ6yÔXéÓwÔXéÓ◊yÓÔXé�ÔXéÓ¡wÔVÁÓÓ¢�Ó◊ÓmÓ$Æ�Ó&;Ó( Ó3¨�Ó59Ó7Ø Ó>]�ÔU?ÓË Óñ�Ó{ÔSòÓÓ¢�Ó◊yÓmÔSò�ÔSòÓUwÓ≠ÔSò�ÔSòyÔQÓwÔQÓÓ≠ Ó$æÓ)õ Ó0H yÓ6àÔQ�ÔQÓ7AwÓ:&ÔQ�ÔQÓ:â�ÔPIÓuÔL˙ÓÛwÓÔL˙�ÔL˙yÓ|ÔL˙�ÔL˙Ó$wÔL˙Ó# Ó"fl Ó*Ó.+yÓ4¢ÔL˙�ÔL˙Ó5[ÔL˙Ó8íwÓ<ˇÔL˙�ÔL˙yÔKRÓ∆wÔKRÓ“yÓBÔKR�ÔKRÓ¨wÔKRÓ“�Ó _Ó!˜�Ó#‹�ÔI´ÓyÓäÔI´�ÔI´ÓCÔI´Ó{wÔI´Ó l�Ó!˘ÔHÓyÓÔH�ÔHÓÿÔHÓwÔHÓ�Ó çÔF\ÓyÓºÔF\�ÔF\Ó[wÓºÔF\�ÔF\ÓÓÛ�yÓÄÔF\�ÔF\ÓwÓ ÄÔF\�ÔF\Ó ÿÔD¥ÓyÓÔD¥�ÔD¥Ó©wÔD¥Ó†�yÓ-ÔD¥�ÔD¥ÓÊwÓÀÔD¥�ÔD¥yÔCÓÔCÓ;ÔCÓ`wÔCÓ"Ó$ö�}ÔAeÓxÔAeÓ∆}ÓÔAe�ÔAeÓæxÔAeÓœ Ó#Ô�}Ó%ÔAe�ÔAeÓ%æxÓ'1ÔAe�ÔAeÓ'âÓ+=}Ó-”ÔAe�ÔAeÓ.åxÔAeÓ3¿�}Ó4pÔAe�ÔAeÓ5;xÓ:§ÔAe�ÔAeÓ;UÔ?ΩÓÓ?�Ó¨ wÔ>ÓÔ<nÓyÓgÔ<n�Ô<nÓ Ô<nÓ#WwÔ<nÓ(H�Ó)’Ô:«ÓyÓBÔ:«�Ô:«Ó˚wÔ:«Ó g�yÓ!ÙÔ:«�Ô:«Ó"≠wÓ%íÔ:«�Ô:«uÔ9ÓwÓÔ9�Ô9yÓÔ9�Ô9ÓµwÓ Ô9�Ô9Ó mÓ+Á�yÓ-ÃÔ9�Ô9Ó.ÖwÔ9Ó3∫�Ô7xÓ'yÓâÔ7x�Ô7xÓ(wÓâÔ7x�Ô7xÓ‡Ó$7�Ó%ƒÔ5–Ó'ÓÕ�ÓZÔ4)Ó'Ó⁄�yÓgÔ4)�Ô4)Ó wÓ ìÔ4)�Ô4)Ô2ÅÓ'Ó)¥Ô0⁄Ó'Óª�ÓH Ô/2Ó'Ó"�Ó#úÔ-äÓ'Ó&∑Ô+„Ó'Ô*;ÓyÓ¥Ô*;�Ô*;ÓSwÓ¥Ô*;�Ô*;Ó Ó+*�yÓ,∑Ô*;�Ô*;Ó-äwÓ.˝Ô*;�yÔ*;Ó/`wÓ2˛Ô*;�Ô*;Ó3a�Ô(îÓÓ#O�yÓ$€Ô(î�Ô(îÓ%ïwÓ(Ô(î�Ô(îÔ&ÏÓÓ$V�yÓ%„Ô&Ï�Ô&ÏÓ&úwÓ)Ô&Ï�Ô&ÏÔ%EÓÓ"E�yÓ#—Ô%E�Ô%EÓ$ãwÓ&˝Ô%E�Ô%EÔ#ùÓÓ$X�yÓ%ÂÔ#ù�Ô#ùÓ&ûwÓ)Ô#ù�Ô#ùÔ!ˆÓÓ (�yÓ!µÔ!ˆ�Ô!ˆÓ"nwÓ$·Ô!ˆ�Ô!ˆÔ NÓÓ"éÓ&ÛÔßÓÓ+LÓ,åÔˇÓ!Ó+ÚÔXÓÓ+LÓ,åÔ∞ÓÓ`�ÓÌÔÓÓà�yÓÔ�ÔÓŒwÓAÔ�ÔÔaÓÓ!r ÔπÓ'ÔÓÓ#Y ÔjÓ ÓT�yÓRÔj�ÔjÓÒwÓRÔj�ÔjÓ©Ó"]yÓ$ÛÔj�ÔjÓ%¨wÔjÓ*·�yÓ+ëÔj�ÔjÓ,\wÓ1ÀÔj�ÔjÓ2|xÔ√ÓÓ?�Ó¨yÔÓwÔÓΩyÓpÔ�ÔÓ)wÔÓ6Ó)çÓ/ÊÓ3∆ yÔtÓwÔtÓd ÓuÓ"˝Ó%rÓ*à yÓ0«Ôt�ÔtÓ1ÅwÓ4eÔt�ÔtÓ4…�yÔ ÃÓwÓùÔ Ã�Ô Ã�������ß��������TVm$¥����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4};Read:PUBLICPROC[fileName:LONGSTRING,name,password:LONGSTRING,action:PROC[Stream.Handle]]={MyRead[fileName,name,password,action!STP.Error=>TRUSTED{expl:LONGSTRING_[80];AppendRope[expl,error];ERRORError[expl:expl,retryable:Retryable[code]]};];};MyRead:PROC[fileName:LONGSTRING,name,password:LONGSTRING,action:PROC[Stream.Handle]]={server:LONGSTRING_[80];rest:LONGSTRING_[80];stp:STP.Handle_STP.Create[];open:BOOL_FALSE;stream:Stream.Handle;BEGINENABLEUNWIND=>{IFopenTHENstp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.DestroyIFstream#NILTHEN{stream.Delete;stream_NIL};};ParseName[fileName,server,rest];[]_stp.Open[Rs[server]];open_TRUE;stp.Login[Rs[name],Rs[password]];stream_Stream.FromIOStreams[stp.CreateRemoteStream[Rs[rest],read],NIL];action[stream];stp.Close[!STP.Error=>TRUSTED{CONTINUE}];stp_stp.Destroy;stream.Delete;stream_NILEND;};PeachLogCommand:Commander.CommandProc=TRUSTED{out_cmd.out;PDQueue.RegisterTTY[WriteLine];[]_PDQueue.SetLogState[TRUE];};out:IO.STREAM_NIL;WriteLine:PROC[line:LONGSTRING]~{out.PutRope[Rs[line]];out.PutRope["\n"];};Commander.Register["PeachLog",PeachLogCommand,""];���qÔg/ÓE…�wÔ_,ÓuÔ[›ÓÛwÓ˜Ô[›�Ô[›yÓıÔ[›�Ô[›ÓúÔ[›Ó≠wÔ[›ÓT yÓ$1Ô[›�Ô[›Ó$ÎÔ[›Ó("wÓ,èÔ[›�Ô[›Ó-kÓ1ÉyÓ7˙Ô[›�Ô[›Ó8≥Ô[›Ó;ÎwÓ@WÔ[›�Ô[›ÔZ6Ó∆yÓXÔZ6�ÔZ6ÓˇwÓ{ÔZ6�ÔZ6ÓfiÓ$ �Ó%Ô�ÔXéÓÓ·Ó"˘Ó)OÓ-g�yÔVÁÓwÓÔVÁ�ÔVÁÓmÓ!yÓ∂ÔVÁ�ÔVÁÓowÔVÁÓ#§�ÔU?Ó'yÓ§ÔU?�ÔU?Ó]ÔU?ÓïwÔU?Ó#Ü�Ó%ÔSòÓ'Ó"‡yÔQÓ'wÔQÓº Ó"ÕÓ&) Ó,iÔPIÓ'ÔN°ÓÔL˙ÓuÔI™ÓÛwÓ˝ÔI™�ÔI™yÓ˚ÔI™�ÔI™Ó£wÔI™Ó¢ yÓ!ÔI™�ÔI™Ó"8ÔI™Ó%pwÓ)›ÔI™�ÔI™Ó*πÓ.—yÓ5HÔI™�ÔI™Ó6ÔI™Ó98wÓ=•ÔI™�ÔI™ÔHÓ∆yÓXÔH�ÔHÓˇwÓ{ÔH�ÔHÓfiÓ$ �Ó%Ô�ÔF\ÓyÓäÔF\�ÔF\ÓCÔF\Ó{wÔF\Ó l�Ó!˘ÔD¥ÓyÓÔD¥�ÔD¥ÓÿÔD¥ÓwÔD¥Ó�Ó çÔC ÓyÓºÔC �ÔC Ó[wÓºÔC �ÔC ÓÓÛ�yÓÄÔC �ÔC ÓwÓ ÄÔC �ÔC Ó ÿÔAeÓyÓÔAe�ÔAeÓ©wÔAeÓ†�yÓ-ÔAe�ÔAeÓÊwÓÀÔAe�ÔAeÔ?æÓÓÓ yÔ>ÓÔ>Ó;Ô>Ó`wÔ>Ó"Ó$ö�}Ô<oÓxÔ<oÓ∆}ÓÔ<o�Ô<oÓæxÔ<oÓœ Ó#Ô�}Ó%Ô<o�Ô<oÓ%æxÓ'1Ô<o�Ô<oÓ'âÓ+=}Ó-”Ô<o�Ô<oÓ.åxÔ<oÓ3¿�}Ó4pÔ<o�Ô<oÓ5;xÓ:§Ô<o�Ô<oÓ;UÔ:«ÓÓ?�Ó¨ yÔ9ÓwÔ9ÓΩÓ-�yÓÔ9�Ô9Ó˚Ô9Ó¢wÔ9Ó#gÓ-:Ó1´�yÓ37Ô9�Ô9Ó4 wÓ5CÔ9�Ô9Ó5Û�Ô7xÓÔ5–ÓÓ"éÓ&ÛÔ4)ÓÓ`�ÓÌÔ2ÅÓÓà�yÓÔ2Å�Ô2ÅÓŒwÓAÔ2Å�Ô2ÅÔ0⁄ÓÓ!r Ô/2ÓÓÜ�Ó5Ó>yÔ-ãÓËwÓÙÔ-ã�Ô-ãÓW�Ô+‰ÓÔ*<Ó ÓT�yÓRÔ*<�Ô*<ÓÒwÓRÔ*<�Ô*<Ó©Ó"]yÓ$ÛÔ*<�Ô*<Ó%¨wÔ*<Ó*·�yÓ+ëÔ*<�Ô*<Ó,\wÓ1ÀÔ*<�Ô*<Ó2|xÔ(îÓÓ?�Ó¨wÔ&ÌÓ Ô%EÓÓÜ�yÓÔ%E�Ô%EÓ˚Ô#ûÓwÓùÔ#û�Ô#ûÔ!ˆÓuÔßÓÛwÓ÷Ôß�ÔßÓ”Ó/�yÓ0ÈÔß�ÔßÓ1¢wÔßÓ6◊�Ô�ÓÓz�ÓÔXÓÔ±ÓÓO�Ó‹yÓ#ëÔ±�Ô±Ó$JwÓ&ΩÔ±�Ô±Ó' �Ô ÓÔ∫ÓÛyÓ‚Ô∫�Ô∫ÓLwÔ∫ÓΩ�yÓJÔ∫�Ô∫Ó2wÓUÔ∫�Ô∫uÔÓÛwÓÔ�ÔyÓÔ�ÔÓ™wÔÓ™yÓ=Ô�ÔÓˆÔÓ#.wÓ'õÔ�ÔÓ(Ç�Ó*�ÔkÓÔƒÓÔÓÔ ÕÓÛÓ&Ó2Úˇ�������S��������TVm$3������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5END.���qÔg/ÓE…�yÔ^óÓÛwÓ{Ô^ó�Ô^óˇ����������������TVm$���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDStrikeFormat.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.LastchangedbyDougWyatt,August23,19823:34pmLastchangedbyMichaelPlass,September19,19841:12:52pmPDTPDStrikeFormat:DEFINITIONS={Header:TYPE=MACHINEDEPENDENTRECORD[format(0):Format,min(1),max(2):CHARACTER,--minimum,maximumcharactercodesmaxwidth(3):CARDINAL--maximumspacingwidthofanycharacter];Flag:TYPE=MACHINEDEPENDENT{F(0),T(1)};Format:TYPE=MACHINEDEPENDENTRECORD[oneBit:Flag,--alwaysTindex:Flag,--Fforsimplestrike,Tforstrikeindexfixed:Flag,--Tifallcharactershavesamewidthkerned:Flag,--TifKerned,FifPlainunused:[0..7777B]--shouldbe0];BoundingBox:TYPE=MACHINEDEPENDENTRECORD[fbbox(0),fbboy(1):INTEGER,--boundingboxoffsetsfbbdx(2),fbbdy(3):INTEGER--boundingboxsize];Body:TYPE=MACHINEDEPENDENTRECORD[length(0):CARDINAL,--numberofwordsinstrikebodyascent(1),descent(2):INTEGER,--scanlinesaboveandbelowthebaselinexoffset(3):INTEGER,--always0(obsolete)raster(4):CARDINAL--numberofwordsperscanlineinthestrikefollowedbybitmap(raster*(ascent+descent)words)followedbyXTable(toendofbody)];WidthEntry:TYPE=MACHINEDEPENDENTRECORD[offset,width:[0..377B]];nullWidthEntry:WidthEntry=[377B,377B];XTable:TYPE=RECORD[SEQUENCECOMPUTEDCARDINALOFCARDINAL];WTable:TYPE=RECORD[SEQUENCECOMPUTEDCARDINALOFWidthEntry];PlainStrike:TYPE=MACHINEDEPENDENTRECORD[header:Header,--commontoallstrikefontsbody:Body];KernedStrike:TYPE=MACHINEDEPENDENTRECORD[header:Header,--commontoallstrikefontsbox:BoundingBox,--thefontboundingboxbody:Body--theactualstrike��xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó˛ÓEÓÓ‘Ó!HÓ%ËÓ(%Ó+kÓ.zÔZ5Ó‚Ó˛ÓEÓÓaÓ"AÓ(›Ó+Ó.`Ó3IÓ5îwÔVÊÓ‚yÓ≥ÔVÊ�ÔVÊÓô wÔVÊÓ!”�Ó#∏�ÔSóÓ‚yÓ;ÔSó�ÔSóÓÙwÔSóÓ≠�yÓíÔSó�ÔSóÓ£ÔSóÓ∏ÔSóÓ'ewÓ,SÔSó�ÔSóÔQÓÛ ÓãÔPHÓÛ yÓbÔPH�ÔPHÓ-wÓ!üÔPH�ÔPHxÓ"|ÔPH�ÔPHÓ"ı�Ó#ÛÓ*SÓ0∞Ó6õwÔN°ÓÛyÓqÔN°�ÔN°Ó<xÔN°Ó ,Ó!£Ó(Ó,◊Ó0ÉÓ2&Ó4øwÔL˘ÓÛÔI™Ó‚yÓÄÔI™�ÔI™Ó9wÔI™ÓÚ�yÓ◊ÔI™�ÔI™ÓËÔI™Ó˝wÔI™Ó%™�yÓ&ZÔI™�wÔI™Ó'yÓ)ìÔI™�wÔI™Ó*LÔF[Ó‚yÓEÔF[�ÔF[Ó˛wÔF[Ó∂�yÓõÔF[�ÔF[Ó≠ÔF[Ó¡ÔF[Ó'nwÓ,\ÔF[�ÔF[ÔD¥ÓÛÓ“xÓNÔD¥�ÔD¥Ó»�Ó≈Ó�wÔCÓÛÓ7xÓ¥ÔC�ÔCÓ.�Ó+�ÓåÓ¥Ó!‰Ó%˛�Ó'jÓ)íÓ-TwÔAeÓÛÓÍxÓgÔAe�ÔAeÓ‡�Ófi�ÓJÓ†Óõ Ó% Ó(1Ó+õwÔ?ΩÓÛÓ xÓÜÔ?Ω�Ô?ΩÓˇ�Ó˝�ÓiÓøÓ"Õ�Ó$-Ó%ÑwÔ>ÓÛÓ6 xÓâÔ>�Ô>Ó�Ó�Ó"FÓ$�wÔ<nÓÛÔ9Ó‚yÓÔ9�Ô9ÓΩwÔ9Óv�yÓ[Ô9�Ô9ÓlÔ9Ó#ÅÔ9Ó+.wÓ0Ô9�Ô9Ô7wÓÛÓÊyÓ˙Ô7w�Ô7wÓcwÓ"9Ô7w�Ô7wxÓ#Ô7w�Ô7wÓ#è�Ó$çÓ*pÓ-wÔ5–ÓÛÓÒyÓÔ5–�Ô5–Ó{wÔ5–xÓ#YÔ5–�Ô5–Ó#”�Ó$–Ó*≥Ó-_wÔ4(ÓÛÔ0ŸÓ‚yÓ˙Ô0Ÿ�Ô0ŸÓ≥wÔ0ŸÓk�yÓPÔ0Ÿ�Ô0ŸÓbÔ0ŸÓvÔ0ŸÓ&#wÓ+Ô0Ÿ�Ô0ŸÔ/2ÓÛ yÓIÔ/2�Ô/2ÓwÓÄÔ/2�Ô/2xÓ]Ô/2�Ô/2Ó÷�Ó‘Ó$πÓ&\Ó*1Ó+◊Ó/ôwÔ-äÓÛyÓïÔ-ä�Ô-äÓˇwÓ"’Ô-ä�Ô-äxÓ#≤Ô-ä�Ô-äÓ$+�Ó%)Ó*flÓ.™Ó1NÓ5Ó7dwÔ+„ÓÛ yÓãÔ+„�Ô+„ÓıwÓÀÔ+„�Ô+„xÓßÔ+„�Ô+„Ó!�ÓÓ#x�Ó$¨ wÔ*;ÓÛ yÓ⁄Ô*;�Ô*;Ó•xÔ*;ÓñÓ Ó#ÚÓ%ïÓ)jÓ+æÓ0Ó2ñÓ4‚Ô(îÓÛÓ@ÓÓôÓ+∞Ô&ÏÓÛÓ@ÓÓ‚Ó�Ó!éÓ#2wÔ%EÓÛÔ!ˆÓ‚ yÓÚÔ!ˆ�Ô!ˆÓ´wÔ!ˆÓc�yÓHÔ!ˆ�Ô!ˆÓZÔ!ˆÓ"nÔ!ˆÓ*wÓ/ Ô!ˆ�Ô!ˆÓ/mÓ7f Ô NÓ‚ÓF Ó ‹�Ó"¡ÔˇÓ‚yÓEÔˇ�ÔˇÓ˛wÔˇÓ∑�yÓúÔˇ�ÔˇÓpwÓäÔˇ�yÔˇÓÌÔˇÓ%±ÔˇÓ,”ÔˇÓ3éÔˇÓ5®wÓ;flÔˇ�ÔˇÓ<B�ÔXÓ‚yÓùÔX�ÔXÓVwÔXÓ�yÓÙÔX�ÔXÓ«wÓ‚ÔX�yÔXÓEÔXÓ& ÔXÓ-+ÔXÓ3ÊwÔXÓ6�ÔÓ‚yÓaÔ�ÔÓwÔÓ”�yÓ∏Ô�ÔÓ ÔÓ!fiÔÓ)ãwÓ.yÔ�ÔÔaÓÛÓÛxÓ+Ôa�ÔaÓ•�Ó¢Ó" Ó#≤Ó%≠Ó)owÔπÓÛÓÍÔÓÛÔ√Ó‚yÓ€Ô√�Ô√ÓîwÔ√ÓM�yÓ2Ô√�Ô√ÓCÔ√Ó#WÔ√Ó+wÓ/ÛÔ√�Ô√ÔÓÛÓÛxÓ+Ô�ÔÓ•�Ó¢Ó" Ó#≤Ó%≠Ó)owÔtÓÛÓ#xÓ%Ôt�ÔtÓû�ÓúÓ ËÓ#∫Ó)úwÔ ÃÓÛÓÍxÓâÔ Ã�Ô ÃÓ�Ó�ÓLÓ \ˇ�������–��������TVm$˘������������������������������������������������������������2followedbyWTable];}.���qÔg/ÓE…�xÔ_,ÓÛÓ@ÓwÔ]ÖÓÛÔZ6Ó‚ˇ����������������TVm$� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDTextBitmap.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September19,19849:12:44amPDTDIRECTORYPDInterpBitmap;PDTextBitmap:DEFINITIONS=BEGINSetFont:PROC[fontFileName:LONGSTRING,userName,password:LONGSTRING]RETURNS[ok:BOOLEAN];fontFileNameshouldbeafullfilenameofakernedstrike(ks)font;iffileisnotavalidksfile,okisfalse.MayraisePDRemoteStream.Error;Example:"[Indigo]<AltoFonts>TimesRoman18.ks"Warning:thismoduleisnotmonitored,soavoidchangingfontswhileothercallsarebeingmade.fontName:READONLYLONGSTRING;FontAscent:PROCRETURNS[INTEGER];FontDescent:PROCRETURNS[INTEGER];TextWidth:PROC[string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST]RETURNS[INTEGER];TextToBitmap:PROC[dest:PDInterpBitmap.BitmapDesc,string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST,function:PDInterpBitmap.Function];Putsthetextintothebitmap,assumingastrike-fontorientationofthecharacters(i.e.,thelineoftextrunsinthefastdirection).Thetextwillbeplacedsothefirstcharacterhasitsreferencepointattheoriginofthebitmap.Thetextwillbeclippedtothedestinationbounds.END.���xÔ_:Ó‚Ô]ìÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXùÓ‚wÔXùÓKÔUNÓ‚yÓÃÔUN�ÔUNÓ≤ wÔUNÓ Ï�yÓ"—ÔUN�ÔUNÓ#äuÔQˇÓ‚wÓ©ÔQˇ�ÔQˇyÓßÔQˇ�ÔQˇÓOwÔQˇÓN yÓ"ÔQˇ�ÔQˇÓ"ΩÔQˇÓ%ÙwÓ*aÔQˇ�ÔQˇÓ+>Ó2&yÓ8ùÔQˇ�ÔQˇÓ9VÔQˇÓ<éwÓ@˚ÔQˇ�ÔQˇyÔPXÓµwÔPXÓ¡yÓòÔPX�ÔPXÓQwÓ8ÔPX�ÔPXÓõ�xÔN±ÓÛÓxÓæÓç�Ó ¬Ó#8Ó%åÓ)0Ó*‘�Ó,Ó0|Ó4?Ó7Ó:LÓ;¢Ó=˜Ó?bÔM Ó∆�Ó˚ÓAÓÓΩÓπÓ$ÔKbÓÛÓ"Ó]ÔIªÓÛÓ $ÔHÓÛÓÓØÓeÓ—Ó"4 Ó(ÈÓ*¢Ó.5Ó4Ó7YÓ:„Ó>cÔFlÓ∆ÓÓªwÔCÓ‚yÓ·ÔC�ÔCÓµÔCÓ˝ÔCÓ ÓwÓ%ZÔC�ÔCuÔ?œÓ‚ wÓ∞Ô?œ�Ô?œyÓ≠Ô?œ�Ô?œÓUÔ?œÓUwÔ?œÓ `�yÓ √Ô?œ�Ô?œÓ!-wÓ&Ô?œ�Ô?œÓ&f�uÔ<ÄÓ‚ wÓvÔ<Ä�Ô<ÄyÓsÔ<Ä�Ô<ÄÓÔ<ÄÓwÔ<ÄÓ!&�yÓ!âÔ<Ä�Ô<ÄÓ!ÛwÓ&…Ô<Ä�Ô<ÄÓ',�uÔ91Ó‚wÓYÔ91�Ô91yÓVÔ91�Ô91Ó˛wÔ91Ó˝yÓ∞Ô91�Ô91ÓiÔ91Ó"†wÓ' Ô91�Ô91Ó'ÍyÓ+sÔ91�Ô91Ó,[wÔ91Ó.l�Ó/˘Ó1ÜyÓ69Ô91�Ô91Ó7!wÔ91Ó92�yÓ:øÔ91�Ô91Ó;®wÓ=4Ô91�yÔ91Ó=åwÓ@qÔ91�Ô91yÔ7äÓµwÔ7äÓ¡�yÓ$Ô7ä�Ô7äÓçwÓdÔ7ä�Ô7äÓ«�uÔ4;Ó‚wÓ¢Ô4;�Ô4;yÓ†Ô4;�Ô4;ÓHwÔ4;ÓGÓ Ó2YyÓ6©Ô4;�Ô4;Ó7bÔ4;Ó:ôwÓ?Ô4;�Ô4;Ô2îÓµyÓ>Ô2î�Ô2îÓ'wÔ2îÓ7�ÓƒÓQyÓÔ2î�Ô2îÓÌwÔ2îÓ ˛�yÓ"äÔ2î�Ô2îÓ#swÓ%�Ô2î�yÔ2îÓ%WwÓ(<Ô2î�Ô2îÓ)Ó/xÔ0ÌÓÛÓÓ\Ó#ÓÈÓ5Ó#Ó(Ó�Ó*# Ó0¨ Ó7ÑÓ9(Ó;t Ô/EÓ∆Ó ÓÓ∫Ó^Ó$Ó!,Ó"“Ó%Ó'∂ Ó.†Ó1cÓ4*Ó6øÓ8èÓ<ΩÓ>vÔ-ûÓ∆ÓïÓÄÓˆÓ“Ó$íÓ( Ó)ÆÓ+˙Ó/ËÓ1åÓ3ÿÓ93Ó;ˆÓ>ΩÔ+˜Ó∆ÓñÓ'ÓÃÓ Ó"yÔ(®Ó‚wÓiÔ(®�Ô(®���������������TVm$≥����������������������������������������������������������������������������������������������������������������������������������PDTextBitmapImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September26,19845:33:47pmPDTDIRECTORYEnvironment,PDInterpBitmap,PDInterpSysCalls,PDTextBitmap,Stream,PDStrikeFormat,PDRemoteStream,Inline,String;PDTextBitmapImpl:PROGRAMIMPORTSPDInterpBitmap,PDInterpSysCalls,PDRemoteStream,Stream,Inline,StringEXPORTSPDTextBitmap=BEGINfontName:PUBLICLONGSTRING_[120];bc:CHAR=';ec:CHAR='~;charBitmap:ARRAYCHAR[bc..ec]OFPDInterpBitmap.BitmapDesc;charWidth:ARRAYCHAR[bc..ec]OFINTEGER;fontAscent:INTEGER_0;fontDescent:INTEGER_0;ksFontBuffer:LONGPOINTER_NIL;bytesPerWord:NAT=Environment.bytesPerWord;nilBitmap:PDInterpBitmap.BitmapDesc=[sOrigin:0,fOrigin:0,sMin:0,fMin:0,sSize:0,fSize:0,pointer:NIL,rast:0,lines:0];BadFont:ERROR=CODE;SetFont:PUBLICPROC[fontFileName:LONGSTRING,userName,password:LONGSTRING]RETURNS[ok:BOOLEAN_FALSE]={cr:LONGSTRING_[40];nameCopy:LONGSTRING_[120];NameCopy:PROCRETURNS[LONGSTRING]={String.Copy[nameCopy,fontFileName];RETURN[nameCopy]};bytes:INT_PDRemoteStream.Lookup[NameCopy[],cr,userName,password];newBuffer:LONGPOINTER_NIL;bytesRead:INT_0;readFile:PROC[stream:Stream.Handle]={bytesRead_Stream.GetBlock[stream,[blockPointer:newBuffer,startIndex:0,stopIndexPlusOne:bytes]].bytesTransferred;};IFksFontBuffer#NILTHEN{FORc:CHARIN[bc..ec]DOcharBitmap[c]_nilBitmap;charWidth[c]_0���xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXéÓ‚wÔXéÓKÓÙÓ)ªÓ5ÔVÁÓµÓ¿ÓpÓ+Ó/mÔSòÓ‚yÓ§ÔSò�ÔSòÓLÔQÓÛwÔQÓ£Ó!jÓ,ÀÓ8oÓ=zÔPIÓ∆yÔN°ÓÛwÔN°ÓµÓ %�yÓ" ÔN°�ÔN°Ó"ƒwÔKRÓ‚yÓ·ÔKR�ÔKRÓâÔKRÓôÔKRÓäwÔKRÓ#{�Ó%ÔI´Ó‚yÓAÔI´�ÔI´ÓwÔI´Ó�Ó�Ó‡�ÔHÓ‚yÓ ÔH�ÔHÓÎwÔHÓ˝�Ó‚ÔF\Ó‚ yÓªÔF\�ÔF\ÓéÔF\ÓawÓ∫ÔF\�ÔF\ÓyÓ#UÔF\�ÔF\Ó$2�wÔF\Ó%oÔD¥Ó‚ yÓ,ÔD¥�ÔD¥ÓˇÔD¥Ó“wÓ+ÔD¥�ÔD¥ÓéyÓ"∆ÔD¥�ÔD¥Ó#£�ÔD¥Ó$‡wÓ* ÔD¥�ÔD¥ÔC Ó‚ yÓLÔC �ÔC Ó∂wÔC Ó�ÓùÔAeÓ‚yÓÔAe�ÔAeÓrwÔAeÓÕ�ÓYÔ?æÓ‚yÓ¬Ô?æ�Ô?æÓ{Ô?æÓ≥wÔ?æÓ!T�yÓ"·Ô?æ�Ô?æÓ#…wÓ$ÏÔ?æ�Ô?æÔ>Ó‚yÓRÔ>�Ô>Ó;wÔ>ÓL�Ó1Ô<oÓ‚ ÓºÓ'∂�Ó)õ�Ô:«ÓÛÓJÔ9ÓÛÓ?Ô7xÓÛÓıÔ5–ÓÛÓÍÔ4)ÓÛÓflÔ2ÅÓÛÓ‘Ô0⁄ÓÛyÓ5Ô0⁄�Ô0⁄ÓwÓAÔ0⁄�Ô0⁄Ô/2ÓÛÓÔ-ãÓÛÓß�Ô+„ÓÛÔ(îÓ‚yÓÔ(î�Ô(îÓ≈wÔ(îÓ°�yÓÜÔ(î�Ô(îÓQwÓÕÔ(î�Ô(îuÔ%EÓ‚wÓ©Ô%E�Ô%EyÓßÔ%E�Ô%EÓOÔ%EÓ_wÔ%EÓ yÓ&ºÔ%E�Ô%EÓ'uÔ%EÓ*≠wÓ/Ô%E�Ô%EÓ/ˆÓ6flyÓ=VÔ%E�Ô%EÓ>Ô#ûÓµwÓ"Ô#û�Ô#ûyÓ Ô#û�Ô#ûÓ›wÔ#ûÓyÓÏÔ#û�Ô#ûÓ•wÔ#ûÓ$�yÓ%ûÔ#û�Ô#ûÓ&WwÓ)<Ô#û�Ô#ûÓ*#�Ó,�Ô!ˆÓÛyÓÔ!ˆ�Ô!ˆÓ…Ô!ˆÓwÔ!ˆÓÚ�ÓÔ OÓÛyÓ\Ô O�Ô OÓÔ OÓMwÔ OÓ!>�Ó"ÀuÔßÓÛwÓtÔß�ÔßyÓrÔß�ÔßÓÔßÓwÔßÓ"%�yÓ"àÔß�ÔßÓ#AÔßÓ&xwÓ*ÂÔß�ÔßÓ+Õ�Ó-≤�Ô�ÓÓ!à yÔXÓwÔXÓq Ô±ÓÔ ÓÛyÓÔ �Ô ÓkwÔ Óê�Ó!Ó1±Ó3¨Ó:ï ÔbÓÛ yÓ%Ôb�ÔbÓflÔbÓwÔbÓ!∑�yÓ#DÔb�ÔbÓ$,wÓ%OÔb�ÔbÔ∫ÓÛ yÓÔ∫�Ô∫ÓÖwÔ∫Ó´�Ó8ÔÓÛyÓ⁄Ô�ÔÓÇwÓ˝Ô�ÔÓ`ÓJ Ó)�Ó*¯�ÔkÓÓ≥�Ó@Ó*å Ó3x Ó:â ÔƒÓ◊ÓdÓ!>ÔÓyÔuÓÛwÔuÓöÓ�yÓÊÔu�ÔuÓœÔuÓvwÔuÓ#<�yÔ ÕÓwÔ ÕÓÚyÓãÔ Õ�Ô ÕÓVÔ ÕÓgwÔ ÕÓ>yÓ!⁄Ô Õ�Ô ÕÓ"¿�wÔ ÕÓ$ Ó,·�Ó.n Ó5HÓ=y�Ó?�ˇ�������'��������TVm$D������������������������������������������������������������������������������2ENDLOOP;PDInterpSysCalls.FreeSpace[ksFontBuffer];fontAscent_fontDescent_0;ksFontBuffer_NIL};fontName.length_0;newBuffer_PDInterpSysCalls.AllocateSpace[(bytes+bytesPerWord-1)/bytesPerWord];PDRemoteStream.Read[fontFileName,userName,password,readFile];IFbytesRead#bytesTHEN{PDInterpSysCalls.FreeSpace[newBuffer];RETURN[FALSE]};ok_TRUE;ParseFont[fontFileName,newBuffer,bytes!BadFont=>{ok_FALSE;CONTINUE};];IFokTHEN{ksFontBuffer_newBuffer;}ELSE{FORc:CHARIN[bc..ec]DOcharBitmap[c]_nilBitmap;charWidth[c]_0ENDLOOP;PDInterpSysCalls.FreeSpace[newBuffer];fontAscent_fontDescent_0;String.Copy[to:fontName,from:fontFileName];};};ParseFont:PUBLICPROC[fontFileName:LONGSTRING,buffer:LONGPOINTER,bytes:INT]={wordIndex:INT_0;ReadBlock:PROC[dest:LONGPOINTER,words:CARDINAL,wordOffset:INT_-1]={IFwordOffset>=0THENwordIndex_wordOffset;Inline.LongCOPY[from:buffer+wordIndex,nwords:words,to:dest];wordIndex_wordIndex+words;};strike:PDInterpBitmap.BitmapDesc_nilBitmap;defaultCharBitmap:PDInterpBitmap.BitmapDesc_nilBitmap;defaultCharWidth:INTEGER_0;header:PDStrikeFormat.Header;ReadBlock[@header,SIZE[PDStrikeFormat.Header],0];IFheader.format.oneBit#TTHENERRORBadFont;IFheader.format.index#FTHENERRORBadFont;IFheader.format.unused#0THENERRORBadFont;IFheader.format.kerned=TTHEN{boundingBox:PDStrikeFormat.BoundingBox;body:PDStrikeFormat.Body;xInSegment,prevXInSegment:CARDINAL;xInSegmentOffset:INT;widthEntryOffset:INT;���qÔg/ÓE…�yÔ_eÓ◊wÓxÔ_e�Ô_eÔ]æÓ)Ô\Ó Óı�ÓÇ Ó#/�Ó$ºÔZnÓÓk�yÓ¯ÔZn�ÔZnÓ·wÔX«ÓÔWÓÛÓÜ�ÓÔUxÓÛÓ¨�ÔS–Ó∆DÔR)ÓÛ!Ó(¡Ó/™Ó5ˇ yÔPÅÓÛwÔPÅÓöÓI�Ó.yÓ√ÔPÅ�ÔPÅÓ|wÔPÅÓ"à�ÔN⁄Ó&yÔM2ÓwÔM2Óq�yÓ‘ÔM2�ÔM2ÓçwÓrÔM2�ÔM2ÔKäÓÔI„ÓÛÓÓ�yÓ{ÔI„�ÔI„Ó4wÓßÔI„�ÔI„ÔH;ÓÛÓ Ñ Ó'ñxÔFîÓ�Ó#Ó∑ÓMÓ˘�}Ó fÔFî�ÔFîÓ!xÓ$ÔFî�ÔFî}Ó%ÔFî�ÔFîÓ%flxÓ+HÔFî�ÔFîÓ+˘�wÔDÏÓyÔCDÓÛwÔCDÓöyÓïÔCD�ÔCDÓOwÔCDÓ[�ÔAùÓÓk�Ó¯ Ô?ıÓ�yÔ>NÓÛwÔ>NÓB�yÔ<¶ÓwÔ<¶ÓÚyÓãÔ<¶�Ô<¶ÓVÔ<¶ÓgwÔ<¶Ó>yÓ!⁄Ô<¶�Ô<¶Ó"¿�wÔ<¶Ó$ Ó,·�Ó.n Ó5HÓ=y�Ó?�yÔ:ˇÓ◊wÓxÔ:ˇ�Ô:ˇÔ9WÓ&Ô7∞Ó Óı�ÓÇ Ó#/�Ó$ºÔ6ÓÓ´Ó#âÓ'i Ô4`ÓÔ2πÓÛuÔ/jÓ‚wÓˇÔ/j�Ô/jyÓ˝Ô/j�Ô/jÓ§Ô/jÓµwÔ/jÓ\ yÓ(Ô/j�Ô/jÓ(ÀÔ/jÓ,wÓ0oÔ/j�Ô/jÓ1KyÓ5ÛÔ/j�Ô/jÓ6≠Ô/jÓ9‰wÓ?Ô/j�Ô/jÔ-¬ÓµyÓ¬Ô-¬�Ô-¬Ó,wÓŒÔ-¬�Ô-¬Óµ�Óö�Ô,ÓÛ yÓ]Ô,�Ô,Ó«wÔ,ÓÌ�ÓyuÔ*sÓÛwÓiÔ*s�Ô*syÓgÔ*s�Ô*sÓwÔ*sÓyÓŒÔ*s�Ô*sÓ àÔ*sÓ#øwÓ(‹Ô*s�Ô*sÓ)∏yÓ.>Ô*s�Ô*sÓ/ wÓ4uÔ*s�Ô*sÓ5R yÓ<ÚÔ*s�Ô*sÓ=\wÔ*sÓ?Ç�Ô(ÃÓ∆Ó◊�Óº�yÔ'$ÓwÔ'$Ó¨ Ó”Óh�yÓùÔ'$�Ô'$Ó VwÔ'$Ó#bÓ*S�Ó+‡ Ô%}ÓÓ"!Ó.uÓ3¬Ó8'Ó:NÔ#’ÓÓı�ÓÅÓ"r�Ó$WÔ"-ÓÔ ÜÓÛÓ,Ó'&�Ó(≥ ÔfiÓÛÓSÓ/L�Ó0Ÿ Ô7ÓÛyÓƒÔ7�Ô7Ó.wÔ7Ó"à�Ó$ÔèÓÛÓÛÔÁÓÛyÓ ÔÁ�ÔÁÓ¨wÓ àÔÁ�ÔÁÓ ÎÓ0≤yÔ@ÓÛwÔ@ÓöÓ®�yÓ!çÔ@�wÔ@yÓ" Ô@�Ô@Ó#ÑÔ@Ó&êwÔ@Ó+&yÔòÓÛwÔòÓöÓ�yÓ ÛÔò�wÔòyÓ"0Ôò�ÔòÓ"ÈÔòÓ%ˆwÔòÓ*ãyÔÒÓÛwÔÒÓöÓ �Ó!Ú�yÓ#&ÔÒ�ÔÒÓ#flÔÒÓ&ÏwÔÒÓ+ÅyÔIÓÛwÔIÓöÓfl�yÓ!ƒÔI�wÔIyÓ#ÔI�ÔIÓ#ªwÔIÓ&«�Ô°ÓÓÔ˙ÓÓ¸ÔRÓ Ó˛yÓ&ÔR�ÔRÓ&‹wÓ,HÔR�ÔRÔ´ÓyÓΩÔ´�Ô´Ó'wÓ …Ô´�Ô´ÔÓyÓPÔ�ÔÓ∫wÓ [Ô�Ô�������w��������TVm$������������������������������������������������������������������������3widthEntry:PDStrikeFormat.WidthEntry;bodyOffset:INT;ReadBlock[@boundingBox,SIZE[PDStrikeFormat.BoundingBox]];bodyOffset_wordIndex;ReadBlock[@body,SIZE[PDStrikeFormat.Body]];fontAscent_body.ascent;fontDescent_body.descent;strike_[sOrigin:-body.ascent,fOrigin:0,sMin:0,fMin:0,sSize:body.ascent+body.descent,fSize:body.raster*Environment.bitsPerWord,pointer:buffer+wordIndex,rast:body.raster,lines:body.ascent+body.descent];wordIndex_wordIndex+strike.rast*strike.lines;widthEntryOffset_wordIndex+(header.max-header.min+3)*SIZE[CARDINAL];IFwidthEntryOffset#bodyOffset+body.lengthTHENERRORBadFont;ReadBlock[@prevXInSegment,SIZE[CARDINAL]];xInSegmentOffset_wordIndex;FORchar:CHARIN[header.min..header.max]DOcharPixels:PDInterpBitmap.BitmapDesc_strike;ReadBlock[@xInSegment,SIZE[CARDINAL],xInSegmentOffset];xInSegmentOffset_xInSegmentOffset+SIZE[CARDINAL];ReadBlock[@widthEntry,SIZE[PDStrikeFormat.WidthEntry],widthEntryOffset];widthEntryOffset_widthEntryOffset+SIZE[PDStrikeFormat.WidthEntry];IFwidthEntry#PDStrikeFormat.nullWidthEntryTHEN{IFwidthEntry.width>header.maxwidthTHENERRORBadFont;charPixels.fOrigin_widthEntry.offset+boundingBox.fbbox-prevXInSegment;charPixels.fMin_prevXInSegment;charPixels.fSize_xInSegment-prevXInSegment;IFcharIN[bc..ec]THEN{charBitmap[char]_charPixels;charWidth[char]_widthEntry.width;};};prevXInSegment_xInSegment;ENDLOOP;ReadBlock[@xInSegment,SIZE[CARDINAL],xInSegmentOffset];xInSegmentOffset_xInSegmentOffset+SIZE[CARDINAL];ReadBlock[@widthEntry,SIZE[PDStrikeFormat.WidthEntry],widthEntryOffset];widthEntryOffset_widthEntryOffset+SIZE[PDStrikeFormat.WidthEntry];IFwidthEntry#PDStrikeFormat.nullWidthEntryTHEN{strike.fOrigin_widthEntry.offset+boundingBox.fbbox-prevXInSegment;���qÔg/ÓE…�wÔ_,Ó Ó±Ô]ÖÓ yÓöÔ]Ö�Ô]ÖÓwÓ¶Ô]Ö�Ô]ÖÔ[›ÓyÓ$ Ô[›�Ô[›Ó$øwÓ&õÔ[›�Ô[›Ó&˛ÔZ5Ó Ó!�ÓÆ ÔXéÓyÓÔXé�ÔXéÓ¥wÓ!ëÔXé�ÔXéÓ!ÙÔVÊÓ Óı�ÓÇÔU?Ó Ó±�Ó>ÔSóÓÓƒ�ÓQ�ÔQÓÓmÔPHÓÓbÔN°ÓÓÔL˘ÓÓÔKRÓÓÔI™ÓÓˆ$ÔHÓÓXÔF[ÓÓ0ÔD¥ÓÓ ÔCÓÔAeÓÓı�ÓÅÓ"r�Ó$WÔ?ΩÓÓ÷�Ô>Ó◊$yÓ-YÔ>�Ô>Ó-¯wÓ/‘Ô>�yÔ>Ó07wÓ6nÔ>�Ô>Ó6—�yÔ<nÓwÔ<nÓ¨Ó~�Ó!c Ó(�Ó*d yÓ1ÔÔ<n�Ô<nÓ2®Ô<nÓ5µwÔ<nÓ:JÔ:«ÓyÓ&2Ô:«�Ô:«Ó&—wÓ(≠Ô:«�yÔ:«Ó)wÓ/GÔ:«�Ô:«Ó/™Ô9ÓÓD�Ó— yÔ7xÓwÔ7xÓÚyÓ{Ô7x�Ô7xÓFÔ7xÓXwÔ7xÓ/yÓ.∞Ô7x�Ô7xÓ/ï�wÔ5–Ó ÓÓ. �Ó/óÔ4)ÓyÓ%IÔ4)�Ô4)Ó%ÈwÓ'≈Ô4)�yÔ4)Ó((wÓ._Ô4)�Ô4)Ó.¬�Ó/ûÔ2ÅÓÓ U�Ó!‚Ó-"�yÓ/Ô2Å�Ô2ÅÓ/¶wÓ1ÇÔ2Å�yÔ2ÅÓ1ÂwÓ8Ô2Å�Ô2ÅÓ8�Ô0⁄ÓyÓ$‹Ô0⁄�Ô0⁄Ó%{wÓ'WÔ0⁄�Ô0⁄Ó'∫Ô/2ÓËÔ-ãÓÓË�Ó!tÓ,F�yÔ+‰ÓËwÓdÔ+‰�Ô+‰Ó«yÔ*<ÓwÔ*<ÓΩ Ó�Ó’yÓ3ÍÔ*<�Ô*<Ó4§wÔ*<Ó7∞�yÔ(ïÓ'wÔ(ïÓŒÓ#∂�Ó$ÎyÓ/¶Ô(ï�Ô(ïÓ0_Ô(ïÓ3lwÔ(ïÓ8Ô&ÌÓ'Ó"N�Ô%FÓ˙3Ô#ûÓ'Ó ˘�Ó"ÜÔ!˜Ó'Ó „�Ó"pyÔ OÓ'wÔ OÓŒyÓfiÔ O�Ô OÓH�wÔ OÓ¥yÓ"PÔ O�Ô OÓ# wÔ OÓ&�Ô®Ó8Ó#È�Ó%v Ô�Ó8Ó#Z�Ó$ÁÔYÓ8Ô±Ó'Ô Ó Ó∞�Ó!= yÔbÓwÓ∑Ôb�ÔbÔ∫ÓyÓ#8Ô∫�Ô∫Ó#◊wÓ%¥Ô∫�yÔ∫Ó&wÓ,NÔ∫�Ô∫Ó,±�Ó-çÔÓÓD�Ó—Ó+�yÓ,ˆÔ�ÔÓ-ïwÓ/qÔ�yÔÓ/‘wÓ6Ô�ÔÓ6n�ÔkÓyÓ"ÀÔk�ÔkÓ#jwÓ%FÔk�ÔkÓ%©ÔƒÓ◊ÔÓÓ÷�ÓcÓ*5�yÓ,Ô�ÔÓ,πwÓ.ñÔ�ÔÓ.˘yÔuÓwÔuÓ¨ Ófl�ÓƒyÓ1ŸÔu�ÔuÓ2íwÔuÓ5ü�Ô ŒÓ Ó{�Ó3ˇ�������©��������TVm$π��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4strike.fMin_prevXInSegment;strike.fSize_xInSegment-prevXInSegment;defaultCharBitmap_strike;defaultCharWidth_widthEntry.width;}ELSEERRORBadFont;}ELSEERRORBadFont;FORchar:CHARIN[bc..ec]DOIFcharBitmap[char].pointer=NILTHEN{charBitmap[char]_defaultCharBitmap;charWidth[char]_defaultCharWidth;};ENDLOOP;IFwordIndex*bytesPerWord#bytesTHENERRORBadFont;};FontAscent:PUBLICPROCRETURNS[INTEGER]={RETURN[fontAscent]};FontDescent:PUBLICPROCRETURNS[INTEGER]={RETURN[fontDescent]};TextWidth:PUBLICPROC[string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST]RETURNS[textWidth:INTEGER]={textWidth_0;FORi:NATIN[start..start+length)DOIFi>=string.lengthTHENEXITELSE{char:CHAR_string[i];IFcharIN[bc..ec]THENtextWidth_textWidth+charWidth[char];};ENDLOOP;};TextToBitmap:PUBLICPROC[dest:PDInterpBitmap.BitmapDesc,string:LONGSTRING,start:NAT_0,length:NAT_NAT.LAST,function:PDInterpBitmap.Function]={w:INTEGER_0;FORi:NATIN[start..start+length)DOIFi>=string.lengthTHENEXITELSE{char:CHAR_string[i];IFcharIN[bc..ec]THEN{bitmap:PDInterpBitmap.BitmapDesc_charBitmap[char];bitmap.fOrigin_bitmap.fOrigin+w;PDInterpBitmap.Transfer[dest,bitmap,function];w_w+charWidth[char];};};ENDLOOP;};END.��qÔg/ÓE…�wÔ_,Ó Ó%�Ó≤Ô]ÑÓÓ�ÓúÔ[›ÓÓ ¸�Ó"âÔZ5ÓÓ m�Ó!˙ÔXéÓ�yÔVÊÓÔVÊÓSwÔVÊÓÈÔU>Ó�yÔSóÓÛÔSóÓBwÔSóÓÿyÔQÔÓÛwÔQÔÓ·yÓjÔQÔ�ÔQÔÓ5ÔQÔÓGwÔQÔÓyÓ!πÔQÔ�ÔQÔÓ"ü�ÔPHÓwÔPHÓ¨Ó#˘�yÓ%fiÔPH�ÔPHÓ&∆ÔPHÓ(nwÔPHÓ,3�ÔN†ÓÓ«�Ó!TÔL˘ÓÓ8�Ó ≈ÔKQÓyÔI©ÓwÓ•ÔI©�ÔI©yÔHÓÛwÔHÓöÓ"Æ�Ó$ìyÓ('ÔH�ÔHÓ(‡ÔHÓ+ÏwÔHÓ0ÇÔFZÓÛuÔCÓ‚ wÓ∞ÔC�ÔCyÓ≠ÔC�ÔCÓUÔCÓfÔCÓ wÔCÓ%�yÓ%|ÔC�ÔCÓ%ÊwÓ*ºÔC�ÔCÓ+£�Ó-à�yÓ.9ÔC�ÔCÓ/wÔCÓ3• uÔ?ºÓ‚ wÓvÔ?º�Ô?ºyÓsÔ?º�Ô?ºÓÔ?ºÓ,Ô?ºÓ”wÔ?ºÓ%fi�yÓ&BÔ?º�Ô?ºÓ&´wÓ+ÇÔ?º�Ô?ºÓ,i�Ó.N�yÓ.˛Ô?º�Ô?ºÓ/“wÔ?ºÓ4kuÔ<mÓ‚wÓYÔ<m�Ô<myÓVÔ<m�Ô<mÓ˛Ô<mÓwÔ<mÓ∂yÓ#hÔ<m�Ô<mÓ$!Ô<mÓ'YwÓ+≈Ô<m�Ô<mÓ,¢yÓ0+Ô<m�Ô<mÓ1wÔ<mÓ3%�Ó4±Ó6>yÓ:ÒÔ<m�Ô<mÓ;⁄wÔ<mÓ=Î�yÔ:≈ÓµwÓ*Ô:≈�yÔ:≈ÓÅwÓfÔ:≈�Ô:≈yÓNÔ:≈�Ô:≈Ó"wÔ:≈ÓY yÓ#ÆÔ:≈�Ô:≈Ó$wÓ(ÓÔ:≈�Ô:≈Ó)’�Ó+ª�Ô9ÓÛÓk�Ó¯yÔ7vÓÛwÔ7vÓ·yÓBÔ7v�Ô7vÓ*Ô7vÓ;wÔ7vÓyÓ&OÔ7v�Ô7vÓ'5�Ô5œÓwÔ5œÓ¨�ÓìÓ(yÓ Ô5œ�Ô5œÓ ƒÔ5œÓ#–Ô4'ÓwÔ4'ÓS�Ô2ÓyÓüÔ2�Ô2ÓjwÔ2Ó|�Ó yÔ0ÿÓwÔ0ÿÓΩyÓÕÔ0ÿ�Ô0ÿÓ6�wÔ0ÿÓ£yÓ ?Ô0ÿ�Ô0ÿÓ ¯wÔ0ÿÓ$Ó*}�Ó, Ó2Ç�Ó4gÔ/0ÓyÔ-âÓwÓ•Ô-â�Ô-âÔ+·ÓÛuÔ(íÓ‚wÓ¢Ô(í�Ô(íyÓ†Ô(í�Ô(íÓHÔ(íÓYwÔ(íÓ!�Ó$¿Ó7yÓ;aÔ(í�Ô(íÓ<Ô&ÍÓµwÓ"Ô&Í�Ô&ÍÓ˛yÓáÔ&Í�Ô&ÍÓpwÔ&ÍÓÅ�ÓÓõyÓ#NÔ&Í�Ô&ÍÓ$6wÔ&ÍÓ&G�yÓ'‘Ô&Í�Ô&ÍÓ(ºwÓ*IÔ&Í�yÔ&ÍÓ*†wÓ-ÖÔ&Í�Ô&ÍÓ.bÔ%CÓµÓ B�Ó"'�Ô#õÓÛyÓÓÔ#õ�Ô#õÓXwÔ#õÓ≥�Ó@yÔ!ÙÓÛwÔ!ÙÓ·yÓBÔ!Ù�Ô!ÙÓ*Ô!ÙÓ;wÔ!ÙÓyÓ&OÔ!Ù�Ô!ÙÓ'5�Ô LÓwÔ LÓ¨�ÓìÓ(yÓ Ô L�Ô LÓ ƒÔ LÓ#–Ô•ÓwÔ•ÓS�Ô˝ÓyÓüÔ˝�Ô˝ÓjwÔ˝Ó|�Ó yÔVÓwÔVÓΩyÓÕÔV�ÔVÓ6�wÔVÓ£yÓ ?ÔV�ÔVÓ ¯wÔVÓ$�ÔÆÓ'ÓSÓ.M�Ó/⁄ÔÓ' Ó Ä�Ó" Ó+f�Ó-KÔ_Ó'Ó*Ó/ Ô∑Ó'�Ó©�Ó5�Ó∑�ÓúÔÓ'ÔhÓyÔ¿ÓwÓ•Ô¿�Ô¿ÔÓÛyÔ Ó‚wÓiÔ �Ô �������Ç��������TVm$[������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PDUser.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September4,19841:58:46pmPDTDIRECTORYStreamUSING[Handle];PDUser:DEFINITIONS=BEGINThismoduleprovidesachat-styleuserinterfacetothepeachprinter.Normallyoneinstanceofthiswillberunningontheprinter'stty,andaninstancewillexistforeachopenChatconnection.Thismodule,however,doesnotcreateanyinstances.TalkWithUser:PROC[stream:Stream.Handle];Exitswhenuserquitsortheconnectionisbroken.Assumesabi-directionalstream.END.��xÔ_:Ó‚ Ô]ìÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[ÎÓ‚Ó$ÓÓ†Ó -Ó#sÓ(\Ó*ßyÔXùÓ‚wÔXùÓKyÓ˛ÔXù�ÔXùÓ„wÔXùÓGÔUNÓ‚yÓùÔUN�ÔUNÓÉ wÔUNÓΩ�yÓ¢ÔUN�ÔUNÓ[xÔSßÓÛÓÓπÓ�Ó$ Ó%2Ó(Ó-°Ó/FÓ1íÓ5iÓ:∞ÔQˇÓ∆ÓTÓìÓ7ÓœÓ dÓ"4Ó'HÓ);Ó+áÓ0ŒÓ30Ó5‘Ó7«Ó=ÔPXÓ∆ÓÓ,ÓSÓëÓ Ó(ëÓ+°Ó0ØÓ65Ó99Ó;ùÔN±Ó∆Ó_ uÔKbÓÛwÓ{ÔKb�ÔKbyÓyÔKb�ÔKbÓ wÔKbÓ Ó#mxÔIªÓÓöÓÓÓ JÓ"Ó$O Ó+Ó,ÔHÓÓÅ�Óµ Ó!ÍyÔD≈ÓÛwÓ{ÔD≈�ÔD≈ˇ�������‡��������TVm$�Ù������������������������������������������������������PDUserImpl.mesaCopyright(C)1984,XeroxCorporation.Allrightsreserved.MichaelPlass,September27,19849:33:14amPDTDIRECTORYPDQueue,PDUser,Process,Stream,Time,PDRemoteStream,NameInfoDefs,String;PDUserImpl:PROGRAMIMPORTSPDQueue,Process,Stream,Time,PDRemoteStream,NameInfoDefs,StringEXPORTSPDUser=BEGINhelloMsg:LONGSTRING_"PeachPDPrintServer";CommandCode:TYPE={login,cancel,check,help,listQueue,messages,print,reprint,resetQueue,setLoginMessage,start,stop,wait,quit,ambiguous,illegal};commandTable:ARRAYCommandCode[login..quit]OFLONGSTRING_[login:"Login",cancel:"Cancel",check:"Check",help:"Help",listQueue:"ListQueue",messages:"Messages",print:"Print",reprint:"Reprint",resetQueue:"ResetQueue",setLoginMessage:"SetLoginMessage",start:"Start",stop:"Stop",wait:"Wait",quit:"Quit"];Upper:PROC[ch:CHAR]RETURNS[CHAR]=INLINE{RETURN[IFchIN['a..'z]THENch-('a-'A)ELSEch]};defaultRegistry:LONGSTRING_".pa"L;loginMessage:LONGSTRING_[160];TalkWithUser:PUBLICPROC[stream:Stream.Handle]={ENABLEStream.EndOfStream,Stream.TimeOut=>GOTOQuit;command:LONGSTRING_[80];user:LONGSTRING_[80];password:LONGSTRING_[80];account:LONGSTRING_[80];loggedIn:BOOLEAN_FALSE;quitting:BOOLEAN_FALSE;��xÔ_,Ó‚Ô]ÑÓ‚Ó/Ó§ÓBÓZÓ'≈Ó* Ó-⁄Ô[›Ó‚Ó$ÓÓ†Ó fiÓ$$Ó) Ó+WyÔXéÓ‚wÔXéÓKÓÓ"ûÓ'’Ó,‡Ó0÷ÔVÁÓµÓkÔSòÓ‚ yÓuÔSò�ÔSòÓÔQÓÛwÔQÓ£Ó]Ó"ìÓ'ûÓ+ïÓ78ÔPIÓ∆yÔN°ÓÛwÔN°ÓµÔL˙ÓÛ�yÓÿÔL˙�ÔL˙ÓëwÔI´ÓÛyÓiÔI´�ÔI´Ó"ÔI´ÓZwÔI´Ó K�Ó!ÿÓ&ãÓ)�Ó,sÔF\ÓÛyÓVÔF\�ÔF\ÓwÔF\Ó«�Ó ¨Ó%2Ó)πÓ-ÛÓ1f Ó7ËÓ>ÔD¥Ó∆Ó∞ Ó;Ó),Ó,îÓ/ÊÓ38Ó6t ÔC Ó∆Ô?æÓÛyÓ*Ô?æ�Ô?æÓ˝wÔ?æÓ–yÓ0áÔ?æ�Ô?æÓ1d�Ô?æÓ2°Ô?æÓ6íwÔ?æÓ;É�Ó=�Ô>ÓÓ˚Ô<oÓÓ¨Ô:«ÓÓ_Ô9 ÓÓòÔ7xÓ Ó®Ô5—ÓÓY Ô4)ÓÓÊÔ2ÇÓÓ Ô0⁄Ó Ó±Ô/3ÓÓÔ-ãÓÓéÔ+‰ÓÓwÔ*<ÓÓwÔ(ïÓÓbÔ&ÌÓuÔ#ûÓÛwÓëÔ#û�Ô#ûyÓèÔ#û�Ô#ûÓ6wÔ#ûÓ6yÓ˘Ô#û�Ô#ûÓƒwÓQÔ#û�Ô#ûyÓ 9Ô#û�Ô#ûÓ! wÔ#ûÓ&D�yÓ&ßÔ#û�Ô#ûÓ'rwÓ*�Ô#û�Ô#ûÓ*Á�yÓ,ÃÔ#û�Ô#ûÓ-6wÔ#ûÓ1h�yÔ!˜ÓwÔ!˜Óq�yÓ‘Ô!˜�Ô!˜Ó>�wÔ!˜Ó{yÓaÔ!˜�Ô!˜ÓÀ�wÔ!˜Ó8yÓ""Ô!˜�Ô!˜Ó"€wÔ!˜Ó%ÁÓ'Õ�Ó(ÀÓ*∆�Ó+ƒyÓ."Ô!˜�Ô!˜Ó.€wÔ!˜Ó1qÔ OÓÔ�ÓÛyÓˇÔ��Ô�Ó∏Ô�ÓÔwÔ�Ó#‡�Ó%mÔ±ÓÛyÓÈÔ±�Ô±Ó¢Ô±ÓŸwÔ±Ó" �Ó$WuÔbÓÛwÓ{Ôb�ÔbyÓyÔb�ÔbÓ ÔbÓ1wÔbÓ"ÿÓ(% Ó1Ó�Ó3”�yÔ∫ÓwÔ∫Ó)Ó%º Ó0*yÓ2øÔ∫�Ô∫Ó3≠wÔ∫Ó6§ÔÓyÓflÔ�ÔÓòÔÓœwÔÓ"¿�Ó$MÔkÓyÓwÔk�ÔkÓ0ÔkÓhwÔkÓY�Ó ÊÔƒÓyÓ{Ôƒ�ÔƒÓ4ÔƒÓlwÔƒÓ"]�Ó#ÍÔÓyÓïÔ�ÔÓNÔÓÖwÔÓ!w�Ó#ÔuÓyÓ9Ôu�ÔuÓÚwÔuÓ]�yÓ ÍÔu�ÔuÓ!£wÓ$àÔu�ÔuÔ ÕÓyÓ´Ô Õ�Ô ÕÓdwÔ ÕÓœ�yÓ \Ô Õ�Ô ÕÓ!wÓ#˙Ô Õ�Ô Õ�������Ñ��������TVm$±������������������������2accessAllowed:BOOLEAN_TRUE;echo:BOOLEAN_TRUE;flushed:BOOLEAN_FALSE;commandCode:CommandCode;lastRequest:INT_-1;PutChar:PROC[char:CHAR]={Stream.PutChar[stream,char];flushed_FALSE;};PutString:PROC[string:LONGSTRING]={Stream.PutString[stream,string];flushed_FALSE;};PutLine:PROC={PutChar['\n];PutChar['\012];};PutOK:PROC={PutLine[];PutChar['o];PutChar['k];PutLine[];};PutXXX:PROC={PutChar['];PutChar['X];PutChar['X];PutChar['X];PutLine[];};sep:CHAR_';DelHit:ERROR=CODE;SendNow:PROC={Stream.SendNow[stream];flushed_TRUE};GetChar:PROCRETURNS[CHAR]={c:CHAR;ignore:INT_0;IFNOTflushedTHENSendNow[];WHILEignore>=0DOmark:NAT_0;timingMark:NAT=5;timingMarkReply:NAT=6;dataMark:NAT=1;c_Stream.GetChar[stream!Stream.SSTChange=>{mark_sst;CONTINUE};];SELECTmarkFROM0=>NULL;dataMark=>{ignore_1};timingMark=>{ignore_1;Stream.SetSST[stream,timingMarkReply]};ENDCASE=>ignore_2;ignore_ignore-1;���qÔg/ÓE…�wÔ_,Ó yÓÔ_,�Ô_,Ó8wÔ_,Ó"§�yÓ$0Ô_,�Ô_,Ó$ÍwÓ'\Ô_,�Ô_,Ô]ÖÓyÓ≈Ô]Ö�Ô]ÖÓ~wÔ]ÖÓÈ�yÓvÔ]Ö�Ô]ÖÓ/wÓ!¢Ô]Ö�Ô]ÖÔ[›ÓyÓ]Ô[›�Ô[›ÓwÔ[›ÓÇ�yÓ Ô[›�Ô[›Ó »wÓ#¨Ô[›�Ô[›ÔZ5ÓÓÔXéÓyÓ“ÔXé�ÔXéÓ<wÔXéÓb�ÓÔuÔVÊÓwÓÔVÊ�ÔVÊyÓÔVÊ�ÔVÊÓ©wÔVÊÓ®yÓ ïÔVÊ�ÔVÊÓ!`wÓ#ÌÔVÊ�ÔVÊÓ$’�Ó&∫�ÔU?ÓÓ#ΩÔSóÓÓı�yÓÇÔSó�ÔSóÓ;wÓ ÔSó�ÔSóÔQÓuÔPHÓwÓ…ÔPH�ÔPHyÓ«ÔPH�ÔPHÓnwÔPHÓnyÓ" ÔPH�ÔPHÓ"ŸÔPHÓ&wÓ*~ÔPH�ÔPHÓ+e�Ó-J�ÔN°ÓÓ$cÔL˘ÓÓı�yÓÇÔL˘�ÔL˘Ó;wÓ ÔL˘�ÔL˘ÔKRÓuÔI™ÓwÓÀÔI™�ÔI™yÓ…ÔI™�ÔI™ÓqwÔI™Óp�ÓU�ÔHÓÔF[ÓÔD¥ÓuÔCÓwÓ?ÔC�ÔCyÓ=ÔC�ÔCÓ‰wÔCÓ‰�Ó…�ÔAeÓ Ô?ΩÓÔ>ÓÔ<nÓ Ô:«ÓuÔ9ÓwÓÔ9�Ô9yÓÔ9�Ô9ÓøwÔ9Óæ�Ó£�Ô7xÓÓKÔ5–ÓÔ4)ÓÔ2ÅÓÔ0⁄Ó Ô/2ÓÔ-ãÓyÓÛÔ-ã�Ô-ãÓæwÔ-ãÓ–�Ó\�Ó9�Ô+„ÓyÓÔ+„�Ô+„Ó’wÔ+„Ó±�yÓñÔ+„�Ô+„ÓawÓ!‹Ô+„�Ô+„uÔ*<ÓwÓ®Ô*<�Ô*<yÓ¶Ô*<�Ô*<ÓMwÔ*<ÓM�Ó2Ó/ÓÓ4Õ�yÓ6ZÔ*<�Ô*<Ó7wÓ9ÜÔ*<�Ô*<Ó:6�uÔ(îÓwÓÔ(î�Ô(îyÓÔ(î�Ô(îÓøÔ(îÓøwÔ(îÓ" �yÓ#-Ô(î�Ô(îÓ#¯wÓ&ÜÔ(î�Ô(îÓ'm�Ó)R�Ô&ÏÓyÓÆÔ&Ï�Ô&ÏÓywÓÔ&Ï�Ô&ÏÔ%EÓyÓ“Ô%E�Ô%EÓ<wÔ%EÓb�ÓÔyÔ#ùÓÔ#ùÓΩwÔ#ùÓøyÓüÔ#ù�Ô#ùÓXwÔ#ùÓ"d yÔ!ˆÓwÔ!ˆÓvÓ∫Ó O�yÓ!ÑÔ!ˆ�Ô!ˆÓ"j�wÔ NÓ'yÓ3Ô N�Ô NÓwÔ NÓ,�ÓπÔßÓ' yÓ5Ôß�ÔßÓ wÔßÓ".�Ó$ÔˇÓ'yÓ"æÔˇ�ÔˇÓ#¶wÔˇÓ%∑�Ó'úÔXÓ'yÓ‡ÔX�ÔXÓ»wÔXÓ Ÿ�Ó"æÔ∞Ó'�ÓF�Ó”Ô Ó8�Ó5Ó&<Ó(—Ó-�Ó.¢yÓ1Ô �Ô Ó1‚wÓ7QÔ �Ô Ó8�ÔaÓ8yÔ∫Ó'wÔ∫Ó˙yÓçÔ∫�Ô∫Ó FwÔÓ8�ÓmyÓÔ�ÔÓÎwÓ BÔ�ÔÔkÓ8ÓxÓ" Ó'�Ó(éÔ√Ó8 Ó ÕÓ#bÓ(V�Ó)„Ó+ëÔÓyÔtÓ8wÔtÓ:Ó!–Ó&�Ó'†Ô ÕÓ'Ój�Ó˜Ó!;�Ó"8ˇ�������i��������TVm$ ��������������������������������������������������������������������������������������������������������������������������3ENDLOOP;IFc='\177THEN{PutXXX[];ERRORDelHit};RETURN[c]};GetStringToSpace:PROC[string:LONGSTRING,stopper1:CHAR_',stopper2:CHAR_']={c:CHAR_GetChar[];dashCount:NAT_0;inComment:BOOLEAN_FALSE;commentHit:BOOLEAN_FALSE;string.length_0;UNTILstring.length=string.maxlengthOR(NOTinCommentAND(c=stopper1ORc=stopper2))ORc='\nDOIFc='H-100BORc='A-100BTHEN{IFcommentHitTHEN{PutXXX[];ERRORDelHit};IFstring.length>0THEN{IFechoTHENPutChar[c];string.length_string.length-1;};}ELSEIFc='W-100BTHEN{IFcommentHitTHEN{PutXXX[];ERRORDelHit};WHILEstring.length>0DOIFechoTHENPutChar['H-100B];string.length_string.length-1;ENDLOOP;}ELSE{IFechoTHENPutChar[c];IFc='-THEN{commentHit_TRUE;dashCount_dashCount+1;IFdashCount=2THEN{inComment_NOTinComment;dashCount_0;};}ELSE{WHILEdashCount>0DOIFNOTinCommentTHEN{string[string.length]_'-;string.length_string.length+1;};dashCount_dashCount-1;ENDLOOP;IFNOTinCommentTHEN{string[string.length]_c;string.length_string.length+1;};};};���qÔg/ÓE…�yÔ_eÓ'wÓ»Ô_e�Ô_eyÔ]æÓwÔ]æÓΩ�Ó‹�Ó¡yÓ_Ô]æ�Ô]æÓwÔ]æÓ!$ yÓ(ªÔ]æ�Ô]æÓ)twÔ]æÓ-QyÔ\ÓwÔ\ÓÇÔZnÓuÔX«ÓwÓÔX«�ÔX«yÓÔX«�ÔX«ÓºwÔX«Ó"ªyÓ'nÔX«�ÔX«Ó('ÔX«Ó+^wÓ/ÀÔX«�ÔX«Ó0®yÓ6ºÔX«�ÔX«Ó7áwÔX«Ó:ô�Ó<%�Ó=�Ó=fiyÓCÚÔX«�ÔX«ÓDΩwÔX«ÓGœ�ÓI\�ÔX«ÓKß�ÔWÓ◊�Óº�ÔUxÓyÓÆÔUx�ÔUxÓywÔUxÓã�Ó ÔS–Ó yÓÄÔS–�ÔS–ÓiwÔS–Óz�Ó!ÔR)Ó yÓ$ÔR)�ÔR)Ó›wÔR)Ó#I�yÓ$÷ÔR)�ÔR)Ó%èwÓ(tÔR)�ÔR)ÔPÅÓ yÓâÔPÅ�ÔPÅÓCwÔPÅÓ#Æ�yÓ%;ÔPÅ�ÔPÅÓ%ÙwÓ(ŸÔPÅ�ÔPÅÔN⁄ÓÓ¯�ÓÖyÔM2ÓwÔM2ÓDÓ!&�Ó#yÔKäÓwÔKäÓJ�yÓƒÔKä�ÔKäÓ¨wÔKäÓ∆yÓ"[ÔKä�ÔKäÓ#/wÔKäÓ%Å yÓ-ëÔKä�ÔKäÓ.m�wÔKäÓ/∆yÔI„ÓwÔI„ÓJyÓôÔI„�ÔI„Ó�ÔH;Ó'wÔH;ÓŒÓNÓJ�ÓHyÓ!≈ÔH;�ÔH;Ó"°�wÔH;Ó#˘Ó&yÓ(^�Ó)\yÓ,ŸÔH;�ÔH;Ó-íwÔH;Ó0û�yÔFîÓ8wÔFîÓfl yÓ"⁄ÔFî�ÔFîÓ#ìwÔFîÓ&ü yÓ.5ÔFî�ÔFîÓ.ÔwÔFîÓ2ÀyÔDÏÓ8wÔDÏÓflÓ"¬�Ó#ˆ�yÓ%+ÔDÏ�ÔDÏÓ%‰wÔDÏÓ(�yÔCDÓIwÔCDÓyÓ 7ÔCD�ÔCDÓ wÔCDÓ#˝ ÔAùÓIÓ#,�Ó$∏Ó,õ�Ó-ôÔ?ıÓIÔ>NÓ8�yÔ<¶Ó'Ó[wÔ<¶ÓÓÇÓ ¿�Ó!ΩyÓ%:Ô<¶�Ô<¶Ó%ÛwÔ<¶Ó(ˇ�yÔ:˛Ó8wÔ:˛Ófl yÓ"⁄Ô:˛�Ô:˛Ó#ìwÔ:˛Ó&ü yÓ.5Ô:˛�Ô:˛Ó.ÔwÔ:˛Ó2ÀyÔ9WÓ8wÔ9WÓôÓ%{�Ó&∞�yÓ'ÂÔ9W�Ô9WÓ( �Ô7ØÓIwÔ7ØÓyÓ 7Ô7Ø�Ô7ØÓ wÔ7ØÓ#˝ Ó+R�Ó,OÔ6ÓIÓ#,�Ó$∏Ó,õ�Ó-ôyÔ4`ÓIwÓ ÍÔ4`�Ô4`Ô2πÓ8�yÔ1Ó'wÔ1Óv�yÔ/iÓ8wÔ/iÓflyÓ&Ô/i�Ô/iÓflwÔ/iÓ!Î yÔ-¬Ó8wÔ-¬Ófl�Ó˛�Ó„yÓ9Ô-¬�Ô-¬ÓÚwÔ-¬Ó"ˇ�Ô,ÓI Ó#D�yÓ$–Ô,�Ô,Ó%äwÓ'¸Ô,�Ô,Ô*sÓIÓ":�Ó#«Ó*∏�Ó,ûyÔ(ÀÓIwÔ(ÀÓÓ#‚�Ó%«�yÓ&˚Ô(À�Ô(ÀÓ'¥wÔ(ÀÓ*¡�Ô'#ÓZÓ$�yÓ&|Ô'#�Ô'#Ó'ewÔ'#Ó) Ô%|ÓZÓ$K�Ó%ÿÔ#‘ÓZÔ"-ÓI�yÔ ÖÓ8wÔ ÖÓá�yÔ›ÓIwÔ›Ó™Ó&õ�Ó'–�yÓ)Ô›�Ô›Ó)Í�Ô6ÓZÔ6ÓwÔ6Ó"yÓ)ôÔ6�Ô6Ó*RwÔ6Ó-_�ÔéÓkÓ+f�Ó,ÛÔÁÓkÓ'N�Ó(€Ó0Ω�Ó2¢Ô?ÓkÔòÓZÓ$K�Ó%ÿÓ, �Ó-«yÔÓZwÓ"˚Ô�ÔyÔHÓIÔHÓwÔHÓÛyÓ'àÔH�ÔHÓ(AwÔHÓ+M�Ô°ÓZÓ)U�Ó*·Ô˘ÓZÓ%=�Ó& Ó.¨�Ó0ëÔRÓZÔ™ÓIÔÓ8ˇ�������Ø��������TVm$^������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4c_GetChar[];ENDLOOP;IFstring.length<=string.maxlengthTHENsep_cELSEsep_';IFstring.length=0ANDsep#'\nTHEN{PutChar[sep];GetStringToSpace[string,stopper1,stopper2];};};GetStringToCR:PROC[string:LONGSTRING]={GetStringToSpace[string,'\n,'\n];};GetNumber:PROC[default:INT_1]RETURNS[value:INT_0]={string:LONGSTRING_[80];GetStringToSpace[string];FORi:NATIN[0..string.length)DOc:CHAR_string[i];IFcIN['0..'9]THEN{value_value*10+(c-'0)}ELSE{PutString["Notanumber!"];PutLine[];ERRORDelHit};ENDLOOP;IFstring.length=0THENvalue_default;};PutNumber:PROC[value:INT,w:INTEGER_4]={IFvalue<0THEN{PutChar['-];value_-value;w_w-1};IFvalue>=10THEN{PutNumber[value/10,w-1];value_valueMOD10;w_1};WHILEw>1DOPutChar['];w_w-1;ENDLOOP;PutChar['0+value];};Confirm:PROCRETURNS[yes:BOOLEAN]={response:LONGSTRING_[10];GetStringToSpace[response];IFString.Compare[response,"Yes",FALSE]=0THEN{RETURN[TRUE]}ELSEIFresponse.length=0ORUpper[response[0]]#'NTHEN{PutLine[];PutString["Sorry,youmustsayYesinjusttherightway."];PutLine[];RETURN[FALSE]}ELSEPutXXX[]};GetCommand:PROC={nMatches:NAT_0;matchLength:NAT_0;commandCode_illegal;PutString[">>"];GetStringToSpace[command];IFcommand.length=0THEN{PutLine[];GetCommand[]}���qÔg/ÓE…�wÔ_,Ó'�ÓF�Ó” yÔ]ÖÓ'wÓ»Ô]Ö�Ô]ÖyÔ[›ÓwÔ[›ÓΩÓüÓ!5yÓ+óÔ[›�Ô[›Ó,PwÔ[›Ó/\Ó1—�Ó3^�yÓ4}Ô[›�Ô[›Ó57wÔ[›Ó7ÃÓ:A�Ó;Œ�Ó<´�yÔZ5ÓwÔZ5ÓΩÓü�Ó Ñ�yÓ!πÔZ5�ÔZ5Ó"åwÔZ5Ó$flÓ'T�Ó)9yÓ+çÔZ5�ÔZ5Ó,FwÔZ5Ó/R�ÔXéÓ'ÔVÊÓ'Ó&†Ó,ì ÔU?Ó'ÔSóÓuÔQÓwÓÔQ�ÔQyÓ}ÔQ�ÔQÓ$wÔQÓ!$yÓ%÷ÔQ�ÔQÓ&èÔQÓ)«wÓ.4ÔQ�ÔQÓ/�Ó1��ÔPHÓÓ$èÓ';ÔN°ÓuÔL˘ÓwÓÛÔL˘�ÔL˘yÓÒÔL˘�ÔL˘ÓòwÔL˘ÓòyÓ$ÔL˘�ÔL˘Ó$áwÔL˘Ó&≠�Ó(:yÓ)—ÔL˘�ÔL˘Ó*•wÔL˘Ó/›yÓ4cÔL˘�ÔL˘Ó4ÕwÔL˘Ó6Û�Ó8ÄÓ:�Ó;˝�ÔKRÓyÓeÔKR�ÔKRÓÔKRÓUwÔKRÓ"F�Ó#”ÔI™ÓyÔHÓwÔHÓyÓdÔH�ÔHÓMÔHÓ]wÔHÓ4yÓ(SÔH�ÔHÓ)8�wÔF[Ó'yÓøÔF[�ÔF[ÓäwÔF[Óú�Ó) yÔD¥Ó'wÔD¥ÓŒ�yÓÌÔD¥�ÔD¥ÓW�wÔD¥ÓƒyÓŒÔD¥�ÔD¥Ó àwÔD¥Ó#îÓ'Ó�Ó){Ó-%�Ó.YÓ0>�Ó2#yÔCÓ'wÔCÓvÓ"YÓ%*�Ó&T Ó-á yÓ4ÔC�ÔCÓ4¬wÔCÓ8ûyÔAeÓ'wÓ»ÔAe�ÔAeyÔ?ΩÓwÔ?ΩÓΩÓü�Ó Ñ�yÓ!πÔ?Ω�Ô?ΩÓ"rwÔ?ΩÓ%Ó)(�Ó*µÔ>ÓuÔ<nÓwÓ›Ô<n�Ô<nyÓ€Ô<n�Ô<nÓÇwÔ<nÓÇyÓ#Ô<n�Ô<nÓ#rwÓ%Ô<n�Ô<nÓ%yÓ'ÎÔ<n�Ô<nÓ(UwÔ<nÓ-∞�Ó/<Ó0‘�Ó2π�yÔ:«ÓwÔ:«ÓΩÓf�Óõ�yÓ–Ô:«�Ô:«ÓâwÔ:«Ó ïÓ(—Ó,z�Ó.Ó2§�Ó4&�Ó5≤yÔ9ÓwÔ9ÓΩÓfÓ¸yÓ·Ô9�Ô9ÓöwÔ9Ó"¶Ó0ÿÓ4aÓ8 �Ó9óyÓ=AÔ9�Ô9Ó>RwÔ7xÓËÓG�Ó…�ÓVyÔ5–ÓwÔ5–Óv�Ó¯�Ó-�yÓbÔ5–�Ô5–ÓG�wÔ4)Ó'Ó\Ô2ÅÓ'�Ó©�Ó5�Ó∑�ÓµyÔ0⁄Ó'wÓ»Ô0⁄�Ô0⁄Ô/2ÓÔ-ãÓuÔ+„ÓwÓ◊Ô+„�Ô+„yÓ‘Ô+„�Ô+„Ó|Ô+„Ó|wÔ+„Ó"áyÓ%¬Ô+„�Ô+„Ó&{wÓ+bÔ+„�Ô+„Ó,J�Ó./�Ô*<ÓyÓ4Ô*<�Ô*<ÓÌÔ*<Ó$wÔ*<Ó$�Ó%¢Ô(îÓyÔ&ÌÓwÔ&ÌÓΩÓ&ÇyÓ*ÒÔ&Ì�Ô&ÌÓ+™wÓ.èÔ&Ì�Ô&ÌÓ/v�Ó1[�yÓ2êÔ&Ì�Ô&ÌÓ3IwÔ&ÌÓ6U�yÔ%EÓ'wÔ%EÓì�yÓˆÔ%E�Ô%EÓØwÓ "Ô%E�Ô%EÔ#ûÓ'�yÔ!ˆÓÔ!ˆÓdwÔ!ˆÓÓ#Ω�Ó%£�yÓ&◊Ô!ˆ�Ô!ˆÓ'¥�wÔ!ˆÓ)Ó4ƒ�Ó6©yÓ8®Ô!ˆ�Ô!ˆÓ9bwÔ!ˆÓ<n�Ô OÓ' ÔßÓ'Ó!ÌÓ$§Ó(Ó*kÓ-!Ó.œÓ1qÓ3–Ó7"Ô�Ó' yÔXÓ'wÔXÓì�yÓˆÔX�ÔXÓØwÓ îÔX�ÔXÔ±Ó'�yÔ ÓwÔ ÓdÔaÓuÔ∫Ó wÓ(Ô∫�Ô∫yÓ%Ô∫�Ô∫ÓÕwÔ∫ÓÕ�Ó!≤�ÔÓyÓœÔ�ÔÓ∏wÔÓ…�Ó VÔkÓyÓÌÔk�ÔkÓ’wÔkÓ Ê�Ó"sÔ√Ó Óú�Ó )ÔÓÔtÓyÔ ÕÓwÔ ÕÓΩ Ó!+�Ó#�yÓ$DÔ Õ�Ô ÕÓ$˝wÔ ÕÓ( Ó/<ˇ�������ô��������TVm$ø������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5ELSE{FORcmd:CommandCodeIN[login..quit]DOcandidate:LONGSTRING_commandTable[cmd];IFcommand.length<=candidate.lengthTHEN{matchLength_0;FORi:NATIN[0..command.length)DOIFUpper[command[i]]=Upper[candidate[i]]THENmatchLength_i+1ELSEEXIT;ENDLOOP;IFmatchLength=command.lengthTHEN{commandCode_cmd;nMatches_nMatches+1;IFNOTloggedInTHENEXIT};};ENDLOOP;IFnMatches>1THENcommandCode_ambiguousELSEIFcommandCode<=quitTHEN{candidate:LONGSTRING_commandTable[commandCode];FORi:NATIN[command.length..candidate.length)DOPutChar[candidate[i]];ENDLOOP;};};};PutRequestStatus:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={PutString[request.requestTime];PutChar['];PutString[request.fileName];IFrequest.copies#1THEN{PutString["("];PutNumber[request.copies,1];PutString["copies)"];};PutString["("];PutString[request.requestor];PutString[")"];SELECTstatusFROMcanceled=>PutString["Cancelled"];waiting=>PutString["Waiting"];printing=>PutString["Printing"];ENDCASE=>NULL;PutLine[];};DoCommand:PROC={GetCommand[];IFNOTloggedInANDcommandCode#loginANDcommandCode#quitTHEN{PutLine[];PutString["Loginfirst,please"];��qÔg/ÓE…�yÔ_,ÓwÔ_,Ód�yÔ]ÖÓ'wÔ]ÖÓÓû yÓ'áÔ]Ö�Ô]ÖÓ'Ò�wÔ]ÖÓ)^yÓ0ØÔ]Ö�Ô]ÖÓ1ï�wÔ[›Ó8 yÓÁÔ[›�Ô[›Ó †Ô[›Ó#ÿwÔ[›Ó(…�Ó*VyÔZ5Ó8wÔZ5Ófl Ó%MÓ'‚yÓ2%ÔZ5�ÔZ5Ó2fiwÔZ5Ó5Î�ÔXéÓI Ó#ß�Ó%4yÔVÊÓIwÔVÊÓ7yÓòÔVÊ�ÔVÊÓ ÄÔVÊÓ"ëwÔVÊÓ$hyÓ1ÔVÊ�ÔVÊÓ1˜�ÔU?ÓZwÔU?ÓÓ+)�Ó-yÓ9 ÔU?�ÔU?Ó9√wÔSòÓ- Ó&ã�Ó(yÔQÓZÔQÓ ©wÓ#YÔQ�ÔQyÔPIÓZwÓ"˚ÔPI�ÔPIyÔN°ÓIwÔN°Ó Ó%N�Ó'3 yÓ1°ÔN°�ÔN°Ó2ZwÔN°Ó5f�ÔL˙ÓZ Ó&·�Ó(mÔKRÓZÓ#õ�Ó%(Ó+h�Ó-MyÔI™ÓZÔI™ÓwÔI™Ó"yÓ'øÔI™�ÔI™Ó(xÔI™Ó+ÑwÔHÓZÔF[ÓIyÔD¥Ó8wÓŸÔD¥�ÔD¥yÔCÓ'wÔCÓŒÓ�Ó C�yÓ!xÔC�ÔCÓ"1wÔCÓ%= Ó.ƒ�Ó0QyÔAeÓ'ÔAeÓvwÔAeÓ Ó%£Ó(9yÓ+ÔAe�ÔAeÓ+÷wÔAeÓ.‚�Ô?ΩÓ8 yÓÁÔ?Ω�Ô?ΩÓ †Ô?ΩÓ#ÿwÔ?ΩÓ(…�Ó*VyÔ>Ó8wÔ>Ó&yÓÜÔ>�Ô>ÓoÔ>Ó ÄwÔ>Ó"V"yÓ8Ô>�Ô>Ó8Ù�wÔ<nÓIyÔ:«ÓIwÓ ÍÔ:«�Ô:«Ô9Ó8Ô7xÓ'Ô5–ÓuÔ4)ÓwÓßÔ4)�Ô4)yÓ•Ô4)�Ô4)ÓMwÔ4)Ó"LÓ'˝Ó3„Ô2ÅÓ◊Ó#]�Ó%B�Ô0⁄ÓÔ/2ÓÓKÔ-ãÓyÔ+„ÓwÔ+„ÓΩ Óì�Ó!x�yÓ"≠Ô+„�Ô+„Ó#fwÔ+„Ó&r�Ô*<Ó' ÓZÔ(îÓ'Ó'√Ô&ÌÓ' ÓZÓ#Ô%EÓ'Ô#ûÓ ÓIÔ!ˆÓÔ OÓÓ¬yÔßÓwÔßÓËyÓøÔß�ÔßÓxwÔ�Ó'Ó¬ÓWÔXÓ'Ó˙ÓêÔ±Ó'ÓiÓ˛yÔ Ó'wÔ Ó)yÓæÔ �Ô Ó ßwÓ"ˇÔ �Ô ÔbÓ Ô∫ÓuÔÓwÓƒÔ�ÔyÓ¬Ô�ÔÓjwÔÓi�Ó!N�ÔkÓyÔƒÓÔƒÓΩwÔƒÓøyÓzÔƒ�ÔƒÓ MwÔƒÓ"† Ó,&�Ó.yÓ1àÔƒ�ÔƒÓ2\wÔƒÓ4Æ Ó>5�ÔÓËyÔÓ≤wÔÓw�ÔuÓ' Ô ÕÓ'Ó!◊Ó%�������F��������TVm$í����������������������������������������������������������������������������������������������������������������������������������������������������6PutLine[];}ELSE{SELECTcommandCodeFROMlogin=>{registryMissing:BOOLEAN_TRUE;PutString["--User--"];GetStringToSpace[user];FORi:NATDECREASINGIN[0..user.length)DOIFuser[i]='.THEN{registryMissing_FALSE;EXIT};ENDLOOP;IFregistryMissingTHEN{String.AppendString[user,defaultRegistry];PutString[defaultRegistry];};PutString["--Password--"];echo_FALSE;GetStringToSpace[password!UNWIND=>echo_TRUE];echo_TRUE;IFsep#'\nTHEN{PutString["--Account--"];GetStringToSpace[account];};PutString["--Authenticating..."];SendNow[];SELECTNameInfoDefs.Authenticate[user,password]FROMindividual=>{PutString["OK"];loggedIn_TRUE};allDown=>{PutString["allGVserversdown;I'llhavetotrustyou."];loggedIn_TRUE};badPwd=>{PutString["badpassword"];loggedIn_FALSE};ENDCASE=>{PutString["badname"];loggedIn_FALSE};PutLine[];IFloginMessage.length>0THEN{PutString[loginMessage];PutLine[];};};print=>{fileName:LONGSTRING_[80];separator:LONGSTRING_[80];time:LONGSTRING_[40];requestNumber:INT_0;createDate:LONGSTRING_[40];bytes:INT_0;copies:INT_1;IFNOTaccessAllowedTHEN{PutLine[];PutString["Sorry,youarenotallowedtoqueuerequestsatthistime"];};PutString["--File--"];��qÔg/ÓE…�wÔ_,Ó' Ô]ÖÓ'�yÔ[›ÓwÔ[›Ód�yÔZ5Ó'wÔZ5Ó˙ yÓ%ÄÔZ5�ÔZ5Ó&9wÔXéÓ8ÓµÓJ�ÔVÊÓIyÓ%GÔVÊ�ÔVÊÓ&�wÔVÊÓ+l�yÓ,˘ÔVÊ�ÔVÊÓ-≤wÓ0$ÔVÊ�ÔVÊÔU?ÓI Ó"|Ó'≥ÔSóÓIyÔQÓIwÔQÓ7yÓòÔQ�ÔQÓ ÄÔQÓ"ë ÔQÓ*øwÔQÓ,ñyÓ5ÿÔQ�ÔQÓ6æ�ÔPHÓZwÔPHÓÓ#$�Ó% yÓ&=ÔPH�ÔPHÓ&ˆwÔPHÓ*Ó48�yÓ5≈ÔPH�ÔPHÓ6~wÓ9cÔPH�ÔPHyÓ:`ÔPH�ÔPHÓ;wÓ=ÔPH�ÔPHÓ=¡�yÔN°ÓZwÓ"˚ÔN°�ÔN°yÔL˘ÓIwÔL˘ÓyÓ&uÔL˘�ÔL˘Ó'.wÔL˘Ó*;�ÔKRÓZÓ-XÔI™ÓZÔHÓZÔF[ÓI Ó"|Ó*jÔD¥ÓIÓê�yÓ ÔD¥�ÔD¥Ó ÷wÓ#ªÔD¥�ÔD¥ÔCÓIÓ,í�yÓ-êÔC�ÔCÓ.uwÔCÓ35Ó5 Ó9�yÓ:ûÔC�ÔCÓ;WwÓ=…ÔC�ÔCÓ>-�ÔAeÓIÓê�yÓ ÔAe�ÔAeÓ ÷wÓ#HÔAe�ÔAeyÔ?ΩÓIwÔ?ΩÓÓe�Ó!JyÓ#ûÔ?Ω�Ô?ΩÓ$WwÔ?ΩÓ'c�Ô>ÓZ Ó$ç Ó+ÌÔ<nÓZÔ:«ÓZÔ9ÓI Ó"|Ó#Û Ó-DÓ.ŒÔ7xÓI yÔ5–ÓIwÔ5–Ó Ó4ôyÓ:˘Ô5–�Ô5–Ó;≤wÔ4)ÓZ Ó#‹Ó&rÓ2Ó7—�yÓ9^Ô4)�Ô4)Ó:wÓ<äÔ4)�Ô4)Ó=:�Ô2ÅÓZÓ"ÈÓ%~Ó.ŒÓ1yÓ6 Ó:NÓ<uÓ?ºÔ0⁄Ó-Ó!^Ó%˙Ó+µ�yÓ-AÔ0⁄�Ô0⁄Ó-˚wÓ0mÔ0⁄�Ô0⁄Ó1�Ô/2ÓZÓ"®Ó%=Ó/U Ó6flÓ<ö�yÔ-ãÓ-wÓ!ÀÔ-ã�Ô-ãÓ"{�yÔ+„ÓZwÔ+„Ó#\Ó%ÚÓ0 Ó5UÓ;�yÓ<ùÔ+„�Ô+„Ó=VwÓ@;Ô+„�Ô+„Ó@Ï�Ô*<ÓI yÔ(îÓIwÔ(îÓÓ)y�Ó*Æ�yÓ+‚Ô(î�Ô(îÓ,úwÔ(îÓ/®�Ô&ÌÓZÔ%EÓZ Ô#ûÓZÔ!ˆÓIÔ OÓ8Ó†Ó5�ÔßÓIyÓ!√Ôß�ÔßÓ"|ÔßÓ%¥wÔßÓ*•�Ó,2Ô�ÓI yÓ!µÔ��Ô�Ó"nÔ�Ó%¶wÔ�Ó*ó�Ó,$ÔXÓIyÓËÔX�ÔXÓ°ÔXÓ"ÿwÔXÓ'…�Ó)VÔ±ÓI yÓ%õÔ±�Ô±Ó&wÔ±Ó(+�Ó)∏Ô ÓI yÓ"ûÔ �Ô Ó#WÔ Ó&éwÔ Ó+Ä�Ó-ÔbÓIyÓWÔb�ÔbÓ¿wÔbÓ!Ê�Ó#sÔ∫ÓIyÓÒÔ∫�Ô∫Ó [wÔ∫Ó"Ä�Ó$ yÔÓIÔÓwÔÓÛyÓ(ÙÔ�ÔÓ)≠wÔÓ,π�ÔkÓZ ÔƒÓZÓ(!Ó*ÿÓ-+Ó/†Ó4∂Ó6dÓ:àÓ?·ÔÓ-Ó ŒÔuÓZÔ ÕÓI Ó"|Ó'9ˇ�������^��������TVm$È������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7GetStringToSpace[fileName];IFsep#'\nTHEN{PutString["--Copies--"];copies_MIN[GetNumber[default:1],CARDINAL.LAST];};IFsep#'\nTHEN{PutString["--Title--"];GetStringToCR[separator];};bytes_PDRemoteStream.Lookup[fileName,createDate,user,password!PDRemoteStream.Error=>{PutLine[];PutString["Error:"];PutString[expl];PutLine[];GOTOBad;};];Time.AppendCurrent[time];requestNumber_PDQueue.QueueRequest[[fileName,time,user,password,separator,copies]];IFrequestNumber<0THEN{PutLine[];PutString["Printqueuefull,requestdenied."];PutLine[];GOTOBad;};PutLine[];PutString["Printrequest"];PutNumber[requestNumber,0];PutString["queuedfor"];PutString[fileName];PutString["of"];PutString[createDate];PutString["("];PutNumber[bytes];PutString["bytes)"];PutLine[];BEGINmsg:LONGSTRING_[160];String.AppendString[msg,"Versionof"];String.AppendString[msg,createDate];String.AppendString[msg,";"];String.AppendLongNumber[msg,bytes];String.AppendString[msg,"bytes."];PDQueue.LogMessage[msg,requestNumber];END;lastRequest_requestNumber;EXITSBad=>NULL};check=>{��qÔg/ÓE…�wÔ_,ÓIyÔ]ÖÓIwÔ]ÖÓÓe�Ó!JyÓ$"Ô]Ö�Ô]ÖÓ$€wÔ]ÖÓ'Ë�Ô[›ÓZ Ó$ç Ó+ÔZ5ÓZÓ!à�yÓ#ÔZ5�ÔZ5Ó$'wÓ%yÔZ5�ÔZ5Ó%‹Ó2£yÓ4ìÔZ5�ÔZ5Ó5^wÓ: ÔZ5�yÔZ5Ó;"wÓ>ÔZ5�ÔZ5Ó>j�ÔXéÓZyÔVÊÓIwÔVÊÓÓe�Ó!JyÓ$"ÔVÊ�ÔVÊÓ$€wÔVÊÓ'Ë�ÔU?ÓZ Ó$çÓ)πÔSóÓZÔQÓZÔPHÓIÓ›�Ó jÓ6Ï Ó> ÔN°ÓÓ"�ÔL˘ÓZÓ,-Ó.¬�ÔKRÓk ÔI™ÓkÓ*HÔHÓkÔF[Ók yÔD¥ÓkwÔD¥Ó#PÔCÓkÔAeÓZÔ?ΩÓIÔ>ÓIÓ%"�Ó&ÆÓ<√Ô<nÓÓmÓ%√ Ó,yÔ:«ÓIwÔ:«ÓÓ&…�Ó'˛�yÓ)2Ô:«�Ô:«Ó)ÎwÔ:«Ó,¯�Ô9ÓZ Ô7xÓZÓ'|Ó+†Ó.ÉÓ3W Ô5–ÓZ yÔ4)ÓZwÔ4)Ó!?Ô2ÅÓZÔ0⁄ÓI Ô/2ÓIÓ%kÓ*?Ô-ãÓIÓ,ËÔ+„ÓI Ó"|Ó'gÓ)•Ô*<ÓIÔ(îÓI Ó"|Ó$5Ô&ÌÓIÔ%EÓI Ó"|Ô#ûÓIÔ!ˆÓI Ó"|Ô NÓI yÔßÓIwÔˇÓZyÓ ∂Ôˇ�ÔˇÓ!oÔˇÓ$ßwÔˇÓ)ò�Ó+%ÔXÓZÓ-AÓ3Ó4¿Ô∞ÓZÓ-AÔ ÓZÓ-AÓ.ÔÔaÓZÓ1ÀÔ∫ÓZÓ-A�Ó.vÔÓZÓ.yÔkÓZwÓ‚Ôk�ÔkÔ√ÓI Ó"û�Ó$+ yÔÓIwÔÓÓ!ıyÓ$äÔ�ÔÓ%swÔtÓIÔ ÕÓ8ÓÓØ����������������TVm$∏����������������������������������������������������������������������������������������������������������������������������������������8requestNumber:INT;action:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={PutLine[];PutNumber[requestNumber,5];PutChar['];IFstatus=notFoundTHEN{PutString["notfound."];PutLine[];}ELSEPutRequestStatus[request,status];};PutString["--RequestNumber<"];IFlastRequest#-1THENPutNumber[lastRequest,1];PutString[">--"];lastRequest_requestNumber_GetNumber[default:lastRequest];IFrequestNumber=-1THENPutLine[]ELSEIFABS[requestNumber]>NAT.LASTTHENaction[[NIL,NIL,NIL,NIL,NIL,1],notFound]ELSEPDQueue.CheckRequest[requestNumber,action];};cancel=>{requestNumber:INT;PutString["--RequestNumber--"];requestNumber_GetNumber[default:-1];IFrequestNumber=-1THENPutLine[]ELSE{owner:LONGSTRING_[80];action:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={IFstatus#notFoundTHEN{String.AppendString[owner,request.requestor];};};PDQueue.CheckRequest[requestNumber,action];PutLine[];IFPDQueue.CancelRequest[requestNumber].okTHEN{msg:LONGSTRING_[80];String.AppendString[msg,"Cancelledby"];String.AppendString[msg,user];PDQueue.LogMessage[msg,requestNumber,IFowner.length=0THENNILELSEowner];PutString["Printrequestcancelled."];}ELSE{PutString["Nosuchrequestinqueue."]};PutLine[];};};listQueue=>{action:PROC[requestNumber:CARDINAL,request:PDQueue.Request,status:PDQueue.RequestStatus]RETURNS���qÔg/ÓE…�wÔ_,ÓI yÓ%õÔ_,�Ô_,Ó&wÓ'¶Ô_,�Ô_,Ô]ÖÓIyÓ€Ô]Ö�Ô]ÖÓ ÇwÔ]ÖÓ#ÇÓ)3Ó5Ô[›ÓÓ+¢�Ó-á�ÔZ6ÓZ ÔXéÓZÓ.˘ÔVÁÓZÓ#èyÔU?ÓZwÔU?ÓÓ"ÿ�Ó$ΩyÓ+*ÔU?�ÔU?Ó+„wÔU?Ó.Ô�ÔSòÓk Ó'#Ó)òÔQÓk ÔPIÓk�yÔN°ÓZwÔN°Ó ©Ó0™ÔL˙ÓZÔKRÓI Ó"|Ó(» yÔI™ÓIwÔI™Ó Ó$E�Ó&*yÓ'ÿÔI™�ÔI™Ó(ëwÔI™Ó+ûÓ:πÔHÓI Ó$ÔF[ÓI Ó"û�Ó$+Ó.�Ó/êÔD¥ÓyÔC ÓIwÔC ÓÓ&…�Ó(ÆyÓ*\ÔC �ÔC Ó+wÔC Ó.!yÔAeÓIÔAeÓòÔAeÓ ?wÓ"kÔAe�ÔAeÓ"Œ Ó- �yÓ.>ÔAe�ÔAeÓ/'wÓ0≥ÔAe�yÔAeÓ1ÔAeÓ4twÔ?æÓyÓ vÔ?æ�Ô?æÓ!_wÓ"ÇÔ?æ�yÔ?æÓ"⁄wÓ$ÊÔ?æ�yÔ?æÓ%>wÓ'IÔ?æ�yÔ?æÓ'°wÓ)≠Ô?æ�yÔ?æÓ*wÓ,Ô?æ�Ô?æÓ,iÓ.YyÔ>ÓIwÔ>Óò#Ó7ıÔ<oÓIÔ:«Ó8ÓgÓ¸�Ô9 ÓI yÓ%õÔ9 �Ô9 Ó&wÓ'¶Ô9 �Ô9 Ô7xÓI Ó"|Ó(»Ó/CÔ5—ÓIÓ%"�Ó&ÆÓ3uyÔ4)ÓIwÔ4)ÓÓ&…�Ó(ÆyÓ*\Ô4)�Ô4)Ó+wÔ4)Ó.!yÔ2ÇÓIwÔ2ÇÓò�Ô0⁄ÓZyÓ"Ô0⁄�Ô0⁄Ó"∫Ô0⁄Ó%ÚwÔ0⁄Ó*„�Ó,pÔ/3ÓZyÓ!ÏÔ/3�Ô/3Ó"îwÔ/3Ó%ìÓ+DÓ7*Ô-ãÓ-Ó-≥�Ó/ò�yÔ+‰ÓkwÔ+‰Ó!Ó$È�Ó&œyÓ-;Ô+‰�Ô+‰Ó-ÙwÔ+‰Ó1��Ô*<Ó!|Ó2ÆÔ(ïÓ!|Ô&ÌÓkÔ%FÓZ#Ó6∏Ô#ûÓZ yÔ!˜ÓZwÔ!˜Ó'yÓ:ÖÔ!˜�Ô!˜Ó;>wÔ!˜Ó>J�Ô OÓkyÓ"«Ô O�Ô OÓ#ÅÔ OÓ&∏wÔ OÓ+©�Ó-6Ô®ÓkÓ/R Ó6dÓ8_Ô�ÓkÓ/RÔYÓkÓ0ê yÓ:¡ÔY�ÔYÓ;+�wÔ±Ó > yÓ*äÔ±�Ô±Ó+CÔ±Ó.OÔ±Ó0flwÔ±Ó4.Ô ÓkÓ)çÓ.aÔbÓk�yÔªÓZwÔªÓ © Ó*kÓ-úÓ2qÓ4 ÔÓZ ÔlÓZÔƒÓIÔÓ8ÓbÓ!˜�ÔuÓIyÓ€Ôu�ÔuÓ ÇwÔuÓ#ÇyÓ.7Ôu�ÔuÓ/wÓ4nÔu�ÔuÓ5JÔ ŒÓÓ(Ó,RyÓ;ÿÔ Œ�Ô ŒÓ<¨���������������TVm$ë����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������9[continue:BOOLEAN_TRUE]={PutNumber[requestNumber,5];PutChar['];PutRequestStatus[request,status];};PutLine[];IFPDQueue.GetSuspended[]THEN{PutString["***Printingissuspended***"];PutLine[];};PDQueue.EnumerateRequests[action];};messages=>{action:PROC[message:LONGSTRING]RETURNS[continue:BOOLEAN_TRUE]={IFMatch[message]THEN{PutString[message];PutLine[];};};key:LONGSTRING_[80];Match:PROC[message:LONGSTRING]RETURNS[BOOLEAN]={keyLength:CARDINAL_key.length;IFmessage.length<keyLengthTHENRETURN[FALSE];FORi:NATIN[0..message.length-key.length)DOj:CARDINAL_0;WHILEj#keyLengthANDUpper[message[i+j]]=key[j]DOj_j+1ENDLOOP;IFj=key.lengthTHENRETURN[TRUE];ENDLOOP;RETURN[FALSE];};IFsep#'\nTHEN{PutString["--matchingstring--"];GetStringToCR[key];FORi:NATIN[0..key.length)DOkey[i]_Upper[key[i]]ENDLOOP;};PutLine[];PDQueue.EnumerateMessages[action];};start=>{IFPDQueue.SetSuspended[FALSE].old=TRUETHEN{PDQueue.LogMessage["Printingstarted.",,user];};PutOK[];};stop=>{IFPDQueue.SetSuspended[TRUE].old=FALSETHEN{���qÔg/ÓE…�wÔ_,Ó yÓ"ûÔ_,�Ô_,Ó#XwÔ_,Ó(√�yÓ*PÔ_,�Ô_,Ó+ wÓ-{Ô_,�Ô_,Ó.c�Ó0H�Ô]ÖÓZÓ.˘Ô[›ÓZÓ#èÔZ5ÓZÓ-[ÔXéÓZÔVÊÓI yÔU?ÓIwÔU?ÓyÓ-&ÔU?�ÔU?Ó-flwÔU?Ó0Î�ÔSóÓZ Ó%Ó'ßÓ,ÙÓ.`Ó5ÔQÓZ ÔPHÓZÔN°ÓI"ÔL˘ÓIÔKRÓ8ÓÓ!©�ÔI™ÓIyÓ€ÔI™�ÔI™Ó ÇwÔI™Ó#ÇyÓ)∂ÔI™�ÔI™Ó*oÔI™Ó-¶wÓ2ÔI™�ÔI™yÓ2˚ÔI™�ÔI™Ó3œwÔI™Ó9 yÔHÓwÔHÓ"@�yÓ#ÕÔH�ÔHÓ$ÜwÓ&˘ÔH�ÔHÓ'‡�Ó)≈�yÔF[ÓZwÔF[Ó yÓ(ÎÔF[�ÔF[Ó)§wÔF[Ó,∞�ÔD¥ÓkÔCÓk ÔAeÓkÔ?ΩÓZÔ>ÓIyÓXÔ>�Ô>ÓÔ>Ó"HwÔ>Ó':�Ó(∆uÔ<nÓIwÓ4Ô<n�Ô<nyÓ 2Ô<n�Ô<nÓ ⁄wÔ<nÓ#ŸyÓ* Ô<n�Ô<nÓ*∆Ô<nÓ-˛wÓ2jÔ<n�Ô<nyÓ3RÔ<n�Ô<nÓ4&wÔ<nÓ9^�yÓ9¡Ô<n�Ô<nÓ:zwÓ?aÔ<n�Ô<nÔ:«Ó�Ó�Ô9ÓZ yÓ$£Ô9�Ô9Ó%nwÔ9Ó+^�Ó,Î yÔ7xÓZwÔ7xÓ Ó(f�Ó)öyÓ0iÔ7x�Ô7xÓ1#Ô7xÓ4/wÔ7xÓ9õ�yÓ9˛Ô7x�Ô7xÓ:∏wÓ=úÔ7x�Ô7xÓ=ˇ�yÔ5–ÓZwÔ5–Ó HyÓ!©Ô5–�Ô5–Ó"ëÔ5–Ó$¢wÔ5–Ó&yyÓ8∞Ô5–�Ô5–Ó9ñ�wÔ4)ÓkyÓ ÃÔ4)�Ô4)Ó!ówÔ4)Ó'á�Ó)yÔ2ÅÓkwÔ2ÅÓ#Ã�Ó$¥�Ó&ôyÓ-hÔ2Å�Ô2ÅÓ.;wÔ2ÅÓ0éÓ=o�Ô0⁄Ó >yÓ#˝Ô0⁄�Ô0⁄Ó$„�wÔ/3Ó!|�Ó"d�Ó#Ò�Ó$ÿ�Ó&Ω�yÔ-ãÓ!|wÓ'Ô-ã�Ô-ãyÔ+‰ÓkwÔ+‰Ó!yÓ)yÔ+‰�Ô+‰Ó*2Ô+‰Ó->wÔ+‰Ó2´�yÓ3Ô+‰�Ô+‰Ó3«wÓ69Ô+‰�Ô+‰Ó6ù�yÔ*<ÓkÔ(ïÓZwÔ(ïÓ"«�yÓ#*Ô(ï�Ô(ïÓ#„wÓ&»Ô(ï�Ô(ïÓ'+�Ô&ÌÓZyÔ%EÓIwÔ%EÓÓe�Ó!JyÓ#ûÔ%E�Ô%EÓ$WwÔ%EÓ'c�Ô#ûÓZ Ó$ç Ó+~Ó0GÔ!ˆÓZyÔ OÓZwÔ OÓ HyÓ!©Ô O�Ô OÓ"ëÔ OÓ$¢wÔ OÓ&yyÓ/WÔ O�Ô OÓ0=�wÔ OÓ1ùÓ5\�Ó6ÈyÔ®Ó-wÓ#ŒÔ®�Ô®Ô�ÓZÔYÓI Ô±ÓI"Ô ÓIÔbÓ8ÓHÓ›�yÔ∫ÓIwÔ∫ÓyÓ+‹Ô∫�Ô∫Ó,ïwÓ/zÔ∫�Ô∫Ó/›Ó2û�yÓ4ÉÔ∫�Ô∫Ó5<Ô∫Ó83wÔ∫Ó;˘�ÔÓZÓ1AÔkÓZÔƒÓIÔÓIÔuÓ8Ó1Ó«�yÔ ÕÓIwÔ ÕÓyÓ+‹Ô Õ�Ô ÕÓ,ïwÓ/Ô Õ�Ô ÕÓ/kÓ2,�yÓ4Ô Õ�Ô ÕÓ4 Ô ÕÓ83wÔ ÕÓ;˘�ˇ�������fl��������TVm$¯����������������������������������������������10PDQueue.LogMessage["Printingsuspended.",,user];};PutOK[];};setLoginMessage=>{old:LONGSTRING_[160];String.Copy[old,loginMessage];PutChar['];GetStringToCR[loginMessage];loginMessage.length_MIN[loginMessage.length,loginMessage.maxlength-3-user.length];String.AppendString[loginMessage,"("];String.AppendString[loginMessage,user];String.AppendChar[loginMessage,')];PutLine[];PutString["Oldmessagewas:"];PutString[old];PutLine[];PDQueue.LogMessage[loginMessage];};reprint=>{ncopies:INT_0;confirm:BOOLEAN_TRUE;PutString["--Numberofcopies--"];ncopies_GetNumber[default:0];IFncopies>1THEN{PutString["--Confirmreprintofmultiplecopies--"];confirm_Confirm[];};IFconfirmTHEN{msg:LONGSTRING_[50];String.AppendString[msg,"Reprintrequestfor"];String.AppendLongDecimal[msg,ncopies];IFncopies=1THENString.AppendString[msg,"copy"]ELSEString.AppendString[msg,"copies"];PDQueue.LogMessage[msg,,user];PDQueue.Reprint[ncopies];PutOK[];}ELSEPutXXX[];};resetQueue=>{PutString["--Doyoureallywanttoresettheentirequeue?--"];IFConfirm[]THEN{PutOK[];PDQueue.Reset[];PDQueue.LogMessage["Queuereset",,user];};};help,illegal=>{PutLine[];���qÔg/ÓEwÔ_,ÓZÓ1AÔ]ÖÓZÔ[›ÓIÔZ5ÓIÔXéÓ8Ó#—Ó&f�ÔVÊÓIyÓ,ÔVÊ�ÔVÊÓÂÔVÊÓ"wÔVÊÓ'�Ó(õÔU?ÓIÓ%ä ÔSóÓIÓ!~ÔQÓIÔPHÓIÓ'“�yÓ)_ÔPH�ÔPHÓ*pwÓ+√ÔPH�ÔPHÓ,&ÔN°Ó&ÔL˙ÓI!Ó0…�Ó1˛ÔKRÓI!Ó0…ÔI™ÓIÓ0$ÔHÓI ÔF[ÓI Ó$∫Ó*Ó-6ÔD¥ÓIÔCÓI ÔAeÓI!Ô?ΩÓIÔ>Ó8Ó Ó _�Ô<nÓIyÓ ∑Ô<n�Ô<nÓ!!wÔ<nÓ#G�Ó$‘Ô:«ÓIyÓ ÓÔ:«�Ô:«Ó!ßwÔ:«Ó'�yÓ(üÔ:«�Ô:«Ó)XwÓ+ÀÔ:«�Ô:«Ô9ÓI Ó"|Ó(˜Ó*∞Ó/—Ô7xÓIÓ >�Ó!ÀÓ.íyÔ5–ÓIwÔ5–ÓÓ!Â�Ó#�yÓ$OÔ5–�Ô5–Ó%wÔ5–Ó(�Ô4)ÓZ Ó$çÓ+Ó/†Ó1YÓ6”Ó;ÙÔ2ÅÓZÓ"Ü�Ó$ Ô0⁄ÓZyÔ/2ÓIwÔ/2ÓyÓ"Ô/2�Ô/2Ó"’wÔ/2Ó%·�Ô-ãÓZyÓ ∂Ô-ã�Ô-ãÓ!oÔ-ãÓ$ßwÔ-ãÓ)ò�Ó+%Ô+„ÓZÓ-AÓ3Ó7›Ó:Ô*<ÓZÓ1ºyÔ(îÓZwÔ(îÓÓ#ˆ�Ó%€�yÓ'Ô(î�Ô(îÓ'…wÔ(îÓ*÷Ó:Ω�Ó;ÒyÔ&ÌÓZwÔ&ÌÓ ©Ó0ê�Ó1≈Ô%EÓZÔ#ûÓZÔ!ˆÓZÔ OÓZ�yÔßÓIwÔßÓòÔ�ÓIÔXÓ8 Ó kÓ#��Ô∞ÓI Ó"|Ó%ŒÓ(ÖÓ,OÓ/¨Ó1ZÓ4°Ó7�Ó:ÏÔ ÓyÔbÓIwÔbÓyÓ#EÔb�ÔbÓ#˛wÔbÓ' �Ô∫ÓZÔÓZÔkÓZÓ0e ÔƒÓZÔÓIÔuÓ8Ó´Ó ∑Ó#L�Ô ÕÓI ˇ�������S��������TVm$›����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������11PutString["Validcommandsare:"];FORcmd:CommandCodeIN[login..quit]DOcandidate:LONGSTRING_commandTable[cmd];PutString[candidate];IFcmd#quitTHENPutString[","];ENDLOOP;PutLine[];};quit=>{loggedIn_FALSE;PutLine[];SendNow[];quitting_TRUE};wait=>{requestNumber:INT_lastRequest;requestStatus:PDQueue.RequestStatus_waiting;action:PROC[request:PDQueue.Request,status:PDQueue.RequestStatus]={requestStatus_status;};toldUserThatItIsPrinting:BOOLEAN_FALSE;DoPrintingMsg:PROC={IFrequestStatus=printingANDNOTtoldUserThatItIsPrintingTHEN{PutString["Printing..."];toldUserThatItIsPrinting_TRUE;};};IFsep#'\nTHEN{PutString["--RequestNumber<"];IFlastRequest#-1THENPutNumber[lastRequest,1];PutString[">--"];lastRequest_requestNumber_GetNumber[default:lastRequest];};PutLine[];IFrequestNumberIN[0..NAT.LAST]THEN{PDQueue.CheckRequest[requestNumber,action];IFrequestStatus=waitingTHEN{PutString["Waiting..."];};DoPrintingMsg[];UNTILrequestStatus=notFoundORrequestStatus=canceledDOSendNow[];Process.Pause[Process.MsecToTicks[10000]];PDQueue.CheckRequest[requestNumber,action];DoPrintingMsg[];PutChar['.];ENDLOOP;PutString["Done."];PutLine[];};};ambiguous=>{��qÔg/ÓEwÔ_,ÓIÓ%≠Ó,íÓ/_yÔ]ÖÓIwÔ]ÖÓ7Ó!¿ yÓ+©Ô]Ö�Ô]ÖÓ,�wÔ]ÖÓ-ÄyÓ4“Ô]Ö�Ô]ÖÓ5∏�wÔ[›ÓZ yÓ$ Ô[›�Ô[›Ó$√Ô[›Ó'˙wÔ[›Ó,Î�Ó.xÔZ5ÓZyÔXéÓZwÔXéÓÓ"�Ó#ˆyÓ&⁄ÔXé�ÔXéÓ'îwÔXéÓ*†Ó2+yÔVÊÓZwÓ"˚ÔVÊ�ÔVÊÔU?ÓI ÔSóÓIÔQÓ8ÓÓ±Ó%�yÓ&™ÔQ�ÔQÓ'cwÓ*HÔQ�ÔQÓ+E Ó1« Ó9aÓ>é�yÔPIÓwÓ6ÔPI�ÔPIÓÁ�ÔN°Ó8Ó1Ó«�ÔL˙ÓI yÓ%õÔL˙�ÔL˙Ó&wÔL˙Ó(+�Ó)∏ÔKRÓI Ó$,Ó3O�Ó4‹ÔI™ÓIyÓ€ÔI™�ÔI™Ó ÇwÔI™Ó#ÇÓ)3Ó5ÔHÓÓ+¢�Ó-á�ÔF\ÓZÓ%ƒ�Ó'QÔD¥ÓZÔC ÓIyÓ*ÓÔC �ÔC Ó+®wÔC Ó1�yÓ2†ÔC �ÔC Ó3YwÓ6>ÔC �ÔC uÔAeÓIwÓ$äÔAe�ÔAeyÓ%àÔAe�ÔAeÓ&/wÔAeÓ)/�Ó+�yÔ?æÓZwÔ?æÓÓ'k�Ó)PyÓ.íÔ?æ�Ô?æÓ/fÔ?æÓ1∏wÔ>Ó-yÓ-YÔ>�Ô>Ó.wÔ>Ó1�Ô<oÓkÔ:«ÓkÓ.ó�yÓ0$Ô:«�Ô:«Ó0›wÓ3PÔ:«�Ô:«Ô9 ÓkÔ7xÓZyÔ5—ÓIwÔ5—ÓÓe�Ó!JyÓ#ûÔ5—�Ô5—Ó$WwÔ5—Ó'c�Ô4)ÓZ Ó$çÓ*Ÿ yÔ2ÇÓZwÔ2ÇÓ Ó&V�Ó(;yÓ)ÈÔ2Ç�Ô2ÇÓ*¢wÔ2ÇÓ-ØÓ< Ô0⁄ÓZ Ó&1Ô/3ÓZ Ó$Ø�Ó&<Ó0�Ó1°Ô-ãÓ-Ô+‰ÓZÔ*<ÓI yÔ(ïÓIwÔ(ïÓyÓ&…Ô(ï�Ô(ïÓ'3�wÔ(ïÓ(†yÓ*bÔ(ï�Ô(ïÓ+KwÓ,◊Ô(ï�yÔ(ïÓ-/wÓ0Ô(ï�Ô(ïyÓ0˚Ô(ï�Ô(ïÓ1¥wÔ(ïÓ4¿�Ô&ÌÓZ#Ó6∏yÔ%FÓZwÔ%FÓÓ'k�Ó)PyÓ.$Ô%F�Ô%FÓ.›wÔ%FÓ1È�Ô#ûÓkÔ!˜ÓkÔ OÓZyÔ®ÓZwÔ®Ó!âÓ)Ú�Ó+◊yÓ2DÔ®�Ô®Ó3 �wÔ®Ó4xÓ<‚�Ô�Ó-yÓ#»Ô��Ô�Ó$Æ�wÔYÓk Ô±Ók*Ô Ók#Ó8…ÔbÓkÔªÓkyÔÓkwÓ%Ô�ÔÔlÓZÔƒÓZ ÔÓZÔuÓIÔ ŒÓ8Ó 3Ó"…��������n��������TVm$j��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������12PutLine[];PutString["Ambiguouscommand(typeHelp<CR>forhelp)"];PutLine[];};ENDCASE=>ERROR;};};stream.options.signalSSTChange_TRUE;PutLine[];PutString[helloMsg];PutLine[];UNTILloggedInORquittingDODoCommand[!DelHit=>CONTINUE]ENDLOOP;WHILEloggedInDODoCommand[!DelHit=>CONTINUE]ENDLOOP;EXITSQuit=>NULL;};END.��qÔg/ÓEwÔ_,ÓI Ô]ÖÓIÓ)VÓ/∑Ó3AÓ:Ó<YÔ[›ÓI ÔZ6ÓIyÔXèÓ8wÔXèÓ:yÓ!–ÔXè�ÔXèÓ"âwÓ%·ÔXè�ÔXèÔVÁÓ'ÔU@ÓÔSôÓÓ&·�yÓ(nÔSô�ÔSôÓ)'wÓ+ôÔSô�ÔSôÔQÒÓ ÔPJÓÔN£Ó yÔL˚ÓwÔL˚Ó3yÓÓÔL˚�ÔL˚Ó �wÔL˚Ó"yÓ$OÔL˚�ÔL˚Ó%5�wÔL˚Ó&ñ Ó0Ó4ÆyÓ7DÔL˚�ÔL˚Ó8wÓ=~ÔL˚�ÔL˚yÔKTÓ◊wÓxÔKT�ÔKTyÔI≠ÓwÔI≠ÓeyÓ ÔI≠�ÔI≠Ó�wÔI≠Óg Ó(·Ó-yÓ0ÔI≠�ÔI≠Ó0flwÓ6OÔI≠�ÔI≠yÓ76ÔI≠�ÔI≠Ó7ÔwÓ<◊ÔI≠�ÔI≠yÔHÓwÔHÓÿÓ yÓûÔH�ÔHÓáwÓfiÔH�ÔHÔF^ÓyÔCÓÛwÓ{ÔC�ÔCˇ�������0��������TVm$�Ò��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������--PeachSourcesTemp.df--Copyright(C)1984,XeroxCorporation.Allrightsreserved.--MichaelPlass,1-Oct-8413:07:12--PeachPDPrintServerSourcesExports[Ivy]<Plass>Peach>Top>ReleaseAs[Indigo]<Peach>Top>PeachSourcesTemp.df1-Oct-8413:09:20PDTExports[ivy]<Plass>Peach>Documentation>ReleaseAs[Indigo]<Peach>Documentation>PeachDoc.tioga!124-Sep-8411:26:07PDTPeachDoc.press!124-Sep-8411:26:16PDTExports[ivy]<Plass>Peach>PeachSources>ReleaseAs[Indigo]<Peach>PeachSources>PDBitBltTiming.mesa!14-Mar-8411:21:20PSTPDFileFormat.mesa!118-Nov-839:54:35PSTPDInterpBasic.mesa!14-Sep-8410:17:00PDTPDInterpBitmap.mesa!117-Nov-8312:15:22PSTPDInterpBitmapImpl.mesa!14-Sep-8411:30:44PDTPDInterpMainImpl.mesa!120-Sep-849:14:55PDTPDInterpOutput.mesa!120-Sep-849:03:31PDTPDInterpPage.mesa!120-Sep-848:58:46PDTPDInterpPageImpl.mesa!120-Sep-849:17:50PDTPDInterpReader.mesa!14-Sep-849:51:57PDTPDInterpReaderImpl.mesa!113-Sep-8411:35:11PDTPDInterpSysCalls.mesa!14-Sep-849:55:12PDTPDInterpSysCallsDevelImpl.mesa!130-Nov-8310:22:04PSTPDQueue.mesa!113-Sep-8413:18:40PDTPDQueueImpl.mesa!127-Sep-847:48:29PDTPDUser.mesa!14-Sep-8415:05:56PDTPDUserImpl.mesa!127-Sep-849:33:14PDTPDRemoteStream.mesa!17-Sep-8416:13:26PDTPDStrikeFormat.mesa!119-Sep-8413:13:14PDTPDTextBitmap.mesa!119-Sep-8411:30:08PDTPDTextBitmapImpl.mesa!126-Sep-8417:39:54PDTPDRemoteStreamStub.mesa!113-Sep-8413:41:44PDTPDChatServerStub.mesa!113-Sep-8411:34:55PDTPDInterpOutputViewerImpl.mesa!126-Sep-8417:22:14PDT��wÔ_,Ó‚ÓYÔ]ÖÓµÓ,ÓÆÓ#Ó¡Ó!„Ó*ÅÓ,”Ó0™Ô[›ÓµÓ,ÓyÓΩÓ bÔZ6ÓµÓ,Ó.Ó£ÓÓeÔVÁÓµÓÀÓ%òÓ,/ÔSôÓΩÓ)∆Ó/kÓ5ÔPJÓµÓÀÓ,GÔN£ÓµÔKTÓΩÓ(Ó.mÓ4ÔI≠ÓΩÓ(Ó.ÉÓ4ÔF^ÓµÓÀÓ+ÔD∑ÓµÔAhÓΩÓ)ƒÓ/ÀÓ5eÔ?¡ÓΩÓ)?Ó0äÓ5sÔ>ÓΩÓ)@Ó.¸Ó4ïÔ<rÓΩÓ)xÓ0?Ó5ÿÔ:ÀÓΩÓ*√Ó0Ó6Ô9#ÓΩÓ*Ó1 Ó5ˆÔ7|ÓΩÓ)oÓ0_Ó5HÔ5’ÓΩÓ(˛Ó/ÓÓ4◊Ô4-ÓΩÓ)≈Ó0µÓ5ûÔ2ÜÓΩÓ)ÒÓ01Ó5Ô0flÓΩÓ*4Ó0†Ó69Ô/7ÓΩÓ)éÓ/ÕÓ4∂Ô-êÓΩÓ*∏Ó1Ó7Ô+ÈÓΩ Ó) Ó/uÓ5Ô*AÓΩÓ)–Ó0¿Ó5©Ô(öÓΩÓ(ÚÓ.≠Ó4GÔ&ÛÓΩÓ)4Ó0%Ó5Ô%KÓΩÓ*ŸÓ0îÓ6.Ô#§ÓΩÓ)aÓ/ÕÓ5fÔ!˝ÓΩÓ)ÇÓ/ÓÓ5àÔ UÓΩÓ*IÓ0µÓ6OÔÓΩÓ+Ó1sÓ7Ô_ÓΩÓ)›Ó0IÓ5‚Ô∏ÓΩÓ+IÓ1µÓ7Oˇ�������ö��������TVm$_��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� �ˇ TIMESROMAN����������˛Ê����ˇLAUREL���������������˛Ê����ˇGACHA����������������˛ü��� �ˇ TIMESROMAN����������˛ü��� �ˇ TIMESROMAN�����������˛Ê����ˇ TIMESROMAN����������˛ü����ˇLAUREL���������������˛ü����ˇ TIMESROMAN�����������˛ü����ˇ TIMESROMAN����������˛ü����ˇ TIMESROMAN����������˛Y����ˇ HELVETICA������������˛Ê����ˇLOGO�����������������˝á����ˇ HELVETICA������������˛ü�����ˇ HELVETICA�����������˛������������������������������������������������������������������������h�����à�����é�����i�����ò����������À���!��∆���'��é���(�����+��ö���2��*���9�����>��à���E��&���L��8���S��ü���[�����b��m���i��µ���p��£���w��å���|��≥���}��S���Å�����Ü��é���å��&���ë��¸���ò��°���ô�� ���õ�����°��[���ß��a���¨��‡���≤��ø���π��Ω���ø��™���¡�����«��¥���À��ö���“��-���◊��{���fi��c���Â��3���Î�����Ò��Ë���¯��}���˝��ÿ��������Ì����:����G����_����™����P��#��Ê��*��™��1��ì��8��ç��>����D��w��J��o��Q��Q��W��B��^��`��e��≤��l��‚��m��S��p��N��w��s��}��w��Ñ��¢��ä��‚��ã����í��‘��ì��A��ò��'��û��$��§��Ò��´��c��±����≥����∏��=��Ω��…��√��Û�� ��J��œ��Á��’��D��Ÿ��Ï��fl����‰��¯��È��^��Ó��v����”�ı���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������j/˘�_ˆ���ùàkp��ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ0[ivy]<Plass>Peach>Documentation>PeachDoc.tioga!1�����������������������������������#Monday, October 1, 1984 1:28 pm PDT����������������������������������������������������������������������������������������������������������������������������������������